• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 福州市| 崇信县| 二连浩特市| 孙吴县| 军事| 耒阳市| 石泉县| 高尔夫| 额敏县| 奉贤区| 余干县| 南岸区| 靖江市| 红桥区| 梧州市| 滨州市| 浦东新区| 沙雅县| 尖扎县| 法库县| 孝昌县| 宜章县| 吉林市| 原阳县| 景东| 南江县| 合山市| 崇阳县| 青州市| 左贡县| 平原县| 盐源县| 靖江市| 安顺市| 富阳市| 怀集县| 尼勒克县| 华容县| 三穗县| 滨州市| 栖霞市|