PIC单片机程序设计的基本框架

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