PIC单片机程序设计解析

PIC单片机程序设计解析

ID:41562412

大小:56.30 KB

页数:3页

时间:2019-08-27

PIC单片机程序设计解析_第1页
PIC单片机程序设计解析_第2页
PIC单片机程序设计解析_第3页
资源描述:

《PIC单片机程序设计解析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、MB”有道工控wv/w.O20plu.uomPIC单片机程序设计解析pic单片机程序设计解析PIC单片机采用精简指令集,例如对于PIC16F716单片机,只有35条单字节指令。要用这么少的指令实现复杂的控制或计算,显然要在程序设计上多做文章,以下就程序设计需要注意的问题谈一些看法。美国微芯公司开发的CMOS工艺PIC系列单片机,特别是采用内置第二代Flash存储器的微控制器在快速应用方而具有独到之处。PIC单片机系列内人都包含运算器、存储器、A/D、PWM、输入和输出I/O、通信等常用接口。自山灵活的定义功能可以适应不同的控制要求。一、区分指令的大小写编写PIC单片机

2、的源程序,除了源程序的开始处需要严格的列表指令外,还须注意源程序中字母符号的人小写规则,否则在PC机上汇编程序吋不会成功。在源程序中都会使用伪指令INCLUDEo这条指令将列表中指定的单片机文件(在MPLAB中)渎入源程序作为源程序的一部分,所以凡是MPLAB中有关该单片机己有的寄存器在源程序屮无须再用赋值指令(EQU)赋值,这就使所建立的源程序大为简化。此外,由于有了伪指令INCLUDE,所以根据MPLAB软件中的格式,在源程序中的操作数凡是涉及MPLAB已规定的寄存器名称的,其字母一律只能人写,不能小写。其余操作码、符号字母可任意人小写,但Ox小的X应小写。否则汇

3、编不会成功。鉴于上述原因,为了书写方便,在使用MPLAB软件时,PIC单片机的源程序均用大写字母为宜(Ox例外)。以下举例有关机器人控制的实现。控制部分采用PIC16F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。二、动作标志位的使用在整个控制小,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成F面的程序:listP=16c73calllefthandupcallrighthand

4、upLOcallreadinsignalbdsscsl_vjefthandligbtscalllefthandstopbfsccsl_v3righthandlight4gotoLOcallrighthandstopL1callreadinsignalbfsccsl_vjefthandlight3它砂有道工控wv/w.O20plu.uomgotoL1calllefthandstoplefthandlight表示光电开关,由此判断是否到相应的位置。1表示在手愕最下面的位置;2表示在手臂的握手位置;3表示在手臂的鼓掌位置;4表示在手臂的高举手位置。上而程序描写左手臂上升到举

5、手位置和右手臂上升到鼓掌位置并停止的过程。先判断左手到达否,到达则左手停止,接着看右手是否到达举手位,到达则停止,否则循环上述的检测,直到左手到达鼓掌位,右手到达举手位。注意,这里的3,4表示的就是鼓掌位、举手位。经过循环检测可以让手桦停在各位上,然而机械动作是有惯性的,机械停止位可能在该位的上一点或F—点,这就影响卜面动作的进行,可能在若干动作后机械动作出现失常,也就是程序没法正常地运行。在此悄况下,需要修改程序的编写方式,采用标志位來控制动作的进行。如果采用控制标志位,一定要在动作子函数中对标志位置零。三、区分GOTO和CALL指令的使用场合在PIC的汇编程序中,

6、CALL与GOT0指令的使用比较多、几容易混淆,一般情况F,在于程序与主程序之间大多用CALL指令;而状态转换模块之间大多用GOTO指令,即山此状态进入另一种状态不需返回。由于PIC单片机的堆栈有限,在程序屮,不能无止境地使用GOTO语句,否则会使堆栈溢出,程序无法正常运行。各个小程序内部循环占用堆栈的级数不多,使用GOTO指令是可行的,但在大的程序中用GOTO则无法返回到调川前程序的卜-一条指令。CALL指令完成调用完子程序后返回到调用前的程序。如在超声检测中程序如下:listD=16c76start:callsetcpucallautomaflsmstatelL3

7、callreadinsignalbfsces2_v,ultrasonicdetect1gotoL3gotoautomatlsmstate2:automatlsmstate2:returnautomafismstatel>automatlsmstate2表示两种状态,ultrasonicdetectl表示一个输入超声检测信号。上面程序描写调用automatlstmstatei状态,执行完后进行下而的检测uhrasonicdetectl,没有触发就一肓循环检测,触发就进入automatlsmstate2状态,执行完也不再回到下面的程序。由于PIC单片机的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。