北京化工大学北方学院毕业设计(论文)
1AF23BEDDPCG4
图2.9 四位共阳数码管实物引脚图
(3)共阳极LED段码表
由于本设计中的单片机AT89S52与MCS-51系列的单片机完全兼容,所以LED段码表与单片机8051完全相同。
控制数码管7个二极管不同亮灭的组合就能形成不同的字形,这种组合称为字形码(段码)。提供给LED显示器的段码正好是一个字节(8段)。各段与字节中各位对应关系如表2.3所示。
代码 段 表2.3 LED显示器各段与字节中各位的对应关系 D7 D6 D5 D4 D3 D2 D1 DP G F E D C B D0 A
对于本设计而言,由于显示电路采用的是四位共阳极数码管,所以将本设计用到的段码表列出如下,见表2.4,以供编程需要。
表2.4 共阳极LED段码表 显示字符 共阳极段码 0 C0H 1 F9H 2 A4H 3 B0H 4 99H 5 92H 6 82H
21
北京化工大学北方学院毕业设计(论文)
续表 7 8 9 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.
F8H 80H 90H 40H 79H 24H 30H 19H 12H 02H 78H 00H 10H 第2.5节 锁存电路
在本设计中,电压显示电路中使用了两个8位D型锁存器54ACT573W,这两个锁存器的输入端分别与单片机的P0口相连,输出端与四位数码管相连。由此可见,作为电压显示电路的附加部分,这两个8位D型锁存器起到了举足轻重的作用,那么该作用具体是什么呢?
在LED和数码管显示方面,要维持一个数据的显示,往往要持续的快速的刷新。尤其是在四段八位数码管等这些要选通的显示设备上。在人类能够接受的刷新频率之内,大概每三十毫秒就要刷新一次。这就大大占用了处理器的处理时间,消耗了处理器的处理能力,还浪费了处理器的功耗。
锁存器的使用可以大大的缓解处理器在这方面的压力。当处理器把数据传输到锁存器并将其锁存后,锁存器的输出引脚便会一直保持数据状态直到下一次锁存新的数据为止。这样在数码管的显示内容不变之前,处理器的处理时间和IO引脚便可以释放。可以看出,处理器处理的时间仅限于显示内容发生变化的时候,这在整个显示时间上只是非常少的一个部分。而处理器在处理完后可以有更多的时间来执行其他的任务。这就是锁存器在LED和数码管显示方面的作用:节省了宝贵的MCU(缓存)时间。
22
北京化工大学北方学院毕业设计(论文)
下面从D型锁存器的内部结构可以清楚地得出上述结论。
1
图2.10 D锁存器内部结构图
钟控 RS 触发器的 S 输入端,通过非门连接到 R 输入端,组成单输入触发器,通常把这个电路叫做D锁存器。如图2.10示。当CP = 1 时,输出端的状态随输入端的状态而改变,Qn?1= D ,存入新的数据;当CP = 0 时,无论 D 如何变化,输出端的状态保持不变,Qn?1 = Qn,存入的数据不变。锁存器和LED数码管正是通过这一点节省了CPU数据处理的时间,同时保证了LED数码管的动态显示,使系统具有一定的实时性。
总之,在电压显示电路中,锁存电路起到了举足轻重的作用。
第2.6节 复位电路
综上所述,将各部分硬件电路组合起来,就可以设计出具有一定功能的基于单片机的数字电压表,本设计的硬件电路如附录1所示。在本图中,除了包含上述的基本逻辑单元外,还添加了复位电路。复位电路通过电感L、极性电容C组成的充放电振荡回路与单片机的RST管脚相连。由于种种外界原因,单片机处于非正常工作状态时,就需要给单片机复位,此时按一下复位开关,电源与单片机的RST端接通,RST端在两个机器周期内处于高电平,单片机即可复位。
1
摘自蔡惟铮《基础电子技术》.
23
北京化工大学北方学院毕业设计(论文)
第2.7节 本章小结
在基于单片机的数字电压表的设计中,硬件电路部分是整个系统的框架,框架的好坏直接影响到系统的工作性能。本设计方案中,从量程选择电路一直到电压显示电路,每一部分的元器件都起到了重要作用,缺一不可。量程选择电路将被检测到的模拟电压进行分类筛选,然后都转换成0~5V内的电压;模数转换器ADC0804将模拟电压按照逐次逼近的方法转换成数字电压,该数字电压采用二进制BCD编码表示;单片机AT89S52是硬件电路的核心部分,数据传送与数据处理都是需要通过单片机来完成的,ADC0804和八位D型锁存器54ACT573W都是由单片机直接控制的;锁存电路起到了缓冲的作用,是单片机与电压显示电路之间的桥梁,它极大地提高了单片机的工作效率;电压显示电路是整个系统的输出部分,由四位数码管组成,通过单片机的段控和位控,以字符的形式动态显示出被测的模拟电压。在下一章节中,在该章节硬件电路的基础上将实现系统的软件部分。
24
北京化工大学北方学院毕业设计(论文)
第3章 系统软件部分方案设计
硬件电路和软件程序是组成一个系统最基本的两部分。硬件电路是整个系统的骨架,当确定硬件电路合理后,就需要进行软件编程,程序是整个系统的灵魂。二者的正确与否,直接影响了系统的可实现性。在上一章中,对整个系统的硬件部分作了介绍,在本章中,将对软件程序部分加以分析说明。
第3.1节 单片机C51语言
单片机是高度自动化的机器,它能自动进行运算和处理事务。整个自动化操作的过程是由CPU的控制器控制完成的。控制器自动执行存放在存储器中的指令,而每一条指令规定计算机完成某种操作。指令有多种形式,各有优劣,下面作一一比较。
3.1.1汇编语言与机器语言
目前单片机能够直接识别的只能是由0和1两种编码组成的指令,称为二进制机器码,或称为机器语言指令。机器语言指令执行速度快,但使用时不易阅读且记忆非常繁琐、费时。汇编语言用英文单词或英文单词缩写表示机器语言指令的操作码(称为指令助记符),用符号表示操作数或操作数地址。汇编语言指令实际上是是符号化的机器语言,一条汇编语言指令必有一条相应的机器语言指令与之对应。汇编语言指令与机器语言指令相比,虽然指令执行速度慢,但容易记忆,因此,在单片机控制系统中一般采用汇编语言指令来编写程序。
3.1.2 C语言与汇编语言
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工程系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。C语言与汇编语言相比,虽然执行效率没有汇编语言高,但是可读性好,便于维护、开发。
综上所述,在本设计中,由于在硬件方面上装置比较复杂,需要较为复杂的量程切换、识别,在软件方面上需要较为复杂的主程序以及一些子程序,而C
25