新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機入門之閃燈程序

        PIC單片機入門之閃燈程序

        作者: 時間:2016-11-24 來源:網絡 收藏
        今天首先發一個關于PIC單片機的入門的一些感悟。PIC單片機有很豐富的寄存器,我所學習的PIC16f886單片機有28個引腳,卻又很多I/O口,由于microchip的PIC芯片是相當比較穩定安全的芯片,所以他對端口輸入輸出方式的控制可謂是很細心,剛開始學習單片機得時候對于端口的配置走了很多彎路,下面做以下總結:
        首先要配置輸入還是輸出方式(TRISA、TRISB等等),其次要配置模擬模式還是數字模式(ANSEL、ANSELH等),如果配置不正確,是讀不到想要的值的,我想對于入門主要就是配置上的問題吧!
        對于初學PIC,往往先做一個閃燈實驗來驗證器件已經開始工作,下面是我做的閃燈程序,用匯編編寫,不是很規范,畢竟編寫的時候也是初學。
        #include
        ;程序采用可重定位的匯編,實現閃燈效果,用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對應的bank
        CLRF PORTA ;將PORTA數據清零
        BANKSEL ANSEL ;找到控制PORTA模式配置寄存器
        CLRF ANSEL ;配置PORTA的全部引腳為數字端口模式(0為數字模式,1為模擬模式)
        BANKSEL TRISA ;找到PORTA對應的數據方向寄存器
        MOVLW B00000000
        MOVWF TRISA ;配置為輸出端口
        LOOP
        MOVLW 01H ;送01H到W
        XORWF PORTA,f ;取反RA0,讓LED閃爍,用RA0點亮LED
        CALL DELAY ;調用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 ; 形式上的程序結束


        關鍵詞: PIC單片機閃燈程

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 苗栗市| 交城县| 陆河县| 柘荣县| 缙云县| 五寨县| 宁强县| 饶阳县| 汕头市| 承德县| 休宁县| 桂平市| 罗平县| 江川县| 黄大仙区| 北票市| 寿宁县| 抚顺市| 分宜县| 绩溪县| 冀州市| 军事| 温宿县| 合水县| 阳山县| 南漳县| 罗源县| 东港市| 乐至县| 沂源县| 隆尧县| 凌云县| 喀喇沁旗| 汶川县| 霞浦县| 犍为县| 互助| 太原市| 青浦区| 津市市| 长泰县|