本报告为《微机接口与汇编语言》课程设计项目,主要内容是基于微处理器和汇编语言开发一款电子闹钟。通过硬件电路设计和软件编程实现时间显示、设定及闹钟提醒功能,旨在提升学生在嵌入式系统领域的实践能力与创新思维。
利用汇编语言实现一个可以在显示器上显示时、分、秒的电子时钟,并能够提供整点报时功能。
基本要求如下:
1. 设计一个具有显示小时、分钟和秒钟的基本电子时钟。
2. 在达到整点或预设报警时间的时候,以不同音乐进行报时。用户可以自行设定闹铃的时间。
3. 实物演示需要解释程序原理与设计思想,并确保界面清晰易懂。
4. 程序运行稳定且界面整洁。
提高要求:
1. 设计一个具有指针式钟表的电子时钟,包括小时、分钟和秒钟的手。圆盘上均匀分布着60根刻度线,每个小时的位置以不同颜色长刻度表示,并在表盘外标记拉丁数字。
2. 指针绘制:将屏幕设置为图形显示方式,通过画点、直线及圆形等基本操作完成钟面的构建。计算圆周上各刻度线段两端坐标是关键步骤。
3. 秒针、分针和时针的转动:每隔一定时间,在新位置重新描绘指针,并用背景色覆盖旧位置以实现动态效果。
4. 音乐播放:使用CPU支持的8254与8255外设,通过汇编程序改变PB0和PB1口的状态来驱动扬声器发出特定频率的声音。同时利用8254的计数器控制声音频率的变化,以实现音乐效果。
根据需求分析,本次设计的主要模块包括:获取并显示当前时间、码制转换、设定闹钟报时时间和不同音调的报警声等部分。其中最难的部分是绘制指针式钟表和动态走动功能,这部分可以单独作为一个高级扩展内容来处理。
1. 时间获取可以通过DOS系统调用2CH功能实现,该功能会返回小时、分钟及秒钟的信息,并以二进制形式保存。
2. 闹铃鸣叫主要依赖于8254定时器的第二个计数器和8255接口中的PB0与PB1引脚来设置。
3. 钟表显示及其指针绘制:通过图形画点操作实现,利用在固定区域内反复刷新屏幕的方式完成动态效果。