这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » PIC单片机程序设计基础格式

共1条 1/1 1 跳转至

PIC单片机程序设计基础格式

助工
2014-09-16 20:04:25     打赏

为了快速掌握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 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]