基于51单片机的程控恒流源设计
3.2 模块函数程序设计
模块函数程序主要是为结构化模块设计定义一些函数, 如各定时器的初始化函数、SMBUS初始化及处理函数、DAC0的初始化和处理函数,另外, 也包括往铁电存储器中写入字节的函数和从目标地址读取数据等函数。其中DAC0的初始化程序代码如下:
Void DAC_Init (void)
{
REF0CN =0X30; /*内部偏压发生器和电压基准缓冲器工作, 基准从VREF脚输出*、
ID0CB =0XF2;
}
存储器写入函数如下:
Viod EEPROM_ByteWrite ( uchar i2caddr,uchar addr, uchar dat )
{
While (smb_busy)
Smb_busy = 1;
Target = i2caddr;
Smb_w =write;
Smb_sendwordaddr = 1;
Smb_randomread = 0;
Smb_ackpoll =1;
Word_addr = addr;
Smb_singlebyte_out = dat;
Psmb_data_out =smb_singlebyte_out;
Smb_data_len =1;
Sta = 1;
}
……
4 结束语
本文给出了用C8051FF330D的内部电流型D/A转换器和电流/电压转换电路来设计可编程恒流源控制器的设计方法。由于C8051F330D单片机的运算速度比普通单片机要快, 而且功耗比较低, 同时内置有DAC和ADC, 由此可在电子产品开发过程中减小产品体积, 降低硬件连线的复杂程度。实验证明, 本设计的程控电流源具有输出电流稳定准确等特点, 而且电流随负载和环境温度变化小, 输出电流误差范围为±5 mA, 同时其输出电流也较大, 是一款价格低廉, 性能稳定,操作简单的实用性通信电流源。
评论