51单片机做数字电子钟Word格式.docx

上传人:b****6 文档编号:21229212 上传时间:2023-01-28 格式:DOCX 页数:13 大小:19.60KB
下载 相关 举报
51单片机做数字电子钟Word格式.docx_第1页
第1页 / 共13页
51单片机做数字电子钟Word格式.docx_第2页
第2页 / 共13页
51单片机做数字电子钟Word格式.docx_第3页
第3页 / 共13页
51单片机做数字电子钟Word格式.docx_第4页
第4页 / 共13页
51单片机做数字电子钟Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

51单片机做数字电子钟Word格式.docx

《51单片机做数字电子钟Word格式.docx》由会员分享,可在线阅读,更多相关《51单片机做数字电子钟Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

51单片机做数字电子钟Word格式.docx

LJMPSTART

ORG0003H;

外中断0中断程序入口

RETI

ORG000BH;

定时器T0中断程序入口

LJMPINTT0;

跳至INTTO执行

ORG0013H;

外中断1中断程序入口

ORG001BH;

定时器T1中断程序入口

LJMPINTT1

ORG0023H;

串行中断程序入口地址

;

---------------主程序----------------------;

START:

MOVR0,#70H;

70给R0,清70-7FH显示内存

MOVR7,#0FH

CLEARDISP:

MOVR0,#00H;

0给R0中的数为地址的内存中存放(70H)

INCR0

DJNZR7,CLEARDISP

MOV78H,#2;

默认时间为12:

00,闹钟5:

00

MOV79H,#1

MOV74H,#2;

防止上电时数码管显示00小时

MOV75H,#1

MOV66H,#1;

中断退出时66H为1时,分、时计时单元数据移入显存标志

MOV68H,#1;

上电默认闹钟开状态

MOV7DH,#6;

闹钟时十位

MOV7CH,#3

MOV69H,#0

MOV7AH,#0AH;

放入"

熄灭符"

数据

MOVTMOD,#11H;

设T0、T1为16位定时器

MOVTL0,#0B0H;

50MS定时初值(T0计时用)

MOVTH0,#3CH

SETBEA;

总中断开放

SETBET0;

允许T0中断

SETBTR0;

T0定时器开始计时

MOVR4,#14H;

1秒定时用初值(50MS×

20)

START1:

LCALLDISPLAY;

显示子程序

LCALLBEEP;

闹钟查询

JNBP1.7,SETTIME;

P1.7口为0时转时间调整程序

JMPSTART1;

P1.7口为1时跳回START1

-----------------------时间闹钟调整系统--------------------------;

NFLAG:

MOVA,68H;

设置闹钟开关状态

CJNEA,#1,BEE68

MOV68H,#0

JMPE6

BEE68:

MOV68H,#1

E6:

MOV66H,#8;

中断退出66H不为1时分、时计时单元数据移入显存标志

MOV72H,7BH

MOV73H,7CH

MOV74H,7DH

MOV75H,7EH

LCALLDDL

MOV72H,68H

MOV73H,69H

MOV74H,7AH

MOV75H,7AH

MOV66H,#1

LJMPSTART1

SETTIME:

LCALLDDL

P1.7,NFLAG;

键按下时间小于1秒,设置闹钟开关状态并查看闹钟时间,不关走时,确保准确,大于1秒调时

MOVTL1,#0B0H;

T1闪烁定时初值

MOVTH1,#3CH

MOVR2,#06H;

进入调时状态,赋闪烁定时初值

MOV66H,#8;

调闹钟时保持走时,关闭时钟显示数据

SETBET1;

允许T1中断

SETBTR1;

开启定时器T1

SET1:

调用显示,防止键按下无显示

JNBP1.7,SET1;

P1.7口为0等待键释放

MOVR5,#00H;

清设置类型闪烁标志

SETN1:

INCR5;

闹钟分调整

SET5:

LCALLDISPLAY

P1.7,SET5

SEETN1:

LCALLDDL;

有键按下大于1秒分时间连续加(0.5秒加1),小于1秒转调时状态

P1.7,SET6;

键释放查询,键释放自动转调时

MOVR0,#7CH

LCALLADD1

MOVA,R3

CLRC

CJNEA,#60H,HHN1

HHN1:

JCSEETN1

LCALLCLR0

JMPSEETN1

SET6:

闹钟时调整

SEET6:

P1.7,SEET6

SEETNH1:

P1.7,SETF

MOVR0,#7EH

CJNEA,#24H,HOUU1

HOUU1:

JCSEETNH1

JMPSEETNH1

SETF:

JNBP1.7,SETOUT;

短按调时,长按退出

CLRET0

CLRTR0

MOV70H,#00H;

设定后的时间从00秒开始走时

MOV71H,#00H

INCR5

SET3:

P1.7,SET3

SETMM:

P1.7,SET4

MOVR0,#77H

CJNEA,#60H,MMH

MMH:

JCSETMM

AJMPSETMM

SET4:

INCR5

SEET4:

P1.7,SEET4

SETHH:

P1.7,SETOUT1

MOVR0,#79H

CJNEA,#24H,HOUU

HOUU:

JCSETHH

AJMPSETHH

SETOUT1:

SETBET0

计时开始

