分享

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

 共同成长888 2021-11-12

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

;……………………………

STATUSEQU 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章