《数字式可调直流稳压电源的设计与制作毕业设计.doc》由会员分享,可在线阅读,更多相关《数字式可调直流稳压电源的设计与制作毕业设计.doc(40页珍藏版)》请在三一办公上搜索。
1、数字式可调稳压电源的设计与制作摘 要单片机实现的数字可调稳压电源由于原理简单、稳定性好、精度高、成本低、易实现等诸多优点而受到越来越广泛的重视。通过对数字可调稳压电源系统的设计,详细介绍了AT89C52 单片机及键盘扫描原理、数码管动态显示原理、定时中断原理,从而了解单片机相关指令在各方面的应用,同时还介绍了数模转换芯片DAC0832的工作原理。系统由辅助电源、输入键盘电路、单片机控制电路、数模转换电路、输出稳压电路、显示电路等构成,能输出5V15V电压,步进值为0.1V和1V。本文采用单片机和其他元件及外围电路,开发一个数字式可调直流稳压电源,能够设定输出电压值,电压输出和显示。关键词:单片
2、机;直流稳压;数字控制; D/A转换AbstractSingle chip implementation of digital adjustable regulated power supply because of its simple principle, good stability, high precision, low cost, easy to implement, and many other advantages by more and more widely attention. Through to the digital adjustable regulated pow
3、er supply system design, detailed introduces the single-chip microcomputer AT89C52 and keyboard scanning principle, dynamic display of digital tube principle, timing interrupt principle, to understand SCM related instruction in all aspects of the application, at the same time also introduced DAC0832
4、 d/a conversion chip works. System consists of auxiliary power supply, keyboard input circuit, single-chip microcomputer control circuit, d/a conversion circuit, output voltage regulation circuit, display circuit and so on, can output 5 V to 15 V voltage, the step value of 0.1 V and 1 V. Using micro
5、controller and other components and peripheral circuit, this paper developed a digital adjustable dc regulated power supply, can set the output voltage, output voltage and display.Keywords: Single chip microcomputer; Dc voltage; Digital control; D/A conversion目 录1 绪论11.1 数字可调稳压电源的背景及意义11.2 数字式可调稳压电源
6、的研究现状及发展趋势11.3课题研究内容22 方案设计42.1设计原理42.2 方案设计及论证42.2.1 方案一42.2.2 方案二52.3 方案比较选择62.4 主要元件介绍62.4.1 AT89C5262.4.2 DAC083283 数字式可调稳压电路设计103.1系统设计103.2 单元电路的设计103.2.1单片机主体电路103.2.2 稳压电源电路113.2.3矩阵键盘电路123.2.4 数码管显示部分电路143.2.5 DAC0832数模转换部分电路153.2.6 输出电压控制单元电路153.2. 晶振及复位电路164 数字式可调稳压电源软件设计184.1 系统软件流程图184.
7、2 系统程序介绍194.2.1 初始化硬件程序194.2.2 键盘扫描程序204.2.3 键盘服务程序214.2.4 数码显示程序225 电路仿真236 结论24参考文献25致 谢27附录28此单片机模拟电梯用红色发光二极管组成的箭头来指示电梯当前是处于上升状态还是下降状态,用数码管显示当前是处于哪一层,用绿色发光二极管指示电梯走到哪一层会停.电源接通后,若没有人按下停止按键,它就以每层2秒的速度一直上下运行,若有人按下某一层的停止按键,它就会在相应的那一层停止4秒钟,并伴有开门和关门的声音提示。1绪论1.1 数字可调稳压电源的背景及意义电源技术是一门实践性很强的工程技术,服务于各行各业。电力
8、电子技术是电能的最佳应用技术之一。当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。随着计算机和通讯技术发展而带来的现代信息技术革命,给电力电子技术提供了广阔的发展前景,同时也给电源技术提出了更高的要求。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。数字化智能电源模块是针对传统智能电源模块的不足提出的,数字化能够减少生产过程中的不确定因素和人为参与的环节,有效地解决电源模块中诸如可靠性、智能化和产品一致性等工程问题,极大地提高生产效率和产品的可维护性。对我们学生而言,在大学的实验室和课程设计里,有一个稳定可调的直流稳压电源是很有必要
9、的。因传统的直流稳压电源输出电压是通过粗调波段开关及细调电位器来调节的,并由电压表指示电压值的大小。这种直流稳压电源存在读数不直观、电位器易磨损、稳压精度不高、不易调准、电路构成复杂、体积大等缺点,而基于单片机控制的数字可调稳压电源能较好地解决以上问题。本题采用单片机和其它元器件及外围电路,开发一个数字式可调稳压电源。能够设定输出电压值、电压值输出显示等功能。通过此系统的设计,也让本人更深刻的掌握单片机基本原理,并熟悉一些外围电路的扩展,以及进一步提高对C语言的软件编程能力。1.2 数字式可调稳压电源的研究现状及发展趋势电力电子技术已发展成为一门完整的、自成体系的高科技技术,电源技术属于电力电
10、子技术的范畴。电源技术主要是为信息产业服务的,信息技术的发展又对电源技术提出了更高的要求,从而促进了电源技术的发展,两者相辅相成才有了现今蓬勃发展的信息产业和电源产业。迄今为止,电源已成为非常重要的基础科技和产业,并广泛应用于各行业,从日常生活到最尖端的科学都离不开电源技术的参与和支持,其发展趋势为高频、高效、高密度化,低压、大电流化和多元化。同时,封装结构、外形尺寸日趋接近国际标准化,以适应全球一体化市场的要求。当前在国内外电源产业中,占主导地位的产品有各种线性稳压电源、通讯用的AC/DC开关电源、交流变频调速电源、电解电镀电源、高频逆变式整流焊接电源、中频感应加热电源、电力操作电源、正弦波
11、逆变电源、UPS、可靠高效低污染的光伏逆变电源、风光互补型电源等。而产品价格、性能指标、品牌效应及使用寿命一直是用户最关心的问题。这就促使国内外电源生产商朝着应用技术数字化、硬件结构模块化、产品性能绿色化、智能化的方向发展。数字化:在传统直流稳压电源中,控制部分是按模拟信号来设计和工作的。在六、七十年代,电力电子技术完全是建立在模拟电路基础上的。但是现在数字式信号、数字电路显得越来越重要,数字信号处理技术日趋完善成熟,显示出越来越多的优点:便于计算机处理控制、避免模拟信号的畸变失真、减小杂散信号的干扰(提高抗干扰能力)、便于软件包调试和遥感遥测遥调,也便于自诊断、容错等技术的植入。模块化:电源
12、的模块化有两方面的含义,其一是指功率器件的模块化;其二是指电源单元的模块化。模块化的目的不仅在于使用方便,缩小整机体积,更重要的是取消传统连线,把寄生参数降到最小,从而把器件承受的电应力降至最低,提高系统的可靠性。大功率的电源,由于器件容量的限制和增加冗余、提高可靠性方面的考虑,一般采用多个独立的模块单元并联工作,采用均流技术,所有模块共同分担负载电流,一旦其中某个模块失效,其它模块再平均分担负载电流,极大的提高系统可靠性,即使万一出现单模块故障,也不会影响系统的正常工作。绿色化:电源系统的绿色化有两层含义:首先是显著节电,这意味着发电容量的节约,而发电是造成环境污染的重要原因,所以节电就可以
13、减少对环境的污染;其次这些电源不能(或少)对电网产生污染,国际电工委员会(IEC) 对此制定了一系列标准,如IEC555,IEC917,IEC1000等。20世纪末,各种有源滤波器和有源补偿器的方案诞生,为21世纪批量生产各种绿色直流稳压电源产品奠定了基础。1.3 课题研究内容本系统研究的直流稳压电源主要是符合智能化、数字化以及模块化的特点。主要是指系统有可编程模块可以对系统进行智能控制。数字化主要是指系统输出电压通过7段数码管显示,并且可以通过按键对输出电压进行连续步进数字化调节。模块化是指系统由各个相关模块组成,提高了系统的稳定性以及可靠性。 本论文总体概括了数字显示可调稳压电源的设计原理
14、,介绍了稳压电源的硬件电路设计。在各章节中,突出讲述了各功能模块的设计思路,具体设计情况,以及模块之间的联系。本系统主要研究数字显示可调稳压电源如何实现整流、滤波、稳压和输出电压显示,也包含一些必要的硬件设计和软件设计。2 方案论证数字可调稳压电源可通过多种方案实现,本文着重介绍了两种比较常用的方法,并进行比较和选择其中一种最适合的方案。一种是用单片机作为数控部分带动数模转换芯片提供线性稳压电压的参考电压,另一种是AVR单片机的PWM模拟输出。2.1 方案设计及论证2.1.1 方案一使用AT89C52单片机为核心控制器件,利用44键盘输入数字量,经过单片处理后将数字量送入数码管显示部分和DAC
15、0832输出模拟量,然后经过运算放大器转换成电压信号后进行隔离放大,再稳压输出。其原理框图如图2.1所示:AT89C52LED显示模块DA转换模块稳压输出模块矩阵键盘模块电源模块图2.1 方案一的原理框图2.1.2 方案二数控部分用AVR单片机的PWM组成开关电源,再利用AVR的AD转换对输出电压进行实时转换,利用软件进行电压调整以达到稳压。其原理框图如图2.2所示:LCD液晶显示PWM模拟电压输出电压放大电路滤波电路单片机电路键盘电路AD采样图2.2 方案二的原理框图2.2 方案比较选择方案一:优点:对于单片机,系统工作在开环状态,对数模转换的精度要求较高,设计成本低。缺点:功耗较大,LED
16、数码管输出显示不是系统的精确输出电压,须对它进行软件补偿。方案二:优点:硬件简单,稳压的大部分工作由软件完成,对单片机的运行速度要求很高,利用手头的ATmaga16L单片机最高8MHz工作频率很难达到速度要求。对软件要求较高,功耗小。缺点:输出纹波电压较大,对硬件的要求很高。方案二简单的电路结构起初对设计者很吸引,但是后来了解到AVR单片机的PWM的精度用于开关电源比较勉强,而且开关电源有个通病:纹波电压大,考虑到设计目标对电源的功耗要求不是很严,同时为了保证纹波足够小也鉴于自身对于52单片机和线性电源较为熟练,故选择方案一。2.3 主要元件介绍2.3.1 AT89C52 AT89C52是一个
17、低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。功能特性:1、兼容MCS51指令系统2、8kB可反复擦写(大于1000次)Flash ROM;3、32个双向I/O口;4、256x8bit内部RAM;5、3个16位可编程定时/计数器中断;6、时钟频率0-24MHz;7、2个串行中断,可编程UART串行通道;8、2个外部中断
18、源,共8个中断源;,数控直流稳压电源的工作原理框图如图1所示。主要包括三大部分:数字控制部分、数字/模拟转换部分(D/A变换器)及稳压电路。数字控制部分用+、- 按键控制一可逆二进制计数器,二进制计数器的输出输入到D/A变换器,经D/A器转换成相应的电压,此电压经过放大到合适的电压值后,去控制稳压电源的输出,使稳压电源的输出电压以0.1V的步进值增或减。9、2个读写中断口线,3级加密位;10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。AT89C52提供以下标准功能:8k字节可重擦写Flash闪速存储器、25
19、6字节内部RAM、32个可编程I/O口线、3个16位定时/计数器、一个六向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。AT89C52引脚如图2.3所示。 图2.3 AT89C52管脚图AT89C52单片机引脚介绍: 主电源引脚和。电源输入端,(GND)公用接地端。 时钟电路引脚XATL1和XATL2分别用作晶体振荡电路的反相器输入
20、端和输出端。在使用外部振荡电路时,这两个端子用来外接石英晶体,这个部分给单片机提供工作节拍,可称为单片机的主频。 控制信号引脚,和。由于单片机的很多引脚的使用方法相同,所以常把引脚分为控制总线、地址总线和数据总线。总线是指一类在使用方法上功能相同的引脚。这里讲到得4条引脚可看成是单片机的控制总线。 4个8位I/O端口:P0、P1、P2和P3。P0口第一功能是一个8位漏极开路型的双向I/O口这时P0口可看成是用户数据总线,第二功能是在访问外部存储器时,分别提供低8位地址和8位双向数据总线。P1口是一个内部带上拉电阻的8位准双向I/O口。P2口第一功能是内部带上拉电阻的8位准双向I/O口(使用前有
21、一个准备动作),第二功能是在访问外部存储器时,输出高8位地址。P3口第一功能是一个内部带上拉电阻的8位准双向I/O口。在系统中,这8个引脚都有各自的第二功能。2.3.2 DAC0832DAC0832是8位D/A芯片,与DAC0830、DAC0831同属于DAC0830系列D/A芯片,是美国国家半导体公司的产品,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入05V之间,芯片转换时间仅为32us,使多器件挂接和处理器制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。图2.4 DAC0832引脚及内部电路图DAC0832引脚功能:1.DI0DI7
22、:8位数据输入端; 2. ILE:输入数据允许锁存信号,高电平有效; 3. /CS:片选端,低电平有效; 4. /WR1:输入寄存器写选通信号,低电平有效; /WR2:DAC寄存器写选通信号,低电平有效; 5. /XFER:数据传送信号,低电平有效; 6. I OUT1 、I OUT2 :电流输出端。当输入数据全为0时,I OUT1 =0;当输入信号全为1时,I OUT1 为最大值,I OUT1 + I OUT2 =常数; 7. R FB :反馈电流输入端; 8. U REF :基准电压输入端; 9. V CC :正电源端;AGND:模拟地;DGND:数字地。3 数字式可调稳压电源硬件电路设计
23、本设计采用AT89C52单片机作为整机的控制单元,利用44键盘输入数字量,通过控制单元输出数字信号,再经过D/A转换器(DA0832)输出模拟量,最后经过运算放大器隔离放大,控制输出功率管的基极,随着输出功率管的基极电压的变化,间接地改变输出电压的大小。3.1 单片机主体电路图3.1 单片机主体接口部分电路为了避免画出的原理图繁杂,画图时统一使用网络标号,如图中3.1所示:单片机的P0口即LEDA至LEDP作为LED数码管的显示输出端口,接数码管的八个段选端口,由于单片机的P0口内部没有上拉电阻,所以使用时需要在外部为其加上上拉电阻,P2.5至P2.7三个I/O口即LED3至LED1分别接三个
24、数码管的位选端口;单片机的P3口接44矩阵键盘,用来对输出电压进行控制;单片机的P1口与DAC0832的八位数码输入端连接,用来输出数字量信号,XATL1和XATL2接晶振部分电路;RST位复位电路接口。3.2 稳压电源电路直流稳压电源由电源变压器T、整流、滤波和稳压电路四部分组成,其原理框图如图3.2所示。电网供给的交流电压u1(220V,50Hz) 经电源变压器降压后,得到符合电路需要的交流电压u2,然后由整流电路变换成方向不变、大小随时间变化的脉动电压u3,再用滤波器滤去其交流分量,就可得到比较平直的直流电压uI。但这样的直流输出电压,还会随交流电网电压的波动或负载的变动而变化。在对直流
25、供电要求较高的场合,还需要使用稳压电路,以保证输出直流电压更加稳定。图3.2 直流稳压电源框图其中:(1)电源变压器:是降压变压器,它将电网220V交流电压变换成符合需要的交流电压,并送给整流电路,变压器的变比由变压器的副边电压确定。(2)整流电路:利用单向导电元件,把50Hz的正弦交流电变换成脉动的直流电。(3)滤波电路:可以将整流电路输出电压中的交流成分大部分加以滤除,从而得到比较平滑的直流电压。(4)稳压电路:稳压电路的功能是使输出的直流电压稳定,不随交流电网电压和负载的变化而变化。所以通过220V的交流电压由变电器转化所直流电压,然后通过5408进行整波,通过50v的2200UF的电容
26、进行滤波,然后通过7815和7915转化成+15V和-15V,+15V又通过整波,滤波后通过7805转化成+5V。这是电源部分如下:图3.3 稳压电源电路3.3矩阵键盘电路在本系统中使用44矩阵键盘来实现输出电压值的设定其硬件电路及功能如图3.4所示。每个按键的名称图中也已经标明,在程序中对键盘进行扫描后会取出一个数值,根据取出的数值就可以判断被按下的是哪一个按键,然后跳入相应的键盘服务程序,其硬件电路如图3.4所示:图3.4 矩阵键盘电路44矩阵键盘在软件设计中实现的功能如下: 按设置键开始设定电压,数码管不显示,依次对十位、个位、十分位进行设置,每输入一个有效按键数码管亮一位,输入错误按设
27、置键可重新开始,按下确认键后电压输出。 在正常情况下即没有按下设置键时按数字键无效,但是可以直接按步进键对输出电压进行设置,设置完仍要按下确认键才能将设置的电压值输出。矩阵式键盘扫描原理:键盘是由若干按键所组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令,地址和数据。通常单片机系统采用非编码键盘。非编码键盘通过软件来识别键盘上的闭合键,它具有结构简单、使用灵活等特点,因此被广泛应用于单片机系统。组成键盘的按键有触点式和非触点式两种,单片机中的按键一般由机械触点构成。按键的读取容易引起误操作,抖动时间的长短由按键的机械特性决定,一般为510ms,为了使CPU能正确
28、读出口线的状态,对于每一次按键只做一次响应,这就必须考虑如何去抖动。常用的去抖动方法有两种:硬件法和软件法,单片机通常采用软件法去抖动。由于键盘的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间10ms.44矩阵式键盘(如图3.4)的按键识别方法:行扫描法又称逐行扫描查询法,是一种常用的按键识别方法,其过程如下:为判断键盘是否有键按下,将全部列线置为低电平,全部行线置为高电平,然后读行线的状态。只要有一行的电平为低电平,则表明键盘中有按键按下。然后依次将行线置为低电平,即在置某根行线
29、为低电平时,其它行线为高电平。在确定某根行线位置为低电平后逐行检测各列的电平状态。若某列线为低电平,则该列线与置低电平的行线相交叉处的按键就是闭合键。3.4 数码管显示部分电路本系统中数码显示部分采用三位共阳极八段数码管,5210PNP三极管作为驱动,如图3.5所示。三个数码管的段选端即数据输入端口公用单片机的P0口,采用动态显示,每次只显示一个数码管,具体过程为:先将十位数送到第一个数码管显示,延时一段时间后,将个位数送到第二个数码管显示,延时一段时间后,将十分位数送到第三个数码管显示,延时一段时间后重复执行此过程,只要设置好延时的时间,在一定范围内人眼是分辨不出三位数码管是循环显示的,人眼
30、看到的效果是三个数码管同时显示,这样就达到了动态显示的效果。这样做既可以节省单片机的I/O口,又可以节省掉静态显示时所用到得锁存器,使电路看起来更加简洁。图3.5 数码显示电路3.5 DAC0832数模转换部分电路本系统中利用通用型数模转换芯片DAC0832将键盘输入经单片机处理的数字量转换成模拟量电流,以实现数控功能。DAC0832是一种电流型芯片,前面已经介绍过它的工作原理,在本数字式可调稳压电源的设计中,由于所处理的数字量较少,所以采用它的直通工作方式,即CS、WR1、IOUT2、AGND、WR2、XFER接地;ILE、VREF接5V电源,它的数据输入口D0D7分别与单片机的P1.0-P
31、1.7相连,从IOUT1引脚输出模拟量(电流)接同相比例放大电路。其电路连接如图3.6所示。图3.6 DAC0832直通方式连接电路DAC0832有8个输入端(其中每个输入端是8位二进制数中的一位),有两个模拟输出端.输入可有256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内的任意值,而只能是256个可能值。3.6 输出电压控制单元电路 电压调整电路的工作电路如图3.7所示。图3.7 输出电压控制单元3.7 晶振及复位电路利用芯片内部的振荡器,然后再XTAL1和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外界晶
32、振时,C1和C2的值选为20pF。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XATL1与XATL2靠近。晶振电路如图3.8所示。图3.8 晶振电路单片机的外部复位电路上有上电自动复位和按键手动复位两种,本系统采用上电加按键手动复位方式,其电路图如图3.9所示,当复位按键按下后,复位端通过小电阻与+5V电源接通,电容迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过大电阻对电容重新充电,RST引脚端出现复位正脉冲,其持续时间取决于RC电路的时间常数。图3.9 复位电路4 数字式可调稳压电源软件设计本系统软件设计主要实现的功能是:键盘对
33、单片机输入数据,单片机对得到的数据进行处理后送给LED数码显示部分,然后再送给DAC0832,以实现数字量对模拟量电压的控制。软件部分的主程序主要完成键盘的扫描、判断、处理和电压值的输出,而数码显示部分主要在中断处理程序中完成。4.1 系统软件流程图图4.1为主程序流程图,程序一开始对硬件进行初始化,包括对单片机端口的定义,开中断及对定时器0进行置初值,然后进入键盘判断程序,首先通过键盘扫描判断是否有按键按下,若有按键按下则进入键盘服务程序,若没有则继续多键盘进行扫描。 键盘服务程序是有按键?否初始化硬件程序开始图4.1 主程序流程图 另外,程序中还有中断程序,主要是用于隔一段时间执行一次数码
34、显示程序,具体设计将在后面介绍。跟据前面介绍,44矩阵键盘在软件设计中实现的功能如下:按设置键开始设定电压,数码管不显示,依次对十位、个位、十分位进行设置,每输入一个有效按键数码管亮一位,输入错误按设置键可重新开始,超过515V视为无效操作,按下确认键后电压输出。在正常情况下即没有按下设置键时按数字键无效,但是可以直接按步进键对输出电压进行设置,设置完仍要按下确认键才能将设置的电压值输出。4.2 系统程序介绍本系统软件系统使用C语言编写。C语言的单片机的应用中,由于其逻辑性强,可读性好,比汇编语言灵活,目前越来越多的人从普遍使用汇编语言到逐渐使用C语言开发,市场上几种常见的单片机均有其C语言开
35、发环境。因此,在本系统中,考虑到C语言的这些优点,采用了C语言作为软件的设计语言。在本文前几章介绍了数字式可调稳压电源的原理图及硬件设计的基础上,进行软件部分的设计。本程序包含初始化程序、主程序、键盘扫描判断程序、键盘服务程序、数字电压送数模转换器程序、数码管显示程序、中断服务程序。下面就如何通过C语言编程实现数控可调作简要说明。4.2.1 初始化硬件程序初始化硬件包括对单片机端口的定义,对P1口作为数字电压输出端口的定义:#define DA P1;对设置标志位的定义:static unsigned char shezhi=0;在没有按下设置键时,标志位shezhi为0,按下设置键后shez
36、hi=1。另外还有其他全局变量的定义、子函数的声明、数码管字符显示表格的定义等。在主程序中,初始化程序如下:TMOD=0x11;/初始化定时器TH0=(65536-5000)/256;/对定时器0置初值TL0=(65536-5000)%256;EA=1;/开总中断ET0=1;/开T0中断TR0=1;/启动T0shuchu();/输出初始电压定时器0中断主要用于向数码显示部分送数据,由于单片机一直工作于键盘扫描程序,故无法在主程序中不断地将数据送到数码管,根据数码管动态显示原理, 当数码管在20Hz-50Hz之间显示时,人眼分辨不出,会认为数码管一直显示,所以可以采用中断的方式,每进入一次中断,
37、对数码管进行动态输出一次,合理的调整时间参数,就会使人眼分辨不出,认为数码管常亮,定时器0中断服务程序如下:void disp(void) interrupt 1 TH0=(65536-25000)/256;/对定时器0重新置初值 TL0=(65536-25000)%256; led();/执行数码显示程序 4.2.2 键盘扫描程序键盘扫描的具体过程为:先将十六进制数0x0f送到P3口,然后判断P3口是否等于0x0f,若相等则说明没有按键按下,返回继续扫描,若不相等进入延时,延时10ms后再次进行判断,若相等则说明这是一次误判断或者干扰,返回重新扫描,如果仍然判断为不相等则说明确实有按键按下。
38、然后将十六进制数0xf0送到P3口,然后读取P3口电平,将两次读取的电平相或,就可以得出具体按下的是哪个按键,然后执行相关键盘服务程序,执行完后再次进入键盘扫描状态,并不断重复这些操作。以下是键盘扫描程序: unsigned char X,Y,Z; while(Y=key_point);/判断按键是否松开 key_point=0x0f;/对P3置数,行扫描 if(key_point!=0x0f)/判断是否有按键按下 delay10ms();/延时,去抖动 if(key_point!=0x0f)/确认有按键按下 X=key_point;/保存行扫描数值 key_point=0xf0;/对P3置数
39、,列扫描 Y=key_point;/保存列扫描数值 Z=X|Y;/取键盘扫描值 else Z=0;/无按键时对键盘扫描值置0 4.2.3 键盘服务程序键盘服务程序包括:数字键程序、步进加1程序、步进减1程序、步进加0.1程序、步进减0.1程序、设置键处理程序、确认输出程序。由于数码管需要分别显示十位、个位、十分位三个数,而送到DA转换模块的是一个数,所以就必须做数值转换,即把十位、个位、十分位三个独立的数合为一个可以送到DA模块输出的数值。程序上具体的实现方法为:定义num1、num2、num3三个数分别为十位、个位、十分位,定义一个num作为输出数字电压,这样就可以将num1、num2、nu
40、m3三个数分别显示在三位数码管上,将num作为数字电压输出到P1口,转换公式为:num=100*num1+10*num2+num3。在数字键服务程序中设置一个标志位,当判断按下数字键是用此标志位来判断现在输入的是哪一位。在输入数字时直接将所输入的数字赋予当前位,由于本系统输出电压范围为0V-12V,所以当输入数值当超出范围时不执行,即按键无效,例如在十位输入大于二的数时按键无效。当判断按下的是步进加减的程序时,如果是加减1则对num2进行加减1,如果是加减0.1,则对num3进行加减1,当然这是在不超出范围的条件下,这就需要在执行加减前作一下判断,这里不过多介绍,在程序中会有详细说明。4.2为
41、44键盘功能及编码表。键盘号功能编码键盘号功能编码S110x7eS930xdeS240x7dS1060xddS370x7bS1190xdbS4设置0x77S12确定0xd7S520xbeS13+10xeeS650xbdS14-10xedS780xbbS15+0.10xebS800xb7S16-0.10xe7图4.2 44键盘功能及编码表。4.2.4 数码显示程序 数码管显示采用动态扫描的方式,每进入一次中断,扫描显示一次。具体显示过程为:当进入中断程序并执行显示程序时,先将P2.7口置1,P2.6和P2.5置0,然后将十位数据即num1的字符编码送到P0口,延时10ms;再将P2.6口置1,其
42、他两个端口置0,然后将个位数即num2的字符编码送到P0口,延时10ms;接下来将P2.5口置1,其他两个端口置0,然后将十分位数即nmu3的字符编码送到P0口。这里的字符编码是要数码管显示某个数时需要送到数码管数据输入端的八位二进制数。在程序中将这些编码制成表,要输出时只需查表就可以了,由于个位上要显示小数点,十位和十分位不显示小数点,所以个位单独使用一个表,十位和十分位共用一个表。数字字符编码为led_010=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; led_110=0x40,0x79,0x24,0x30,0x19,0x12,0x
43、02,0x78,0x00,0x10; led_0为不带小数点的字符编码,led_1为带小数点的字符编码。6 结论此次毕业设计,从一开始接到任务书到最后完成整个系统的设计,总体上按要求完成了毕业设计的工作。尽管设计的过程是十分繁琐、枯燥的,但当领悟到一个个知识点,将问题一一解决时,有无比的成就感,让自己更加有信心坚持下去。在这方面,我认识到要想做成一件事是不容易的,当中必定有很多的阻力,但是一定要有恒心,细心地认真地找出问题的所在,再一点一点去解决它,这样,到达成功的彼岸也就仅仅是时间的问题了。这次设计的题目是数字式可调稳压电源的设计,在参考了很多书籍的情况下,尝试增加了一些功能,尽管没有达到所
44、期望的最完善的目的,但也有了一定的突破。数字式可调稳压电源所牵涉的范围可以是很大的,它不仅仅具备准确的电压输出、显示功能,读数直观、稳压精度高、电路构成简单、 体积小等优点,能够设定输出电压值、电压值输出显示等功能。通过此系统的设计,让我更深刻的掌握单片机基本原理,并熟悉一些外围电路的扩展,以及进一步提高C语言的硬件编程能力。只要我们勤于思考,刻苦钻研,就会得到更多的收获与创新。我想,通过这次设计,特别是通过对硬件的制作而不单单是对原理的论述,我学到的不仅仅是电子方面的知识,更重要的是,我学到了作为一名电子设计者所必需的心理素质,那就是决心加上耐心。参考文献1 Intel.MCS-51 Fam
45、ily of Single Chip MicrocomputersM.New York: EnglewoodCliffs,1990:1-23. 2童诗白,华成英.模拟电子技术基础M. 北京:高等教育出版社,2001. 3尹建华,张惠群.微型计算机原理与接口技术M. 北京:高等教育出版社,2003. 4谭浩强,张基温,唐永炎.C语言程序设计教程M. 北京:高等教育出版社,1992. 5赵文博,刘文涛.单片机程序设计M. 北京:人民邮电出版社,2005. 6刘文涛,单片机语言典型应用设计M. 北京:人民邮电出版社,2005. 7王增福,魏永明.新编线性直流稳压电源M. 北京:电子工业出版社,2004. 8Keith H.Billings,C.Eng.,M.I.E.E.,SWITCHMODE POWER SUPPLY HANDBOOKM,HammondManufacturing Company,Ltd,2005. 9 范立南. 单片微型计算机控制系统设计M . 北京:人民邮电出版社,2004. 10蔡明生. 电子设计M . 北京:高等教育教育出版社,2004.11Intel.MCS-51 Family of Single