闹钟单片机课程设计.docx

上传人:b****3 文档编号:2788626 上传时间:2022-11-15 格式:DOCX 页数:17 大小:16.70KB
下载 相关 举报
闹钟单片机课程设计.docx_第1页
第1页 / 共17页
闹钟单片机课程设计.docx_第2页
第2页 / 共17页
闹钟单片机课程设计.docx_第3页
第3页 / 共17页
闹钟单片机课程设计.docx_第4页
第4页 / 共17页
闹钟单片机课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

闹钟单片机课程设计.docx

《闹钟单片机课程设计.docx》由会员分享,可在线阅读,更多相关《闹钟单片机课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

闹钟单片机课程设计.docx

闹钟单片机课程设计

ORG0000H

AJMPMAIN

ORG000BH

AJMPITOP

ORG001BH

AJMPIT1P

ORG0100H

KEY:

OUTBITequ08002h;位控制口

OUTSEGequ08004h;段控制口

INequ08001h;键盘读入口

LEDBufequ60h;显示缓冲

ljmpStart

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

Delay:

;延时子程序

movr7,#0

DelayLoop:

djnzr7,DelayLoop

djnzr6,DelayLoop

ret

DisplayLED:

movr0,#LEDBuf

movr1,#6;共6个八段管

movr2,#00100000b;从左边开始显示

Loop:

movdptr,#OUTBIT

mova,#0

movx@dptr,a;关所有八段管

mova,@r0

movdptr,#OUTSEG

movx@dptr,a

movdptr,#OUTBIT

mova,r2

movx@dptr,a;显示一位八段管

movr6,#1

callDelay

mova,r2;显示下一位

rra

movr2,a

incr0

djnzr1,Loop

ret

TestKey:

movdptr,#OUTBIT

mova,#0

movx@dptr,a;输出线置为0

movdptr,#IN

movxa,@dptr;读入键状态

cpla

anla,#0fh;高四位不用

ret

KeyTable:

;键码定义

db16h,15h,14h,0ffh

db13h,12h,11h,10h

db0dh,0ch,0bh,0ah

db0eh,03h,06h,09h

db0fh,02h,05h,08h

db00h,01h,04h,07h

GetKey:

movdptr,#OUTBIT

movP2,dph

movr0,#Low(IN)

movr1,#00100000b

movr2,#6

KLoop:

mova,r1;找出键所在列

cpla

movx@dptr,a

cpla

rra

movr1,a;下一列

movxa,@r0

cpla

anla,#0fh

jnzGoon1;该列有键入

djnzr2,KLoop

movr2,#0ffh;没有键按下,返回0ffh

sjmpExit

Goon1:

movr1,a;键值=列X4+行

mova,r2

deca

rla

rla

movr2,a;r2=(r2-1)*4

mova,r1;r1中为读入的行值

movr1,#4

LoopC:

rrca;移位找出所在行

jcExit

incr2;r2=r2+行值

djnzr1,LoopC

Exit:

mova,r2;取出键码

movdptr,#KeyTable

movca,@a+dptr

movr2,a

mova,20h

cjnea,#06h,n5

mov21h,r2

incr5

deca

mov20h,a

ajmpWaitRelease

n5:

cjnea,#05h,n4

mov22h,r2

deca

mov20h,a

ajmpWaitRelease

n4:

cjnea,#04h,n3

mov23h,r2

deca

mov20h,a

ajmpWaitRelease

n3:

cjnea,#03h,n2

mov24h,r2

deca

mov20h,a

ajmpWaitRelease

n2:

cjnea,#02h,n1

mov25h,r2

deca

mov20h,a

ajmpWaitRelease

n1:

cjnea,#01h,n0

mov26h,r2

deca

mov20h,a

ajmpWaitRelease

n0:

cjnea,#00h,WaitRelease

cjner4,#00h,nn

ajmpAL

nn:

ajmpTIM

WaitRelease:

movdptr,#OUTBIT;等键释放

clra

movx@dptr,a

movr6,#10

callDelay

callTestKey

jnzWaitRelease

mova,r2

ret

Start:

movsp,#50h

mov20h,#06h

movLEDBuf+0,#0ffh;显示8.8.8.8.

movLEDBuf+1,#0ffh

movLEDBuf+2,#0ffh

movLEDBuf+3,#0ffh

movLEDBuf+4,#0ffh

movLEDBuf+5,#0ffh

