单片机电子时钟主要功能:1、秒表2、时间调整3、数字显示4、闹铃设置abcdefgdp时间显示区12345678C730pC830p19X1键盘控制区12MHzU1核心控制区P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617abcdefgdp12345678R13XTAL118XTAL29Q1PNPRST010203040506293031外设闹铃LS1PSENALEEA010203040506070812345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51SPEAKER秒表调时调分显时闹铃暂停电子信息0701 王勇贵曹文忠刘志强原娟慧 图4-44 闹铃运行图
4.5电路功能使用说明
(1) 各个控制键的功能:可对时间进行校准调节(只能加1);按下设置键数字时钟进入闹钟设置状态,设置闹钟的时间;时加1、分加1键是在校准时间时或设置闹钟时间对小时数或分钟数调节而设置的;按下秒切换键就可以进入秒表模式,同时秒表也开始计时,按下秒表暂停、复位键就暂停、归零,如果要重新对秒计时则可以按秒表开始、复位;清零键可以对闹钟清零。
(2) AT89C51单片机,通过编写程序对数码显示进行控制。 (3) 八个7段数码管显示时钟和秒表信号
第五章 软件总体设计方案
5.1 主程序流程图
软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。如图5-10:
开始
是否设定参数 图3-1 主程序流程图 执行时钟秒表 闹铃设定程序 定时器及中断定时器初始化
N Y 执行显示程序
5.2总中断程序流程
恢复初值保护 Tcount加1 Tount1=10
秒数值
time1.second加
1second归零
返回主程序 执行闹钟程序p0.0=1 分数值time..minute加判断时间与闹钟时Time1.second=60? 1time.second归零 Time.minute=60? 闹钟程序是否行完全 实数值time1.boun加1time1.mintet归零
时数值time1.hour归零 Time1.bour>23
图5-20 中断流程图
时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时。如上图图5-20。 A. 秒表中断程序流程
秒表功能通过另一个程序来实现。通过保护主程序的数据来进行秒表功能。程序中需要设置秒表的具体显示方法。如图5-3:
10ms计数器加1恢复初值保护
N Ms>100?
秒计数器加1,10ms计数器归零,即sec++,ms=0
N
输出字码,中断结束,返回上级主程序 Sec>60? 恢复初值保护 分计数器加1,秒计数器归零,即minit++,sec=0 图5-3秒表中断程序流程图
B.按键程序流程
图5-4为时钟和闹钟的调节,程序中通过扫描来判断按键是否按下进行时间和闹钟的调节。
程序初始化 判断时i加键判断标志输出时钟十个位加一 Dat1[6]>9 是否按下 位是否为输出时钟时十 判断分加键是否按下 输出闹钟时个位加一,延时 Alarms[6]>9 位加一 输出闹钟时十位判断标志是输出闹钟分个位加一,加一 否为零 Dat1[7] Alarms【3】>0 输出时钟分个位加一,延时 Alarms[7]>2 时十位归零 输出闹钟时分位加一 Dat1[3]>9 时十位归零alarms【7】=0 Alarms[4]>2 输出时钟十位加一 Dat1[4]>2 分十位归零 分时位归零alarms[4]=0 图5-4按键程序流程图