这是我们设计的单片机电子钟/ 计时器学习板, 它采用 6位 LED 数码管显示时、分、秒,以 24 小时计时方式。可以通过按键实现时分调整、秒表/时钟功能转换、省电( 关闭显示) 等功能。我们能提供的完整的汇编语言源程序清单及电路原理设计图有助于学习者进行分析和进行实验验证产品 1:6位 LED 显示单片机控制电子钟/ 计数器成品板成品每套 84元硬件参数板上资源: MCU STC89C52 、6位 Led 显示、 3 位按键。电源部分为 5V 直流电压,需要稳压、滤波电路,不能接反! 51 单片机做的电子钟在很多地方都有介绍, 对于单片机学习者来说这个程序基本上是一道门槛,掌握了电子钟程序, 基本上可以说 51 单片机就掌握了 80% 。常见的电子钟程序由显示部分、计算部分、时钟调整部分构成, 本产品硬件上完全支持倒计时器, 客户只要自己修改程序就能实现倒计时功能。为了实现 LED 显示器的数字显示,可以采用静态显示法和动态显示法。由于静态显示法需要数据锁存器等硬件, 接口复杂一些。考虑时钟显示只有六位, 且系统没有其它复杂的处理任务, 所以决定采用动态扫描法实现 LED 的显示。单片机采用易购的 AT89S51 系列, 这样单片机可具有足够的空余硬件资源实现其它的扩充功能, 硬件系统的总体构成如下图所示: 该板采用 AT89S51 单片机, 最小化应用设计, 采用共阳七段 LED 显示器,P0 口输出段码数据, ~ P2. 5 做列扫描输出, ,,, 接三个按键开关, 用以调时及功能设置。为了提高共阳数码管的驱动电压,用 9012 做电源驱动输出。采用 12M 晶振,有利于提高秒计时的精度。本设计中, 计时采用定时器 T0 中断完成, 其余状态循环调用显示子程序, 当端口开关按下时, 转入相应功能程序。其主程序执行流程图见下左图: 数码管显示的数据存放在内存单元 70H ~ 75H 中。其中 70H ~ 71H 存放秒数据, 72H ~ 73H 存放分数据, 74H ~ 75H 存放时数据, 每一地址单元内均为十进制 BCD码。由于采用软件动态扫描实现数据显示功能, 显示用十进制 BCD 码数据的对应段码存放在 ROM 表中。显示时, 先取出 70H~~75H 某一地址中的数据,然后查得对应的显示用段码,并从 P0口输出, P2 口将对应的数码管选中供电,就能显示该地址单元的数据值。定时器 T0 用于时间计时。定时溢出中断周期可分别设为 50mst 和 10ms 。中断进入后, 先判断是时钟计时还是秒表计时, 时钟计时累计中断 20 次(即 1s )时,对秒计数单元进行加 1 操作,秒表计时每 10ms 进行加 1 操作。时钟计数单元地址分别在 70H ~ 71H (秒)、 76H ~ 77H (分)和 78H ~ 79H (时), 最大计时值为 23时 59分 59秒。而秒表计数单元地址也在 70H~~71H ( 毫秒)、 76H~~77H (秒)和 78H~~79H (分), 最大计时值为 99分 秒。 7AH 单元内存放“熄灭符”数据( #0AH )。在计数单元中采用十进制 BCD 码计数,满 60( 秒表功能时有 100 )进位, T0 中断服务程序执行流程见上图右 T1 中断服务程序用于指示调整单元数字的亮闪。在时间调整状态下, 每过 将对应单元的显示数据换成“熄灭符”数据( #0AH )。这样在调整时间时,对应调整单元的显示数据会间隔闪亮。调时功能程序的设计方法是:按下 口按键,若按下时间短于 1s 则进入省电状态(数码管不亮,时钟不停);否则进入调分状态, 等待操作, 此时计时器停止走动。当再按下按钮时, 若按下时间短于 ,则时间加 1 分;若按下时间长于 ,则进入[小] 时调整状态。在[小] 时调整状态下,当按键按下的时间长于 时,退出调整状态,时钟继续走动。 口按键在调时状态下可实现减 1 功能。使用方法: 按下 K1 按键, 如果按下时间小于 1秒, 就会进入省电模式, 这时数码管熄灭但是时钟仍然运行。如果按下 K1 按键时间大于 1 秒, 就会进入调分状态, 此时计时器停止走动等待操作, 这时中间的两位 00 会闪烁, 这时当按下 K1 按键时间小于 秒时, 时间信息就会加 1( 单位分钟); 若时间大于 秒, 这时左边的两位 00 会闪烁, 进入小时调整,在小时调整状态下按下 S6 按键时间小于 秒时,时间信息就会加 1( 单位小时), 如果按下按键时间大于 时, 就会退出调整状态,时钟继续走动。配件: 采用 PL2303 芯片的 USB 转 TTL
6位LED显示单片机控制电子钟计数器 来自淘豆网m.daumloan.com转载请标明出处.