SETOUT:

MOVR5,#00H;

CLRTR1;

关闭T1

CLRET1;

关T1中断

SETOUT2:

JNBP1.7,SETOUT2

--------------------------延时1秒钟-----------------------;

DDL:

MOV18H,#36

DDL0:

MOV17H,#239

DDL1:

DJNZ17H,DDL1

DJNZ18H,DDL0

RET

----------------------------T0中断程序------------------------;

INTT0:

PUSHACC;

打包

PUSHPSW

MOVA,#0B7H

ADDA,TL0

MOVTL0,A

MOVA,#3CH

ADDCA,TH0

MOVTH0,A

SETBTR0

DJNZR4,OUTT0;

20次中断未到中断退出

ADDSS:

20次中断到(1秒)重赋初值

MOVR0,#71H;

指向秒计时单元(70-71H)

ACALLADD1;

调用加1程序(加1秒操作)

MOVA,R3;

秒数据放入A(R3为2位十进制数组合)

CLRC;

清进位标志

CJNEA,#60H,ADDMM

ADDMM:

JCOUTT01;

小于60秒退出

ACALLCLR0;

等于或大于60秒清0

MOVR0,#77H;

指向分计时单元(76H-77H)

ACALLADD1

CJNEA,#60H,ADDHH

ADDHH:

JCOUTT0

ACALLCLR0

MOVR0,#79H;

指向小时计时单元(78H-79H)

CJNEA,#24H,HOUR

HOUR:

OUTT0:

MOVA,66H;

查询标志

CJNEA,#1,OUTT01

MOV72H,76H;

中断退出时将分、时计时单元数据移入对应显示单元

MOV73H,77H

MOV74H,78H

MOV75H,79H

OUTT01:

POPPSW;

出栈

POPACC

开放T0

RETI;

中断返回

---------------------------加1程序--------------------------;

ADD1:

MOVA,R0;

取当前计时单元数据到A

DECR0;

指向前一地址

SWAPA;

A中数据高四位与低四位交换

ORLA,R0;

前一地址中数据放入A中低四位

ADDA,#01H;

A加1操作

DAA;

十进制调整

MOVR3,A;

移入R3寄存器

ANLA,#0FH;

高四位变0

MOVR0,A;

放回前一地址单元

取回R3中暂存数据

INCR0;

指向当前地址单元

数据放入当削地址单元中

CLR0:

CLRA;

清累加器

清当前地址单元

前一地址单元清0

RET;

子程序返回

-------------------------调时闪烁程序----------------------;

INTT1:

PUSHACC

MOVTL1,#0B0H

DJNZR2,INTT1OUT;

0.3秒未到退出中断(50MS中断6次)

重装0.3秒定时用初值

CPL02H;

0.3秒定时到对闪烁标志取反

02H,FLASH1;

02H位为1时显示单元"

熄灭"

MOVA,R5

CJNEA,#01H,NL

JMPNNN1

NL:

CJNEA,#02H,NL1

LJMPNNN1

NL1:

CJNEA,#03H,NL2

LJMPNLL

NL2:

CJNEA,#04H,INTT1OUT

NLL:

MOV72H,76H

AJMPINTT1OUT

NNN1:

MOV72H,7BH

INTT1OUT:

恢复现场

中断退出

FLASH1:

MOVA,R5

CJNEA,#01H,ML

LJMPMNN1

ML:

CJNEA,#02H,ML1

LJMPMNN2

ML1:

CJNEA,#03H,MN

LJMPMLL

MN:

LJMPMHL

MLL:

MOV72H,7AH

MOV73H,7AH;

显示单元(72-73H),将不显示分数据

MHL:

MOV74H,7AH;

显示单元(74-75H),小时数据将不显示

MNN1:

显示单元(72-73H),将不显示闹钟分数据

MNN2:

MOV75H,7AH;

显示单元(74-75H),闹钟小时数据将不显示

-------------------------显示-------------------------------;

DISPLAY:

MOVDPTR,#DISDATA

MOVA,70H

MOVCA,A+DPTR

MOVP3,A

CLRP1.0

NOP

SETBP1.0

MOVA,71H

CLRP1.1

SETBP1.1

MOVA,72H

CLRP1.2

SETBP1.2

MOVA,73H

CLRP1.3

SETBP1.3

MOVA,74H

CLRP1.4

SETBP1.4

MOVA,75H

CLRP1.5

SETBP1.5

BEEP:

CJNEA,#1,BEERE

MOVA,78H;

查询闹钟时个位

CJNEA,7DH,BEERE

MOVA,79H;

查询闹钟时十位

CJNEA,7EH,BEERE

MOVA,76H;

查询闹钟分个位

CJNEA,7BH,BEERE

MOVA,77H;

查询闹钟分十位

CJNEA,7CH,BEERE

BB:

CLRP1.6

SETBP1.6

JNBP1.7,BEERR

BEERE:

RET

BEERR:

SETBP1.6

LCALLDISPLAY

JMPBEERE

DISDATA:

DB0C0H,0F9H,64H,70H,59H,52H,42H,0F8H,40H,50H,0FFH;

0123456789空白

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

当前位置:首页 > 工作范文 > 演讲主持

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

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