ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB ET0
SETB EA
MOV R0,#9
MOV R1,#9
MOV R2,#0
MOV R3,#9
CLR 00H
CLR 01H
LOOP:
JB P1.0,LP01
JNB P1.0,$
SETB TR0
CLR 01H
SJMP LOOP0
LP01:
JB P1.1,LP02
JNB P1.1,$
SETB 01H
SJMP LOOP0
LP02:
JB P1.2,LOOP0
JNB P1.1,$
CLR TR0
MOV P3,#0FDH
MOV P2,#0
MOV P3,#0FEH
MOV P2,#0
SJMP MAIN
LOOP0:
JB 00H,LOOP1
MOV A,R0
SJMP LOOP2
LOOP1:
MOV A,R1
LOOP2:
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV R3,A
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-10000)
MOV TL0,#LOW(65536-10000)
SETB TR0
JB 01H,T0C
INC R2
T0C:
CPL 00H
MOV A,R3
JB 00H,T001
MOV P3,#0FDH
MOV P2,A
SJMP T002
T001:
MOV P3,#0FEH
MOV P2,A
T002:
MOV A,R2
CJNE A,#100,T0E
MOV R2,#0
MOV A,R0
JZ T003
DEC R0
SJMP T0E
T003:
MOV A,R1
JZ T004
DEC R1
MOV R0,#9
T0E:
RETI
T004:
CLR TR0
RETI
TABLE: ; å
±é´ææ°ç 管æ¾ç¤ºä»£ç 表
DB 3FH,06H,5BH,4FH,66H ;01234
DB 6DH,7DH,07H,7FH,6FH ;56789
END
ORG 0000H
START:
MOV 39H, #0C0H
MOV 38H, #0F9H
MOV 37H, #0A4H
MOV 36H, #0B0H
MOV 35H, #99H
MOV 34H, #92H
MOV 33H, #82H
MOV 32H, #0F8H
MOV 31H, #80H
MOV 30H, #90H
MOV P3, #0
MOV TMOD, #01H
SETB TR0
LP: MOV R0, #30H
LP0:MOV R1, #30H
LP1:MOV R5, #20
LP2:MOV TH0, #3CH
MOV TL0, #0B0H
LP3:CALL DISP
JNB P1.0, K1
JNB P1.1, K2
JNB P1.2, K3
JNB TF0, LP3
CLR TF0
DJNZ R5, LP2
INC R1
CJNE R1, #3AH, LP1
INC R0
CJNE R0, #3AH, LP0
JMP LP
K1:
CALL DISP
JB P1.0, LP3
SETB TR0
JMP LP3
K2: CALL DISP
JB P1.1, LP3
CLR TR0
JMP LP3
K3: CALL DISP
JB P1.2, LP3
CLR TR0
MOV R0, #39H
MOV R1, #39H
MOV R5, #01H
JMP LP2
DISP:
MOV P2, @R0
SETB P3.1
DJNZ R7, $
DJNZ R7, $
CLR P3.1
MOV P2, @R1
SETB P3.0
DJNZ R7, $
DJNZ R7, $
CLR P3.0
RET
END
仿真截图如下:
本回答被提问者采纳...我编一个99倒计时到0的汇编语言的程序 ,不要用DIV的
ORG 0000HLJMP MAINORG 000BHLJMP T0ISRORG 0030HMAIN: MOV TMOD,#01H MOV TH0,#HIGH(65536-10000) MOV TL0,#LOW(65536-10000) SETB ET0 SETB EA MOV R0,#9 MOV R1,#9 MOV R2,#0 MOV R3,#9 CLR 00H CLR 01HLOOP: JB P1.0,LP01 JNB P1.0,$ SETB TR0 CL...
单片机,我有一个从99倒计时到00的汇编语言的程序,求好心人帮忙解释下这...
CLR P3.1 ;十位数位清0 MOV A, B ;个位数送A MOVC A, @A+DPTR ;查表 MOV P2, A ;结果送P2 SETB P3.0 ;个位数位置1 DJNZ R7, $ ;延时 DJNZ R7, $ ;延时 CLR P3.0 ;个位数位清0 RET TABLE:DB 0C0H, 0F9H, 0A4H, 0B0H, 99H DB 92H, 82H...
单片机 我有一篇从99到0倒计时的汇编语言的程序, 求大家帮我加入3个开...
程序写的可以,但是在硬软件资源使用上不科学。1.位寻址寄存器20H~2FH应专做为寻址用,平时的字节寄存器应从30H开始不较好。2.P3口各个引脚都有第二功能,能不用尽量不用。比如这次的电路:数码管a~g用P2口,位选用P1.0~P1.1,按键用P1.2~P1.4,完全够用。3.汇编编程要适当添加注释,提高...
单片机高手们谁会用汇编语言实现0~99间的计数、暂停、清零程序。对初学...
MOV P0, A T0_1:MOV A, R1 ;显示个位 MOVC A, @A + DPTR MOV P2, A T0_E:RETI ;--- TAB: DB 3FH, 06H, 5BH, 4FH, 66H;0~4 DB 6DH, 7DH, 07H, 7FH, 6FH;5~9 ;---
篮球计分器程序(单片机汇编语言编写,不要C语言)
org 00h main:mov p1,#00h mov r1,#00h a1:call dis jb p3.2, j1 jb p3.3,j2 jb p3.4,j3 jmp a1 dis:mov a,r1 mov b,#10 div ab mov p1,a setb p2.0 call yanshi mov p1,b clr p2.0 call yanshi ret ji:call yanshi jnb p3.2,a1 inc r1 ret j2:call ...
求一个用汇编语言编写一个8051单片机的时钟程序(急急急啊)
USING 0 MOV SP, #(STACK-1) ;MOV P0,#0FFH MOV P2,#0FFH MOV TMOD,#011H ; 定时器0, 1工作模式1, 16位定时方式 MOV TH0,#0FCH MOV TL0,#017H MOV TH1,#0DCH CLR A MOV TL1,A MOV HOUR,#12 ;CLR A ;MOV MIN,A MOV SEC,A MOV ...
请懂单片机的高手用汇编语言帮我编以下要求的程序
ORG 0030H LJMP LP1 ORG 000BH MAIN:SETB EA SETB TR0 CLR IT0 MOV A,#01H MOV P1,A LP1: JB D0,LP2 忘了TCON的D0为是哪个单元了 你找下改了就好 我这你 看懂就好拉 LCALL YAN JB DO,LP2 RL A MOV P1,A RETI YAN: MOV R7,#250 延时子程序 不知道你的晶震是多少...
大神帮忙编制一个程序,用汇编语言。
PD EQU P1.7 ORG 0000H LJMP MAIN ORG 0030H MAIN:CLR PA CLR PB CLR PC CLR PD JNB PORTA,MAIN SETB PA JB PORTB,MAINB1 MAINB0:JNB PORTC,MAINC0 CLR PB SETB PC CLR PD JB PORTA,SJMP MAIN MAINC0:SETB PB SETB PC CLR PD JB PORTA,SJMP MAIN MAINB1:JB PORTC,MAINC1 SETB ...
单片机用汇编写两个数码管显示0到99循环的程序
2、数码管段选表。3、延时函数。4、uchar i; 变量i;wk = 1;打开位选,P0 = 0xf7;1111 0111第4位数码管显示,wk = 0;关闭位选。5、while(1) \/\/死循环效果{} 。6、dk = 1;\/\/打开段选,P0 = leddata[i];,dk = 0;\/\/关闭段选,delay(100);\/\/延时效果。7、选择效果,限制i值...
单片机 60秒倒计时
我是用汇编语言做的,如果显示的速度不理想 你改下延时程序段的数值就OK了,课堂上这个60S倒计时的课题用了很多方法做过 ORG 0000H LJMP START ORG 0100H START:MOV R0, #59 MOV DPTR, #TABLE LOOP:LCALL DISPLAY DEC R0 CJNE R0,#0,LOOP JMP START DISPLAY:MOV ...