简易线性数控直流稳压电源的设计与实现Word文件下载.docx
《简易线性数控直流稳压电源的设计与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《简易线性数控直流稳压电源的设计与实现Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。
2.1单片机系统外围电路设计
在本次设计中,使用AT89C52单片机,其外围电路有复位电路、晶振电路、按键电路、数码管显示和D/A芯片接口电路。
以下是电路的详细设计。
2.1.1复位电路设计
单片机在启动的时候都需要复位,使单片机系统处于初始状态,然后开始工作。
89系列的单片机的RET引脚是复位信号的输入端,当系统处于正常工作状态,振荡器稳定,RET引脚上出现2个机器周期以上的高电平时,单片机就进入数位状态,但是如果引脚RET出现持续的高电平,单片机就处于循环复位状态[9]。
复位通常有两种基本形式:
上电复位和手动复位。
本次设计采用上电复位。
电路图如图2-1所示。
图2-1复位电路
2.1.2时钟振荡电路设计
单片机的CPU实质上是一个复杂的同步时序电路,它的工作都是必须在时钟控制下进行的。
CPU工作发出的控制信号在时间上的相互关系就是CPU的时序问题[9]。
CPU的时序需要外部硬件电路来实现,既振荡器和时钟电路。
51单片机内部都有一个高增益反向放大器,用于构成振荡器,但是构成时钟,外部还需要加一些附加电路。
本次设计采用单片机外部加晶振构成振荡电路,如图4-2所示。
图2-2单片机振荡电路
该振荡电路时采用的单片机内部时钟方式,是直接在引脚XTAL1和XTAL2两端接晶振,就构成了稳定的自激振荡器,振荡器产生的脉冲信号直接送入内部时钟电路。
2.1.3键盘电路设计
本次设计为数控电源,所以需要键盘设置输出电压,按键电路设计简单,如图4-3所示。
图2-3按键电路
四个按键依次为电压+1V、+0.1V、-1V、-0.1V,与单片机的P2口连接。
2.1.4显示电路设计
89系列单片显示通常采用的是LED数码管显示或LCD显示,两个显示它们的接口方法是不同的。
一般LCD配置了专门的驱动电器74ls244,在进行信息显示时,只需要把信息写入驱动电器的存储器中即可。
而数码管显示一般需要的电流较大,数码管显示有两种方式:
静态显示和动态扫描显示,在一般应用中主要是采用动态扫描方式。
本次设计采用LED数码管动态扫描显示,电路图如下图2-4所示。
图2-4-1
74ls224总线驱动电路
图2-4-2数码管显示电路输出电压测量
本设计采用共阴数码管显示,数码管接在单片机的P1和P2口,所以单片机P1口需要加上拉电阻。
2.1.5单片机与DA接口电路设计
由于本次设计用DA转换输出,所以在设计的时候采用了DAC0808单片控制输出电压。
DAC0808与单片机接口电路如图2-5所示。
图2-5DAC0808与单片机接口电路
2.6总电路图的设计
如图2-6总电路图。
图2-6总电路图
该中电路图是在protus软件里完成的,在绘图时采用的是分模块设计,以便于理解和修改,各模块又使用网络标号连接,这样使得电路更加简明。
3、软件设计,详细叙述各个软件模块所实现的功能
3、1以下程序为初始化个变量,即把个变量的初始值赋值为零,所以运行程序时,给定电压为零,输出电压也为零。
;
******************
初始化变量
MAIN:
MOV
R0,#30H
MOV
R7,#10H
P3,#00H
CLR
C
00H,C
LOOP:
@R0,#00H
INC
R0
DJNZ
R7,LOOP
R1,#2FH
LOOP1:
LCALL
DISPLAY
LCALL
SHUCHU;
电压D/A转换输出
JNB
P1.0,WEIXUAN;
进入位选状态
P1.2,JIA;
进入加状态
P1.3,JIAN;
进入减状态
AJMP
LOOP1
3、2位选程序是对输出赋值时,按位选后,74ls244进入三态模式,电压实测数码管输出保持原值。
位选程序
WEIXUAN:
去抖动
R1
A,R1
CJNE
A,#34H,LOP1
R1,#30H
LOP1:
JNB
P1.1,DUANXUAN;
进入段选状态
P1.4,LOP2;
进入确定状态
LOP1
LOP2:
3、3位选选到哪一位后,通过段选对那一段进行加一操作,按一下,加一,直到加到九,再按又变为为零。
段选程序
DUANXUAN:
R0,A
A,@R0
A
A,#10,L1
A,#00H
L1:
@R0,A
3.4按确认键,可以进入三态模式,再按一下,可对设定电压十分位进行加5或减5操作,对应的输出值也相应的发生改变。
加1程序
JIA:
A,30H
JZ
Y4
MAIN
Y4:
CLR
A,33H
ADD
A,#5
ACALL
BIJIAO1
33H,A
C,00H
A,32H
ADDC
00H,C;
存进位
32H,A
A,31H
31H,A
30H,A
Y3:
AJMP
BIJIAO1:
A,#0AH,Y1
SETB
Y2
Y1:
Y2:
RET
减5程序
JIAN:
JNZ
Y7
30H,#01H
Y7:
SUBB
Y8
A,#05H
Y8:
BIJIAO2
BIJIAO2:
JNC
Y9
A,#09H
Y9:
3.5以下为DA转换子程序,单片机把设定好的电压值送到DA把数字量转换成模拟量通过电压功率放大器输出。
电压D/A转换输出子程序
SHUCHU:
SETB
RS0
Y5
A,#200
Y6
Y5:
SWAP
ORL
B,#20
MUL
AB
45H,A
B,#2
A,45H
B,#5
DIV
Y6:
DPTR,#TAB2
MOVC
A,@A+DPTR
P3,A
CLZ;
调用电压测量值子程序
RET
3、6
以下为电压测量子程序,它完成功能主要是测量出输出电压值,存储在寄存器类,此值是送到显示模块显示的值。
CLZ:
48H,A
R0,#34H
R6,#4
LOOP7:
B,#10
62H,A
A,B
A,62H
63H,A
A,63H
R6,LOOP7
3、7
以下为显示子程序,它完成功能主要是从单片机中取数,然后再送到数码管显示,先送段码,再送位码。
显示子程序
DISPLAY:
A,#01H
R7,#8
LOOP2:
P2,A
10H,A
DPTR,#TAB1
60H,A
A,R0
A,#31H,M1
M3:
A,60H
ANL
A,#7FH
M2
M1:
CJNE
A,#34H,M2
M3
M2:
P0,60H
DS1MS
A,10H
RL
R7,LOOP2
3、8
以下是一个延时子程序,完成的主要功能是延时1ms。
延时1ms子程序
DS1MS:
TMOD,#01H
TH0,#0FCH
TL0,#18H
TR0
LOOP3:
JBC
TF0,NOOP
SJMP
LOOP3
NOOP:
4、将hex文件下载仿真
4.1
将kell软件编写程序后产生的hex文件,将hex文件下载到单片机中,进行硬件仿真,下图为初始状态显示,如图4-1所示:
图4-1初始状态
4、2打开仿真器后,然后进行加操作,每次步进值为0.05V,如图4-2所示,上面的为电压设定,下面为输出显示,左边那个为电压表测得实际输出。
图4-2
图4-2
4.3
打开仿真器,点击位键选中该位,然后再点击段键,每点击一次该段加一,把电压设定为5.55V,如图4-3.1所示,然后点击确认键,改变74ls244的三态状态,显示如图
4-3.2所示:
图4-3.1
图4-3.2
4.4
以下是按键的综合使用,先设定电压为7V,然后用加键每次步进0.05V,调到7.5V,显示如图4—4所示:
图4-4