显示电路由三个数码管和3个74LS164组成。三个数码管分别组成显示电路的十位、个位、小数点位,由于三个数码管至少需要21根I/O线,为节约资源,采用串行输入并行输出的74LS164进行驱动输出。
两个并行口分别作为信号输出口和时钟控制信号。采用单片机的P3.4、P3.作为控制加减的控制口。8M晶振为单片机提供时钟信号。电容C3和电阻R25组成复位电路。利用数控电源,可以达到每步0.1V的精度,输出电压范围0~15V,电流可以达到2A。系统结构如图1所示:
图1:硬件系统结构图
第四章、硬件电路设计
DAC0832是一款常用的数摸转换器,它有两种连接模式,一种是电压输出模式,另外一种是电流输出模式,为了设计的方便,选用电压输出模式,如电路图2所示,Iout1和Iout2之间接一参考电压,VREF输出可控制电压信号。它有三种工作方式:不带缓冲工作方式,单缓冲工作方式,双缓冲工作方式。该电路采用单缓冲模式,由于/WR2=/XFER=0,DAC寄存处于直通状态。又由于ILE=1,故只要在选中该片(/CS=0)的地址时,写入(/WR=0)数字量,则该数字信号立即传送到输入寄存器,并直通至DAC寄存器,经过短暂的建立时间,即可以获得相应的模拟电压,一旦写入操作结束,/WR1和/CS立即变为高电平,则写入的数据被输入寄存器锁存。
图2:主硬件电路图
第五章、软件流程
软件的设计主要完成三方面的功能:
1.设置电压并且保存,主要是对EEROM的操作。
2.把设置的电压送到DA,主要是对DA的操作。
3.中断显示,把设置的电压显示到LED数码管上。
该数控电压源实现保存最近10电压功能,当打开电源的时候,它显示和输出的必须是上次使用电压大小,所以在EEROM中使用11个地址保存数据,第一个地址保存当前电压编号,大小为1~10。第2个地址~第11个地址连续保存10个电压大小数据。电压编号的大小分别对应到相应地址电压大小。 对软件流程做一下说明:当电源打开的时候,MCU进行复位,寄存器清零。接着电源应该显示和输出上次关机前的电压大小,这时候MCU先读取EEPROM中保存的电压编号,根据电压编号读出对应电压,把该数据送到DA,在转换成BCD码送到显示部分。这时候程序循环检测是否有按键信号,如果KEY1按下,电压编号指向下一个,保存该电压编号,读对应电压,把他送到DA并且显示。如果KEY2按下,当前电压数据加1,相对应输出电压(POWER—OUT引脚)增加0.1V,保存设置电压数据。