由51單片機(jī)作為主控制器實現(xiàn)的恒流源設(shè)計
部分程序:
#include "reg52.h" //stc頭文件
#include "Delay.h" //延時頭文件
//設(shè)置按鍵
sbit KEY_ADD = P3^2; //加
sbit KEY_DEC = P3^3; //減
//DA
sbit SCK = P2^0;
sbit CS = P2^1;
sbit DIN = P2^2;
int ADC_num = 0;
/*=========================================
//按鍵掃描處理函數(shù)
=========================================*/
void KEY_Scan( void )
{
if( KEY_ADD == 0 ) // 按鍵按下
{
Delay_ms(1); //延時消抖
while( !KEY_ADD ); //松手檢測
ADC_num = ADC_num + 102;
if( ADC_num >= 512 )
{
ADC_num = 512;
}
}
if( KEY_DEC == 0 ) // 按鍵按下
{
Delay_ms(1); //延時消抖
while( !KEY_DEC ); //松手檢測
ADC_num = ADC_num - 102;
if( ADC_num <= 0 )
{
ADC_num = 0;
}
}
}
/*=========================================
//DA
=========================================*/
void TCL5615_DAC(unsigned int Data)
{
unsigned char i;
Data <<= 6; //移除高6位,int型數(shù)據(jù)有16位,該DA是10位
SCK = 0; //在片選有效前,時鐘信號要為低
CS = 0;; //片選有效
for(i=0;i<12;i++) //每次轉(zhuǎn)換需要10個時鐘下降沿
{
if(Data&0x8000) //取最高位數(shù)據(jù),模擬串行數(shù)據(jù)
{
DIN = 1;
SCK = 0;
SCK = 1;
}
else
{
?紛傳文章借鑒與此