首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

PIC单片机程序设计基本结构

PIC单片机程序设计基本结构

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

  TITLE“This Is……”;程序标题

  ;程序说明

  LIST P=16F84,F=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 ;跳过中断矢量

      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
返回列表