用51单片机编一个电子时钟的程序 八个数码管 要汇编编的 最简单的 只要能工作就行 走时就行 不要别的功能

如题所述

ORG 00H

AJMP MAIN

ORG 0BH

AJMP T0INT

ORG 30H

MAIN:

MOV  SP,#60H

MOV R4,#20

MOV TMOD,#01H

MOV TH0,#03CH;12M晶振时定时初值

MOV TL0,#0B0H

SETB EA

SETB ET0

SETB TR0

MOV R0,#20

DISP:

MOV A,26H

MOV B,#10

DIV AB

MOV 20H,B ;余数(百分秒位数)

MOV 21H,A ;商(十分秒位数)

MOV A,27H

MOV B,#10

DIV AB

MOV 22H,B ;余数(秒个位数)

MOV 23H,A ;商(秒十位数)

MOV A,28H

MOV B,#10

DIV AB

MOV 24H,B ;余数(分个位数)

MOV 25H,A ;商(分十位数)

MOV A,20H ;秒

ACALL SEG7

MOV P1,A

CLR P2.0

ACALL DLY

SETB P2.0

MOV A,21H ;十秒

ACALL SEG7

MOV P1,A

CLR P2.1

ACALL DLY

SETB P2.1

MOV P1,#40H ;"-"

CLR P2.2

ACALL DLY

SETB P2.2

MOV A,22H ;分

ACALL SEG7

MOV P1,A

CLR P2.3

ACALL DLY

SETB P2.3

MOV A,23H ;十分

ACALL SEG7

MOV P1,A

CLR P2.4

ACALL DLY

SETB P2.4

MOV P1,#40H ;"-"

CLR P2.5

ACALL DLY

SETB P2.5

MOV A,24H ;时

ACALL SEG7

MOV P1,A

CLR P2.6

ACALL DLY

SETB P2.6

MOV A,25H ;十时

ACALL SEG7

MOV P1,A

CLR P2.7

ACALL DLY

SETB P2.7

AJMP DISP

T0INT:

MOV TH0,#03CH

MOV TL0,#0B0H

DJNZ R0,T0INTR

MOV R0,#20

INC 26H ;

MOV A,26H

CJNE A,#60,T0INTR    ;未1S,跳出中断。

MOV 26H,#0

INC 27H ;秒+1

CPL 7FH

MOV A,27H

CJNE A,#60,T0INTR

MOV 27H,#0

INC 28H

MOV A,28H

CJNE A,#60,T0INTR

MOV 28H,#0

T0INTR:

RETI

DLY:

MOV R7,#2

D1:

MOV R6,#40

DJNZ R6,$

DJNZ R7,D1

RET

SEG7:

INC A

MOVC A,@A+PC

RET

DB      03FH ;0          共阴

DB      006H ;1

DB      05BH ;2

DB      04FH ;3

DB      066H ;4

DB      06DH ;5

DB      07DH ;6

DB      007H ;7

DB      07FH ;8

DB      06FH ;9

END

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-19
不知道
相似回答