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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)程序設(shè)計(jì)基礎(chǔ)格式

          PIC單片機(jī)程序設(shè)計(jì)基礎(chǔ)格式

          作者: 時(shí)間:2011-09-29 來(lái)源:網(wǎng)絡(luò) 收藏

          為了快速掌握源程序的基本結(jié)構(gòu),這里給出一個(gè)典型的程序結(jié)構(gòu)框架。

          建立源程序時(shí)首先用偽指令TITLE提供程序的標(biāo)題,接著給出整個(gè)程序的總說(shuō)明,并用列表偽指令LIST指定所用單片機(jī)型號(hào)和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84?INC》,然后對(duì)片內(nèi)常用資源進(jìn)行定義,再給出一般程序的基本結(jié)構(gòu)框架?,F(xiàn)舉例如下。

          TITLE“This is……”;程序標(biāo)題
            ;程序說(shuō)明
            LIST P="16F84",F(xiàn)=1NHX8M
           ?。?
            include
           ?。璫onfig_RC_Qsc &_WDT_0FF…
           ?。毁Y源定義和變量定義
            STATUS EQU 03
            FSR EQU 04
            PORTA EQU 05
            PORTB EQU 06
            J EQU 01F
            K EQU 01E
           ?。弧?
                ORG 0000 ;
                goto MAIN ;跳過(guò)中斷矢量
                ORG 0004
                goto INTSRV;子程序入口地址
            ;……………………………………
            MAIN   
               ;從0005H開(kāi)始放主程序
                call Initports ;端口初始化
                call InitTimers;定時(shí)器初始化
                 …
            INTSRV …     ;中斷服務(wù)程序區(qū)
            SVBRTH…      ;子程序區(qū)
              END      ;程序結(jié)束符
            當(dāng)然,在編寫(xiě)程序時(shí)可根據(jù)實(shí)際情況加以調(diào)整。下面是一份實(shí)際程序清單,要求將數(shù)據(jù)88H寫(xiě)入PIC16F84內(nèi)部EEPROM的20H單元,而后再?gòu)?0H單元將其讀出。
            LIST P="16F84",F(xiàn)=INHX8M
           ?。弧?
            STATUS EQU  03 ??;定義寄存器
            EEDATA EQU  08
            EEADR EQU  09
            INTCON EQU  0BH
            EECON1 EQU  88H
            EECON2 EQU  89H
            ;…………………………
            RD    EQU  0    ;定義位
            WR  EQU  1
            RP0   EQU  5
            GIE  EQU  7
           ??;…………………………
                  ORG  0
                  GOTO WRSTART
           ?。弧?
                 ORG  10H
            WRSTART         ;寫(xiě)入操作開(kāi)始
                 CLRW      ;清W,使W=0
                 BCF STATUS,RP0 ;選BANK0
                 MOVLW 20H
                 MOVWF EEADR   ;地址→EEADR
                 MOVLW 88H
                 MOVWF EEDATA ?。粚?xiě)入數(shù)據(jù)→
                           ;EEDATA
                 BSF STATUS,RP0 ;選BANK1
                 BSF EECON1,2 ;寫(xiě)操作使能允許
                 BCF INTCON,GIE ;關(guān)閉所有的中斷
                 MOVLW 0X55
                 MOVWF EECON2  ;55H→EECON2
                 MOVLW 0XAA
                 MOVWF EECON2  ;AAH→EECON2
                 BSF EECON1,WR ;啟動(dòng)寫(xiě)操作
                 BSF INTCON,GIE ;恢復(fù)開(kāi)中斷
            RDSTART          ;讀出操作開(kāi)始
                 BCF STATUS,RP0
                 MOVLW 20H
                 MOVWF EEADR   ;地址→EEADR
                 BSF STATUS,RP0
                 BSF EECON1,RD ;啟動(dòng)讀操作
                 BCF STATUS,RP0
                 MOVF EEDATA,W ;將EEPROM
                           ;數(shù)據(jù)讀入W
            END



          評(píng)論


          相關(guān)推薦

          技術(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); })();