<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          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芯片是相當(dāng)比較穩(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)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();