自动报时设计VHDLWord文档下载推荐.docx

上传人:b****5 文档编号:20905882 上传时间:2023-01-26 格式:DOCX 页数:25 大小:118.12KB
下载 相关 举报
自动报时设计VHDLWord文档下载推荐.docx_第1页
第1页 / 共25页
自动报时设计VHDLWord文档下载推荐.docx_第2页
第2页 / 共25页
自动报时设计VHDLWord文档下载推荐.docx_第3页
第3页 / 共25页
自动报时设计VHDLWord文档下载推荐.docx_第4页
第4页 / 共25页
自动报时设计VHDLWord文档下载推荐.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

自动报时设计VHDLWord文档下载推荐.docx

《自动报时设计VHDLWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自动报时设计VHDLWord文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。

自动报时设计VHDLWord文档下载推荐.docx

20H-26H

从PCF8563T中读出的时间参数(秒、分、小时、日、星期、月、年)缓冲区

年月日

28H-2FH

拆分查表所得年月日缓冲区以待显示

时分秒

38H-3FH

拆分查表所得时分秒缓冲区以待显示

键值

1FH

读入的键值存储单元

6系统软件中各个子程序的功能描述

子程序的名称、功能,以及入口、出口参数。

子程序名称

入口参数

出口参数

功能描述

INT_RCT

时钟中断服务子程序

PANDUAN

20-21H

判断并进行整点报时

CHAIFEN

20-26H

28-2FH、38-3FH

将时间参数拆分查表

CF

A

R4、R3

将A中数据拆违两独立的十六进制数并查表得到对应字型码

ADJUST

20-25H

屏蔽各时间参数无关位

INT_7290

键盘修改时间中断服务子程序

RDKEY

读键值子程序

WR8563

R7、R0、R2、R3

向日历芯片写时间参数

WRNBYT

带有内部单元地址的多字节写操作子程序

RDADD

R7、R0、R2、R3、R4

带有内部单元地址的多字节读操作子程序

7主程序程序流程图

 

N

Y

YN

NWAIT1

WAIT2

8程序清单

SDABITP1.0

SCLBITP1.1

WSLA_8563EQU0A2H

RSLA_8563EQU0A3H

WSLA_7290EQU70H

RSLA_7290EQU71H

ORG8000H

LJMP8100H

ORG8003H

LJMPINT_RCT

ORG8013H

LJMPINT_7290

ORG8100H

START:

MOVSP,#60H

CLRP1.7

LCALLDELAY

SETBP1.7

;

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

设定PCF8563T的时间和命令参数

MOV10H,#00H

MOV11H,#1FH

MOV12H,#50H;

MOV13H,#59H;

MOV14H,#01H;

MOV15H,#09H;

日期

MOV16H,#04H;

星期

MOV17H,#06H;

MOV18H,#11H;

MOV19H,#00H

MOV1AH,#00H

MOV1BH,#00H

MOV1CH,#00H

MOV1DH,#83H

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

MOVR7,#0EH

MOVR0,#10H

MOVR2,#00H

MOVR3,#WSLA_8563

LCALLWRNBYT

MOVIP,02H

SETBEA

SETBEX0

SETBEX1

SETBIT0

SETBIT1

SJMP$

INT_RCT:

MOVR7,#07H

MOVR0,#20H

MOVR2,#02H

MOVR4,#RSLA_8563

LCALLRDADD

LCALLADJUST

LCALLPANDUAN

LCALLCHAIFEN

MOVR7,#08H

MOVR2,#10H

MOVR3,#WSLA_7290

JNBP1.2,YEARS

MOVR0,#38H

SJMPDISP

YEARS:

MOVR0,#28H

DISP:

JNBP3.2,$

RETI

整点报时子程序

PANDUAN:

MOVA,21H

CJNEA,#59H,PDFEN

MOVA,20H

CJNEA,#56H,PD57

LCALLBAOSHI1

AJMPEXIT

PD57:

CJNEA,#57H,PD58

PD58:

CJNEA,#58H,PD59

PD59:

CJNEA,#59H,EXIT

PDFEN:

CJNEA,#00H,EXIT

LCALLBAOSHI2

EXIT:

RET

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

低音1S报时

BAOSHI1:

PUSHPSW

PUSH00H

MOVR0,#0FFH

MOVTMOD,#10H

MOVTL1,#00H

MOVTH1,#0FEH

SETBTR1

WORK1:

JNBTF1,$

CLRTF1

CPLP1.4

DJNZR0,WORK1

POP00H

POPPSW

高音1S报时

BAOSHI2:

PUSH01H

MOVR0,#04H

WORK2:

MOVR1,#00H

MOVTH1,#0FFH

WORK3:

DJNZR1,WORK3

DJNZR0,WORK2

POP01H

各子程序

ORG8300H

CHAIFEN:

PUSHACC

PUSH03H

PUSH04H

MOVA,20H;

取秒参数

LCALLCF

MOV38H,R3

MOV39H,R4

MOV3AH,#02H

MOVA,21H;

取分参数

MOV3BH,R3

MOV3CH,R4

MOV3DH,#02H

MOVA,22H;

取小时参数

MOV3EH,R3

MOV3FH,R4

MOVA,23H;

取日期参数

MOVA,R3

MOVR3,A

