收藏 分享(赏)

数控稳压源丁峰平.doc

上传人:dzzj200808 文档编号:2338868 上传时间:2018-09-11 格式:DOC 页数:16 大小:238.50KB
下载 相关 举报
数控稳压源丁峰平.doc_第1页
第1页 / 共16页
数控稳压源丁峰平.doc_第2页
第2页 / 共16页
数控稳压源丁峰平.doc_第3页
第3页 / 共16页
数控稳压源丁峰平.doc_第4页
第4页 / 共16页
数控稳压源丁峰平.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、数控稳压源的设计60数控稳压源的设计丁峰平摘 要本系统用 89c51 单片机来实现数控稳压源的设计。软件设计采用利用其内部的两个中断分别显示当前输出电压的功能和响应各功能键的功能,有效的提高了系统的可视性和实时性。硬件上通过键盘实现人机交互,用 74LS164 静态显示电压值,用 0832 实现 D/A 转换,并通过 UA741CN 进行电压放大,在达到设计要求的同时,使整个系统简洁实用,功耗小可扩展性强。一、设计要求1、设计要求(1) 、输出电压:范围 0+9.9V,步进为 0.1V,纹波电压不大于 10mV(2) 、输出电流:500mV(3) 、输出电压值由数码管显示(4) 、由“+” 、

2、 “-”两键分别控制输出电压,步进增减(5) 、为实现上述几部分工作,自制一稳压直流电源,输出为15V,+5V2、发挥部分(1) 、输出电压可预置在 0+9.9V 之间的任意一个值(2) 、用自动扫描代替人工按键,实现输出电压变化(步进 0.1V 不变)二、方案设计与论证1、方案一用三端固定式集成稳压电源 CW7800 系列,其通过改变下端参考电压可实现 010V 可调,又因为其输出电压与可调电阻 Rw 成正比,于是可以通过标准电阻改变电阻实现 0+9.9V 可调电压输出,此设计电路复杂,人机交互性能差,显示电路很难实现,故不采用。2、方案二数控稳压源的设计61此方案采用 89C51 单片机系

3、统实现(设计框图如上图) ,其优点是可灵活编程,实现复杂的控制算法,提供较高的人机交互能力(包括键盘控制和输出电压值显示) 。同时系统通过 D/A 转换,电压放大能有效的控制电压源电压,使输出电压稳定,纹波电压小,且几块主芯片价格较便宜。综合以上二种方案,经过性能、可靠性和成本等论证,我们采用了方案二。三、硬件电路设计1、单片机最小系统采用 AT89C51 为中心控制设备, AT89C51 是高性能有低功耗的 8 位CMOS 单片微机,它突出的优点是片内集成了 4K 字节的 Flash PEROM,可用于存放内部程序,可简化外部电路。2、人机交互系统(数码显示和按键输入)为节省单片机的管脚资源

4、,采用作为显示和键盘的接口。其中 PA 口用来控制 LED 数码管各段位的亮与暗; PB 口用作各个数码管的片选脚,中间加入 75451 增加驱动能力,程序中以 500HZ 的频率不断地扫描 6 盏LED,使其动态地显示时钟信息;PC 口则用来扫描键盘,键盘控制如下:KEY1 为功能选择键(计/校时)、KEY2 为报时键、KEY3 为校时位选择键、KEY4 为增量键、KEY5 为减量键。3、D/A 转换D/A 转换的芯片是 DAC0832,其具有价格低廉、接口简单、转换控制容易等优点,能直接与 MCS-51 单片机接口,其主要参数如下:(1)分辨率为 8 位;(2)电流稳定时间 1;(3)可单

5、缓冲,双缓冲或直接数字输入;(4)低功耗,200mW。因为输出电压范围为 0+9.9V,步进为 0.1V,则其需要 100 个间隔,而对于 8 位的 DAC0832,因为数控稳压源的设计6228=256100,其电流稳定时间较短,所以满足系统要求。本系统中将 DAC0832 直接接到 89C51 的 P0 口,同时 DAC0832 的WR1 口接到 89C51 的 WR 口,这样当 89C51 从 P0 口输出数据时,DAC0832 接收数据并读入内部的八位输入锁存器,保持数据,然后通过八位 DAC 寄存器和八位 D/A 转换器输出转换后的模拟量(电流)并保持,直到下一次 89C51 输出数据

