PIC单片机程序设计的基本格式

来源:嵌入式世界 作者: 时间:2007-10-24 18:26

     为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令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写入PIC16F84内部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
    
    

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子