MOV28H,R3

MOV29H,R4

MOVA,25H;

取月参数

ORLA,#01H

MOV2AH,R3

MOV2BH,R4

MOVA,26H;

取年参数

MOV2CH,R3

MOV2DH,R4

MOV2EH,#0FCH

MOV2FH,#0DAH

POP04H

POP03H

POPACC

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

将A中数据拆分为两独立的十六进制数并查表

CF:

PUSH02H

PUSHDPH

PUSHDPL

MOVDPTR,#LEDSEG

MOVR2,A

ANLA,#0FH

MOVCA,@A+DPTR

MOVA,R2

SWAPA

MOVR4,A

POPDPL

POPDPH

POP02H

LEDSEG:

DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E4H

DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH

屏蔽读出的7个字节参数无关位

ADJUST:

ANLA,#7FH

MOV20H,A

MOV21H,A

MOVA,22H

ANLA,#3FH

MOV22H,A

MOVA,23H

MOV23H,A

MOVA,24H

ANLA,#07H

MOV24H,A

MOVA,25H

ANLA,#1FH

MOV25H,A

延时子程序

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

DELAY:

MOVR0,#00H

DELAY1:

DJNZR1,$

DJNZR0,DELAY1

INT_7290:

PUSH07H

PUSHPSW

LCALLRDKEY

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

修改小时

AKEY:

CJNEA,#0AH,BKEY

JBP3.3,$

ANL14H,#0FH

ORL14H,A

ANL14H,#0F0H

MOVR7,#01H

MOVR0,#14H

MOVR2,#04H

LCALLFLASH

LJMPDOWN

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

修改分

BKEY:

CJNEA,#0BH,CKEY

ANL13H,#0FH

ORL13H,A

ANL13H,#0F0H

MOVR0,#13H

MOVR2,#03H

修改秒

CKEY:

CJNEA,#0CH,DOWN

ANL12H,#0FH

ORL12H,A

ANL12H,#0F0H

MOVR0,#12H

LJMPDOWN

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

中断返回退出

DOWN:

CLRIE0

POP07H

RDKEY:

MOVR0,#1FH

MOVR2,#01H

MOVR4,#RSLA_7290

MOVA,1FH

DECA

向日历芯片中写入时间参数子程序

WR8536:

MOVR7,#07H

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

相关I2C子程序

带有内部单元地址的多字节写操作子程序WRNBYT

通用的I2C通讯子程序(多字节写操作)

入口参数R7字节数,R0:

源数据块首地址

R0原数据块首地址;

R2从器件内部子地址;

R3:

外围器件地址(写)

相关子程序WRBYT、STOP、CACK、STA

WRNBYT:

PUSHPSW

PUSHACC

WRADD:

MOVA,R3;

取外围器件地地址(包含r/w=0)

LCALLSTA;

发送起始信号S

LCALLWRBYT;

发送外围地址

LCALLCACK;

检测外围器件的应答信号

JBF0,WRADD;

如果应

发送内部寄存器首地址

如果应答不正确返回重来

WRDA:

MOVA,@R0

如果应答不正确返回重来

INCR0

DJNZR7,WRDA

LCALLSTOP

RET

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

带有内部单元地址的多字节读操作子程序RDADD

入口参数R7字节数;

R0目标数据块首地址;

R2从器件内部子地址;

R3器件地址(写);

R4器件地址(读)

相关子程序WRBYT、STOP、CACK、STA、MACK、MNACK

RDADD:

PUSHPSW;

从PCF8563的02H单元读入7个参数

PUSHACC;

存放于20H-26H单元

RDADD1:

LCALLSTA

取器件地址(写)

JBF0,RDADD1;

MOVA,R2;

取内部地址

如果应答不正确返回重来

LCALLSTA

MOVA,R4;

取器件地址(读)

RDN:

LCALLRDBYT

MOV@R0,A

DJNZR7,ACK

LCALLMNACK

LCALLSTOP

ACK:

LCALLMACK

SJMPRDN

启动信号子程序S

STA:

SETBSDA;

启动信号S

SETBSCL

NOP;

产生4.7US延时

NOP

NOP

CLRSDA

NOP

CLRSCL

RET

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

停止信号子程序P

STOP:

CLRSDA;

停止信号P

SETBSDA

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

应答信号子程序MACK

MACK:

CLRSDA;

发送应答信号ACK

非应答法信号子程序MNACK

MNACK:

发送非应答信号NACK

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

应答检测子程序CACK

CACK:

应答位检测子程序

SETBSCL

CLRF0

MOVC,SDA;

采样SDA

JNCCEND;

应答正确时转CEND

SETBF0;

应答错误时F0置一

CEND:

RET

发送一个字节子程序WRBYT

WRBYT:

PUSH06H

MOVR6,#08H;

发送一个字节子程序

WLP:

RLCA;

(入口参数A)

MOVSDA,C

DJNZR6,WLP

POP06H

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

接收一个字节子程序RDBYT

RDBYT:

PUSH06H

接收一个字节子程序

RLP:

产生大于15微秒的延时!

NOP;

注意这是专门为ZLG7290

添加的20微秒延时部分

MOVC,SDA

RLCA

DJNZR6,RLP;

(出口参数R2)

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

当前位置:首页 > 法律文书 > 起诉状

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

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