6、时重新改变。这儿 DAC0832 的参考电压为-5V ,又因为其为电流输出,所以采用运放 UA741CN 转换为电压,运算放大器输出脚(6 脚)的电压输出范围为 05V。4、功率放大电路及电压放大电路外部功率放大和电压放大电路的设计如下图,U5 的 6 脚输出为 05V,通过 U6(运放 741)的电压串联负反馈来得到电压的放大,从而稳定放大电路的工作点,增加增益的恒定性,减少非线形失真、抑制噪声。输出端用射极跟随功率放大器 TIP122 输出,因为 TIP122 的输出电压可达到 5A,远大于 500mA,符合要求。 四、软 件设 计1、软 件数控稳压源的设计63主要功能 电压输出控制:每按

7、 KEY1 键一下,可以实现对输出电压增加 0.1V;每按KEY2 键一下,可以实现对输出电压减少 0.1V。 自动扫描:每按 KEY3 键一下,可以实现启动与停止自动扫描之间切换。当处于自动扫描状态时,超过一段时间,自动扫描将自动停止,输出电压恢复到前一个状态。2、软件流图本软件主要有三部分组成,主程序(main_begin)、T0 溢出中断(t0_int )和 T1 溢出中断(t1_int),其中主程序主要完成内部 RAM 的初始化、中断初始化等;T0 中断主要完成动态显示当前输出电压的功能(当输出电压发生变化时,才重新显示) ;T1 中断完成响应各功能键的功能,软件流图如下:说明:主程序

8、主要完成内部 RAM 的初始化、中断初始化等,以使每次进入时,都能正常工作1. 设置堆栈指针于 50H,程序如下:MOV SP, #50H 2内部 RAM 的初始化,程序如下:CLR AMOV 00H,AMOV 01H,A数控稳压源的设计64MOV 06H,AMOV 07H,A对整个程序中用到的寄存器进行置 0。相关位地址的初始化:位地址 00H: 判断是否需要刷新显示。00H = 1,需重新刷新;00H = 0,不需要。位地址 01H: 当前自动扫描状态。01H = 1,已启动自动扫描;00H = 0,自动扫描停止。程序如下:SETB 00H ;CLR 01H ;3读拨码盘,预置输出电压。程

9、序如下:MOV A,P2 ;MOV A,P2ANL A,#11110000B ;ANL A,#0F0HRR A ;SWAP ARR A RR ARR AMOV R3,A ;MOV R3,AMOV A,P2 ;MOV A,P2ANL A,#00001111B ;ANL A,#0FHMOV R4,A ;MOV R4,A4初始化中断系统:T0 溢出中断:定时器 T0 工作于模式一,为了产生 2ms 的溢出中断(即f = 500HZ),定时器 T0 的初值可根据下式算得:(2 16 X) * 500 = 1 * 106因而,X =63536 = 0F830H。同理可得,对于 T1 溢出中断,为了产生

10、2ms 的溢出中断 (即 f = 500HZ),X = 63536 = 0F830H。程序如下:MOV TH0, #0F8HMOV TL0, #30H ;置初值MOV TH1,#0F8HMOV TL1,#30HMOV TMOD,#00010001B ;工作在方式一MOV TCON,#01010000BMOV IE,#10001010B数控稳压源的设计65说明:T0 中断主要完成根据需要进行刷新显示及送当前电压值到 D/A 转换器的功能。各寄存器及位地址的用于介绍:位地址 00H: 判断是否需要刷新显示。00H = 1,需重新刷新;00H = 0,不需要。寄存器 R3(03H):存当前输出电压值

