单片机综合设计实验Word格式文档下载.docx
- 文档编号:18874533
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:21
- 大小:42KB
单片机综合设计实验Word格式文档下载.docx
《单片机综合设计实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机综合设计实验Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
ZLG7290B
驱动8个数码管显示时钟时间,管理按键并读取键值,和/INT1相连,引发中断。
PCF8563T
设置时钟时间,控制时间的运行,和/INTO相连,每一秒产生一次中断。
蜂鸣器
整点报时,错误提示
KEY1
控制显示时间或日期
5主程序中主要变量定义
变量名称
RAM单元/寄存器
功能
WSLA_8563
0A2H
PCF8563T写地址
RSLA.8563
0A3H
PCF8563T读地址
WSLA.7290
70H
ZLG729OB写地址
RSLA.7290
71H
ZLG7290B读地址
SS
50H
为闪烁程序传递参数
无
10H-1DH
准备向时钟芯片写入的值
07H
写入参数个数
00H
参数和控制命令缓冲区首地址
02H
从器件内部地址
03H
从器件写地址
30H
写入闪烁控制字使闪烁速度最快
6系统软件中各个子程序的功能描述
子程序名称
入口参数
出口参数
功能描述
INT.RCT
丿二
读取时间参数送数码管显
示,并在整点时刻报警
BUZZL
蜂鸣器以500HZ频率发声
BUZZH
蜂鸣器以1500HZ频率发声
ADJUST
20H-26H单元
将20H-26H中从PCF8563中读出的7个参数无关位屏蔽掉
CHAIFEN
28H-2FH单元
38H-3FH单元
将20H-26H单元的参数拆分并在查表后送28H-2FH,38H-3FH
CF
累加器A
R4(H)R3
将A中的数据拆分为两个独立的BCD码并査表结果存于R4R3
INT_7290
修改时间、回显、纠错、闪
烁
FLASH
上
控制闪烁位置
RDKEY
读键值子程序
WR8563
10H-1DH单元
向日历芯片写入时间参数
WRNBYT
多字节写操作
RDADD
多字节读操作
MOV1BH・#OOH;
设圧日报警
8程序清单
MOV1CH.#OOH;
设龙星期报警
SDABITP1.0
MOV1DH.#83H;
设立CLKOUT的频率,
SCLBITP1.1
1秒周期方波
WSLA_8563EQU0A2H:
PCF8563T口地址
MOVR7.#0EH;
RSLA_8563EQU0A3H
MOVR0.#10H渗数与控制命令缓冲区
WSLA_7290EQU70H
亿LG7290B口地址
首地址
RSLA_7290EQU71H
MOVR2.#00H;
从器件内部子地址
MOVR3,#WSLA_8563;
准备向PCF8563T
ORG8000H
写入数据串
UMP8Q40H
LCALLWRNBYT;
写入时间,控制命令到
ORG8003H
UMPINT.RCT
SETBEA;
启动总中断
ORG8013H
SETBEX0;
启动INT_RCT(INT_O)
UMPINT_7290
SETBITO淀时器0下降沿有效
SETBEX1;
启动INT_7290(INT_7290)
ORG8040H
SETBIT1;
泄时器1下降沿有效
START:
MOVSP.#60H
SJMPS;
等待中断
CLRP1.7
:
ZLG7290复位
・*****$**********************************
LCALLDELAY
;
中断服务子程序INT_RCT
SETBP1.7
・**************##$$*****#******
・****************************$$******
INT_RCT:
MOVR7.#07H;
数据块字节数
设左pdf8563tdc时间和命令参数(参数和控制
MOVR0.#20H;
内部数拯块首地址
命令缓冲区10HJDH)
MOVR2.#02H;
内部寄存器首地址
MOVR3.#WSLA_8563:
向8563写地址
MOV10H・#00H
;
启动控制字
MOVR4.#RSLA_8563;
从8563读地址
MOV11H,#1FH
设苣报警及左时器中断
LCALLRDADD;
调读数据子程序,
MOV12H.#50H
秒单元
将读出的数据存放于单片机20H-26H中
MOV13H.#59H
汾单元
MOVA.21H;
判断是否为59分
MOV14H.#08H
小时单元
CJNEA.#59H・NEXT1
MOV15H.#01H
日期单元
MOVA.20H;
判断是否为55秒
MOV16H.#01H
星期单元
CJNEA・#55H.NEXT2
MOV17H.#01H
月单元
LCALLBUZZL
MOV18H.#10H
年单元
SJMPNEXT
MOV19H・#00H
设定分报警
NEXT2:
CJNEA.#56H.NEXT3
MOV1AH,#OOH
设左小时报警
SJMPNEXT
SETBTRO
NEXT3:
CJNEA・#57H.NEXT4
LOOPL:
JNBTF05
CLRTFO
MOVTL0.#66H
NEXT4:
CJNEA.#58H.NEXT5
MOVTH0J0FCH
CPLP3.4
驱动蜂鸣器
DJNZR7.LOOPL
NEXT5:
CJNEA・#59H.NEXT
SETBP3.4
POP07H
RET
NEXT1:
CJNEA.#OOH.NEXT
BUZZH:
PUSH07H
MOVA.20H
MOVTMOD.#01H
CJNEA.#OOH.NEXT
MOVTLO.frOCDH
高频1500HZ
LCALLBUZZH
MOVTHOJOFEH
NEXT:
LCALLADJUST;
调时间调整子程序
MOVR7.#100
LCALLCHAIFEN;
调拆分子程序,将
20H-26H中的参数分别存28H-2FH38H-3FH中
LOOPH:
JNBTF0.$
MOVR7.#O8H
MOVR2・#10H
MOVR3,#WSLA_7290
JNBP1.2.YEARS;
使用戸1・2控制显示
内容
DJNZR7.LOOPH
MOVR0.#38H;
显示时分秒
SJMPDISP
YEARS:
MOVR0.#28H;
显示年月日
DISP:
LCALLWRNBYT;
调7290显示子程序
・************************************
JNBP32$
键盘修改中断服务程序INT_7290
RETI
・******$*********************************
・******************************“********
INT_7290:
PUSHOOH
BUZZ
PUSH02H
PUSH03H
BUZZL:
PUSH04H
MOVTMOD,#01H;
方式1
PUSH07H
MOVTL0.#66H;
低频500HZ
PUSHACC
MOVTH0,#0FCH
PUSHPSW
MOVR7.#50
MOVR7.#O7H
参数和控制命令缓冲区
MOVR2,#02H;
从器件内部从地址
MOVR3.#WSLA_8563;
准备向8563写入数据串
准备从8563读取数据串
LCALLRDADD
MOV12H.20H;
写入秒单元
MOV13H.21H;
写入分单元
MOV14H.22H;
写入时单元
RE:
JBP3.3,$;
以査询方式等待下一次按键
LCALLRDKEY;
读取键值
CJNEA・#OAH.BKEY;
判断是否为A键
AKEY:
MOV51H.#80H
LCALLFLASH
JBP3・3$
LCALLRDKEY
CJNEA.#03H.HOUR1;
判断键入的数是否满足小时十位的要求
HOUR1:
JNCERROR1;
若键值大于2,则报错
SWAPA;
将键值处理成小时数据的十位
ANL14H.#0FH
ORL14H,A;
小时数拯的十位生成
LCALLWR8563;
写入8563
LCALLCF;
拆分,査表,R4(H),R3(L)
MOV3FH.R4;
回显
MOVR7,#01H
MOVR0,#3FH
MOVR2,#17H
MOVR3、#WSLA_7290
LCALLWRNBYT
LJMPHOUR2
ERROR1:
LCALLBUZZH;
报错,返回重新键入
LJMPAKEY
HOUR2:
MOV51H.#40H
JBP3・3,$
CJNEA・#OAH.STEP1;
判断键值是否满足小时个位的要求(小于10)
STEP1:
JNCERR0R2
ANL14H.#0F0H
ORL14H,A
MOVAJ4H
CJNEA,#24HJJJ;
判断小时的值是否满足要求(小于24)
JJJ:
JNCERROR2
LCALLWR8563
LCALLCF拆分,査表,R4(H),R3(L)
MOV3EH.R3;
MOVR7.#01H
MOVR0.#3EH
MOVR2.#16H
MOVR3.#WSLA_7290
MOV51H.#OOH;
停止闪烁
UMPDOWN
ERR0R2:
LCALLBUZZH
UMPHOUR2
BKEY:
CJNEA・#0BH.CKEY
MOV51H.#10H
CJNEA,#O6H,MIN1
MINI:
JNCERROR3
SWAPA
ANL13H,#0FH
ORL13H.A
LCALLCF;
拆分,査表,R4(H),R3(L)
MOV3CH.R4;
MOVR0,#3CH
MOVR2.#14H
LJMPMIN2
ERROR3:
LJMPBKEY
MIN2:
MOV51H.#08H
CJNEA・#0AH,STEP2
STEP2:
JNCERROR4
ANL13H.#0F0H
ORL13H.A
MOV3BH.R3;
MOVR0.#3BH
MOVR2,#13H
MOV51H.#OOH
LJMPDOWN
ERROR4:
CKEY:
CJNEA.#OCH.ERROR
MOV51H.#02H
CJNEA,#O6H.SEC1
SEC1:
JNCERROR5
ANL12H.#0FH
ORL12H,A
拆分,查表,R4(H),R3(L)
MOV39H.R4;
MOVR0.#39H
MOVR2JH1H
UMPSEC2
ERROR5:
UMPCKEY
SEC2:
MOV51HJ01H
CJNEA・#0AH.STEP3
STEP3:
JNCERROR6
ANL12H.#OFOH
MOV38H.R3;
MOVRO,#38H
MOVR2.#10H
ERROR6:
LJMPSEC2
ERROR:
LCALLBUZZH;
若键入数不为A、
B、C中的一个,则报错
LCALLBUZZL
DOWN:
CLRIE1
CLRIEO
POPPSW
POPACC
POP04H
POP03H
POP02H
POPOOH
・********$$#*********************总总
读键值子程序(岀口参数累加器A——获取到的键值)
RDKEY:
MOVRO.#1FH
MOVR2.#01H
MOVR4.#RSLA_7290
MOVAJFH
DECA
向日历芯片写入时间参数子程序
将RAM的10HJDH中的时间参数(含控制字)
写入芯片的00H-0DH单元
・******奪*********************************
WR8563:
MOVR7,#0EH
MOVR0.#10H
MOVR2.#00H
MOVR3、#WSLA_8563
・**************枠***********************$
闪烁子程序
・********************#*$$****************
FLASH:
PUSHOOH
MOV50H.#70H
MOVR7.#O2H
MOVR0.#50H
MOVR2.#O7H
POP07H
POP03H
POP02H
POPOOH
・****************************************
各子程序
CHAIFEN:
PUSHQ4H
LCALLCF
MOV38H.R3
MOV39H.R4
MOV3AH.#O2H
MOVA,21H
MOV3BH.R3
MOV3CH.R4
PUSHDPL
MOV3DH,#O2H
MOVDPTR、#LEDSEG
MOVA.22H
MOVR2.A
ANLA,#0FH
MOV3EH.R3
MOVCA.@A+DPTR
MOV3FH.R4
MOVR3、A
MOVA,23H
MOVA,R2
MOVA.R3
ORLA.#01H
MOVCA,@A+DPTR
MOVR3,A
MOVR4.A
MOV28H.R3
POPDPL
MOV29H.R4
POPDPH
MOVA,25H
LEDSEG:
DB
0FCH.60H.0DAH.0F2H66HQB6H.0BEH.0E4H
MOV2AH,R3
0FEH,0F6H.0EEH,3EH,9CH.7AH.9EH,8EH
MOV2BH.R4
MOVA,26H
将20H-26H中从PCF8563T中读岀的7个字节
参数的无关位屏蔽掉
ADJUST:
PUSHACC
MOVA,20H
MOV2CH.R3
ANLA,#7FH
MOV2DH.R4
MOV20H.A
MOV2EH.#0FCH
MOV2FH.#0DAH
POPQ4H
MOV21H.A
MOVA,22H
ANLA,#3FH
MOV22H.A
CF:
PUSH02H
PUSHDPH
MOV23H.A
MOVA,24H
ANLA.#07H
MOV24H.A
ANLA,#1FH
MOV25H.A
・***********************$**************$$9
延时子程序
・*****************************$**********
DELAY:
PUSH01H
MOVR0.#00H
DELAY1:
MOVRL#01H
DJNZR15
DJNZR0.DELAY1
POPOIH
・****$$$**************$$$*****$#*****
I2C子程序
END
9系统调试运行结果说明、分析所出现得问题,设计体会与建议
硬件环境:
DP-51PR0C单片机综合仿真实验台,TKSMonitor51仿真器。
软件环境:
PC及Keil软件。
结果说明:
可通过8563日历显示芯片将时间显示在数码管上,按KEY1键可显示日期,按A、B、C键可分别改变时、分、秒,按错键时会有警告音提醒并要求重新输入。
可进行整点报时。
调试中出现的问题及解决方法:
(1)显示两位小时、两位分钟和两位秒参数,相互之间有分隔符号功能:
在该环节中,利用书上的参考程序,实现每Is进入一次中断实现读取时间参数,并进行拆分显示等操作。
最后能够在数码管上显示出初
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 综合 设计 实验