北京交通大学单片机实验报告-电子时钟单片机课程设计实验报告电子时钟电子时钟一、实验目的学习8051定时器时间计时处理、按键扫描及LED数码管显示的设计方法
二、设计任务及要求利用实验平台上4个LED数码管,设计带有闹铃功能的数字时钟,要求:1
在4位数码管上显示当前时间
显示格式“时时分分”2
由LED闪动做秒显示
利用按键可对时间及闹玲进行设置,并可显示闹玲时间
当闹玲时间到蜂鸣器发出声响,按停止键使可使闹玲声停止
拓展:使数字时钟的闹铃为音乐
(电子音调发生器)三、硬件设计1
显示模块为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要数据锁存器等较多硬件,可采用动态显示法实现LED显示
方法是将所有位的段选线相应并联,由一个8位I/O口控制,从而形成段选线的多路复用,同时各位的公共端分别由相应的I/O线控制,实现分时选通
硬件电路图如下,图中10k电阻起到限流作用;三极管起到驱动数码管的作用
若不使用三极管,数码管发光微弱
闹铃模块闹铃声由交流蜂鸣器产生,电路图如下
7输出不同频率的方波,
蜂鸣器便会发出不同的声音
整体硬件电路图四、软件设计1
计时模块利用单片机定时器0完成计时功能
定时器0计时中断程序每隔1ms中断一次并当作一个计数,每中断一次计数加1,当计数1000次时,则表示1s到了,秒变量加1
当秒变量达到60时,秒变量清零同时分变量加1
分变量达到60时,分变量清零同时时变量加1
当时变量达到24时,时变量清零
由于实验要求由LED闪动做秒显示,因此每隔0
5s即计数500次时,P1^1(驱动LED灯)取反一次,从而实现LED灯闪动一次为1s,秒变量加1
该模块流程图如下:2
显示模块为在各位LED上分别显示不同的字符,需要采用循环扫描显示的方法,即在某一时刻只选通一条位选线,并输出该位的字段码,其余位则