11、的个位。寄存器 R4(04H):存当前输出电压值的小数位。1. 保护现场,程序如下:PUSH PSW ;保护程序状态字 PSWPUSH DPL ;保护数据指针 DPTRPUSH DPH2置工作寄存器于 00 区,程序如下:CLR PSW.3 ;工作寄存器为 00 区数控稳压源的设计66CLR PSW.43关闭中断,程序如下:CLR ET0 ;禁止中断CLR TR04为了确保每次 2ms 产生溢出中断,重置时间常数,程序如下:MOV TL0, #F8H ;置初值 MOV TH0, #30H5. 判断否需要刷新显示,程序如下:MOV C,00HJNC EXIT0 ;退出6. 相应处理包括以下几部分

12、:1).清除 00H,将需要刷新该为不需要,程序如下:CLR 00H2).送当前输出电压值到 A/D 转换器,因为 A/D 转换器处于时时选通状态,而且输入引脚与 P0 口相连,所以,程序如下:CALL CHANGEMOV R0,#00HMOVX R0,A输出电压的个位、十位存在 R3 与 R4 寄存器,在输出前需要进行转换,才能达到匹配,故调取 CHANGE 函数进行转换将所需值存入累加寄存器 A。3). 进入刷新子程序。程序如下:CALL REFRESH_PROC7. 开中断。程序如下:SETB TR0 SETB ET08. 恢复现场。程序如下:POP DPH POP DPLPOP PSW

13、9. 中断返回。程序如下:RETI 数控稳压源的设计67说明:T1 中断主要完成各功能键处理功能。各寄存器及位地址的用于介绍:位地址 01H: 判断是否处于自动扫描状态。01H = 1,处于自动扫描状态;01H = 0,已停止自动扫描。寄存器 R0(00H):存自动扫描次数。寄存器 R3(03H):存当前输出电压值的个位。寄存器 R4(04H):存当前输出电压值的小数位。寄存器 R5(05H):存当前键值计数。寄存器 R6(06H):存当前键值。寄存器 R7(07H):存上一次键值。 T1 溢出中断结构一部分与 T0 溢出中断相似,这里将不再作介绍,可参考T0 溢出中断说明。1 判断键值是否有

14、效。此中断每 2ms 执行一次,频率过密。为了避免人手按键一次而实际上程序执行多次误区,需要每隔一定时间(2ms*80)才数控稳压源的设计68扫描键盘一次,故用到了寄存器 R5。程序如下:INC R5;判断 R5 是否是 80CJNE R5,#50H,EXIT1MOV R5,#0HKEY_VALID:MOV ACC,R7JNB ACC.3,K1_KEYJNB ACC.2,K2_KEY2 相应键盘处理功能包括以下几部分:1).启动/停止键盘自动扫描功能(K3_KEY) 。在此程序中,为了能够在启动自动扫描一段时间后而没有进行停止,增加了自动恢复到前一步状态的功能。从 0.0V 到 9.9V 一共

15、有 100 个状态,故一段时间可为(2ms*80*200)3.2s ,用到寄存器 R0。程序如下:K3_KEY:CPL 01HMOV R0,#0H ;用于自动扫描计数,超过一定计数(200) ,就停止扫描JMP EXIT2).增加 0.1V(K1_KEY) ,程序如下:K1_KEY:MOV C,01HJC EXITSETB 00HINC R4CJNE R4,#0AH,EXITMOV R4,#0INC R3CJNE R3,#0AH,EXITMOV R3,#0JMP EXIT3).减 0.1V(K2_KEY) ,程序如下:K2_KEY:MOV C,01HJC EXITSETB 00HDEC R4C

16、JNE R4,#-1H,EXITMOV R4,#09HDEC R3数控稳压源的设计69CJNE R3,#-1H,EXITMOV R3,#09HJMP EXIT3判断是否处于自动扫描,只要看位地址 01H 是否为 1。程序如下:EXIT:MOV C,01HJNC EXIT1INC R0CJNE R0,#200,CONTINUECPL 01HJMP EXIT1当 R0 为 200(此值可参考前面自动扫描 K3_KEY 说明)时自动停止扫描。测试方法和结果a) 测试环境与设备1) 电源:JWY-30V/3A2 2) CPU 及各芯片供电:4.930V3) A/D 片参考电源:-5.414V4) 运放

