AT89S51单片机怎么用汇编语言让数码管从0到9显示
3个回答
展开全部
START:MOV R5,#00H ;次数计数单元R5,后面的程序应该看得懂了,都是教科书式的
MAIN: MOV A,R5
MOV DPTR,#TAB
MOV A,@A+DPTR
LCALL DISPLAY
CJNE,R5,#10,START ;次数到,从头再来
LJMP MAIN
DISPLAY: ;数码管显示子程序
..................
..................
LCALL DLY10MS
DLY10MS:.............. ;数码管显示延时
.............................
TAB: DB .................................... ;数码管七段码表
MAIN: MOV A,R5
MOV DPTR,#TAB
MOV A,@A+DPTR
LCALL DISPLAY
CJNE,R5,#10,START ;次数到,从头再来
LJMP MAIN
DISPLAY: ;数码管显示子程序
..................
..................
LCALL DLY10MS
DLY10MS:.............. ;数码管显示延时
.............................
TAB: DB .................................... ;数码管七段码表
展开全部
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN:
MOV R2,#0
MOV DPTR,#LEDTAB
LOOP:
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC R2
MOV A,R2
CJNE A,#10,LOOP
SJMP MAIN
DELAY:
MOV R3,#100
DELAY1:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DELAY1
RET
LEDTAB:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
END
LJMP MAIN
ORG 0030H
MAIN:
MOV R2,#0
MOV DPTR,#LEDTAB
LOOP:
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
LCALL DELAY
INC R2
MOV A,R2
CJNE A,#10,LOOP
SJMP MAIN
DELAY:
MOV R3,#100
DELAY1:
MOV R4,#250
DJNZ R4,$
DJNZ R3,DELAY1
RET
LEDTAB:
DB 0C0H ;"0" 00H
DB 0F9H ;"1" 01H
DB 0A4H ;"2" 02H
DB 0B0H ;"3" 03H
DB 99H ;"4" 04H
DB 92H ;"5" 05H
DB 82H ;"6" 06H
DB 0F8H ;"7" 07H
DB 80H ;"8" 08H
DB 90H ;"9" 09H
END
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
- >
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询