51单片机实验报告
姓名:刘贤莺 班级:电信硕91 学号:
日期:2012年4月19日
目录
1 实验要求.............................................................................................. 3 2硬件环境与工作原理........................................................................... 4 2.1硬件环境........................................................................................ 4 2.2工作原理........................................................................................ 6 3 资源使用.............................................................................................. 9 3.1 RAM的使用情况......................................................................... 9 3.2 系统堆栈使用情况...................................................................... 10 3.3 寄存器使用情况.......................................................................... 11 3.4 定时器/计数器使用情况............................................................. 11 4 程序原理与框图................................................................................. 12 4.1 主函数.......................................................................................... 12 4.1.1 主函数框图............................................................................. 12
4.1.2 主函数代码........................................................................... 12 4.2 主时钟设置模块.......................................................................... 22 4.3 闹钟功能模块.............................................................................. 24 4.4 倒计时模块.................................................................................. 27 4.5 秒表模块...................................................................................... 32 4.6 日期滚动模块............................................................................... 34 4.7 日期设置模块............................................................................... 38 4.8 串口控制模块............................................................................... 42 4.9 键盘扫描读取子程序................................................................... 48 4.10 蜂鸣器控制子程序..................................................................... 51 4.11 LED扫描显示子程序................................................................. 56 5 操作说明............................................................................................ 60 6 调试与实际运行结果........................................................................ 63 7 总结与体会........................................................................................ 63
1 实验要求
在实验板上编程实现2012年日历和实时时钟: 1.时-分-秒(2位-2位-2位)显示
可通过键盘置入时间值(参照电子表设置时间工作模式)。
2.可通过按键控制在LED上从右向左滚动显示年_月_日3次,如: 2012_01_20空空2012_01_20
3.实现每日闹铃提醒功能,闹铃时间可用按键设置。闹铃采用提示音表示。
4.实现秒表功能。
5.实现定时器功能(预置定时时间,按键启动,倒计时,计到0响提示音。
6.设计实现音乐提示音。
7.设计串行通信程序,使两台实验系统同步显示。
2.硬件环境与工作原理
2.1硬件环境:
2.1.1单片机: SST 89E564RD
图2.1
2.1.2 外部设备:
1. 八位8段数码管
图2.2
2. 一个4x4非编码键盘
图2.3
2.2工作原理:
2.2.1引入选通信号的原因:
由于AT89C51单片机的引脚数目有限,需要采用引脚时分复用技术,因此引入AJ00~AJ07作为选通信号,用于选择当前的输入/输出设备。其中,AJ00~AJ07是A12~A14经过74138译码器后的输出信号(A15为译码器的使能信号)。
2.2.2 选通信号产生电路图:
图2.4
2.2.3 数码管位选择原理:
1. 输出位选信号指令:
MOV A,#SELECT ;SELECT为位选信号对应的数值 MOV DPTR,#8000H MOV @DPTR,A 2. 电路实现原理:
在指令“MOV DPTR,#8000H”中,8000H代表外部存
储器的地址,对应于A15=1,Ai=0(i=0~14)。由图2.4可知,此时74138译码器有效,由A=B=C=0,得:AJ00=0,AJ0i=1