求下图倒计时秒表的汇编语言

供稿:hz-xin.com     日期:2025-01-13
原理图如图,用汇编语言实现99秒秒表倒计时,

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语

言,亦称为符号语言。在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号

(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指

令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应

的不同平台之间不可直接移植。
许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编程工具经常会

提供宏,它们也被称为宏汇编器。

微妙?显示不出来的,C语言编程都没人现做,甭说用汇编了,你还是去下载一个类似的程序自己修改吧。

以前做了一个,差不多类似,是正计时。

KEYVAL EQU 30H

DAT EQU 33H

SCANLED EQU 39H

SEC1 EQU 78H

SEC2 EQU 79H

SEC_2 EQU 7AH

SEC_1   EQU 7BH

DOT BIT 00H

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP EXTINT0

ORG 000BH

LJMP T0ISR ;50ms定时

ORG 0013H

LJMP EXTINT1

ORG 001BH

LJMP T1ISR ;扫描显示

ORG 0030H

MAIN:

MOV SP,#5FH

MOV TMOD,#11H

MOV TH0,#HIGH(65536-1000)

MOV TL0,#LOW(65536-1000)

MOV TH1,#0ECH

MOV TL1,#078H

MOV KEYVAL,#0FFH

MOV 33H,#10H

MOV 34H,#10H

MOV 35H,#10H

MOV 36H,#10H

MOV SEC_1,#0

MOV SEC_2,#0

MOV SEC1,#0

MOV SEC2,#0

SETB IT0

SETB EX0

SETB IT1

SETB EX1

CLR TR0

SETB ET0

SETB TR1

SETB ET1

SETB EA

LOOP:

MOV A,KEYVAL

LOOP1:

JNZ LOOP2 ;启动

SETB TR0

SJMP LOOP

LOOP2:

DEC A

JNZ LOOP3 ;暂停

CLR TR0

SJMP LOOP

LOOP3:

SJMP LOOP

;------------------

;十六进制转换为BCD

HBCD:

MOV B,#10

DIV AB 

SWAP A 

ORL A,B

RET 

;--------------------

DELAY:

MOV R3,#50

DELAY1:

MOV R4,#100

DJNZ R4,$

DJNZ R3,DELAY1

DJNZ R2,DELAY

RET

;--------------------

EXTINT0:

PUSH ACC

INC KEYVAL

MOV A,KEYVAL

CJNE A,#2,EXT00

EXT00:

JC EXT01

MOV KEYVAL,#0

EXT01:

POP ACC

RETI

;--------------------

EXTINT1:

CLR TR0

MOV SEC1,#0

MOV SEC_1,#0

MOV SEC2,#0

MOV SEC_2,#0

LCALL DISCHG

RETI

;--------------------

T0ISR:

PUSH ACC

CLR TR0

MOV TH0,#HIGH(65536-1000)

MOV TL0,#LOW(65536-1000)

SETB TR0

INC SEC_2

MOV A,SEC_2

CJNE A,#10,T0ISRE

MOV SEC_2,#0

INC SEC_1

MOV A,SEC_1

CJNE A,#10,T0ISRE

MOV SEC_1,#0

INC SEC1

MOV A,SEC1

CJNE A,#10,T0ISRE

MOV SEC1,#0

INC SEC2

MOV A,SEC2

CJNE A,#10,T0ISRE

MOV SEC2,#0

T0ISRE:

LCALL DISCHG

POP ACC

RETI

;--------------------

DISCHG:

MOV 33H,SEC2

MOV 34H,SEC1

MOV 35H,SEC_1

MOV 36H,SEC_2

RET

;--------------------

T1ISR:

PUSH ACC

CLR TR1

MOV TH1,#0ECH

MOV TL1,#78H

SETB TR1

MOV DPTR,#LEDTAB

T100:

MOV R0,#DAT

MOV A,SCANLED

ADD A,R0

MOV R0,A

MOV A,SCANLED

JNZ T101

MOV P2,#01H

CLR DOT

SJMP T1DIS

T101:

DEC A

JNZ T102

MOV P2,#02H

SETB DOT

SJMP T1DIS

T102:

DEC A

JNZ T103

MOV P2,#04H

CLR DOT

SJMP T1DIS

T103:

DEC A

JNZ T1DIS

MOV P2,#08H

CLR DOT

T1DIS:

MOV A,@R0

MOVC A,@A+DPTR

JNB DOT,T1DIS1

ORL A,#01H

T1DIS1:

CPL A

MOV P0,A

INC SCANLED

MOV A,SCANLED

CJNE A,#4,T1END

MOV SCANLED,#0

T1END:

POP ACC

RETI

;--------------------

LEDTAB: DB 0FCH ;"0" 00H

DB 60H ;"1" 01H

DB 0DAH ;"2" 02H

DB 0F2H ;"3" 03H

DB 66H ;"4" 04H

DB 0B6H ;"5" 05H

DB 0BEH ;"6" 06H

DB 0E0H ;"7" 07H

DB 0FEH ;"8" 08H

DB 0F6H ;"9" 09H

DB 0EEH ;"A" 0AH

DB 3EH ;"B" 0BH

DB 9CH ;"C" 0CH

DB 7AH ;"D" 0DH

DB 9EH ;"E" 0EH

DB 8EH ;"F" 0FH

DB 00H ;" " 10H

;--------------------

END



求下图倒计时秒表的汇编语言
KEYVALEQU 30H DATEQU 33H SCANLEDEQU 39H SEC1EQU 78H SEC2EQU 79H SEC_2EQU 7AH SEC_1 EQU 7BH DOTBIT 00H ORG 0000H LJMP MAIN ORG 0003H LJMP EXTINT0 ORG 000BH LJMP T0ISR;50ms定时 ORG 0013H LJMP EXTINT1 ORG 001BH LJMP T1ISR;扫描显示 ORG 0030H MAIN:MOV SP,#...

51单片机请教下1000秒倒计时的汇编语言该怎么写
下载文件:倒计时表ASM.zip|汇编 的 倒计时秒表 仿真实例,可以直接仿真,可以参考一下试试。

单片机,我有一个秒表00.0计时的汇编语言 程序 谁能帮我解释下这些程序...
50MS T0 中断 倒计时R4,R5,R6!数码管显示:R4,R5,R6 按键K1,开始...但没有看到K2的处理程序,没写完吧?