基于数码管的电子时钟设计内容摘要:

逻辑门电路。 对 P3 口写入 “1”,它们被内部上拉电阻拉高并可作为输入端口。 作输 入端时,被外部拉低的 P3 口将用上拉电阻输出电流。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能。 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST:复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 WDT 溢出将使该引脚输出高电平,设置 SFR AUXR 的 DISRT0位(地址 8EH)可打开或关闭该功能。 DIRT0 位缺省为 RESET 输出高电平打开状态。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE(地址锁存允许 )输出脉冲用于锁存地址的低 8 位字节。 即使不访问外部存储器, ALE 仍以时钟振荡频率的 1/6 输出固定的正脉冲信号,因此可对外输出时钟或用以定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于出入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,单片机执行外部程序时,应设置 ALE 无效。 /PSEN:程序储存允许( /PSEN)输出是外部程序存储器的读选通信号,当AT89C51 由外部程序存储器取指令(或数据) 使,每个机器周期两次 /PSEN 有效,即输出两个脉冲。 当访问外部数据存储器。 没有两次有效的 /PSEN 信号。 EA/VPP:外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为0000H—FFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 VCC 端), CPU则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上 +12V的编程电压 VPP。 6 单片机系统电路包含晶振和复位两部 分,如图 23所示。 图 23 单片机系统电路 在图 23 的复位部分,单片机的 9 脚( RST)是硬件复位功端,当该端持续 4个周期输入高电平即可实现复位,复位后单片机的各状态都将回复初始状态,其中 K5 为复位键,按下此键就可以使单片机恢复到初始值。 晶振电路部分,此电路在加电大约延迟 10sm 后正当器起振,在 XTAL2 引脚产生幅值为 3V的正弦时钟信号,其振荡频率主要由石英晶振的频率决定。 电容 C C2 起到两个作用,一是帮助振荡器起振,二是对振荡器的频率进行微调,值都为 33pF。 图中 X1 为石英晶振。 按键电路设计 设计用了 3 个按键 K K K3,分别 表示设定键、暂停键、加键,其中设定键是对时、分、秒的选择键,而加键是对时或分或秒的调节,两者结合从而达到调节时间的目的。 电路如图 24 所示: 7 图 24 按键设计电路 蜂鸣器电路设计 当单片机检测到整点的时候,例如 010000 时,单片机系统应能发发出信号使蜂鸣器发出“嘀、嘀、嘀”的声音,同时一个发光二极管闪烁。 用 I/O 口很容易实现该功能。 本设计的蜂鸣器电路是实现整点报时。 本设计中选用压电式蜂鸣器。 压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器、共鸣器和外壳组成。 当接通电源后( ~15V 直流工作电压),多谢振荡器起震,输出 ~ 的音频信号。 阻抗匹配器推动压电蜂鸣片发生。 购买市售的压电式蜂鸣器,用一根 I/O 口线驱动蜂鸣器发声,约需 10mA 的驱动电流,可用 7406 或 7407 低电平驱动,也可以用一个晶体管驱动,如图 25所示: 图 25 蜂鸣器设计电路图 LED 数码管显示电路 我们常用的 LED 数码管有七段式和八段式,相对于七段 式来说八段式多了一个小数点其他的基本相同。 本设计中我们选用的是八段式 LED数码管。 所谓八段就是数码管里有八个小的 LED 发光二极管,通过控制不同的 LED 二极管的亮灭来显示不同的字形。 数码管是一种把多个 LED 显示段集成在一起的显示设备。 有两种类型,一种是共阳极,一种是共阴极。 共阳极就是把多个 LED 显示段的阳极接在一起,又称为公共端。 共阴型就是把多个 LED 显示段的阴极连接在一起,即为公共 端。 其中,共阳极的公共端接 +5V电源,共阴极公共端接地。 如图 25 所示。 8 ( a)外观图 ( b)共阳极等效电路 ( c)共阴极等效电路 图 26 LED 数码管 一个八段数码管称为一位,多个数码管并列在一起可构成多为数码管,它们的段选线(即 a、 b、 c、 d、 e、 f、 g、 dp)连载一起,各自的公共端为位选线。 显示时都是从段选线送入编码,选中哪个位选线,那个数码管就会被点亮。 数码管的八段对应一个字节的八位, a 对应最低位, dp 对应最高位。 例如,显示字符0,共阴极数码管字符编号为 00111111,即 0x3f;共阳极数码管字符编号为11000000,即 0xc0。 可以看出两个编码的各位正好相 反。 本设计中选用的是共阳极的数码管,表 21 中为各字符的编号。 表 21 数码管字型与字段关系表 显示 字符 g f e d c b a 字型码 共阴极 共阳极 0 0 1 1 1 1 1 1 3FH C0H 1 0 0 0 0 1 1 0 06H F9H 2 1 0 1 1 0 1 1 5BH A4H 3 1 0 0 1 1 1 1 4FH B0H 4 1 1 0 0 1 1 0 66H 99H 5 1 1 0 1 1 0 1 6DH 92H 6 1 1 1 1 1 0 1 7DH 82H 7 0 0 0 0 1 1 1 07H F8H 8 1 1 1 1 1 1 1 7FH 80H 9 1 1 0 1 1 1 1 6FH 90H A 1 1 1 0 1 1 1 77H 88H B 1 1 1 1 1 0 0 7CH 83H C 0 1 1 1 0 0 1 39H C6H D 1 0 1 1 1 1 0 5EH A1H 数码管的显示方法可分为静态显示和动态显示,在本设计中采用的是动态显示,其原理:各个数码管的相同端连接在一起,共同占用 8 位段引管线:每位数码管的阳极连接在一起组成公共端。 依次给出各个数 码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,显示就会清晰显示出 来。 本设计选取的是 7SEGMPX8CABLUE 共阳极的多位数码管,如图 27 所示。 9 图 27 显示电路设计 由 以上各部分电路模块的设计思路,以及进一步修改得到如图 28 所示的由 AT89C51 芯片和 74HC573 等元件组成的电路图,按钮开关从上到下依次设定、暂停、加、确认等功能。 此外,该电路还可以实现整点报时,同时发光二极管闪烁的功能。 图 28 总体设计电路图 10 第三章 控制系统的软件设计 软件的设计主要包括三个部分:主程序、显示子程序、中断服务组程序。 主程序设计功能主要是选择定时器工作方式,流程图如图 31 所示,程序见附录一。 图 31 主程序框图 中断服务组程序设每个机器周期的长度是 12 个振荡周期。 实验系统的晶振是,所以定时常数的设置可按以下方法计算: 机器周期 =12247。 = ,程序见附录一。 显示子 程序 设计功能:扫描 8。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。