新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC單片機入門之閃燈程序

PIC單片機入門之閃燈程序

作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
今天首先發(fā)一個關(guān)于PIC單片機的入門的一些感悟。PIC單片機有很豐富的寄存器,我所學(xué)習(xí)的PIC16f886單片機有28個引腳,卻又很多I/O口,由于microchip的PIC芯片是相當比較穩(wěn)定安全的芯片,所以他對端口輸入輸出方式的控制可謂是很細心,剛開始學(xué)習(xí)單片機得時候?qū)τ诙丝诘呐渲米吡撕芏鄰澛?,下面做以下總結(jié):
首先要配置輸入還是輸出方式(TRISA、TRISB等等),其次要配置模擬模式還是數(shù)字模式(ANSEL、ANSELH等),如果配置不正確,是讀不到想要的值的,我想對于入門主要就是配置上的問題吧!
對于初學(xué)PIC,往往先做一個閃燈實驗來驗證器件已經(jīng)開始工作,下面是我做的閃燈程序,用匯編編寫,不是很規(guī)范,畢竟編寫的時候也是初學(xué)。
#include
;程序采用可重定位的匯編,實現(xiàn)閃燈效果,用RA0輸出
udata_shr
D1 res 1h ;定義變量
D2 res 1h
D3 res 1h
reset code 0x0 ;程序開始地址
pagesel main
goto main
code
main
NOP
BANKSEL PORTA ;找到PORTA對應(yīng)的bank
CLRF PORTA ;將PORTA數(shù)據(jù)清零
BANKSEL ANSEL ;找到控制PORTA模式配置寄存器
CLRF ANSEL ;配置PORTA的全部引腳為數(shù)字端口模式(0為數(shù)字模式,1為模擬模式)
BANKSEL TRISA ;找到PORTA對應(yīng)的數(shù)據(jù)方向寄存器
MOVLW B00000000
MOVWF TRISA ;配置為輸出端口
LOOP
MOVLW 01H ;送01H到W
XORWF PORTA,f ;取反RA0,讓LED閃爍,用RA0點亮LED
CALL DELAY ;調(diào)用0。2S廷時程控
GOTO LOOP ;返回不斷閃爍
;-------------------------------------以下是0。2S廷時子程序
DELAY
MOVLW .2
MOVWF D1
DELAY_1
MOVLW .200
MOVWF D2
DELAY_2
MOVLW .200
MOVWF D3
DELAY_3
DECFSZ D3,1
GOTO DELAY_3
DECFSZ D2,1
GOTO DELAY_2
DECFSZ D1,1
GOTO DELAY_1
RETURN ;子程序返回
END ; 形式上的程序結(jié)束


關(guān)鍵詞: PIC單片機閃燈程

評論


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

關(guān)閉