单片机汇编程序实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机程序入门小例子(汇编语言)
声明:以下3个例子都是正确的,都已经验证过。希望能给刚刚学习单片机的人一点参考。
编写人:大连民族学院自动化专业
例1:流水灯(加按键)
ORG 0000H
KEY1:MOV A,#0FEH
CLR C
LOOP1:MOV P2,A
RLC A
ACALL DELAY
JNB P3.7,KEY2
LJMP LOOP1
KEY2:MOV A,#0FEH
LOOP2:MOV P2,A
RL A
ACALL DELAY
JNB P3.6,KEY1
LJMP LOOP2
DELAY:MOV R7,#20
D1:MOV R6,#200
D2:MOV R5,#123
NOP
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
END
例2:数码管动态显示
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP PINT0
ORG 0100H MAIN:MOV SP,#40H
CLR IT0
SETB EX0
SETB EA HERE:MOV 30H,#00H
MOV 31H,#01H
MOV 32H,#02H
MOV 33H,#03H
LOOP:MOV R0,#30H
MOV R1,#4
MOV R3,#0FEH
MOV DPTR,#TAB
LOOP1:MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
MOV P1,R3
LCALL DELAY
INC R0
MOV A,R3
RL A
MOV R3,A
DJNZ R1,LOOP1
SJMP LOOP
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DELAY:MOV R6,#6
LD:ACALL DELAY1
DJNZ R6,LD
DELAY1:MOV R7,#124
NOP
LOOP2:NOP
NOP
DJNZ R7,LOOP2
RET
DELAY2:MOV R7,#20
D1:MOV R6,#200
D2:MOV R5,#123
NOP
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
ORG 0200H
PINT0:MOV A,#0C0H
MOV R3,#0FEH
MOV P0,A
MOV P1,R3
LCALL DELAY2
RETI
END
例3:用汇编语言编写一个秒表程序
ORG 0000H
AJMP MAIN
ORG 0003H
LJMP TINT0
ORG 000BH
LJMP TIMER0
ORG 0013H
LJMP TINT1
ORG 0100H MAIN:MOV SP,#40H
MOV TMOD,#01H
MOV TL0,0B0H
MOV TH0,03CH
SETB TR0
SETB ET0
SETB EX0
SETB EX1
SETB PX0
SETB IT0
SETB IT1
SETB EA HERE:MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
MOV 34H,#00H
MOV R4,#0 LOOP:MOV R0,#31H
MOV R1,#4
MOV R3,#0F7H
MOV DPTR,#TAB
MOV R5,#0
LOOP1:MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
MOV P1,R3
INC R5
CJNE R5,#2,DDD
CLR P0.7
MOV R5,#0
DDD:LCALL DELAY
INC R0
MOV A,R3
RR A
MOV R3,A
DJNZ R1,LOOP1
SJMP LOOP
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DELAY:MOV R6,#6
LD:ACALL DELAY1
DJNZ R6,LD
DELAY1:MOV R7,#124
NOP
LOOP2:NOP
NOP
DJNZ R7,LOOP2
RET
TIMER0:PUSH PSW
PUSH ACC
MOV TL0,0B0H
MOV TH0,03CH
INC 30H
MOV A,30H
CJNE A,#02H,TIME
MOV 30H,#00H
INC 31H