新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機(jī)“跑馬燈”實驗程序代碼

PIC單片機(jī)“跑馬燈”實驗程序代碼

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
;實驗?zāi)康模罕境绦蛑饕獙崿F(xiàn)一個簡單的流水燈程序

;即輪流點(diǎn)亮C口的8個燈(先點(diǎn)亮RC0,再熄滅RCO點(diǎn)亮RC1。。。。)
;硬件要求:撥碼開關(guān)S11全部置ON。
#include ;調(diào)用頭文件
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
;**********************用戶寄存器定義********************
count equ 20h ;移位次數(shù)寄存器
del_va1 equ 0ffh ;外層延時參數(shù)
del_va2 equ 0afh ;內(nèi)層延時參數(shù)

本文引用地址:http://m.butianyuan.cn/article/201611/320211.htm


org 00h ;程序人口地址
;**********************主程序開始***********************
main
nop ;ICD所需要的一條空指令
clrf PORTC ;先清楚C口所有顯示
banksel TRISC ;選擇I/O口方向寄存器所在的體
clrf TRISC ;設(shè)置C口全為輸出
clrf STATUS ;返回體0
movlw .8
movwf count ;裝載循環(huán)次數(shù)8(C口共8位)


bsf STATUS,C ;置進(jìn)位標(biāo)志位為1,因循環(huán)移位是帶進(jìn)位循環(huán)的
loop
rlf PORTC,1 ;C口左移1位
call delay
call delay
CALL delay ;調(diào)用三次延時程序(保證亮度,以及流水燈閃爍速度)
bcf STATUS,C ;清0進(jìn)位標(biāo)志位(永遠(yuǎn)只有一只LED亮)
DECFSZ count,1 ;判斷是否一輪循環(huán)結(jié)束
goto loop ;否,繼續(xù)循環(huán)移位
GOTO main ;是,程序重頭開始

;***********************延時程序*************************
delay
movlw del_va1 ;延時程序外層參數(shù)
movwf 30h
movlw del_va2 ;延時程序內(nèi)層參數(shù)
movwf 31h
decfsz 31h,1
goto $-1
decfsz 30h,1
goto $-4
return

;********************程序結(jié)束****************************
end



評論


技術(shù)專區(qū)

關(guān)閉