新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC單片機(jī)程序設(shè)計(jì)的基本結(jié)構(gòu)框架

        PIC單片機(jī)程序設(shè)計(jì)的基本結(jié)構(gòu)框架

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

        為了快速掌握源程序的,這里給出一個(gè)典型的程序。建立源程序時(shí)首先用偽指令TITLE提供程序的標(biāo)題,接著給出整個(gè)程序的總說(shuō)明,并用列表偽指令LIST指定所用型號(hào)和文件輸出格式,再利用INCLUDE偽指令讀入MPASM中提供的定義文件如《P16F84INC》,然后對(duì)片內(nèi)常用資源進(jìn)行定義,再給出一般程序的。現(xiàn)舉例如下。

        本文引用地址:http://www.104case.com/article/172424.htm

          TITLE“This is……”;程序標(biāo)題
          ;程序說(shuō)明
          LIST P=16F84,F(xiàn)=1NHX8M
          ;
          include p16F84.inc>
          -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 ;跳過(guò)中斷矢量
              ORG 0004
              goto INTSRV;子程序入口地址
          ;……………………………………
          MAIN        ;從0005H開(kāi)始放主程序
              call Initports ;端口初始化
              call InitTimers;定時(shí)器初始化
               …
          INTSRV …     ;中斷服務(wù)程序區(qū)
          SVBRTH…      ;子程序區(qū)
            END      ;程序結(jié)束符
          當(dāng)然,在編寫程序時(shí)可根據(jù)實(shí)際情況加以調(diào)整。下面是一份實(shí)際程序清單,要求將數(shù)據(jù)88H寫入16F84內(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         ;寫入操作開(kāi)始
               CLRW      ;清W,使W=0
               BCF STATUS,RP0 ;選BANK0
               MOVLW 20H
               MOVWF EEADR   ;地址→EEADR
               MOVLW 88H
               MOVWF EEDATA  ;寫入數(shù)據(jù)→
                         ;EEDATA
               BSF STATUS,RP0 ;選BANK1
               BSF EECON1,2 ;寫操作使能允許
               BCF INTCON,GIE ;關(guān)閉所有的中斷
               MOVLW 0X55
               MOVWF EECON2  ;55H→EECON2
               MOVLW 0XAA
               MOVWF EECON2  ;AAH→EECON2
               BSF EECON1,WR ;啟動(dòng)寫操作
               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)閉
        主站蜘蛛池模板: 连城县| 凉山| 巴彦县| 新建县| 金川县| 宝清县| SHOW| 历史| 永嘉县| 西华县| 富源县| 渝北区| 黄大仙区| 长治县| 通道| 深泽县| 札达县| 宁都县| 长春市| 南宫市| 墨竹工卡县| 阳泉市| 淮南市| 称多县| 博罗县| 靖西县| 穆棱市| 剑阁县| 特克斯县| 北宁市| 五指山市| 木兰县| 沐川县| 碌曲县| 鸡西市| 龙海市| 商水县| 拉孜县| 都江堰市| 新竹市| 于田县|