单片机电子时钟汇编语言程序.docx

上传人:b****8 文档编号:8998755 上传时间:2023-05-16 格式:DOCX 页数:25 大小:17.22KB
下载 相关 举报
单片机电子时钟汇编语言程序.docx_第1页
第1页 / 共25页
单片机电子时钟汇编语言程序.docx_第2页
第2页 / 共25页
单片机电子时钟汇编语言程序.docx_第3页
第3页 / 共25页
单片机电子时钟汇编语言程序.docx_第4页
第4页 / 共25页
单片机电子时钟汇编语言程序.docx_第5页
第5页 / 共25页
单片机电子时钟汇编语言程序.docx_第6页
第6页 / 共25页
单片机电子时钟汇编语言程序.docx_第7页
第7页 / 共25页
单片机电子时钟汇编语言程序.docx_第8页
第8页 / 共25页
单片机电子时钟汇编语言程序.docx_第9页
第9页 / 共25页
单片机电子时钟汇编语言程序.docx_第10页
第10页 / 共25页
单片机电子时钟汇编语言程序.docx_第11页
第11页 / 共25页
单片机电子时钟汇编语言程序.docx_第12页
第12页 / 共25页
单片机电子时钟汇编语言程序.docx_第13页
第13页 / 共25页
单片机电子时钟汇编语言程序.docx_第14页
第14页 / 共25页
单片机电子时钟汇编语言程序.docx_第15页
第15页 / 共25页
单片机电子时钟汇编语言程序.docx_第16页
第16页 / 共25页
单片机电子时钟汇编语言程序.docx_第17页
第17页 / 共25页
单片机电子时钟汇编语言程序.docx_第18页
第18页 / 共25页
单片机电子时钟汇编语言程序.docx_第19页
第19页 / 共25页
单片机电子时钟汇编语言程序.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机电子时钟汇编语言程序.docx

《单片机电子时钟汇编语言程序.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟汇编语言程序.docx(25页珍藏版)》请在冰点文库上搜索。

单片机电子时钟汇编语言程序.docx

单片机电子时钟汇编语言程序

;变量定义;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SECEQU42H

MINEQU41H

HOUREQU40H

C100EQU43H

NZHOUREQU44H

NZMINEQU45H

TEMPEQU46H

TEMP2EQU47H

TEMP3EQU48H

LEDBUFEQU60H

OUTBITEQU8001H

OUTSEGEQU8000H

INEQU8002H

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0000H

LJMPSTART

ORG000BH

LJMPINT00

;:

:

;:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

:

;:

:

:

:

:

:

;主程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0070H

START:

MOVSP,#70H

MOVDPTR,#8003H

MOVA,#89H

MOVNZHOUR,#12

MOVNZMIN,#1FH;闹钟初始值8.30

MOVX@DPTR,A

MOVTMOD,#01H

MOVTH0,#0ECH

MOVTL0,#78H

MOVIE,#10000010B

MOVTEMP,#00000001B

MOVTEMP2,#1

MOVTEMP3,#200

CLRP1.0

MAIN_LP:

MOVDPTR,#OUTBIT

MOVA,#00000001B

MOVX@DPTR,A

MOVDPTR,#OUTSEG;段

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

MOVDPTR,#OUTBIT

MOVA,#00000010B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

MOVDPTR,#OUTBIT

MOVA,#00000100B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

MOVDPTR,#OUTBIT

MOVA,#00001000B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

MOVDPTR,#OUTBIT

MOVA,#00010000B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

MOVDPTR,#OUTBIT

MOVA,#00100001B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR6,#1

LCALLDELAY

LCALLTESTKEY

JBAcc.0,MAIN_LP

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JBAcc.0,MAIN_LP

LCALLMAIN_KEY

SJMPMAIN_LP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;判断按键程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TESTKEY:

MOVDPTR,#OUTBIT

MOVA,#00H

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;1ms延时;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DELAY:

MOVR7,#0

DELAY1:

DJNZR7,DELAY1

DJNZR6,DELAY1

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;获取按键并跳转程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MAIN_KEY:

MOVDPTR,#OUTBIT

MOVA,#11111110B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MAIN_K1

MOVDPTR,#OUTBIT

MOVA,#11111101B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MAIN_K2

MOVDPTR,#OUTBIT

MOVA,#11111011B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MAIN_K3

SJMPWAIT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MAIN_K1:

MOVDPTR,#OUTBIT

MOVA,#00000001B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0F9H

MOVX@DPTR,A

MOVR4,#5

MOVR6,#100

DEL1:

LCALLDELAY

DJNZR4,DEL1

LCALLSZ

SJMPWAIT

MAIN_K2:

MOVDPTR,#OUTBIT