17、电源: +14.866V -14.760V5) 示波器:XJ4312 型二踪示波器6) 万用表:DT9973 数字万用表b) 人机交互操作情况1) 复位部分工作正常,能正确从拨码盘读入预置值。2) 各盏 LED 的各段都显示正常,亮度可调。3) 键盘操作正确,可按“+” “-”键实现 0.1V 步长的增减,按“扫描”键能实现自动步进扫描的启动和停止。c) 纹波情况1) 数字万用表(DT9973)读数上最大只有 2mv 的跳变。2) 用 XJ4312 型示波器观察,输出电压纹波大致与电源稳波幅度相近,正负有 2.5mv 的高频稳波,远远超出要求。数控稳压源的设计70d) 负载情况输 出 (V)负

18、载2.0 3.0 5.0 9.8无负载 2.031 3.030 5.036 9.824负载 20 2.037 3.040 5.062 9.910输出变化 0.006 0.010 0.026 0.086变化比例 0.30 0.33 0.52 0.88负载 10 2.041 3.047 5.083 -输出变化 0.010 0.017 0.047 -变化比例 0.49 0.56 0.93 -1) 结果:从表中数据可看出,接上负载后输出电压抬高,而且输出电流越大,抬高越多。2) 分析:这主要是由于晶体管的电流热效应引起的:因为通过晶体管的电流越大,由于本次测试未给功率管 TIP122 加散热片,所以晶

19、体管体温升高,而由于节电级的负温度效应,致使 VBE下降,从而输出升高。3) 结论:不过从测得的数据看来,误差在容许的要求范围之内。结束语把单片机用于数字钟,有些大材小用。但本实验主要是为了熟悉单片机的整个开发过程,再加上时间和精力的不足,对一些扩充功能(如秒表、定时和报时)也就不再深入。总的来说,通过本次实验,我们初步较全面地掌握了单片机的开发,培养了相互协作的精神,大大提高了软硬件的能力。附 录一 参考文献1徐淑华等, 单片微型机原理及应用 ,哈尔滨工业大学出版社,1997年 11 月数控稳压源的设计712李华, MSC-51 系列单片机实用接口技术 ,北京航空航天大学出版社,1999 年

20、 12 月3孙育才, MSC-51 系列单片微型计算机及其应用 ,南京工学院出版社,1987 年 5 月二. 程序;本中断处理LED的动态显示以及对键盘按钮的反应T1_INT:ORG 0200H;以下为初始化程序;CLR ET1 ;禁止T1中断CLR TR1 ;等服务完毕后再开启中断PUSH PSW ;保护程序状态字PSWPUSH DPL ;保护数据指针DPL,DPHPUSH DPHSETB PSW.4 ;工作寄存器为02区 CLR PSW.3MOV TH1,#0F8H ;重置时间常数(2MS)MOV TL1,#30H;以下为显示处理程序;INC R6 ;判断R6是否是150MOV A, R6

21、 ;用在校时状态下每隔300 MS闪显一次CJNE A, 36H,R6_NOTMOV R6,#0HCPL 01HR6_NOT:CALL CONVERT ;十分秒的转化MOV C,00H ;是否为校时态JC NOT_CHECKMOV C, 01H ;在校时状态下根据R5的内容,JNC NOT_CHECK ;将显示缓冲区相应的字置 0AH,即灭灯MOV A, #30HADD A, R5ADD A, R5数控稳压源的设计72MOV R0, AMOV R0,#0AHINC R0MOV R0,#0AHNOT_CHECK: PUSH 10HMOV DPTR,#0A01H ;选同当前显示位MOV A, 37

22、HMOVX DPTR,AMOV A, #30H ;取当前显示位值ADD A, R1MOV R0, AMOV A,R0POP 10HSHOW:CALL DISCODE ;十进制码转八段码MOV DPTR,#0A00H ;在时个位和分个位后加点CJNE R1, #02H,DOTORL A, #10HDOT:CJNE R1, #04H,NODOTORL A, #10HNODOT:MOVX DPTR,A ;送段码INC R1 ;修改首址和选通位MOV A, 37HRL AMOV 37H,ACJNE R1, #6,PP ;如果为6,修改为0MOV R1, #0HMOV 37H,#0FEH;以下为键盘处理

