基于单片机的多功能数字钟的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的多功能数字钟的设计
摘要:本设计论文介绍了用AT89C2051单片机控制的数字钟的硬件结构与软件设计,给出了汇编语言源程序。
此数字钟是一个将“时”、“分”、“秒”显示于人的视觉器官的计时装置。
它的计时周期为12小时,显示满刻度为12时59分59秒99毫秒,另外应有校时功能。
电路由时钟脉冲发生器、时钟计数器、译码驱动电路和数字显示电路以及时间调整电路组成。
用晶体振荡器产生时间标准信号,这里采用石英晶体振荡器。
根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个60进制(秒、分)、一个12进制(时)的计数器。
构成秒、分、时的计数,实现计时的功能。
显示器件选用LED七段数码管。
在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。
针对数字钟会产生走时误差的现象,在电路中就设计有有校准时间功能的电路。
关键词:单片机;AT89C2051;数字钟;计时
Based on SCM multi-purpose digital clock design
Abstract:The paper mainly presents the hardware and software design of the digital clock using AT89C2051. The source program using assemble Language is given. This digital clock is a time-device, which can display "hour", "minute", "second". Its time period is 12 hours and the full scale of the display is 12 hours, 59 minutes, 59 seconds and 99 milliseconds and it has the function of time adjustment. The circuit consists of the clock pulse generator, the clock counter, decoding drive circuit, digital display circuit and the time adjustment circuit. It generates time standard signal using crystal oscillator, here is the quartz crystal oscillator. Because 60 seconds is 1 minute, 60 minutes is 1 hour and 24 hours is 1 day, we uses two counters of 60 parts and a counter of 12 part separately to constitute the count of percentage of second, second, minute, and hour. So it can realize time function. Display component selects seven-segment numerical tube LED. Driven by decoding output circuit, it can display showing clear and intuitive figures. Due to walking error of digital clock, we design time calibration circuit in the system.
Key words:Single-chip microcomputer; AT89C2051; Digital clock; Time
目录
第1章绪论 (1)
1.1 前言 (1)
1.2 设计的目的及意义 (1)
第2章数字钟的功能实现与设计方案 (2)
2.1 数字钟的功能及设计要求 (2)
2.2数字钟的实现形式 (2)
2.3 方案的确定 (3)
2.3.1 微处理器 (3)
2.3.2 显示电路 (3)
2.3.3 按键电路 (4)
第3章数字钟的硬件系统设计 (5)
3.1数字时钟的硬件系统框架 (5)
3.2 数字时钟的主机电路设计 (5)
3.2.1系统控制芯片CPU(AT89C2051)的选择 (5)
3.2.2系统时钟电路设计 (10)
3.2.3 系统复位电路设计 (12)
3.2.4 按键与按钮电路设计 (13)
3.2.5闹铃声光指示电路设计 (13)
3.2.6 数字钟的显示电路设计 (13)
3.3校时电路设计 (17)
3.3.1校时原理 (18)
3.3.2 国家授时中心 (18)
3.3.3窗口比较器 (19)
3.3.4 校时电路电路图 (20)
3.4 电源设计 (20)
第4章程序设计 (24)
4.1 主控模块设计 (24)
4.2基本现实模块设计 (25)
4.3 当前编辑位闪烁功能的实现 (26)
4.4时间设定模块设计 (26)
4.5脉冲发生器原理与走时处理 (27)
4.6 闹铃功能的实现 (28)
第5章系统的调试及结果 (30)
5.1 系统调试环境 (30)
5.2 软件调试 (30)
5.3硬件调试 (30)
5.4调试结果 (30)
结论 (31)
致谢 (32)
参考文献 (33)
附录1:完整的汇编语言源程序 (34)
附录2:系统设计原理图 (57)
附录3:系统设计PCB图 (59)
附录4:实物照片 (60)
西南科技大学本科生毕业论文
第1章绪论
1.1前言
计算机尤其是以微细加工技术支持的微型计算机技术飞速发展,其应用渗透到了各行各业。
以单片机、嵌入式处理器、数字信号处理器(DSP)为核心的计算机系统,以其软硬件可裁剪、高度的实时性、高度的可靠性、功能齐全、低功耗、适应面广等诸多优点而得到极为广泛的应用。
目前计算机硬件技术向巨型化、微型化和单片机化三个方向告诉发展[1]。
自1975年美国德州仪器公司(Texas Instruments)第一块微型计算机芯片TMS-1000问世以来,在短短的20年间,单片机技术已发展成为计算机领域一个非常有前途的分之,它有自己的技术特征、规范和应用领域。
单片机是自动控制系统的核心部件,主要用于工业控制、智能化仪器仪表、家用电器中。
它具有体积小、性能突出可靠性高(某些方面的性能指标大大优于通用微机中央处理器)、价格低廉等一系列优点,应用领域不断扩大,除了工业控制、智能化仪表、通信、家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件,已经渗入到人们工作和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,前景广阔。
数字钟具备单片机最小系统的基本组成,对于我们了解单片机有很大的帮助[2]。
1.2 设计的目的及意义
本设计通过用对一个能实现定时,时钟显示功能的时间系统的设计学习,详细介绍了51单片机应用中的数据转换显示,数码管显示原理,静态扫描显示原理,单片机的定时中断原理等,从而达到学习、了解单片机相关指令在各方面的应用。
对于单片机学习者而言,这个程序基本上是一道门槛,掌握了电子钟程序,基本上就可以说把51单片机掌握了80%。
第1页
西南科技大学本科生毕业论文
第2页
第2章 数字钟的功能实现与设计方案
2.1 数字钟的功能及设计要求
(1) 可以实现时/分/秒/百分秒的显示,可以调整时/分
(2) 使用LED 显示
(3) 有表示时钟正常工作的装置
(4) 能稳定工作,可控制时钟的启动复位
(5) 有实现闹铃功能
2.2 数字钟的实现形式
数字钟既可以通过纯硬件实现,也可以通过软硬结合实现,根据电子时钟的核心部件——秒信号的产生原理,通常有三钟形式:
(1) 用NE555时基电路的形式
采用NE555时基电路或其他震荡电路产生秒脉冲信号,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子时钟。
由555构成的秒脉冲发生器电路如图1-1所示。
输出的脉冲信号V 0的频率F=1.443/(R A +2R B )×C,可通过调节这3个参数,使输V 0的频率为精确的1Hz [3]。
图2-1 基于555的秒脉冲发生器
(2) 采用石英钟专用芯片的实现形式
采用石英钟专用计时芯片实现的电子钟,具有实现简单、计时精度高的特点。
石英计时芯片(简称“机芯”)比较多,常见的有STP5512F 、SM5546A 和D60400等[4]。
现基于
西南科技大学本科生毕业论文
第3页
5512F 的2秒输出信号作为秒加法电路的计时脉冲,可实现电子时钟。
5512F 的引脚如图1-2所示。
其中,引脚7、8为外接晶振及振荡电路,引脚1接电源正极,电源为1.5伏,引脚3、4原为指针用步进电机线圈的输出驱动端,这里可用3脚作为脉冲输出,频率决定于外接晶振的频率。
(3) 采用基于单片机的实现形式
利用单片机的智能性,可方便的实现具有智能数字钟的设计。
而且,微处理系统具有时钟振荡系统,利用系统时钟并借助微处理器的定时/计数器功能可以实现数字钟的功能。
本设计采用AT89C2051单片机设计。
2.3 方案的确定
可以从以下几个方面来确定电子闹钟的设计方案。
2.3.1 微处理器
采用ATMEL 的AT89C2051微处理器,是基于以下几个因素:
①内含Flash 存储器,这在系统的开发过程中,可随意进行程序修改,既便错误编程之后仍可以重新编程,故不存在废品且大大缩短了程序的开发周期;同时在系统工作过程中能有效地保存数据信息。
②采用静态时钟方式,节省电能,这对于降低便携式产品的功耗十分有利。
③由于它是以8031 核构成的,所以它与MCS251 系列单片机是兼容的④
AT89C2051为51内核,仿真调试软硬件资源丰富;⑤性价比高,货源充足;⑥DIP20封装,体积小,便于产品小型化;⑦为E 2PROM 程序存储介质,1000次以上擦/写周期,便于变成调试;⑧具有IDLE 和POWER-DOWN 两种工作模式,便于进行低功耗设计;⑨工作电压范围宽:2.7~6V ,便于交直流供电[5]。
2.3.2 显示电路
就时钟而言,通常可采用液晶显示或数码管显示。
对于一般的段式液晶屏,需要专门的驱动电路,而且也经显示作为一种被动显示,可视性相对较差;对于具有驱动电路
西南科技大学本科生毕业论文
和微处理器接口的液晶显示模块(字符或点阵),一般多采用并行机接口,对于微处理器的接口要求较高,占用资源多。
另外,89C2051本身没有专门的液晶驱动接口,因此,本时钟设计采用了数码管显示方式。
数码管作为一种主动显示器件,具有亮度高、价格便宜等优点,而且市场上也有专门的时钟显示组合数码管。
2.3.3 按键电路
考虑到对时和设定闹铃时间这两种操作的使用频率不是很高,为了精简系统
和节省成本,本时钟系统只设两个按键:
(1)SET键,对应系统的不同工作状态,具有三个功能:
●在复位后的待机状态下,用于启动设定时间参数(对时和定闹);
●在设定时间参数状态而且不是设定最低位(即分个位)的状态下,用于结束当
前位的设定,当前设定为下移;
●在设定最低位(分个位)的状态下,用于结束本次时间设定。
(2)+1键,用于对当前设定位(编辑位)进行加1操作,根据12/24小时工作模式和正在编辑的当前位的含义(时十位、时各位、分十位、分个位)自动进行数据的上限和下限判断。
例如,对12小时制,小时的十位只能是0、1,如果当前值为0,则按+1键后为1,再按+1键后为0。
第4页
西南科技大学本科生毕业论文
第3章数字钟的硬件系统设计
电子时钟硬件部分的设计应包括秒信号发生器、时间显示电路、按键电路、供电电路,以及闹铃指示电路等几部分。
3.1数字时钟的硬件系统框架
电子时钟的系统框架入图3-1所示。
3.2 数字时钟的主机电路设计
数字时钟的主电路指的是图1中框内部分,主要涉及到微处理器电路和按键县按钮电路。
主机的设计具体地说有:(1)系统控制芯片的选择(2)系统时钟电路设计;(3)系统复位电路设计;(4)按键与按钮电路设计;(5)闹铃声光指示电路设计。
3.2.1系统控制芯片CPU(AT89C2051)的选择
AT89C系列单片机是Atmel公司1993年开始研制生产的,优越的性能价格比使其成为颇受欢迎的8位单片机。
AT89C系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整个电路的体积更小[6]。
(1)AT89C2051主要性能:
AT89C2051是Atmel公司生产的戴2KB闪速可编程可擦除只读存储器(PEROM)的8位单片机,它具有如下主要特征:
第5页
西南科技大学本科生毕业论文
第6页
○
1 AT89C2051为51内核; ○
2 内部带2KB 可编程闪速存储器(E 2PROM ),寿命为1000次擦/写循环,据保留时间为10年;
○
3 DIP20封装,体积小 ○
4 工作电压范围为2.7~6V ; ○
5 全静态工作频率为0Hz ~24Hz ; ○
6 两极程序存储器锁定; ○
7 8128 位内部RAM ; ○8 15条可编程I/O 线;、
○
9 2个16位定时器/计数器; ○
10 5个两级终端源; ○
11 可编程全双工串行UART 通道; ○
12 直接对LED 驱动输出 ○
13 片内精确的模拟比较器; ○
14 片内振荡器和时钟电路; ○
15 低功耗的休眠和掉电模式; (2)AT89C2051内部结构及引脚描述
AT89C2051单片机的内部与8051单片机的内部结构基本一致,区别只是增加了一个模拟比较器[7],减少了两个对外的端口(P0、P2口),输出端口P1、P3有独特的功能。
AT89C2051减少了两个外部端口,因而芯片的外部引脚可以大大减少,芯片尺寸可以很小,其引脚配置如图3-2所示。
图3-2 AT89c2051引脚配置
它是一个有20个引脚排列直插式的芯片,其引脚描述如下:
V CC:电源电压;
GND:接地;
RST:复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至高阻状态。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡放大器的输出。
P1口:8位双向I/O口,引脚P1.1和P1.2需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1)[8]。
P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程和编程校验期间,P1口也可接收编码数据。
P3口:引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/O引脚。
P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20Ma 电流;P3写入“1”后,内部上啦,可用作输入。
P3口也可用作特殊功能口,其功能见表3-1。
P3口同时也可为闪速存储器编程和编程校验接收控制信号[9]。
表3-1 P3口引脚的特殊功能
从上述引脚说明看出,AT89C2051没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片及应用系统不能在AT89C2051之外扩展存储器或I/O设备,也即AT89C2051本身即构成了最小的单片机系统。
(3)振荡器
振荡器特征:XTAL1和XTAL2分别构成片内振荡器的反相放大器的输入和输出端,如图3-3所示。
可采用石英晶体或陶瓷振荡器组成振荡器。
要从外部时钟源驱动AT89C2051,则XTAL2应悬空,而XTAL1的驱动如图3-4所示。
由于输入到内部时钟
电路经过一个二分频触发器,故不需要对外部时钟信号的工作周期提出特殊要求,但它必须遵守最小和最大电压高低电平的时间规范。
图3-3 振荡的外部连接方法
图3-4 外部时钟驱动结构
(4)特殊功能寄存器SFR
与8051单片机特殊功能寄存器相对应,AT89C2051片内设置了19个特殊功能寄存器,统称为特殊功能寄存器块SFR,它们的地址散布在80H~0F0H区域内。
(5)低功耗工作模式
AT89C2051优良中低功耗工作模式:待机方式与掉电方式。
○1待机方式(休眠方式)
当利用软件使待机方式位ADL(PCON.0)=0时,单片机进入空闲方式。
此时,CPU处于休眠状态,而片内所有其它外围设备都保持工作状态,片内RAM和所有特殊功能寄存器内容保持不变。
在待机方式下,当晶振f osc=12MHz,电源电压V CC=6V时,电源电流I CC从20Ma 降至5Ma;而V CC由5.5mA降至1mA。
中断或硬件复位可以终止待机方式。
当待机方式由硬件复为终止时,CPU要从休眠处恢复程序的执行,执行2的周期后,内部复位电路才起作用。
此时,硬件禁止访问内部RAM,但允许访问端口引脚。
为了防止休眠被复位终止时对端口以外写入的可能性,在生成待机方式的指令后不应紧跟对端口引脚的写指令。
如果不采用外部上拉,P1.0和P1.1应置“1”。
○2掉电方式
掉电方式由掉电方式位PD(PCON.1)=1摄制。
此时振荡器停止工作,设置掉电方式的指令成为最后执行的一条指令,片内RAM和特殊功能寄存器内容保持不变。
在掉电模式下,V Ccmin=2V。
当V CC=6V时,I CCmax=100μA;当V CC=3时,I Ccmax=20μA。
退出掉电方式的唯一方式是硬件复位。
硬件复位将重新定义特殊功能寄存器,但不影响片内RAM。
复位的保持时间应足够
没有恢复得到正常工作电压之前,长,以便振荡器能重新开始工作并稳定下来。
在V
CC
不应进行复位。
如果不采用外部上拉,P1.0和P1.1应置“0”,否则置“1”。
(6)闪速存储器的编程
AT89C2051单片机内部有2KB的闪速存储器阵列,一片新的AT89C2051,其存储阵列处于擦除状态(FFH),此时可对其编程,存储阵列一次编程1字节,若编程任何非空字节时,需对整个存储阵列进行片擦除[10]。
编程时,AT89C2051利用内部存储器地址计数器提供寻址存储器的地址信号,RST 上升沿将该地址计数器复位至000H,引脚XTAL1所施加的正向脉冲使地址计数器不断加1。
[11]RST上出现12V(编程电源V PP)高压时,预示着1字节的编程操作开始,这时P3口提供编程所需的控制与状态信号,P1口为数据通道。
(7)在线编程
AT89C2051编程时需要利用RST、XTAL1、P1口、P3口提供控制信号与加载编程数据,而这一要求又常与用户系统对这些引脚的要求或操作冲突。
因此,在线编程不能直接在用户工作电路中进行,而要通过特殊电路处理才能实现。
例如图3-5所示为在线编程的示例,其采用2选1的方法实现连接线路的切换,达到在线编程的目的。
利用微动开关
SW来选择XTAL1的加载,产生选择控制信号Select,其它线路的切换用2选1器件74LS157与三态缓冲器74LS244实现。
当AT89C2051正常工作时,选择控制信号(Selecg=0)控制所有的74LS157输入A端与输出Y接通,且74LS244-1输出有效,74LS244-2三态输出,使得AT89C2051可以对用户电路进行控制操作;当AT89C2051需要编程时,选择控制信号(Select=1)控制所有的74ALS157输入B端与输出Y端接通,且74LS244-1三态输出,74LS244-2输出有效,使得AT89C2051可以接受编程电路的控制,实现编程操作。
3.2.2系统时钟电路设计
系统利用晶体振荡器作为时钟电路,根据晶振的不同使用要求及特点,通常分为以下几类:普通晶振、温补晶振、压控晶振、温控晶振等。
安装晶振时,应根据其引脚功能标识与应用电路应连接,避免电源引线与输出引脚相接输出。
在测试和使用时所供直流电源应没有足以影响其准确度的纹波含量,交流电压应无瞬变过程[12]。
测试仪器应有足够的精度,连线合理布置,将测试及外围电路对晶振指标的影响降至最低。
(1)普通晶振(PXO):是一种没有采取温度补偿措施的晶体振荡器,在整个温度范围内,晶振的频率稳定度取决于其内部所用晶体的性能,频率稳定度在10-5量级,一般用于普通场所作为本振源或中间信号,是晶振中最廉价的产品。
(2)温补晶振(TCXO):是在晶振内部采取了对晶体频率温度特性进行补偿,以达到在宽温温度范围内满足稳定度要求的晶体振荡器。
(3)恒温晶振(OCXO):采用精密控温,使电路元件及晶体工作在晶体的零温度系数点的温度上。
中精度产品频率稳定度为10-7~10-8,高精度产品频率稳定度在10-9
量级以上。
主要用作频率源或标准信号。
(4)压控晶振(VCXO):是一种可通过调整外加电压使晶振输出频率随之改变的晶体振荡器,主要用于锁相环路或频率微调。
压控晶振的频率控制范围及线性度主要取决于电路所用变容二极管及晶体参数两者的组合。
晶体振荡器选择参考标准:
(1)总频差:在规定的时间内,由于规定的工作和非工作参数全部组合而引起的晶体振荡器频率与给定标称频率的最大频差。
(2)温度稳定度:在标称电源和负载下,工作在规定温度范围内的不带隐含基准温度或带隐含基准温度的最大允许频偏。
(3)频率稳定预热时间:以晶体振荡器稳定输出频率为基准,从加电到输出频率小于规定频率允差所需要的时间。
(4)频率老化率:在恒定的环境条件下测量振荡器频率时,振荡器频率和时间之间的关系。
这种长期频率漂移是由晶体元件和振荡器电路元件的缓慢变化造成的,可用规定时限后的最大变化率(如±10ppb/天,加电72小时后),或规定的时限内最大的总频率变化(如:±1ppm/(第一年)和±5ppm/(十年))来表示。
(5)频率压控范围:将频率控制电压从基准电压调到规定的终点电压,晶体振荡器频率的最小峰值改变量。
(6)频率压控线性:与理想(直线)函数相比的输出频率-输入控制电压传输特性的一种量度,它以百分数表示整个范围频偏的可容许非线性度[7]。
本系统时钟电路的设计如图3-6。
对于实践要求不是很高的系统,图中电路设计就能使系统可靠起振并稳定运行。
但由于途中的C1、C2电容起着系统时钟频率微调和稳定的作用,它对时钟的正负走时误差有很大影响。
因此,在本系统的实际应用中特别注意了电容参数的选择(pF
30 ),并尽量保证电路的对称性(尽可能匹配),选用正
10
派厂家生产的瓷片或云母电容,条件允许的话温度系数要尽可能低。
图3-6 振荡电路
3.2.3 系统复位电路设计
智能系统一般应有手动或上电复位电路。
复位电路的实现通常有两种形式:即专用µp监控电路和RC复位电路。
前者电路实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。
对于复位要求高,并对电源电压进行监视的场合,大多采用这种方式。
(1)专用µP监控电路
专用µP监控电路有称为电源监视电路,具有上电时可靠产生复位信号和电源电压跌落到“门槛值”时可靠产生复位信号等功能[17]。
按时效电平分,有高电平输出、低电平输出两种;按功能分,有简单的电源监视复位电路、带看门狗定时器(WATCH DOG Timer,WDT)的监控电路和WDT+E2PROM的监控电路等多种类型。
(2)RC复位电路
本系统采用的是RC复位方式。
RC复位电路的实质是一阶充放电电路,如图3-7:
图3-7 RC复位电路
系统上电时该电路提供有效的复位信号RST(高电平)直至系统电源稳定后撤销复位信号(低电平)。
从理论上说,51系列单片机复位引脚只要外两个机器周期的有效信号即可复位,即只要保证t=RC>2M(机器周期)便可。
但在实际设计中,通常C1取值为10µF以上,R1通常取值10ΚΩ左右。
实践发现,R1如果取值太小,例如1ΚΩ,则会导致RST信号驱动能力变差而无法使系统可靠复位。
另外,从图3-8所示的复位信号波形图可以明显看出,续流二极管对于改善复位性能,起到了重要作用。
它的作用是在电源电压瞬间下降时使电容迅速放电,因此一定宽度的电源毛刺(如波形中A点)也可令系统可靠复位。
图3-8 加二极管前后的复位信号特性对比
3.2.4 按键与按钮电路设计
按键与按钮电路的设计参见系统原理图中的S1、S2和S3对应部分。
按键与按钮电路设计中关键要考虑的就是按键去抖动问题(简称“去抖”),一般由硬件去抖和软件去抖两种方式。
硬件去抖可以采用分立元件或触发器实现,目前市场上也有硬件去抖专用接口芯片,例如:MAXIM公司MAX6816~6818,均为单电源供电,电压为2.7~5.5V,分别为单输入、双输入和八输入,输出端具有欠压锁定功能[19]。
考虑到系统的硬件简化和控制成本问题,本次设计采用软件去抖方式。
3.2.5闹铃声光指示电路设计
闹铃指示可以由声或光亮中形式,本系统设计中采用声音指示。
关键元件是蜂鸣器。
蜂鸣器有无源和有源两种,前者属要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可;元件内部已经封装了音频振荡电路,在得电状态下即起振发声。
市场上的有源蜂鸣器分为3V、5V、6V等系列,以适应不同的应用要求。
其电路设计见电路原理图。
其中PNV小功率三极管Q2采用9012,其最大集电极电流为800mA,完全满足蜂鸣器驱动的需要。
适当调节基极电阻可改变蜂鸣器的发声功率(即响度)。
如图3-9
图3-9 闹铃声光指示电路
3.2.6 数字钟的显示电路设计
(1)LED的选择
单片机I/O的应用最典型的是通过I/O口与7段LED数码管构成显示电路,7段LED数码管,在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码
管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。
LED数码管根据LED 的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。
下图3-10阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。
图3-10数码管电路
将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。
以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。
当然,LED的电流通常较小,一般均需在回路中接上限流电阻。
假如我们将"b"和"c"段接上正电源,其它端接地或悬空,那么"b"和"c"段发光,此时,数码管显示将显示数字“1”。
而将"a"、"b"、"d"、"e"和"g"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。
其它字符的显示原理类同。
用单片机驱动LED数码管有很多方法,按显示方式分,有静态显示和动态(扫描)显示,按译码方式可分硬件译码和软件译码之分。
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再控制LED,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间;动态显示需要CPU 时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。
这两种显示方式各有利弊:动态显示虽然有闪烁感,占用的CPU时间较多,但是用的硬件少,能节省线路板的空间。
动态扫描显示接口是单片机种应用最广泛的一种显示方式。
其接口电路是把所有的LED显示器的8个笔画段A~G、DP的同名端连在一起,而每一个数码管的公共端COM是各自独立地受I/O线控制。
CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM 端,而这一端由I/O控制的,可以自行决定何时显示哪一位了。
而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。
在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的,约1ms左右,但是由于人。