第3章 系统硬件设计
A1 A0 /S W ~ 0 0 1 1 ~ 0 1 0 1 1 0 0 D0 0 D1 0 D2 0 D3 3.6 单片机
单片机作为控制系统和计数器,是本次设计的最重要的部分,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。所以本次设计采用AT89C51单片机。
本次设计采用的是89C51单片机, 89C51是一种高性能低功耗的采用CMOS工艺制造的8位微控制器,它提供下列标准特征:4K字节的程序存储器,128字节的RAM,32条I/O线,2个16位定时器/计数器,,一个5中断源两个优先级的中断结构,一个双工的串行口,片上震荡器和时钟电路。其引脚说明如下:
引脚说明:
·VCC:电源电压。 ·GND:接地。
·P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。
当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。
在EPROM编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。
13
第3章 系统硬件设计
·P0口:P0口是一带有内部上拉电阻的8位双向I/O口。P0口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P0口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P0口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。
·P1口:P2是一带有内部上拉电阻的8位双向的I/O端口。P1口的输出缓冲能驱动4个TTL逻辑门电路。当向P1口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX @ DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX @R1),P2口输出特殊功能寄存器的内容。
当EPROM编程或校验时,P2口同时接收高8位地址和一些控制信号。 ·P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。
P3口同时具有AT89C51的多种特殊功能,P3.0的第二功能是串行输入口RXD, P3.1的第二功能是串行输出口TXD, P3.2的第二功能是外部中断0,P3.3的第二功能是外部中断1,P3.4的第二功能是定时器T0,P3.5的第二功能是定时器T1,P3.6的第二功能是外部数据存储器写选通/WR,P3.7的第二功能是外部数据存储器读选通/RD。
3.7 显示电路
3.7.1 显示原理
我们测量的频率最终要显示出来。八段LED数码管显示器基本电路如图3-13所示。
14
第3章 系统硬件设计
图3-13 八段LED数码管显示器
八段LED数码管显示器由8个发光二极管组成。基中7个长条形的发光管排列成“日”字形,另一个圆点形的发光管在数码管显示器的右下角作为显示小数点用,它能显示各种数字及部份英文字母。LED数码管显示器有两种形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳极LED数码管显示器;另一种是8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管显示器。如下图所示。共阴和共阳结构的LED数码管显示器各笔划段名和安排位置是相同的。当二极管导通时,对应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8个笔划段hgfedcba对应于一个字节(8位)的D7、D6、D5、D4、D3、D2、D1、D0,于是用8位二进制码就能表示欲显示字符的字形代码。?3?
在单片机应用系统中,数码管显示器显示常用两种办法:静态显示和动态扫描显示。所谓静态显示,就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的开销小,能供给单独锁存的I/O接口电路很多。在单片机系统中动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就能自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的办法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
15
第3章 系统硬件设计
综合以上内容,我们在这次设计中采用LED数码管,采用单片机静态显示计数来显示。采用一个74LS138译码器来控制各个数码管,采用一个74LS245来做上拉电路,使数码显示管有足够的电压进行显示。 3.7.2 显示电路图
显示电路由数码管和74LS138组成,数码管已经介绍过了,所以不再多加阐述,现在介绍显示电路组成的另一重要电路:74LS138。在本次设计中,由74LS138连接数码管的接地端,由此来控制数码管的亮和灭。其引脚图和功能表分别如图3-14和表3-4所示。
图3-14 74LS153引脚图
表3-4 74LS138功能表
G1 G2 C B A Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 ~ 0 1 ~ ~ ~ ~ 1 ~ ~ ~ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 16
第3章 系统硬件设计
1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 由图和功能表可以看出,74LS138译码器有三个地址输入端A、B、C和八个译码输出端Y0~Y7,当输入为000时,Y0输出端为0,其他输出端都为1;同理可推出其他输出状态,即只有输出变量下标对应的二进制代码与输入代码相等的输出端为0,其他的输出端都为1。另外,该译码器还有三个使能端:G1、/G2A、/G2B,只有当G1=1、/G2A=0、/G2B=0同时满足,才能译码。三个条件中任何一个不满足就禁止译码。其中译码选通端/G2B也被称作数据输入端,主要指它用于数据分配时所起的作用。设置多个使能端使得该译码器能被灵活组成各种电路。
由于单片机输出的显示数据电压不够高,无法直接送到数码管上直接显示,因此需要用一个上拉电路来提高输出数据的电压值,以便送到数码管显示。在本次设计中我们选用DM74LS245N。其电路图如图3-15所示。?4?
17