LED流水燈的另一種實現(xiàn)方法
;使用資源
;1、PORTC口,8個流水燈LED
;功能說明
;1、該程序首先把C口輸出全0,然后通過改變輸入輸出方向來電亮流水燈。
;2、先從最低位電亮,點亮到最高位后,又從最高位開始點亮到最低位,如此循環(huán)。
;3、通過改變DELAY延時時間的長短可改變流水等點亮的速度。
;硬件連接
;1、DEMO實驗板作以下設置 s1拔到ON。
;2、S4,S5全部拔到OFF LCD不要插在演示板上
;源程序如下:
;LIST P=16F877A R=DEC
;OST 4MHZ
;DATE 2006.04.27
;***********************************
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SPECIAL REGISTER
STATUS EQU 83H
RC EQU 07H
TRISC EQU 87H
AB0 EQU 20H
AB1 EQU 21H
AB2 EQU 22H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;STATUS BIT
C EQU 0
DC EQU 1
Z EQU 2
RP0 EQU 5
RP1 EQU 6
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PROGRAM ST
ORG 0000H ;復位地址
NOP ;放置一條MCD所需的空指令
ST
CLRF RC ;所有C口輸出為低,關閉所有顯示
BSF STATUS,5 ;選體1
LOOP MOVLW B'11111110' ;先點亮RC0
MOVWF TRISC
BCF STATUS,5 ;回到體0
MOVLW B'11111111' ;所有輸出為1,只要相應的位被設置為輸出,即可點亮
MOVWF RC
CALL DELAY ;延時一段時間,保證LED的亮度
BSF STATUS,5
BSF STATUS,C
LOOP1 RLF TRISC,F ;點亮的位左移一位
CALL DELAY ;延時
BTFSC STATUS,C ;判斷是否點亮到了RC7
GOTO LOOP1 ;否,繼續(xù)左移
MOVLW B'01111111' ;是,點亮RC7位
MOVWF TRISC
CALL DELAY
BSF STATUS,0
LOOP2 RRF TRISC ,F ;點亮的位右移一位
CALL DELAY
BTFSC STATUS,C ;是否點亮到最低位
GOTO LOOP2 ;否,繼續(xù)右移
GOTO LOOP ;是,重新開始新一輪循環(huán)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DELAY 0.12S
DELAY
MOVLW 0FFH
MOVWF AB0
DELAY1 MOVLW 0DH
MOVWF AB1
DELAY2
MOVLW 0BH
MOVWF AB2
DELAY3
DECFSZ AB2,F
GOTO DELAY3
DECFSZ AB1,F
GOTO DELAY2
DECFSZ AB0,F
GOTO DELAY1
RETURN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END ;源程序結束
; 進入該實戰(zhàn)演練的工序流程如下:
; 1.創(chuàng)建源文件和編輯源文件;在此介紹一種不同于前面講的創(chuàng)建源文件的方法,用Windows附件中的”記事本”
; 這個為大家所熟知和好用的文件編輯器,并且可以方便的加入中文注釋.不過有兩點需要注意,一是注釋前面的
; 分號”;”必須用西文半角輸入;二是必須用”.asm”擴展名存儲到事先建立的一個專用子目錄下.
; 2.打開MPLAB集成開發(fā)環(huán)境:首先在WINDOWS環(huán)境下,選用開始>程序>Microchip MPLAB>MPLAB命令,啟動MPLAB
; 并進入MPLAB的桌面.
; 3.創(chuàng)建項目:選用菜單File>New或Project>New Project,在事先建立的一個專用子目錄下創(chuàng)建一個新項目,將
; 用記事本創(chuàng)建的源文件加入到該項目中.
; 4.建立項目中的目標文件:選擇菜單Project >Build All(項目>建立所有文件),MPLAB將自動調用MPASM將項目
; 文件管理下的源文件(.asm)匯編成十六進制的目標文件(.hex).