当前位置:首页 > 单片机 > 单片机
[导读] 为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出

为了快速掌握PIC单片机源程序的基本结构,这里给出一个典型的程序结构框架。建立源程序时首先用伪指令TITLE提供程序的标题,接着给出整个程序的总说明,并用列表伪指令LIST指定所用单片机型号和文件输出格式,再利用INCLUDE伪指令读入MPASM中提供的定义文件如《P16F84?INC》,然后对片内常用资源进行定义,再给出一般程序的基本结构框架。现举例如下。


  TITLE“This is……”;程序标题
  ;程序说明
  LIST P=16F84,F=1NHX8M
  ;
  include
  -config_RC_Qsc &_WDT_0FF…
  ;资源定义和变量定义
  STATUS EQU 03
  FSREQU 04
  PORTAEQU 05
  PORTBEQU 06
  JEQU 01F
  KEQU 01E
  ;…………………
      ORG 0000;
      gotoMAIN;跳过中断矢量
      ORG 0004
      gotoINTSRV;子程序入口地址
  ;……………………………………
  MAIN       ;从0005H开始放主程序
      call Initports;端口初始化
      call InitTimers;定时器初始化
       …
  INTSRV…    ;中断服务程序区
  SVBRTH…      ;子程序区
    END     ;程序结束符
  当然,在编写程序时可根据实际情况加以调整。下面是一份实际程序清单,要求将数据88H写入PIC16F84单片机内部EEPROM的20H单元,而后再从20H单元将其读出。
  LIST P=16F84,F=INHX8M
  ;……………………………
  STATUS EQU  03  ;定义寄存器
  EEDATAEQU  08
  EEADREQU  09
  INTCONEQU  0BH
  EECON1EQU  88H
  EECON2EQU  89H
  ;…………………………
  RD   EQU  0   ;定义位
  WR EQU  1
  RP0  EQU  5
  GIE EQU  7
  ;…………………………
        ORG  0
        GOTOWRSTART
  ;……………………………
       ORG  10H
  WRSTART        ;写入操作开始
       CLRW     ;清W,使W=0
       BCFSTATUS,RP0 ;选BANK0
       MOVLW 20H
       MOVWF EEADR   ;地址→EEADR
       MOVLW 88H
       MOVWF EEDATA  ;写入数据→
                 ;EEDATA
       BSFSTATUS,RP0 ;选BANK1
       BSFEECON1,2;写操作使能允许
       BCFINTCON,GIE ;关闭所有的中断
       MOVLW 0X55
       MOVWF EECON2  ;55H→EECON2
       MOVLW 0XAA
       MOVWF EECON2 ;AAH→EECON2
      BSFEECON1,WR ;启动写操作
       BSFINTCON,GIE ;恢复开中断
  RDSTART         ;读出操作开始
       BCFSTATUS,RP0
       MOVLW 20H
       MOVWF EEADR   ;地址→EEADR
       BSFSTATUS,RP0
       BSFEECON1,RD ;启动读操作
       BCFSTATUS,RP0
       MOVFEEDATA,W;将EEPROM
                ;数据读入W
  END


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