?? tlv5618.c
字號:
#include <reg52.h>
sbit SCLK=P1^3;
sbit SDAT=P1^7;
sbit CS =P1^0;
bit bdata mode_bit=0; //方波幅度高低電平標志變量,為0時輸出低電平,為1時輸出高電平
unsigned char data count=0; //方波的半周期計數器
unsigned int data vouta=0; //方波高低電平電壓值存儲變量,其幅度與三角波幅度相等
unsigned int data config; //送往DA轉換器的配置參數。以全局變量出現,即作為行參,又作為實參
void initial_5618_io(void);
void tlv5618_outa(void);
void da_tlv5618(unsigned int config);
void delay(unsigned int num);
/************************************************************************************************/
void main(void)
{
initial_5618_io(); //初始化CPU的IO口
while(1) //周期地進行轉換,形成三角波和方波的周期信號
{
tlv5618_outa(); //控制通道A輸出方波,該方波與上面的三角波幅度相等、周期相同
// delay(100);
}
}
/************************************************************************************************/
void initial_5618_io(void) //CPU的IO口初始化函數
{
SCLK=0;
SDAT=0;
CS =1;
}
//================================================================================================
void tlv5618_outa(void) //周期方波生成函數
{
config=vouta;
config=config&0x0fff;
config=config|0xc000;
da_tlv5618(config);
vouta=0x0f00;
count++;
if(count<0x1a) //判斷方波是否應該改變電平狀態
{
if(!mode_bit) //根據方波幅度高低電平標志變量決定是輸出高電平還是低電平
vouta=0;
else
vouta=0x0f00;
}
else
{
count=0;
mode_bit=~mode_bit; //如果已經達到改變電平狀態的時刻則改變方波幅度標志變量
}
}
/*************************************************************************************************
; 函數名稱: da_tlv5618
; 功能描述: TI公司12位雙通DAC芯片TLV5618的控制時序
; 形式參數: config(無符號整型變量)
**************************************************************************************************/
void da_tlv5618(unsigned int config)
{
unsigned int n;
unsigned char m=0;
CS=0;
for(;m<0x10;m++)
{
SCLK=1;
n=config;
n=n&0x8000;
SDAT=(bit)n;
SCLK=0;
config<<=1;
}
CS=1;
SCLK=0;
}
//=====================================================================================
//函數名稱: delay
//功能描述: 延時
//備注: 程序調試中延時一段時間,方便觀察各相關端口的電平信號是否符合時序要求
//====================================================================================
void delay(unsigned int num)
{
unsigned int i;
for(i=0;i<num;i++)
{
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -