由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文章
16332浏览量
177806 -
恒流
+关注
关注
1文章
204浏览量
30728 -
51单片机
+关注
关注
274文章
5702浏览量
123491 -
恒流源
+关注
关注
16文章
335浏览量
56202
发布评论请先 登录
相关推荐
评论