基于PCF8563的时钟系统设计Word下载.docx

上传人:b****1 文档编号:13250000 上传时间:2022-10-08 格式:DOCX 页数:21 大小:113.91KB
下载 相关 举报
基于PCF8563的时钟系统设计Word下载.docx_第1页
第1页 / 共21页
基于PCF8563的时钟系统设计Word下载.docx_第2页
第2页 / 共21页
基于PCF8563的时钟系统设计Word下载.docx_第3页
第3页 / 共21页
基于PCF8563的时钟系统设计Word下载.docx_第4页
第4页 / 共21页
基于PCF8563的时钟系统设计Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于PCF8563的时钟系统设计Word下载.docx

《基于PCF8563的时钟系统设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于PCF8563的时钟系统设计Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

基于PCF8563的时钟系统设计Word下载.docx

当P1.2=0时,显示年,月,日。

(3)蜂鸣器发声子程序(BUZZL和BUZZH)

设置初始值使BUZZL发声频率为500HZ,BUZZH发声频率为1500HZ。

(4)键盘修改子程序

读入进入中断前的数据,将8563的20H单元内容送入单片机内部12H单元(秒);

21H单元内容送入单片机内部13H单元(分);

22H单元内容送入单片机内部14H单元(时)便于修改后显示。

读入输入的键值为0AH时,为A键修改小时参数。

设置小时的十位闪烁命令等待按键操作,读入键值判断是否超过三,超过则报警且要求重新输入。

输入正确时回显,设置小时的个位闪烁命令等待按键操作,读入键值判断个位不超过9,然后判断小时整个数是否小于24。

分和秒的设置与小时类似,不同的是十位不能超过5个位不能超过9。

(5)闪烁子程序

设置入口闪烁参数单元值

 

3系统电路图

4外围接口模块硬件电路功能描述

ZLG7290B

驱动8个数码管显示时钟时间,管理按键并读取键值,和/INT1相连,引发中断。

PCF8563T

设置时钟时间,控制时间的运行,和/INT0相连,每一秒产生一次中断。

蜂鸣器

整点报时,错误提示

KEY1

控制显示时间或日期

5主程序中主要变量定义

变量名称

RAM单元/寄存器

功能

WSLA_8563

0A2H

PCF8563T写地址

RSLA_8563

0A3H

PCF8563T读地址

WSLA_7290

70H

ZLG7290B写地址

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

多字节读操作

8程序清单

SDABITP1.0

SCLBITP1.1

WSLA_8563EQU0A2H;

PCF8563T口地址

RSLA_8563EQU0A3H

WSLA_7290EQU70H;

ZLG7290B口地址

RSLA_7290EQU71H

ORG8000H

LJMP8040H

ORG8003H

LJMPINT_RCT

ORG8013H

LJMPINT_7290

ORG8040H

START:

MOVSP,#60H

CLRP1.7;

ZLG7290复位

LCALLDELAY

SETBP1.7

;

****************************************

设定pdf8563tde时间和命令参数(参数和控制命令缓冲区10H-1DH)

MOV10H,#00H;

启动控制字

MOV11H,#1FH;

设置报警及定时器中断

MOV12H,#50H;

秒单元

MOV13H,#59H;

分单元

MOV14H,#08H;

小时单元

MOV15H,#01H;

日期单元

MOV16H,#01H;

星期单元

MOV17H,#01H;

月单元

MOV18H,#10H;

年单元

MOV19H,#00H;

设定分报警

MOV1AH,#00H;

设定小时报警

MOV1BH,#00H;

设定日报警

MOV1CH,#00H;

设定星期报警

MOV1DH,#83H;

设定CLKOUT的频率,1秒周期方波

MOVR7,#0EH;

MOVR0,#10H;

参数与控制命令缓冲区首地址

MOVR2,#00H;

从器件内部子地址

MOVR3,#WSLA_8563;

准备向PCF8563T写入数据串

LCALLWRNBYT;

写入时间,控制命令到PCF8563T

SETBEA;

启动总中断

SETBEX0;

启动INT_RCT(INT_0)

SETBIT0;

定时器0下降沿有效

SETBEX1;

启动INT_7290(INT_7290)

SETBIT1;

定时器1下降沿有效

SJMP$;

等待中断

中断服务子程序INT_RCT

INT_RCT:

MOVR7,#07H;

数据块字节数

MOVR0,#20H;

内部数据块首地址

MOVR2,#02H;

内部寄存器首地址

向8563写地址

MOVR4,#RSLA_8563;

从8563读地址

LCALLRDADD;

调读数据子程序,将读出的数据存放于单片机20H-26H中

MOVA,21H;

判断是否为59分

CJNEA,#59H,NEXT1

MOVA,20H;

判断是否为55秒

CJNEA,#55H,NEXT2

LCALLBUZZL

SJMPNEXT

NEXT2:

CJNEA,#56H,NEXT3

NEXT3:

CJNEA,#57H,NEXT4

NEXT4:

CJNEA,#58H,NEXT5

NEXT5:

CJNEA,#59H,NEXT

NEXT1:

CJNEA,#00H,NEXT

MOVA,20H

CJNEA,#00H,NEXT

LCALLBUZZH

NEXT:

LCALLADJUST;

调时间调整子程序

LCALLCHAIFEN;

调拆分子程序,将20H-26H中的参数分别存28H-2FH,38H-3FH中

MOVR7,#08H

MOVR2,#10H

MOVR3,#WSLA_7290

JNBP1.2,YEARS;

使用P1.2控制显示内容

MOVR0,#38H;

显示时分秒

SJMPDISP

YEARS:

MOVR0,#28H;

显示年月日

DISP:

调7290显示子程序

JNBP3.2,$

RETI

BUZZ

BUZZL:

PUSH07H

MOVTMOD,#01H;

方式1

MOVTL0,#66H;

低频500HZ

MOVTH0,#0FCH

MOVR7,#50

SETBTR0

LOOPL:

JNBTF0,$

CLRTF0

MOVTL0,#66H

CPLP3.4;

驱动蜂鸣器

DJNZR7,LOOPL

SETBP3.4

POP07H

RET

BUZZH:

MOVTMOD,#01H

MOVTL0,#0CDH;

高频1500HZ

MOVTH0,#0FEH

MOVR7,#100

LOOPH:

MOVTL0,#0CDH

DJNZR7,LOOPH

键盘修改中断服务程序INT_7290

INT_7290:

PUSH00H

PUSH02H

PUSH03H

PUSH04H

PUSH07H

PUSHACC

PUSHPSW

MOVR7,#07H;

从器件内部从地址

准备向8563写入数据串

准备从8563读

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1