验单片机时钟用内部时钟,模块如下:
复位电路为手动复位构成,模块如下:
f大工19春《单片机原理及应用》大作业题目及要求答案
各模块拼接组合,电路总体设计图如下
:
B程序设计B1程序总体设计
本实验用汇编程序完成
f大工19春《单片机原理及应用》大作业题目及要求答案
程序总的流程图如下:
主程序开始
显示星期,时,
分,秒是否有调转?
3
T0
定
闹
按
按
按
按
按
按
中
时
铃
1
2
3
4
5
7
断
到
到
键
键
键
键
键
键
秒,分,时等进位
闪烁提示
回主程序
响铃提示
显示日期并调整
按0键
时间调整
闹铃设置
定时设置
铃声测试
秒表模式
按0键
倒计时启动并显示
按0键
回主程序
按4键
按0键
回主程序
7键恢复
秒表暂停
按8键
秒表清零
按7键
f大工19春《单片机原理及应用》大作业题目及要求答案
B2程序主要模块
B21延时模块数码管显示动态扫描时,用到延时程序,这里使用延迟1ms的程序,此程序
需反复调除数码管动态扫描外,数码管的闪烁提示,以及音乐模块也用到了延时,只是延时的长短不同罢了,在此不再赘述。B22中断服务程序
本实验中,计数器T0T1中断都有运用,其中T0中断为时钟定时所用,T1中断用于音乐播放。T0的定时长度为001s工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为6553610000555360D8F0,装满定时器需要001s的时间,从而100次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。包括日期显示的功能也是如此。另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。
计数器T1工作于方式1,当调用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。其中断服务程序就是根据音调改变音乐方波输出口电平的高低,用语句CPL实现。
中断服务程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每月的天数的不尽相同。具体的逻辑判断方法为:首先,要考虑年份是不是闰年,闰年的判断方法是:将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是r