版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京化工大学北方学院毕业设计(论文)诚信申明本人申明:我所呈交的本科毕业设计(论文)是本人在导师指导下对四年专业知识而进行的研究工作及全面的总结。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中创新处不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京化工大学或其它教育机构的学位或证书而已经使用过的材料。与我一同完成毕业设计(论文)的同学对本课题所做的任何贡献均已在文中做了明确的说明并表示了谢意。若有不实之处,本人承担一切相关责任。本人签名: 年 月 日基于单片机的数字电压表姚乐乐自动化专业自控0704班学号070204110指导教师刘继超摘要数字电压表的诞生打破了传统电子
2、测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成的测量误差事件。数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。本设计采用了以单片机为开发平台,控制系采用了AT89S52单片机,A/D转换采用ADC0804。系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。简易
3、数字电压测量电路由A/D转换、数据处理、显示控制等组成。关键词:单片机AT89S52A/D转换ADC0804数据处理The design of Digital Voltage Meter based on Single-chipAbstractThe birth of digital voltage meter breaks the traditional model of electronic measuring instruments and patterns. It shows the clear and intuitive, accurate readings, using an ad
4、vanced digital display technology, greatly reduced due to human factors of the measurement error caused by the incident. Digital voltage meter is a row of analog (DC input voltage) into a non-continuous, discrete digital form, and the instrument display. Digital voltage meter to electronic technolog
5、y, computing technology, automation technology and precision of the results of electrical measurement technology closer together and become instruments, meters and complete an independent field of a branch, digital voltage meter indicates that the field of electronic devices a revolution and also pi
6、oneered the modern pioneer of electronic measurement technology.The design uses a single-chip platform for the development, control of the Department of the use of AT89S52 single-chip, A/D conversion using ADC0804. In addition to the realization of the system to ensure that the required functionalit
7、y, but also facilitate the 8 other A/D converter measurement, distance measurement function of transmission expansion. Simple digital voltage measuring circuit is made of the A/D conversion, data processing, display control, etc.Key words: SCM AT89S52 A/D conversion ADC0804 Data processing目录前言1第1章课题
8、概况2第1.1节系统总体方案选择与说明2第1.2节系统总体方案总结2第1.3节系统结构框图3第1.4节工作原理3第1.5节本章小结4第2章 系统硬件部分方案设计5第2.1节输入电路5第2.2节A/D转换及量程选择电路6第2.3节单片机部分12第2.4节电压显示电路19第2.5节锁存电路22第2.6节复位电路23第2.7节本章小结24第3章系统软件部分方案设计25第3.1节单片机C51语言25第3.2节程序设计26第3.3节本章小结30第4章系统调试31第4.1节硬件调试31第4.2节软件调试32第4.3节本章小结33结论34附录135附录236参考文献44致谢45V北京化工大学北方学院毕业设计
9、(论文)前言数字电压表(Digital Voltage Meter)简称DVM,它是一种采用数字化测量技术,把连续的模拟量(主要是直流电压)转换成不连续的、离散的数字形式并加以显示的仪表。传统的模拟指针式电压表功能单一,测量精度低,已经不能适应当今数字时代的需求。采用基于单片机的数字电压表,测量精度不但高,而且可扩展性强、集成方便,抗干扰性强。目前由各种单片机、A/D转换器组成的数字电压表已经成为了新型的工业自动化检测仪表,广泛应用于电工电子测量、自动测试系统等智能测量领域。由单片机扩展的各种数字仪器仪表把自动检测和自动控制技术提高到了一个新台阶。本文重点介绍MCS-51系列单片机中的AT89
10、S52、数模转换器ADC0804以及由它们组成的数字电压表的工作原理。第1章课题概况第1.1节系统总体方案选择与说明实现数字电压表的方案很多,目前广泛采用的是基于74系列逻辑器件,本设计将介绍基于单片机实现的方案。方案设计此设计包含两个模块,通道转换和显示部分方案。1.1.1通道转换方案设计方案一:考虑到ADC0804的8路模拟量输入本质上也是模拟开关,因此可以利用其8个模拟通道中的3个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。方案二:利用手动开关实现通道转换。该方案可简化控制程序,消减系统开销。缩短反应时间,不足之处在于操作麻烦。综上所述:方案二所
11、需元件少、成本低且易于实现,则选此方案。1.1.2显示部分方案设计方案一:单片机的P0口接74HC573芯片来驱动四位数码管。方案二:直接用单片机的P1、P2口驱动数码管,此处把ADC0804的输出端接P1口 ,因为P1口能够驱动数码管。综上所述,两个方案都可行,但方案一所需方便快捷,则选择此方案。第1.2节系统总体方案总结根据数字电压表的功能实现要求,选用AT89S52单片机作控制系统 ,低电压经放大器选用OPA820实现放大10倍、高电压经大电阻分压从而控制输入ADC0804的信号在2V左右实现A/D转换经AT89S52接74HC573送入LED显示。其精度和显示可以精确控制,且电路相对简
12、单成本低,稳定性较高,故采用此设计。第1.3节系统结构框图根据项目要求,确定该系统的设计方案,图1.1为该系统设计方案的结构框图。硬件电路由5个部分组成,即测量电压输入电路、A/D转换及量程选择电路、单片机电路、锁存电路、电压显示电路。电源单片机AD转换电压转换档位选择输入LED复位电路图1.1系统结构图第1.4节工作原理对待测模拟电压值按不同的范围,分为200mv、2v、20v、200v四个档位,对于高于2V的档位,采用高电阻分压电路,等比例转换为05V的电压值,对于200mv档位,等比例放大10倍左右,再将电压送入AD进行转换,再将处理的信号送入单片机进行处理并显示。 AT89S52单片机
13、的晶体振荡器振荡频率为12MHz。4位LED数码管的采用动态显示方式显示。两个74HC573控制4位LED数码管的段和位显示。第1.5节本章小结数字电压表有多种方案,每种方案各有利弊,为了设计一个较为完备的系统,采用了以单片机为控制核心的数字电压表。在此系统中,单片机起到了数据传输、数据处理等极为重要的作用,因此在下一章节中将重点介绍单片机的相关设计。第2章 系统硬件部分方案设计第2.1节输入电路本设计的输入电路就是模拟电压检测电路,不论输入电路是何种形式,但对于本设计而言,其等效电路都是相同的,如图2.1所示。输入电路的作用是把被测的模拟电压值送到模数转换器的模拟输入端,具体到本设计中,就是
14、将滑动变阻器中某一点的对地电位值(参考电势为0)根据大小确定量程量程,然后选择合适的分压电路,最后将转换后的模拟电压送至ADC0804。R2SVAR1图2.1等效电路第2.2节A/D转换及量程选择电路2.2.1 A/D转换的工作过程A/D转换器需要将时间和幅值都连续的模拟量,转换为时间和幅值都离散的数字量,一般要经过取样、保持和量化、编码几个过程,下面分别予以讨论。(1)取样与保持取样电路可将输入模拟量转换为在时间模拟的离散量,由常识可以知道,取样信号的频率越高,取样后的信号经低通滤波器后就越能真实地复现输入信号。合理的取样信号必须符合取样定理。 摘自彭荣修数字电子技术基础取样定理如下。取样定
15、理:设取样信号的频率为,输入模拟信号的最高频率分量的频率为,则与必须满足下面的关系2 (2·1)一般取2。将取样所得信号转换为数字信号往往需要一定的时间,为了给后续的量化编码电路提供一个稳定值,取样电路的输出还须保持一段时间。一般取样与保持过程都是同时完成的。(2)量化与编码数字量在数值上是离散的,任何数字量只能是某个最小数量单位的整数倍。要实现A/D转换,还必须将取样、保持电路的输出表示为最小数量单位的整数倍。将数值连续的模拟量转换为数字量的过程称为量化。最小数量单位称为量化单位,量化单位是数字信号最低位为1时所对应的模拟量,即1LSB。由于被取样电压是连续的,它的值不一定都能被整
16、除,所以在量化过程中,不可避免地存在误差,称为量化误差。量化误差属于原理误差,它是无法消除的。A/D转换器的位数越多,1LSB所对应的值越小,量化误差的绝对值也越小。量化的方法,一般有舍尾取整法和四舍五入法两种。舍尾取整的处理方法是:如果输入电压在两个相邻的量化值之间时,即(n-1)n时,取的量化值为(n-1)。四舍五入的处理方法是:当的尾数不足/2时,舍去尾数取整数,当的尾数大于或等于/2时,则其量化单位在原数上加一个。将量化后的结果用二进制码或其他代码表示出来的过程称为编码。经编码输出的代码就是A/D转换器的转换结果。2.2.2 A/D转换器的主要技术指标A/D转换器的主要技术指标有转换精
17、度、转换速度等。选择A/D转换器时除考虑这两项技术指标外,还应注意满足其输入电压的范围、输出数字的编码、工作温度范围和电压稳定度等方面的要求。(1)分辨率A/D转换器的分辨率用输出二进制(或十进制)数的位数表示。它说明A/D转换器对输入信号的分辨能力。从理论上讲,n位输出的A/D转换器能区分个输入模拟电压信号的不同等级,能区分输入电压的最小值为满量程输入的1/。在最大输入电压一定时,输出位数愈多,量化单位愈小,分辨率愈高。(2)转换时间转换时间是指A/D转换器从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。A/D转换器的转换时间与转换电路的类型有关,不同类型的转换器转换速度相差
18、甚远。其中并行比较A/D转换器的转换速度最高,逐次比较型A/D转换器次之,间接A/D转换器的速度最慢。在实际应用中应从系统数据总的位数、精度要求、输入模拟信号的范围及输入信号极性等方面综合考虑A/D转换器的选用。2.2.3逐次比较型A/D转换器如图2.2所示,模数转换开始前先将所有寄存器清零。开始转换以后,时钟脉冲首先将寄存器最高位置成1,使输出数字为1000。这个数码被数模转换器转换成相应的模拟电压,送到比较器中与进行比较。若,说明数字过大了,故将最高位的1清除;若,说明数字还不够大,应将最高位的1保留。然后,再按同样的方式将次高位置成1,并且经过比较以后确定这个1是否应该保留。这样逐位比较
19、下去,一直到最低位为止。比较完毕后,数据寄存器中的状态就是所要求的数字量输出。电压比较器控制逻辑电路时钟数据寄存器D/A转换器移位寄存器模拟量输入启动脉冲数字量输出图2.2逐次比较型A/D转换器框图逐次比较型A/D转换器的模拟量输入与数字量输出的对应关系如表2.1所示。表2.1逐次比较型A/D转换器输入与输出关系对照表十六进制二进制码与满刻度的比率相对电压值VREF=2.560V高四位字节低四位字节高四位电压低四位电压F111115/1615/2564.8000.300E111014/1614/2564.4800.280D110113/1613/2564.1600.260C110012/161
20、2/2563.8400.240B101111/1611/2563.5200.220A101010/1610/2563.2000.200910019/169/2562.8800.180810008/168/2562.5600.160续表701117/167/2562.2400.140601106/166/2561.9200.120501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040100011/161/2560.3200.02000000002.2.4 AD
21、C0804简介A/D转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,本设计采用ADC0804转换器。ADC0804是属于并行比较型的A/D转换器,这类型的A/D转换器除了转换速度快(几十至几百us)、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。图2.3ADC0804管脚图(1)ADC0804的规格8位COMS逐次比较型的A/D 转换器三态锁定输出存取时间:135S分辨率:8位转换时间:100S总误差:正负1LSB工作温度:ADC0804LCN-070度(2)ADC0804的管脚/CS:芯片选择信号。/RD:外部读取转换结果的控制输出信
22、号。/RD 为高电平时,DB0DB7 处理高阻抗;/RD 为低电平时,数字数据才会输出。/WR:用来启动转换的控制输入,相当于ADC 的转换开始(/CS=0 时),当/WR 由高电平变为低电平时,转换器被清除;当/WR 回到低电平时,转换正式开始。CLK IN,CLK R: 时钟输入或接振荡元件(R,C),频率约限制在100KHZ1460KHZ,如果使用RC 电路则其振荡频率为1/(1.1RC)。/INTR:中断请求信号输出,低电平动作。VIN(+) VIN(-):差动模拟电压输入.输入单端正电压时, VIN(-)接地:而差动输入时,直接加入VIN(+) VIN(-)。AGND,DGND:模拟
23、信号以及数字信号的接地。VREF:辅助参考电压。DB0DB7:8位的数字输出。VCC:电源供应以及作为电路的参考电压。2.2.5量程选择电路被检测到的电压信号由集成模数转换芯片ADC0804模拟输入端输入,完成A/D转换后由数据总线送入单片机,经相应处理后输出显示。针对量程选择的电路设计,将被测模拟电压值按不同的范围,分为200mV、2V、20V、200V四个档位。对于高于2V档位内的电压,例如20V、200V两个档位,采用高电阻分压电路,等比例转换为05V的电压值;对于200mV档位内的电压,通过差分放大器将所测电压等比例放大10倍左右,再将电压送入AD进行转换,然后将处理的信号送入单片机进
24、行处理并显示;对于2V档位内的电压,直接将模拟电压输入到ADC0804。由于量程选择的范围不大,所以量程选择方式为手动。具体电路如图2.4所示。图2.4A/D转换以及量程选择电路2.2.6量程选择电路的工作原理在本节中主要介绍了模数转换器ADC0804和量程选择电路。在本部分电路中,ADC0804作为核心元件起到了重要作用。由于ADC0804只有一个模拟通道,并且输入模拟电压的范围为05V,所以必须使用量程选择电路,使得初始的模拟电压经过相应的4路选择开关都转换到05V内。ADC0804采用逐次逼近式的算法将模拟电压转换为相应的数字电压,该数字电压采用的是二进制编码(即BCD编码),此编码作为
25、单片机AT89S52的输入,单片机的数据传送与数据处理就是围绕该编码展开的,下一节将是本论文的核心。第2.3节单片机部分2.3.1单片机概述并行I/O口控制中断振荡器频率基准源ROM程序存储器RAM数据存储器定时器/计数器计数器CPU总线扩展控制可编程I/O可编程串行口中断串行输入串行输出图2.4单片机结构图上图是MCS-51系列单片机的基本组成框图,由此图可知,单片机在一块芯片上集成了CPU、存储器、寄存器组、定时器/计数器、中断逻辑、并行I/O接口、串行通信接口等构成计算机的基本功能模块。单片机的这种体系结构、微处理器、指令系统、总线方式、管理模式等实际上就是嵌入到芯片中的专用计算机系统,
26、简称嵌入式系统。这种嵌入式系统能够实现高速采集外部数据、逻辑分析与处理、状态显示、输出等智能化控制的功能,它具有较强的控制能力与较高的可靠性。因此,在需要数据传输、数据处理等智能控制类的产品中,大部分都应用到了单片机,其中单片机处于核心地位。本设计的数字电压表是基于单片机实现的,其中单片机是目前比较常用的AT89S52,如图2.5所示。2.3.2单片机AT89S52图2.5AT89S52引脚图(1)AT89S52简介MCS-51系列单片机有多种型号的产品,如基本型(51子系列)8051、8751、8031、80C51、87C51、80C31等型号,都可称为51系列;增强型(52子系列)8052
27、、8752、8032、80C52、87C52、80C32等型号。目前使用较多的还有89S51、89S52型单片机,它们也是51系列产品。本设计使用的是由Atmel公司生产的AT89S52型单片机。AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有8K在线系统可编程 Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在线系统编程,亦适用于常规编程器。在单个芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,这使得AT89S52为众多嵌入式控制应用系统提供高灵活、超级有效的解决方案。 AT89S
28、52 可降至0Hz 静态逻辑操作,并且支持2种软件可选择节电模式。在空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。在掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,其中AT89C2051是它的一种精简版本。AT89S52的外形及引脚排列如图2.5所示 。(2)主要特性与MCS-51 兼容 8K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 三级程序存储器锁定 2
29、56×8位内部RAM 32位可编程I/O线 三个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 (3)管脚说明VCC:电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8个TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于扩展外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。下面简要介绍P0口的具体功能。P0口作普通的I/O线P0口作一般的I/O口使用时,是一个双向口。其输
30、入/输出操作如下:P0口作输出口:CPU向P0口输出数据时(执行输出指令MOV P0,A),写脉冲加在锁存器的时钟端上,此时输出锁存器的输出与引脚的输出状态是一致的。由于输出驱动级是漏极开路电路,若驱动NMOS或其它拉流负载时,需要外接上拉电阻。P0口驱动MOS逻辑电路时上拉电阻值为4.7k,驱动LED显示器时上拉电阻值为470。P0口的输出级可驱动8个LS型TTL负载。P0口作输入口:当P0口作为输入口使用时,应区分读引脚和读锁存器2种状态。为此,在电路中有2个用于读入的三态缓冲器1和2,分别为读引脚和读锁存器。读引脚:三态缓冲器1用于读引脚操作。当CPU在执行“MOV”类指令时(如MOV
31、A,P0),读引脚的脉冲将三态缓冲器1打开,于是P0.X引脚上的数据经过缓冲器读入内部总线。读锁存器:三态缓冲器2用于读锁存器Q端的数据。Q端的数据实际上与引脚处的数据是一致的,结构上的这种安排是为了适应CPU的“读-改-写”指令的需要。这类指令的特点是:先读端口,随之可以对读入的数据进行修改,然后再写到端口上。例如,逻辑指令(ANL P0,A),此指令的功能是先把P0口的数据读入CPU,然后同累加器A中的数据按位进行逻辑与操作,最后将结果写回P0口。在本设计中,P0口实现的是写操作。P0口作地址/数据总线当CPU访问片外存储器时,P0口作分时复用地址/数据总线使用,此时,CPU的控制信号为高
32、电平“1”,模拟开关MUX将反相器的输出与场效应管栅极接通,并打开与门。输出的地址或数据信号通过与门驱动场效应管,同时通过反相器驱动另外一个场效应管,完成信息传送。P0口在作为地址/数据总线使用时不用外接上拉电阻。本设计中单片机的P0口还被当作地址/数据总线。P1口:P1口是唯一的单功能双向口,只作为通用I/O口使用。P1口输出驱动部分接有内部上拉电阻。与P0口相同,当用作输出口时,CPU向输出锁存器写“1”时,输出场效应管截止,输出线由内部上拉电阻拉成高电平;若向输出锁存器写“0”时,场效应管导通,输出低电平。P1口的输出级可驱动4个LS型TTL负载。CPU读P1口也是分为“读引脚”和“读锁
33、存器”2种操作。和P0口的操作类似,当P1口“读引脚”时,先向输出锁存器写入“1”,使场效应管截止,该口线由内部上拉电阻拉成高电平,从而读入正确的输入数据。“读锁存器”时,打开上面三态缓冲器,即可进行“读-改-写”操作。在FLASH编程和校验时,P1口作为低八位地址接收。在本设计中,P1口实现的是读操作。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写入“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流,这是内部上拉的缘故。P2口可以用作通用I/O口外接I/O设备,也可以作为扩展系统的
34、高八位地址总线使用,由CPU的控制信号控制模拟转换开关MUX来实现。当控制信号为低电平时,MUX拨向下方,P2口为通用I/O口,作用与P1口相同;当控制信号为高电平时,MUX拨向上方,P2口作为地址总线使用,端口输出高8位地址信号。在FLASH编程和校验时接收高八位地址信号和控制信号。在本设计中,P2口被用作模数转换器ADC0804和八位D型锁存器54ACT573W的控制端口。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收并输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。 摘自张毅刚单片机原理与应用设计作为输入,由于外部下拉为低电平,P3口将输出电
35、流(ILL),这是被上拉的缘故。P3口有两个功能:第一功能是作通用I/O口,第二功能是作CPU的控制信号。P3口作通用I/O口输出时,其工作原理同P1口类似,但第二功能信号线应维持高电平“1”,使输出驱动电路的与非门与输出锁存器的Q端始终是畅通的。当P3口输出第二功能信号时,输出锁存器为“1”状态,使与非门输出由第二功能信号线的状态来决定,从而实现第二功能信号的输出。P3口无论是作通用输入口还是作第二功能输入口,其输出锁存器和第二输出功能线都应保持高电平。在P3口线的输入通道上增加了一个缓冲器3,通用输入信号取自原缓冲器2(与P0口位置相同)的输出(读引脚),第二功能输入信号取自增加的缓冲器3
36、的输出端。P3口的第二功能详见表2.2。P3口同时为闪烁编程和编程校验接收一些控制信号。在本设计中,P3口的某些端子起到了第一功能,还有一些端子起到了第二功能,主要是用于中断请求、中断响应的。表2.2P3口第二功能 摘自王迎旭单片机原理与应用引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)续表P3.3/INT1(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)RST:复位信号输入引脚。当振荡器复位器件时,要保持RST引脚两个机器周期的高电平
37、时间。 ALE和/PROG:地址锁存允许信号和编程脉冲输入端。当CPU访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外输出的时钟或用于定时目的。然而有一点比较特殊:每当微处理器访问外部数据存储器时要跳过一个ALE脉冲,置位无效。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时才起作用。与此同时,该引脚被略微拉高。在本设计中,该管脚处于悬空状态。/PSEN:外部程序存储器的读选通信号,低电平有效。
38、单片机在访问外部程序存储器时,/PSEN在每个机器周期内两次有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/PSEN同样可以驱动8个LSTTL电路。 /EA和/VPP:内部ROM与外部ROM选择端和编程电压输入端。当/EA保持低电平时,则在此期间CPU访问外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当为加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,CPU访问内部程序存储器(PC地址小于4kB),但当PC值超过0FFFH时,将自动转去执行外部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1
39、:内部振荡电路的反相放大器的输入端,接外部晶振和微调电容的一端。采用外部时钟电路时,对HMOS型工艺的单片机而言,此引脚应接地;对CHMOS型而言,此引脚应接外部时钟的输入端。XTAL2:内部振荡电路的反相放大器的输出端,接外部晶振和微调电容的另一端。使用外部时钟时,对HMOS型工艺的单片机而言,此引脚应接外部时钟的输入端;对CHMOS型而言,此引脚悬空。(4)振荡器特性 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。其余输入至内部的时钟信号要通过一个二分频触发器,因此对外部时钟信号
40、的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。在本设计中,在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路,如图2.6所示。 图2.6单片机的时钟电路(5)芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平,需要10ms 来完成。在芯片擦操作中,代码阵列全部被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89S52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电
41、模式下,单片机保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.3.3单片机的工作原理在本设计中,单片机的四个并行I/O口的具体作用如下:P3口与量程选择电路中的4路开关相连,单片机可以通过位查询或中断指令判断被测电压所属量程;P1口与模数转换器ADC0804相连,P1口的八位作为单片机的输入端口,ADC0804将转换后的数字电压通过数据总线传至P1口;单片机通过一系列数据处理,将BCD码转换为四位数码管的段码,通过P0口输出,该段码可以使LED发光数码管上显示出被测电压的字符;单片机的P2口一共用到了五位,其中P2.0口向模数转换器ADC0804输入片选信号,
42、P2.1口和P2.2口分别向ADC0804输入读使能和写使能信号,P2.6口和P2.7口分别控制八位D型锁存器54ACT573W,该锁存器直接驱动四位数码管,其中P2.6口属于段控,即控制每一个数码管的各段显示,P2.7口属于位控,即选中四位数码管中的其中一个。第2.4节电压显示电路在本设计中,单片机需要将CPU处理后的数字量再次转换为人们易于接受的数字电压值(在05V内,该值与模拟电压值近似相等),并且通过简易的显示装置显示出来。这种显示装置是由LED数码管电路组成的。(1)LED数码管电路及工作原理7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以
43、显示09等10个数字和小数点,使用非常广泛。这类数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如图2.7所示。图中的8个LED分别与上面那个图中的ADP各段相对应,通过控制各个LED的亮灭来显示数字。图2.7数码管原理(2)四位数码管本设计使用的是四位数码管,内部的4个数码管共用a-dp这8根数据线,为人们的使用提供了方便。因为里面有4个数码管,所以它有4个公共端,加上a-
44、dp,共有12个引脚。四位数码管也有共阴极和共阳极之分,共阳极的是为选线为高电平,段选线为低电平;共阴极的是为选线为低电平,段选线为高电平。具体到本设计的硬件连接电路中,采用的是四位共阳数码管,其内部逻辑图与实物引脚图分别如图2.8、图2.9所示。管脚顺序:从数码管的正面观看,以第一脚为起点,管脚的顺序是逆时针方向排列。12986公共脚A11 B7 C4 D2 E1 F10 G5 DP3图2.8四位共阳数码管内部逻辑图图2.9四位共阳数码管实物引脚图(3)共阳极LED段码表由于本设计中的单片机AT89S52与MCS-51系列的单片机完全兼容,所以LED段码表与单片机8051完全相同。控制数码管
45、7个二极管不同亮灭的组合就能形成不同的字形,这种组合称为字形码(段码)。提供给LED显示器的段码正好是一个字节(8段)。各段与字节中各位对应关系如表2.3所示。表2.3LED显示器各段与字节中各位的对应关系代码D7D6D5D4D3D2D1D0段DPGFEDCBA对于本设计而言,由于显示电路采用的是四位共阳极数码管,所以将本设计用到的段码表列出如下,见表2.4,以供编程需要。表2.4共阳极LED段码表显示字符共阳极段码0C0H1F9H2A4H3B0H499H592H682H续表7F8H880H990H0.40H1.79H2.24H3.30H4.19H5.12H6.02H7.78H8.00H9.1
46、0H第2.5节锁存电路在本设计中,电压显示电路中使用了两个8位D型锁存器54ACT573W,这两个锁存器的输入端分别与单片机的P0口相连,输出端与四位数码管相连。由此可见,作为电压显示电路的附加部分,这两个8位D型锁存器起到了举足轻重的作用,那么该作用具体是什么呢?在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。 锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并
47、将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU(缓存)时间。下面从D型锁存器的内部结构可以清楚地得出上述结论。 摘自蔡惟铮基础电子技术 图2.10D锁存器内部结构图钟控 RS 触发器的 S 输入端,通过非门连接到 R 输入端,组成单输入触发器,通常把这个电路叫做D锁存器。如图2.
48、10示。当CP = 1 时,输出端的状态随输入端的状态而改变,= D ,存入新的数据;当CP = 0 时,无论 D 如何变化,输出端的状态保持不变, = ,存入的数据不变。锁存器和LED数码管正是通过这一点节省了CPU数据处理的时间,同时保证了LED数码管的动态显示,使系统具有一定的实时性。总之,在电压显示电路中,锁存电路起到了举足轻重的作用。第2.6节复位电路综上所述,将各部分硬件电路组合起来,就可以设计出具有一定功能的基于单片机的数字电压表,本设计的硬件电路如附录1所示。在本图中,除了包含上述的基本逻辑单元外,还添加了复位电路。复位电路通过电感L、极性电容C组成的充放电振荡回路与单片机的R
49、ST管脚相连。由于种种外界原因,单片机处于非正常工作状态时,就需要给单片机复位,此时按一下复位开关,电源与单片机的RST端接通,RST端在两个机器周期内处于高电平,单片机即可复位。第2.7节本章小结在基于单片机的数字电压表的设计中,硬件电路部分是整个系统的框架,框架的好坏直接影响到系统的工作性能。本设计方案中,从量程选择电路一直到电压显示电路,每一部分的元器件都起到了重要作用,缺一不可。量程选择电路将被检测到的模拟电压进行分类筛选,然后都转换成05V内的电压;模数转换器ADC0804将模拟电压按照逐次逼近的方法转换成数字电压,该数字电压采用二进制BCD编码表示;单片机AT89S52是硬件电路的
50、核心部分,数据传送与数据处理都是需要通过单片机来完成的,ADC0804和八位D型锁存器54ACT573W都是由单片机直接控制的;锁存电路起到了缓冲的作用,是单片机与电压显示电路之间的桥梁,它极大地提高了单片机的工作效率;电压显示电路是整个系统的输出部分,由四位数码管组成,通过单片机的段控和位控,以字符的形式动态显示出被测的模拟电压。在下一章节中,在该章节硬件电路的基础上将实现系统的软件部分。第3章系统软件部分方案设计硬件电路和软件程序是组成一个系统最基本的两部分。硬件电路是整个系统的骨架,当确定硬件电路合理后,就需要进行软件编程,程序是整个系统的灵魂。二者的正确与否,直接影响了系统的可实现性。
51、在上一章中,对整个系统的硬件部分作了介绍,在本章中,将对软件程序部分加以分析说明。第3.1节单片机C51语言单片机是高度自动化的机器,它能自动进行运算和处理事务。整个自动化操作的过程是由CPU的控制器控制完成的。控制器自动执行存放在存储器中的指令,而每一条指令规定计算机完成某种操作。指令有多种形式,各有优劣,下面作一一比较。3.1.1汇编语言与机器语言目前单片机能够直接识别的只能是由0和1两种编码组成的指令,称为二进制机器码,或称为机器语言指令。机器语言指令执行速度快,但使用时不易阅读且记忆非常繁琐、费时。汇编语言用英文单词或英文单词缩写表示机器语言指令的操作码(称为指令助记符),用符号表示操
52、作数或操作数地址。汇编语言指令实际上是是符号化的机器语言,一条汇编语言指令必有一条相应的机器语言指令与之对应。汇编语言指令与机器语言指令相比,虽然指令执行速度慢,但容易记忆,因此,在单片机控制系统中一般采用汇编语言指令来编写程序。3.1.2 C语言与汇编语言C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工程系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言与汇编语言相比,虽然执行效率没有汇编语言高,但是可读性好,便于维护、开发。综上所述,在本设计中,由于在硬件方面上装置比较复杂,需要较为复杂的量程切换、识
53、别,在软件方面上需要较为复杂的主程序以及一些子程序,而C语言程序本身并不依赖于机器硬件系统,基本上不作修改就可以根据单片机的不同较快地移植过来。所以单片机AT89S52的软件编程采用C语言指令,即常用的单片机C51语言。3.1.3单片机C51语言概述C51程序结构与一般C语言没有什么差别。一个C51程序大体上是一个函数定义的集合,在这个集合中有且仅有一个名为main的函数(主函数)。主函数是程序的入口,主函数中的所有语句执行完毕,则程序执行结束。C51编译器具体支持的数据类型有:位型(bit)、无符号字符型(unsigned char)、有符号字符型(signed char)、无符号整型(un
54、signed int)、有符号整型(signed int)、无符号长整型(unsigned long)、有符号长整型(signed long)、浮点型(float)和指针型等。C51运算符按其在表达式中所起的作用,可分为赋值运算符、算术运算符、增量与减量运算符、关系运算符、逻辑运算符、位运算符、复合赋值运算符、逗号运算符、条件运算符、指针和地址运算符、强制类型转换运算符等。运算符按其在表达式中与运算对象的关系,又可分为单目运算符、双目运算符和三目运算符等。单目运算符只需要有一个运算对象,双目运算符要求有两个运算对象,三目运算符要求有三个运算对象。C51提供了十分丰富的程序控制语句。C51基本语句有表达式语句、复合语句、条件语句、开关语句、循环语句和返回语句等。C语言是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋租赁抵债协议书
- 房屋经营协议书范本
- 房屋联建承包协议书
- 房屋赠予定价协议书
- 房屋退还协议书范本
- 房屋项改造合同范本
- 房租无偿转让协议书
- 房租首付赠与协议书
- 手写快速处理协议书
- 手机上如何合同范本
- 青少年宪法教育
- 公安遴选考试题库及答案
- 2025年交通安全知识竞赛试题(附答案)
- 行政管理专科毕业论文(国家开放大学)
- 2024年中国人民银行直属事业单位招聘笔试真题
- 2025江西晶昊盐化有限公司招聘1人笔试历年难易错考点试卷带答案解析试卷3套
- 2025年司法考试-行政诉讼法试题及答案
- 新加坡建筑安全考试题库及答案解析
- Unit 1 Making friends Part C Reading time(教学设计)-2024-2025学年人教PEP版(2024)英语三年级上册
- 河道消防应急预案
- 员工离职与法律风险防范
评论
0/150
提交评论