51单片机实验报告.doc
文本预览下载声明
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 数码管位选择原理:
输出位选信号指令:
MOV A,#SELECT ;SELECT为位选信号对应的数值
MOV DPTR,#8000H
MOV @DPTR,A
电路实现原理:
在指令“MOV DPTR,#8000H”中,8000H代表外部存 储器的地址,对应于A15=1,Ai=0(i=0~14)。由图2.4可知,此时 74138译码器有效,由A=B=C=0,得:AJ00=0,AJ0i=1 (i=1~7)。有由于执行指令“MOV @DPTR,A”时,/WR=0, 因 此,由图2.2可知74HC573有效,它将D0~D7信号保 持并输入 ULN2803,信号经过放大后,作为位选信号驱 动8位数码管。
2.2.4 数码管段选择原理:
输出段选信号指令:
MOV A,#SELECT ;SELECT为段选信号对应的数值
MOV DPTR,#9000H
MOV @DPTR,A
电路实现原理:
在指令“MOV DPTR,#9000H”中,9000H代表外部存储器的地址, 对应于A15=1,A12=1,Ai=0(i=0~11,13,14)。由图2.4可知,此 时74138译码器有效,由 A=C=0,B=1,得:AJ01=0,AJ0i=1 (i=0,2~7)。有 由于执行指令“MOV @DPTR,A”时,/WR=0, 因此,由图2.2 可知74HC573有效,它将D0~D7信号保持并作 为位选信号输入8位数码管。
2.2.5 4x4键盘控制原理:
由图2.3可知,AJ00=0时,可通过P00~P03向键盘发出扫描信号 或读取键盘信号。具体原理见后续代码。
3. 资源使用
3.1 RAM的使用情况
ALARM EQU 20H.0 ;闹钟设置标志
TIME_UP EQU 20H.1 ;倒计时时间到标志
SOUND_ON EQU 20H.2 ;声音开关标志
UART_EN EQU 20H.3 ;处于串口通信状态标志
IS_HOST EQU 20H.4 ;是否作为串口通信的主机 标志
HOUR_TP EQU 2AH
MIN_TP EQU 2BH
SEC_TP EQU 2CH
MUSIC_SELECT EQU 2DH
TIME_BUF EQU 2EH ;30~35H连续存放led显示数据
HOUR EQU 36H ;小时
MIN EQU 37H ;分钟
SEC EQU 38H ;秒
COUNT EQU 39H ;每0.05s 加 1
HOUR_ALARM EQU 3AH
MIN_ALARM EQU 3BH
SEC_ALARM EQU 4BH
SEC_OLD EQU 3CH ;存放旧的秒数
HOUR_DOWN EQU 3DH
MIN_DOWN EQU 3EH ;倒数时分钟数
SEC_DOWN EQU 3FH ;倒数时间秒钟数
VAR_HOUR EQU 40H
VAR_MIN EQU 41H
VAR_SEC EQU 42H
MS EQU 43H ;作用同SEC_OLD
YEAR0 EQU 44H
YEAR1 E
显示全部