由51單片機作為主控制器實現的恒流源設計
部分程序:
#include "reg52.h" //stc頭文件
#include "Delay.h" //延時頭文件
//設置按鍵
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;
/*=========================================
//按鍵掃描處理函數
=========================================*/
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型數據有16位,該DA是10位
CS = 0;; //片選有效
for(i=0;i<12;i++) //每次轉換需要10個時鐘下降沿
{
if(Data&0x8000) //取最高位數據,模擬串行數據
{
DIN = 1;
SCK = 0;
SCK = 1;
}
else
{
-
控制器
+關注
關注
112文章
16214瀏覽量
177479 -
恒流
+關注
關注
1文章
203瀏覽量
30706 -
51單片機
+關注
關注
273文章
5699瀏覽量
123225 -
恒流源
+關注
關注
16文章
333瀏覽量
56169
發布評論請先 登錄
相關推薦
評論