MOVA,#00000010B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0A4H

MOVX@DPTR,A

MOVR4,#5

MOVR6,#100

DEL2:

LCALLDELAY

DJNZR4,DEL2

LCALLNZ

SJMPWAIT

MAIN_K3:

MOVDPTR,#OUTBIT

MOVA,#00000100B

MOVX@DPTR,A

MOVDPTR,#OUTSEG

MOVA,#0B0H

MOVX@DPTR,A

MOVR4,#5

MOVR6,#100

DEL3:

LCALLDELAY

DJNZR4,DEL3

LCALLMB

SJMPWAIT

WAIT:

LCALLTESTKEY

JNBAcc.0,WAIT

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JNBAcc.0,WAIT

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;SZ处理程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0200H

SZ:

MOVSEC,#00H

MOVMIN,#00h

MOVHOUR,#00h

MOVC100,#100

SETBTR0

MOVTEMP2,#1

MOVR5,#04H

SZ_LP:

MOVA,HOUR

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF,A

MOVA,B

ACALLTOLED

ANLA,#7FH

MOVLEDBUF+1,A

MOVA,MIN

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF+2,A

MOVA,B

ACALLTOLED

ANLA,#7FH

MOVLEDBUF+3,A

MOVA,SEC

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF+4,A

MOVA,B

ACALLTOLED

MOVLEDBUF+5,A

ACALLDISPLAY

LCALLTESTKEY

JBAcc.0,SZ_LP

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JBAcc.0,SZ_LP

LCALLSZ_KEY

MOVA,TEMP2

CJNEA,#1,SZ_EXIT

LJMPSZ_LP

SZ_EXIT:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;获取按键并跳转程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SZ_KEY:

MOVDPTR,#OUTBIT

MOVA,#11111110B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K1

MOVDPTR,#OUTBIT

MOVA,#11111101B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K2

MOVDPTR,#OUTBIT

MOVA,#11111011B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K3

MOVDPTR,#OUTBIT

MOVA,#11110111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K4

MOVDPTR,#OUTBIT

MOVA,#11101111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K5

MOVDPTR,#OUTBIT

MOVA,#11011111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,SZ_K6

SJMPSZ_WAIT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SZ_K1:

LCALLSZ_J1

SJMPSZ_WAIT

SZ_K2:

LCALLSZ_J2

SJMPSZ_WAIT

SZ_K3:

LCALLSZ_J3

SJMPSZ_WAIT

SZ_K4:

LCALLSZ_J4

SJMPSZ_WAIT

SZ_K5:

LCALLSZ_J5

SJMPSZ_WAIT

SZ_K6:

LCALLSZ_J6

SZ_WAIT:

LCALLTESTKEY

JNBAcc.0,SZ_WAIT

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JNBAcc.0,SZ_WAIT

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;SZ按键处理程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SZ_J1:

CLRTR0

DJNZR5,SZ_EXK1

SETBTR0

MOVR5,#04H

SZ_EXK1:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SZ_J2:

CJNER5,#03H,FENJIA

INCHOUR

MOVA,HOUR

CJNEA,#24,SZ_EXK2

MOVHOUR,#00H

SJMPSZ_EXK2

FENJIA:

CJNER5,#02H,MIAOJIA

INCMIN

MOVA,MIN

CJNEA,#60,SZ_EXK2

MOVMIN,#00H

SJMPSZ_EXK2

MIAOJIA:

CJNER5,#01H,SZ_EXK2

INCSEC

MOVA,SEC

CJNEA,#60,SZ_EXK2

MOVSEC,#00H

SZ_EXK2:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

SZ_J3:

CJNER5,#03H,FENJIAN

DECHOUR

MOVA,HOUR

CJNEA,#0FFH,SZ_EXK3

MOVHOUR,#23

SJMPSZ_EXK3

FENJIAN:

CJNER5,#02H,MIAOJIAN

DECMIN

MOVA,MIN

CJNEA,#0FFH,SZ_EXK3

MOVMIN,#59

SJMPSZ_EXK3

MIAOJIAN:

CJNER5,#01H,SZ_EXK3

DECSEC

MOVA,SEC

CJNEA,#0FFH,SZ_EXK3

MOVSEC,#59

SJMPSZ_EXK3

SZ_EXK3:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;消显示

SZ_J4:

MOVTEMP,#00H

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;显显示

SZ_J5:

MOVTEMP,#01H

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;关计时,回功能选择

SZ_J6:

CLRTR0

MOVTEMP2,#0

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DISPLAY:

MOVR0,#LEDBUF

MOVR1,#6

MOVR2,TEMP

LOOP:

MOVDPTR,#OUTBIT

MOVA,#0