23、程序;PP: INC R2 ;消除键盘抖动处理CJNE R2,#50,W1 ;即每100ms响应一次MOV R2,#0HJMP Q1W1: LJMP EXITQ1: MOV DPTR,#0A02H ;读键值到R3MOVX A ,DPTRORL A ,#0E0HMOV R3 ,A数控稳压源的设计73CJNE R3, #0FFH,NEXT1;对没有按键的处理JB 00H,G1 ;在计时状态下,直接跳出INC 38H ;在校时状态下,如果连续闪十下MOV A, 38H ;都没有按键则自动置位计时态CJNE A, #60,W2SETB 00HJMP W2 G1: MOV 38H,#00HJMP W2N

24、EXT1:MOV 38H,#00H ;与上次键值比较,在校时态下CJNE A, 14H,NEXT2 ;若不同则马上进行处理,若相同CLR C ;只对加减按钮连续被按住有反应ORL C,ACC.2 ;即连续被按达两次闪现后就自动增/减ANL C,ACC.3JC W2INC R7CJNE R7,#15,W2MOV 36H,#2HDEC R7JMP NEXT3W2: MOV 36H,#150MOV R4,ALJMP EXITNEXT2:MOV R7,#00HMOV R4,ANEXT3: ;根据键值散转MOV ACC,R4 JNB ACC.2,K3 ;加一JNB ACC.3,K4 ;减一JNB ACC

25、.1,K2_0 ;选通位JNB ACC.4,K5_0 ;计时/校时?LJMP EXITK4: MOV C,00H ;K4(减一)键按下JC S44CJNE R5,#0H,MINUTEMOV R0,0AHCJNE R0,#0H,S4 ;秒为0,修改为59退出MOV 0AH,#59JMP EXITS4: DEC 0AH ;秒减一S44: JMP EXITMINUTE:数控稳压源的设计74CJNE R5,#1H,HOURMOV R0,0BHCJNE R0,#0H,M4 ;分为0,修改为59退出MOV 0BH,#59JMP EXITM4: DEC 0BH ;分减一JMP EXITHOUR:MOV R0

26、,0CHCJNE R0,#0H,H4 ;小时为0,修改为23退出MOV 0CH,#23JMP EXITH4: DEC 0CH ;小时减一JMP EXITK2_0:JMP K2K3: MOV C,00H ;K3(加一)键按下JC EXITCJNE R5, #0H,MINUTE3MOV R0, 0AHCJNE R0, #59,S3 ;秒为59,修改为0退出MOV 0AH,#0JMP EXITS3: INC 0AH ;秒加一JMP EXITMINUTE3:CJNE R5, #1H,HOUR3MOV R0, 0BHCJNE R0, #59,M3 ;分为59,修改为0退出MOV 0BH,#0JMP EX

27、ITM3: INC 0BH ;分加一JMP EXITHOUR3:MOV R0,0CHCJNE R0,#23,H3 ;小时为23,修改为0退出MOV 0CH,#0HJMP EXITH3: INC 0CH ;小时加一JMP EXITK5_0:JMP K5K2: MOV C,00H ;K2(选通)键按下JC EXITDEC R5CJNE R5,#0FFH,EXIT数控稳压源的设计75MOV R5,#02HJMP EXITK5: CPL 00H ;K5(计/较)键按下MOV R5,#02H ;先小时矫正EXIT: ;恢复中断,恢复现场后退出MOV ACC,#0FFHSETB TR1SETB ET1POP DPHPOP DPLPOP PSWRETI;以下为两个子程序;CONVERT: ;将时分秒值转化成个十位MOV A,0AHMOV 240,#0AHDIV ABMOV 30H,240MOV 31H,AMOV A,0BHMOV 240,#0AHDIV ABMOV 32H,240MOV 33H,AMOV A,0CHMOV 240,#0AHDIV ABMOV 34H,240MOV 35H,ARETDISCODE: ;将A中的值通过查表换成LED段码PUSH DPHPUSH DPLMOV DPTR,#TAB1MOVC A,A+DPTRPOP DPLPOP DPHRET;汇编结束;END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报