单片机自动打铃系统设计
本设计任务是使用单片机器件设计一台自动打铃系统,满足基本要求和发挥部分的所有功能。该系统应具有基本计时和显示功能、设置当前时间功能、基本打铃功能、整点报时功能、调整起床铃和熄灯铃时间功能、上午四节课的上下课打铃功能等。同时,系统还应具有特色和创新自选功能。
在设计中,我们首先需要设计一个单片机最小硬件系统,外围电路包括设置键盘、LCD或LED的显示屏。然后,我们需要进行软件设计,利用单片机系统时钟设计一个高精度的内部时钟系统。接着,我们需要设计一个24小时时钟,并设计若干定时功能。我们需要设计打铃执行机构,完成自动打铃功能。
在系统设计中,我们使用了51单片机作为核心控制器,使用C语言编写程序。程序名称为51单片机自动打铃系统。该程序实现了24小时制电子钟,8位数码管显示,显示时分秒。系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮。调整选择键SET_KEY、增加键ADD_KEY、减少键DEC_KEY分别用于选择调整位、增加选中位和减少选中位。如果长按ADD_KEY或DEC_KEY,系统将进行调时快进。此时,停止闪烁。如果选中位是秒,则按增加键或减少键都是将秒清零。强制打铃键DALING_KEY用于强制打铃或强制关闭铃声。
在程序中,我们定义了蜂鸣器(电铃)控制信号输出口BEEP EQU P3.7。我们还定义了定时器0中断入口地址ORG 000BH。程序入口地址为ORG 0000H。
在初始化部分,我们关闭蜂鸣器(电铃),使用一个bit位用于调时闪烁标志,使用一个bit位用于产生脉冲用于调时快进时基,关闭响铃方式1标志和响铃方式2标志。然后,我们初始化秒基准时钟源的产生、秒寄存器、分寄存器和时寄存器。
在选择键处理子程序中,我们确认用户长按后,重新设定起始值,加快调时快进速度。我们还设计了选择键处理子程序,用于处理选择键事件。
在程序中,我们使用了多个寄存器来存储时间信息,例如秒寄存器、分寄存器和时寄存器。我们还使用了定时器0中断来实现时钟功能。
本设计任务实现了一个完整的单片机自动打铃系统,满足了基本要求和发挥部分的所有功能。该系统具有良好的实时性和可靠性,可以应用于各种自动打铃系统中。