51单片机基础
51汇编实战
本章主要介绍打开一个led,具体采用51汇编
ORG 00H;伪代码,程序起始位置
MOV A,#11111110B ;存入显示灯的位置数据为累加器A
MOV P1,A
JMP $ ;程序在这里停止
END
其中#11111110可以写为0FEH,不要忘了前面的0
上面可以不用A,直接可以负值,因为P1是片内ram,所以不需要A,如果是片外ram,就需要A
ORG 00H
MOV P1,#11111110B ;存入显示灯的位置数据为累加器A
JMP $ ;程序在这里停止
END
ORG
CLR P1.7 ;清除1bit
JMP $ ;程序在这里停止
END
ORG 00H
START:
CLR P1.0
CALL DELAY
SETB P1.0
CALL DELAY
JMP START
DELAY:MOV R5, #25
D1:MOV R6,#100
D2:MOV R7,#100
DJNZ R7, $ ;$表示继续执行这一句
DJNZ R6,D2
DJNZ R5,D1
RET
END
`
从P1.0开始,循环依次点亮
ORG 00H
START:
MOV R0,#7
MOV A, #0FEH
LOOP:MOV P1,A
CALL DELAY
RL A ;左移一位
DJNZ R0, LOOP
DELAY:
MOV R5, #50
D1:
MOV R6, #100
D2:
MOV R7, #100
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END
加强版
ORG 00H
START:
MOV R0,#7
MOV A, #0FEH
LOOP:MOV P1,A
CALL DELAY
RL A ;左移一位
DJNZ R0, LOOP
MOV R1 , #3
MOV A,#00H
LOOP1:
MOV P1, A
CALL DELAY
CPL A;
DJNZ R1,LOOP1
JMP START
DELAY:
MOV R5, #50
D1:
MOV R6, #100
D2:
MOV R7, #100
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END