AT89C51单片机用4位数码管做秒表,要求用动态扫描做,汇编语言

00。00 中间小数点药长亮 3个按钮 一个启动 一个暂停 一个复位清零 要用汇编语言编 急用 有的发我U想 [email protected] 给的快的再加分 急用 谢谢了

重赏之下心有勇夫^_^   

;汇编时钟程序。4位共阳管。P0口段码,P2.0~P2.3位码。显示毫秒和秒。三个按键一个控制时钟开始走,一个控制暂停和继续。。。一个按键清0 

;12M晶振 2011 04 20 调试完成  

 STRT EQU P3.2

 STP EQU P3.3

 CLRR EQU P3.5    

 ORG 00H

 SJMP MAIN

 ORG 0BH

 AJMP T0INT

 ORG 30H 

MAIN: MOV  SP,#60H

 MOV R3,#10

 MOV R4,#20

 MOV TMOD,#01H ;定时器T0工作方式1

 MOV  TH0,#0D8H ;10MS定时初值

     MOV  TL0,#0F0H  

 SETB ET0

 SETB EA

 

k1: LCALL DISP 

 JB STRT,K2

 LCALL DISP

 JNB STRT,$-3

 AJMP START

k2: LCALL DISP

 JB STP,K3  

 LCALL DISP

 JNB STP,$-3

 AJMP SS

K3: LCALL  DISP  

 JB CLRR,K1

 LCALL DISP

 JNB CLRR,$-3 

 AJMP CLEAR

START: SETB TR0

 CLR F0  ;如无此条,暂停后,不是按继续键,而是按开始键继续走时,下次按暂停键时,不能暂停

 AJMP K1

 

SS: CPL F0

 JNB F0,START

 

STOP: CLR TR0

 AJMP K2         

CLEAR: CLR     TR0  

 MOV A,#0

 MOV 20H,A  

 MOV 21H,A  

 MOV 22H,A  

 MOV 23H,A  

 MOV 24H,A  

 MOV 25H,A  

 AJMP K3

DISP: MOV A,24H

 MOV B,#10

 DIV AB

 MOV 20H,B  ;余数(MS个位数)

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

 MOV A,25H

 MOV B,#10

 DIV AB

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

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

 MOV A,20H  ;MS个位

 ACALL SEG7

 MOV P0,A

 SETB P2.4

 ACALL DLY

 CLR P2.4

 MOV A,21H  ;MS十位

 ACALL SEG7 

 MOV P0,A

 SETB P2.5

 ACALL DLY

 CLR P2.5

 MOV A,22H  ;S个位

 ACALL SEG7

 MOV P0,A

 CLR P0.7

 SETB P2.6

 ACALL DLY

 CLR P2.6

 MOV A,23H  ;S十位

 ACALL SEG7

 MOV P0,A

 SETB P2.7

 ACALL DLY

 CLR P2.7

 RET 

T0INT: MOV  TH0,#0D8H

     MOV  TL0,#0F0H

 INC 24H

 MOV A,24H

 CJNE A,#99,T0INTR

 MOV 24H,#0

 INC 25H

 MOV A,25H

 CJNE A,#60,T0INTR

 MOV 25H,#0

   

T0INTR: RETI

DLY: MOV R7,#10

D1: MOV R6,#50

 DJNZ R6,$

 DJNZ R7,D1

 RET

SEG7: INC A

 MOVC A,@A+PC

 RET

     DB        0C0H;0

        DB        0F9H;1

        DB        0A4H;2

        DB        0B0H;3

        DB        099H;4

        DB        092H;5

        DB        082H;6

        DB        0F8H;7

        DB        080H;8

        DB        090H;9

 END

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-12-27

4位数码管动态扫描的电路,并编程实现6位数码管同时显示"135。

STRT EQU P1.0

CLRR EQU P1.1

ORG 00H

AJMP MAIN

ORG 0BH

AJMP T0INT0

ORG 30H

MAIN:

MOV SP,#60H

MOV R4,#20

MOV TMOD,#01H

MOV TH0,#3CH;12M晶振时定时初值取#3CB0H,还可细调如 TL=#0B7H,可以更准

MOV TL0,#0B0H

SETB ET0

SETB EA

扩展资料:

比起机器语言,汇编语言具有更高的机器相关性,更加便于记忆和书写,但又同时保留了机器语言高速度和高效率的特点。汇编语言仍是面向机器的语言,很难从其代码上理解程序设计意图,设计出来的程序不易被移植,故不像其他大多数的高级计算机语言一样被广泛应用。所以在高级语言高度发展的今天,它通常被用在底层,通常是程序优化或硬件操作的场合。 

参考资料来源:百度百科-汇编语言

本回答被网友采纳
第2个回答  推荐于2017-12-16

呵呵,刚刚把工程文件发给你了。

代码的话,自己好好读一读,其实很简单的。

本回答被提问者采纳