历史上的今天
今天是:2025年02月10日(星期一)
2020年02月10日 | PIC单片机程序设计基础格式典型的程序结构框架
2020-02-10 来源:eefocus
建立源程序时首先用伪指令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
;……………………………
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
史海拾趣
|
凌特公司(Linear Technology Corporation)日前推出具550kHz工作频率的电流模式升压型DC/DC控制器LTC3872。LTC3872无需检测电阻,因此节省了电路板空间并提高了效率。这是一个高度紧凑的解决方案,用于将2.5V至9.8V的输入电压转换为较高的 ...… 查看全部问答> |
|
近日,世界第12大IC设计公司——凌阳科技SUNPLUS宣布:将向市场重点推广它的16位工业单片机SPMC75系列芯片。SPMC75系列芯片是由凌阳科技自主设计开发的16位微控制器芯片,其内核采用凌阳科技自主知识产权的μ’nSP微处理器。SPMC75系列芯片集成了变 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 2006年在PMP的主芯片产业出现了两大变动,一是AMD将其Alchemy Au1200产品线出售给了RMI公司;二是Intel将Xscale出售给了Marvell。两大巨人几乎同时退出了PMP市场。 与此同时,在中国PMP产业出 ...… 查看全部问答> |
|
汽车工业内的两大领先半导体供应商飞思卡尔和意法半导体推出首批四款车用Power Architecture?微控制器(MCU)产品,这是两家公司两年前启动的合作设计项目的初期成果。 位于德州奥斯汀和米兰Agrate Brianza两家公司各自的晶圆厂,成功地推出以 ...… 查看全部问答> |
|
本人还是在校学生,刚开始学习FPGA设计。学习Verilog一段时间了,对Modelsim基本的用法也有一定的了解。但在整个FPGA宏观的设计过程上还缺乏一定的了解。现在想要学习Quartus2对自己编写的一些小程序进行综合。想要对这些流程有一定的认识。但我对Q ...… 查看全部问答> |
|
单片机控制电机转速,正转,反转,快转,慢转,还要显示转速。我主要就是控制电机速度这块布太懂,晚上查说用PID计算,可是没有学过,希望高手提示下。小弟万分感谢!… 查看全部问答> |




