51单片机实验报告(2)

2018-11-19 21:45

(i=1~7)。有由于执行指令“MOV @DPTR,A”时,/WR=0, 因此,由图2.2可知74HC573有效,它将D0~D7信号保 持并输入ULN2803,信号经过放大后,作为位选信号驱 动8位数码管。

2.2.4 数码管段选择原理:

1.输出段选信号指令:

MOV A,#SELECT ;SELECT为段选信号对应的数值 MOV DPTR,#9000H MOV @DPTR,A 2.电路实现原理:

在指令“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 EQU 45H MONTH EQU 46H DAY EQU 47H MUSIC1 EQU 48H MUSIC2 EQU 49H MUSIC3 EQU 4AH

DATE_BUF EQU 60H ;以下连续12字节为日期显示数据

3.2 系统堆栈使用情况

主程序将SP设置为50H,在50H到60H之间的16字节为堆栈区,由于此工程设计的函数调用层次最多不超过3层且参数主要通过内存变量传递,因此,不会出现堆栈溢出的情况。

此处,更好的方案应该是把DATE_BUF前移并把堆栈放在

DATE_BUF之后。但是,实际操作时发现如果堆栈区包含62H以后的区域,就会出现一个严重的bug,由于这个bug一直没法解释和解决,我只好采用了现在这个方案。

3.3 寄存器使用情况:

1. 累加器A

2. 寄存器B

3. 00区的R0~R7寄存器,01~03区的寄存器不曾使用。

3.4 定时器/计数器使用情况

整个工程用到了定时器T0和T1。

其中T0用于主时钟的计时,优先级最高,不可被软中断中断,

且不可被软中断屏蔽。

T1用于控制播放音乐时音调的频率和控制串口通信时 的波特 率。

4 程序原理与框图

4.1 主函数

4.1.1 主函数框图 T0中断服务: 4.1.2 主函数代码:

;*************************************主函数***********************************************; ;***作者:刘贤莺 ;***日期:2012/2/26 NAME MAIN_FUNC

EXTRN CODE (GET_KEY,BEEP,SET_DOWN_TIMER,CONVERT,DISP,SET_TIME,SET_ALARM_TIME) EXTRN

(COUNTER,DATE_ROLLER,MUSIC,INT_T1,UART_INT,UART_HOST,UART_SLAVE,SET_DATE) 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

CODE

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 EQU 45H MONTH EQU 46H DAY EQU 47H MUSIC1 EQU 48H MUSIC2 EQU 49H MUSIC3 EQU 4AH

DATE_BUF EQU 60H ;以下连续12字节为日期显示数据 ;蜂鸣器引脚定义 BUZZER EQU P1.6 PROG SEGMENT CODE CSEG AT 0 ORG 0H JMP MAIN ORG 0BH JMP INT_T0 ORG 001BH

JMP INT_T1 ;跳转至T1中断服务程序 ORG 23H JMP UART_INT CSEG AT 0050H RSEG PROG ;主程序; MAIN:

MOV SP,#50H

LCALL INIT ;初始化变量 LCALL INIT_TIMER ;设置定时器 LCALL INIT_SHOW

;倒数时分钟数 ;倒数时间秒钟数

;无穷循环 LOOP:

MOV VAR_HOUR,HOUR MOV VAR_MIN,MIN MOV VAR_SEC,SEC

LCALL CONVERT ;先传递参数再调用


51单片机实验报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:马斯洛需求理论在华为公司的应用案例

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: