完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
为了快速掌握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 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 |
|
相关推荐
|
|
大神都是用会编写代码的么看不懂啊
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2086 浏览 1 评论
3630 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2336 浏览 2 评论
2763 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4029 浏览 5 评论
976浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6362浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 12:19 , Processed in 0.726790 second(s), Total 55, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号