天天看點

彙編指令控制單片機LED燈一.點亮LED燈二.延時控制流水燈三.定時器控制流水燈

一.點亮LED燈

簡單的對P1口進行操作就可以了

代碼:

ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
	MOV P1,#0FEH        ;點亮LED1
	AJMP MAIN
END
           

二.延時控制流水燈

延時程式生成:

設定好單片機系統頻率和定時長度

注意使用STC-Y1指令集,否則延時不準确

彙編指令控制單片機LED燈一.點亮LED燈二.延時控制流水燈三.定時器控制流水燈

代碼:

******************************************************************************
* 檔案名:延時控制流水燈
* 描  述:
* 作  者:思索與貓
* 日  期:  19/6/26
* 備  注: 
*         
******************************************************************************
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
	MOV P1,#0FEH        ;點亮LED1 
	ACALL DELAY1000MS
	MOV P1,#0FFH	    ;熄滅LED1
	ACALL DELAY1000MS
	AJMP MAIN
	
DELAY1000MS:			;@11.0592MHz
	PUSH 30H
	PUSH 31H
	PUSH 32H
	MOV 30H,#8
	MOV 31H,#1
	MOV 32H,#236
NEXT:
	DJNZ 32H,NEXT
	DJNZ 31H,NEXT
	DJNZ 30H,NEXT
	POP 32H
	POP 31H
	POP 30H
	RET
	
END
           

三.定時器控制流水燈

定時器設定

定時器程式生成:

設定好單片機系統頻率和定時長度

注意使用12T模式,否則延時不準确

彙編指令控制單片機LED燈一.點亮LED燈二.延時控制流水燈三.定時器控制流水燈

代碼:

******************************************************************************
* 檔案名:定時器控制流水燈
* 描  述:
* 作  者:思索與貓
* 日  期:  19/6/26
* 備  注: 
*         
******************************************************************************
ORG 0000H
AJMP MAIN
ORG 000BH  ;定時器0中斷位址
AJMP TIMER0
ORG 0100H
	
LED: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH ;根據流水燈需求自行編輯

MAIN:
	ACALL TIMER0INIT
	MOV R6,#0			;8個燈,執行8次
	MOV R7,#20			;20*5 =100ms
	
LOOP:
	MOV DPTR,#LED     ;使用查表,将LED裡的值指派給A
	MOV A,R6
	MOVC A,@A+DPTR
	MOV P1,A          ;将A指派給P1
	AJMP LOOP
	
;定時器初始化程式	
TIMER0INIT:				;[email protected]	
	MOV TMOD,#001H		
	MOV TL0,#000H		;裝載定時器初值
	MOV TH0,#0EEH		;裝載定時器初值
	CLR TF0			
	SETB TR0
	SETB ET0
	SETB EA
RET	
	
;定時器中斷程式
TIMER0:
	MOV TL0,#000H		;裝載定時器初值
	MOV TH0,#0EEH		;裝載定時器初值
	
	DJNZ R7,RE          ;功能:100ms延時
	MOV R7,#20
	
	INC R6              ;加一
	
	CJNE R6,#8,RE		;功能:與8相比較,若不等,傳回中斷;相等,執行下一條語句
	MOV R6,#0
		
RE:	RETI

END