MCS51综合系统设计电子钟.docx
- 文档编号:30118723
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:36
- 大小:175.41KB
MCS51综合系统设计电子钟.docx
《MCS51综合系统设计电子钟.docx》由会员分享,可在线阅读,更多相关《MCS51综合系统设计电子钟.docx(36页珍藏版)》请在冰豆网上搜索。
MCS51综合系统设计电子钟
题目:
基于PCF8563、ZLG7
290的时钟系统设计
1设计要求
要求:
(1)利用I2C通信程序、读取PCF8563T日历芯片的时间参数;
(2)将时间数据通过ZLG7290的8位数码管上显示;
(3)实现整点报时(五声)功能;
(4)通过键盘修改时间。
修改时间时:
①对应的数据要有闪烁效果;②应当有“回显”功能(即时显示修改的数据);③输入数据时要有“纠错”功能。
实现的功能:
(1)正常的日历、时钟功能(读取日历芯片的时间参数,及数码管显示)
(2)闹种模式与时钟模式、日期模式之间的切换
(3)时间、日期的修改功能,带有闪烁、回显功能
(4)闹钟的时间设定功能,带闪烁、回显功能
(5)整点报时功能、闹钟响铃功能
(6)修改时输入报错功能
2设计分析及系统方案设计
设计分析:
实验系统的结构功能十分的复杂,首先应该根据设计任务设计程序的流程图,有一个整体的思路,然后在调试的过程中一步步地去完善。
采用模块化的思想,将整个设计任务模块化。
对单片机的存储单元进行分配、以满足各个程序模块的需求并做到存储资源的优化、合理地使用。
再需要考虑的便是系统硬件资源的使用问题,比如如何使用MCS-51的端口资源,如何使用实验系统中的按键资源,怎样才能使得硬件资源得到更好的利用,在使用相同按键数目的条件下,怎样设计程序结构才能使系统操作更加人性化。
方案设计:
整个程序采用功能模块化的思想,即具有相同功能的部分程序归为同一个子函数,以便多次使用时的调用,这样可以使得程序简介、可读性强、结构明确。
实验中主程序采用无限次的循环结构,即若没有中断操作,程序使实验系统处于动态停机的状态。
实验程序有两个中断服务子程序,其中中断服务子程序INT_7290主要用于按键引起中断的键值处理,即相应功能键、数字键的处理,每当有按键操作时,便可以进入此中断程序。
INT_RCT中断服务子程序是由秒脉冲引起的,即每秒进入此中断一次,此中断服务子程序主要实现从日历芯片中读取的时间参数的显示处理,以及根据INT_7290中设定的标志进行相应的模式显示。
实验程序中还有I2C通信的各个子程序,这些子程序都已经模块化了,明确出入口参数后,可以直接调用。
MCS-51的P1口作为I2C的通信以及闹铃端口,P3口主要作为中断口使用。
3系统电路图
4外围接口模块硬件电路功能描述
(1)ZLG7290B:
ZLG7290B是广州周立功单片机发展有限公司自行设计的数码管动态显示驱动、建键盘扫描管理芯片。
能够驱动8位共阴极结构的LED数码管或64位独立的LED,同时还能扫描管理多达64个按键(S1-S56、F0-F7)的扫描识别。
其中8只健(F0-F7)可以作为功能键使用就像电脑键盘上的Ctrl、Shift、Alt键一样。
另外ZLG7290B内部还设置有连击计数器,能够使某些按键按下后不松手而连续有效。
接口采用I2C结构。
该芯片为工业级芯片,被广泛运用于仪器仪表等工业测量领域的电路设计中。
(2)PCF8563T:
PCF8563T是低功耗CMOS实时时钟/日历芯片,可以通过读取它的内部时间参数并进行处理后进行时间的显示,具有一个可编程的时钟输出,一个中断输出和掉电检测电路,与外部主控器之间通过I2C总线连接。
最大总线速度为400KHZ。
每次对其的读写操作内部的地址寄存器都会自动产生增量。
(3)蜂鸣器:
送入一定频率的方波信号,产生相应频率的声波信号。
由P1.3口的不断取反实现发声。
5主程序中主要变量定义
RAM/寄存器
功能
10H-1DH
时间参数的初始设定,以及后期时间参数修改的内存
20H-26H
从8563中读取的7个时间参数(BCD码),秒、分、时、日、星、月、年
27H(D0-D7:
38H-3FH)
标志位,时、分、秒修改,1、2、3次按键,闹钟,日期
28H-2FH
日、月、年、世纪(28H日低位,29H日高位),2FH亦用作闪频设置
38H-3FH
秒、分、时(3AH、3DH短划线)字型码
40H
存放键值
41H,42H
控制数码管的闪烁位
50H-52H
闹钟设定时间的存储单元
53H-54H
计数标记单元(用于实现闹钟与日期功能键的双次按键退出所对应模式的功能?
R7
I2C程序中字节数
R0
I2C程序中源数据块首地址
R2
I2C程序中从器件内部子地址
R3
I2C程序中器件地址(写)
R4
I2C程序中器件地址(读)
6系统软件中各个子程序的功能描述
(注:
I2C的相关子程序未列入在内)
子程序名称
入口参数
出口参数
功能描述
INT_7290
各标志及相关RAM单元值
键值处理,标志设定
INT_RCT
各标志及相关RAM单元值
数码管显示控制
RDKEY
40HRAM单元
读取键值
CHANGE
R0,R2
改变8563内时间参数
RING1
800HZ铃声
RING1
1600HZ铃声
CHAFEN
20H-26H
28H-2FH,38H-3FH
BCD码转字型码
CF
A
R4,R3
将A中的数据拆分为两个独立的
ADJUST
20H-26H
20H-26H
将20H-26H中从PCF8563中读出的7个字节参数的无关位屏蔽掉
DELAY
延时
7主程序程序流程图
1
0
0
否
图1 按键中断子程序流程图
图2 秒中断服务子程序流程图图3主程序流程图
8程序清单
;--------------------------------------------------------------------
;实验台上的按键功能:
;S1-S10:
0-9数字键
;S11:
调时(年)键
;S12:
调分(月)键
;S13:
调秒(日)键
;S14:
确认键
;S15:
日历模式键
;S16:
闹钟模式键
;--------------------------------------------------------------------
SDABITP1.0;定义I2C信号引脚
SCLBITP1.1
WSLA_8563EQU0A2H;PCF8563口地址
RSLA_8563EQU0A3H
WSLA_7290EQU70H;ZLG7290口地址
RSLA_7290EQU71H
ORG8000H
LJMP8030H
ORG8003H
LJMPINT_RCT
ORG8013H
LJMPINT_7290;键盘扫描
ORG8030H
START:
MOVSP,#60H
CLRP1.7;7290复位
LCALLDELAY
SETBP1.7
MOV27H,#00H;标志位
MOV52H,#11H;定时存储空间初始化
MOV51H,#20H
MOV52H,#11H
MOV53H,#00H;第几次按日期功能键的计数器
MOV54H,#00H;第几次按闹钟功能键的计数器
;*****************************************************************
;设定PCF8563的时间和命令参数(参数和控制命令缓冲区10H-1DH)
;*****************************************************************
MOV10H,#00H;启动控制字
MOV11H,#1FH;设置报警及定时器中断
MOV12H,#50H;秒单元
MOV13H,#59H;分单元
MOV14H,#10H;小时单元
MOV15H,#30H;日期单元
MOV16H,#03H;星期单元
MOV17H,#07H;月单元
MOV18H,#10H;年单元
MOV19H,#00H;设定分报警
MOV1AH,#00H;设定小时报警
MOV1BH,#00H;设定日报警
MOV1CH,#00H;设定星期报警
MOV1DH,#83H;设定CLKOUT的频率(1S)
;*******************************************************************
MOVR7,#0EH;写入参数个数(时间和控制字)
MOVR0,#10H;参数和控制命令缓冲区首地址
MOVR2,#00H;从器件内部从地址
MOVR3,#WSLA_8563;准备向PCF8563T写入数据串
LCALLWRNBYT;写入时间、控制命令到8563
MOV2FH,#00H;写入闪频控制
MOVR7,#01H
MOVR0,#2FH
MOVR2,#0CH
MOVR3,#WSLA_8563
MOVR4,#RSLA_8563
LCALLWRNBYT
SETBEA;开中断
SETBEX0;时钟秒中断
SETBIT0
SETBEX1;按键中断
SETBIT1
SETBPX1
SJMP$;等待中断
;*******************************************************************
;按键中断服务程序INT_7290(INT1)处理按键操作
;*******************************************************************
INT_7290:
PUSH00H
PUSH02H
PUSH03H
PUSH04H
PUSH07H
PUSHACC
PUSHPSW
PUSHDPH
PUSHDPL
LCALLRDKEY;取健值(返回键值参数于40H中)
MOVA,40H
CLRC
CJNEA,#0EH,LK;判断是闹钟功能键还是日期功能键
LK:
JCGH2
CLRC
CJNEA,#0FH,GH
GH:
JCGH1
SETB3EH;闹钟模式标志
MOVA,#00H
CJNEA,54H,NE0;判断是否是第一次按F键
NE0:
JNCGHH1
CLR3EH
MOV54H,#00H;标志清零
SJMPGH2
GHH1:
INC54H
SJMPGH2
GH1:
SETB3FH;日期模式标志
MOVA,#00H
CJNEA,53H,PNE;判断是否第一次按E键
PNE:
JNCGHH
CLR3FH
MOV53H,#00H;标志清零
SJMPGH2
GHH:
INC53H
GH2:
JB3BH,FLAG;进入中断次数的标志
JB3CH,T33
JB3DH,LAB_1
;********************************************************************
;第一次按键小时、分、秒闪烁控制
;********************************************************************
MOVA,40H;取健值
CJNEA,#0AH,NEXT;时(年)位闪烁
SETB38H;(27HD0位)修改时位标志
SETB3BH;进1次数标志
JNB3FH,KX
MOV42H,#30H
SJMPKX1
KX:
MOV42H,#0C0H;控制闪烁的数码管(在秒中断程序中使用)
KX1:
LJMPFLAG0
NEXT:
CJNEA,#0BH,NEXT0;分(月)位闪烁
SETB39H
SETB3BH
JNB3FH,KX2
MOV42H,#0CH
SJMPKX3
KX2:
MOV42H,#18H
KX3:
LJMPFLAG0
NEXT0:
CJNEA,#0CH,AA;秒(日)闪烁
SETB3AH
SETB3BH
MOV42H,#03H
AA:
LJMPFLAG0
;*******************************************************************
T33:
LJMPXT3;跳板
;*******************************************************************
;第二次按键
;*******************************************************************
FLAG:
JNB38H,NEXT1;时(年)十位
MOVA,40H
JNB3FH,KXX;判断是修改年还是时
MOVR6,A
SWAPA
ANL18H,#0FH
ORL18H,A
MOVR0,#18H
MOVR2,#08H
LCALLCHANGE;修改8563内部年份参数
SETB3CH;二次进入标志
CLR3BH;清第一次进入标志
MOV42H,#10H;修改闪烁位
LJMPXXX
LAB_1:
LJMPLAB;跳板
KXX:
CLRC;判断是否越界
CJNEA,#03H,LAL
LAL:
JNCLAL0
MOVR6,A;键值处理
SWAPA
ANL14H,#0FH
ORL14H,A
JNB3EH,JK
MOV52H,14H
JK:
MOVR0,#14H
MOVR2,#04H
LCALLCHANGE;修改8563内部时位参数
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV3FH,40H;修改MCS-51内RAM显示参数
SETB3CH;二次进入标志
CLR3BH;清第一次进入标志
MOV42H,#40H;修改闪烁位
SJMPXXX
LAL0:
LCALLRING1
XXX:
LJMPFLAG0
XT3:
LJMPNEXT3;跳板
NEXT1:
JNB39H,NEXT2;分(月)十位
MOVA,40H
JNB3FH,KXX0
MOVR6,A
SWAPA
ANL17H,#0FH
ORL17H,A
MOVR0,#17H
MOVR2,#07H
LCALLCHANGE
SETB3CH
CLR3BH
MOV42H,#04H
LJMPBA2
KXX0:
CLRC
CJNEA,#06H,BA0
BA0:
JNCBA1
MOVR6,A
SWAPA
ANL13H,#0FH
ORL13H,A
JNB3EH,JK1
MOV51H,13H
JK1:
MOVR0,#13H
MOVR2,#03H
LCALLCHANGE
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV3CH,40H
SETB3CH
CLR3BH
MOV42H,#08H
SJMPBA2
BA1:
LCALLRING1
BA2:
LJMPFLAG0
NEXT2:
MOVA,40H;秒(日)十位
JNB3FH,KXX1
MOVR6,A
SWAPA
ANL15H,#0FH
ORL15H,A
MOVR0,#15H
MOVR2,#05H
LCALLCHANGE;修改日期参数
SETB3CH
CLR3BH
MOV42H,#01H
LJMPBA5
KXX1:
CLRC
CJNEA,#06H,BA3
BA3:
JNCBA4
MOVR6,A
SWAPA
ANL12H,#0FH
ORL12H,A
JNB3EH,JK2
MOV50H,12H
JK2:
MOVR0,#12H
MOVR2,#02H
LCALLCHANGE;修改秒位参数
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV39H,40H
SETB3CH
CLR3BH
MOV42H,#01H
SJMPBA5
BA4:
LCALLRING1
BA5:
LJMPFLAG0
;*****************************************************************
;第三次按键
;*****************************************************************
NEXT3:
JNB38H,NEXT4;时(年)个位
MOVA,40H;取键值
JNB3FH,KXX2
MOVR6,A;键值处理
ANL18H,#0F0H
ORL18H,A
MOVR0,#18H
MOVR2,#08H
LCALLCHANGE;修改年份参数
CLR38H;清理修改时位标记
CLR3CH;清理二次进入标记
SETB3DH;第三次进入标记
LJMPBA7
KXX2:
CLRC;判断是否输入越界
CJNEA,#0AH,BA66
BA66:
JNCBA6
MOVA,14H
ANLA,#0F0H
SWAPA
CLRC
CJNEA,#02H,BV
BV:
JCBV1
MOVA,40H
CLRC
CJNEA,#05H,BV2
BV2:
JNCBA6
BV1:
MOVA,40H;键值处理
MOVR6,A
ANL14H,#0F0H
ORL14H,A
JNB3EH,JK3
MOV52H,14H;闹铃时位BCD码存于52H
JK3:
MOVR0,#14H
MOVR2,#04H
LCALLCHANGE;修改时位参数(8563)
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV3EH,40H;修改字型码
CLR38H;清理修改时位标记
CLR3CH;清理二次进入标记
SETB3DH;第三次进入标记
SJMPBA7
BA6:
LCALLRING1
BA7:
LJMPFLAG0
NEXT4:
JNB39H,NEXT5;分(月)个位
MOVA,40H
JNB3FH,KXX3
MOVR6,A
ANL17H,#0F0H
ORL17H,A
MOVR0,#17H
MOVR2,#07H
LCALLCHANGE;修改月份参数
CLR39H
CLR3CH
SETB3DH
LJMPBC2
KXX3:
CLRC
CJNEA,#0AH,BC
BC:
JNCBC1
MOVR6,A
ANL13H,#0F0H
ORL13H,A
JNB3EH,JK4
MOV51H,13H
JK4:
MOVR0,#13H
MOVR2,#03H
LCALLCHANGE;修改分位参数
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV3BH,40H
CLR39H
CLR3CH
SETB3DH
SJMPBC2
BC1:
LCALLRING1
BC2:
LJMPFLAG0
NEXT5:
JNB40H,LAB0;秒(日期)个位
MOVA,40H
JNB3FH,KXX4
MOVR6,A
ANL15H,#0F0H
ORL15H,A
MOVR0,#15H
MOVR2,#05H
LCALLCHANGE;修改日期参数
CLR3AH
CLR3CH
SETB3DH
LJMPLAB0
KXX4:
CLRC
CJNEA,#0AH,CD
CD:
JNCCD1
MOVR6,A
ANL12H,#0F0H
ORL12H,A
JNB3EH,JK5
MOV50H,12H
JK5:
MOVR0,#12H
MOVR2,#02H
LCALLCHANGE;修改秒位参数
MOVA,R6
MOVDPTR,#ZXM
MOVCA,@A+DPTR
MOV40H,A
MOV38H,40H
CLR3AH
CLR3CH
SETB3DH
SJMPLAB0
CD1:
LCALLRING1
LAB0:
LJMPFLAG0
;********************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 综合 系统 设计 电子钟