MOVX@DPTR,A

MOVA,@R0

MOVDPTR,#OUTSEG

MOVX@DPTR,A

MOVDPTR,#OUTBIT

MOVA,R2

MOVX@DPTR,A

MOVR6,#1

ACALLDELAY

MOVA,R2

RLA

MOVR2,A

INCR0

DJNZR1,LOOP

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

TOLED:

MOVDPTR,#LEDTAB

MOVCA,@A+DPTR

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;MB处理程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0500H

MB:

MOVSEC,#00H

MOVMIN,#00H

MOVC100,#0

MOVTEMP2,#1

MB_LP:

MOVA,MIN

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF,A

MOVA,B

ACALLTOLED

ANLA,#7FH

MOVLEDBUF+1,A

MOVA,SEC

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF+2,A

MOVA,B

ACALLTOLED

ANLA,#7FH

MOVLEDBUF+3,A

MOVA,C100

MOVB,#10

DIVAB

ACALLTOLED

MOVLEDBUF+4,A

MOVA,B

ACALLTOLED

MOVLEDBUF+5,A

ACALLDISPLAY

LCALLTESTKEY

JBAcc.0,MB_LP

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JBAcc.0,MB_LP

LCALLMB_KEY

MOVA,TEMP2

CJNEA,#1,MB_EXIT

LJMPMB_LP

MB_EXIT:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;获取按键并跳转程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MB_KEY:

MOVDPTR,#OUTBIT

MOVA,#11111110B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K1

MOVDPTR,#OUTBIT

MOVA,#11111101B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K2

MOVDPTR,#OUTBIT

MOVA,#11111011B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K3

MOVDPTR,#OUTBIT

MOVA,#11110111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K4

MOVDPTR,#OUTBIT

MOVA,#11101111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K5

MOVDPTR,#OUTBIT

MOVA,#11011111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,MB_K6

SJMPMB_WAIT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

MB_K1:

SETBTR0

SJMPMB_WAIT

MB_K2:

CLRTR0

SJMPMB_WAIT

MB_K3:

CLRTR0

MOVSEC,#0

MOVMIN,#0

MOVC100,#0

SJMPMB_WAIT

MB_K4:

MOVTEMP,#00H

SJMPMB_WAIT

MB_K5:

MOVTEMP,#01H

SJMPMB_WAIT

MB_K6:

CLRTR0

MOVTEMP2,#0

MB_WAIT:

LCALLTESTKEY

JNBAcc.0,MB_WAIT

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JNBAcc.0,MB_WAIT

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;NZ处理程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ORG0800H

NZ:

CLRTR0

MOVTEMP2,#1

MOVNZHOUR,#8

MOVNZMIN,#1EH

MOVR5,#02H

NZ_LP:

MOVA,NZHOUR

MOVB,#10

DIVAB

LCALLTOLED

MOVLEDBUF,A

MOVA,B

LCALLTOLED

ANLA,#7FH

MOVLEDBUF+1,A

MOVA,NZMIN

MOVB,#10

DIVAB

LCALLTOLED

MOVLEDBUF+2,A

MOVA,B

LCALLTOLED

MOVLEDBUF+3,A

MOVA,SEC

MOVB,#10

DIVAB

LCALLTOLED

MOVLEDBUF+4,#0FFH

MOVLEDBUF+5,#0FFH

LCALLDISPLAY

LCALLTESTKEY

JBAcc.0,NZ_LP

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JBAcc.0,NZ_LP

LCALLNZ_KEY

MOVA,TEMP2

CJNEA,#1,NZ_EXIT

LJMPNZ_LP

NZ_EXIT:

RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;获取按键并跳转程序;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

NZ_KEY:

MOVDPTR,#OUTBIT

MOVA,#11111110B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,NZ_K1

MOVDPTR,#OUTBIT

MOVA,#11111101B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,NZ_K2

MOVDPTR,#OUTBIT

MOVA,#11111011B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,NZ_K3

MOVDPTR,#OUTBIT

MOVA,#11011111B

MOVX@DPTR,A

MOVDPTR,#IN

MOVXA,@DPTR

JNBAcc.0,NZ_K6

SJMPNZ_WAIT

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

NZ_K1:

LCALLNZ_J1

SJMPNZ_WAIT

NZ_K2:

LCALLNZ_J2

SJMPNZ_WAIT

NZ_K3:

LCALLNZ_J3

SJMPNZ_WAIT

NZ_K6:

CLRTR0

MOVTEMP2,#0

NZ_WAIT:

LCALLTESTKEY

JNBAcc.0,NZ_WAIT

MOVR6,#10

LCALLDELAY

LCALLTESTKEY

JNBAcc.0,NZ_WAIT

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2