MLoop:

callDisplayLED;显示

callTestKey;有键入?

jzMLoop;无键入,继续显示

callGetKey;读入键码

anla,#0fh;显示键码

movdptr,#LEDMap

movca,@a+dptr

movr5,20h

cjner5,#05h,k4

movLEDBuf+0,a

ljmpMLoop

k4:

cjner5,#04h,k3

movLEDBuf+1,a

ljmpMLoop

k3:

cjner5,#03h,k2

movLEDBuf+2,a

ljmpMLoop

k2:

cjner5,#02h,k1

movLEDBuf+3,a

ljmpMLoop

k1:

cjner5,#01h,k0

movLEDBuf+4,a

ljmpMLoop

k0:

movLEDBuf+5,a

ljmpMLoop

TIME_S:

MOVA,21H;49H=21H*10+22H

MOVB,#10H

MULAB

ADDA,22H

MOV49H,A

MOVA,23H;48H=23H*10+24H

MOVB,#10H

MULAB

ADDA,24H

MOV48H,A

MOVA,25H;47H=25H*10+26H

MOVB,#10H

MULAB

ADDA,26H

MOV47H,A

MOVTMOD,#01H;设置定时中断

MOV70H,#0AH

SETBET0

SETBEA

MOVTH0,#3CH

MOVTL0,#0B0H

SETBTR0

HERE:

MOVR0,#47H

MOVR1,#46H

TIME:

MOVA,@R0;将时分秒以拆成个位数分别放于46H,45H,44H,43H,42H,41H

MOVB,#10H

DIVAB

MOV@R1,B

DECR1

MOV@R1,A

INCR0

DECR1

CJNER1,#40H,TIME

MOVR2,#15H;r2偏移量

MOVR0,#46H;r0存放段码

MOVR1,#01H;r1存放位选码

HEL1:

MOVDPH,#80H

MOVDPL,#04H

MOVA,@R0

ADDA,R2

MOVCA,@A+PC

MOVX@DPTR,A

MOVDPH,#80H

MOVDPL,#02H

MOVA,R1

MOVX@DPTR,A

ACALLDL0

MOVA,R1

RLA

MOVR1,A

DECR0

CJNER0,#40H,HEL1

AJMPCP

RET

SEGTAN:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

DL0:

MOVR5,#01H;延时

DL10:

MOVR7,#01AH

DL:

MOVR6,#0FH

DL6:

DJNZR6,DL6

DJNZR7,DL

DJNZR5,DL10

RET

ITOP:

PUSHPSW;定时中断

PUSHACC

MOVTH0,#3CH

MOVTL0,#0B0H

DJNZ70H,RETURN

MOV70H,#0AH

MOVA,#01H

ADDA,47H

DAA

MOV47H,A

CJNEA,#60H,RETURN;SECOND

MOV47H,#00H

MOVA,#01H

ADDA,48H

DAA

MOV48H,A

CJNEA,#60H,RETURN;MIN

MOV48H,#00H

MOVA,#01H

ADDA,49H

DAA

MOV49H,A

CJNEA,#24H,RETURN;HOUR

MOV49H,#00H

RETURN:

POPACC

POPPSW

RETI

ALARM:

MOVA,21H;49H=21H*10+22H

MOVB,#10H

MULAB

ADDA,22H

MOV4CH,A

MOVA,23H;48H=23H*10+24H

MOVB,#10H

MULAB

ADDA,24H

MOV4BH,A

MOVA,25H;47H=25H*10+26H

MOVB,#10H

MULAB

ADDA,26H

MOV4AH,A

RET

COP:

MOVA,49H

CJNEA,4CH,NO

MOVA,48H

CJNEA,4BH,NO

MOVA,47H

CJNEA,4AH,NO

MOVA,#00H

RET

NO:

MOVA,#01H

RET

MUSIC:

PUSHPSW

PUSHACC

MOVTMOD,#11H

SETBET1

SETBEA

SETBTR1

;CLRTR0

MOV32H,#0FDH;1

MOV33H,#0C7H

MOVTH1,#0FDH

MOVTL1,#0C7H

LCALLDELAY100MS

CLRTR1

LCALLDELAY100MS

SETBTR1

CPLP3

MOV32H,#0FEH;4

MOV33H,#056H

MOVTH1,#0FEH

MOVTL1,#056H

LCALL

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

当前位置:首页 > 经管营销 > 经济市场

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

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