新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > PIC單片機程序設計的基本格式

        PIC單片機程序設計的基本格式

        ——
        作者: 時間:2007-10-24 來源:嵌入式世界 收藏
            為了快速掌握源程序的基本結構,這里給出一個典型的程序結構框架。建立源程序時首先用偽指令TITLE提供程序的標題,接著給出整個程序的總說明,并用列表偽指令LIST指定所用型號和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84INC》,然后對片內常用資源進行定義,再給出一般程序的基本結構框架。現舉例如下。

            TITLE“This is……”;程序標題
          ;程序說明
          LIST P="16F84",F=1NHX8M
          ;
          include
          -config_RC_Qsc &_WDT_0FF…
          ;資源定義和變量定義
          STATUS EQU 03
          FSR EQU 04
          PORTA EQU 05
          PORTB EQU 06
          J EQU 01F
          K EQU 01E
          ;…………………
              ORG 0000 ;
              goto MAIN ;跳過中斷矢量
              ORG 0004
              goto INTSRV;子程序入口地址
          ;……………………………………
          MAIN   

             ;從0005H開始放主程序
              call Initports ;端口初始化
              call InitTimers;定時器初始化
               …
          INTSRV …     ;中斷服務程序區
          SVBRTH…      ;子程序區
            END      ;程序結束符

          當然,在編寫程序時可根據實際情況加以調整。下面是一份實際程序清單,要求將數據88H寫入16F84內部EEPROM的20H單元,而后再從20H單元將其讀出。
          LIST P="16F84",F=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         ;寫入操作開始
               CLRW      ;清W,使W=0
               BCF STATUS,RP0 ;選BANK0
               MOVLW 20H
               MOVWF EEADR   ;地址→EEADR
               MOVLW 88H
               MOVWF EEDATA  ;寫入數據→
                         ;EEDATA
               BSF STATUS,RP0 ;選BANK1
               BSF EECON1,2 ;寫操作使能允許
               BCF INTCON,GIE ;關閉所有的中斷
               MOVLW 0X55
               MOVWF EECON2  ;55H→EECON2
               MOVLW 0XAA
               MOVWF EECON2  ;AAH→EECON2
               BSF EECON1,WR ;啟動寫操作
               BSF INTCON,GIE ;恢復開中斷
          RDSTART          ;讀出操作開始
               BCF STATUS,RP0
               MOVLW 20H
               MOVWF EEADR   ;地址→EEADR
               BSF STATUS,RP0
               BSF EECON1,RD ;啟動讀操作
               BCF STATUS,RP0
               MOVF EEDATA,W ;將EEPROM
                         ;數據讀入W
          END



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 扎赉特旗| 汤阴县| 古交市| 礼泉县| 民权县| 辽阳县| 惠安县| 嘉鱼县| 城步| 阳信县| 子长县| 顺义区| 紫阳县| 泰来县| 滨海县| 新郑市| 仙桃市| 凤城市| 宣化县| 嵩明县| 十堰市| 马鞍山市| 牙克石市| 陇川县| 兖州市| 扶余县| 藁城市| 塘沽区| 宜章县| 扎赉特旗| 邻水| 西青区| 福清市| 西林县| 陇南市| 桦川县| 来宾市| 姚安县| 丽江市| 万宁市| 青川县|