|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| | 首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 广告载入中... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 您现在的位置: 电子爱好者 >> 文章中心 >> 单片机应用 >> PIC单片机基础 >> 正文 |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PIC单片机开发的若干问题 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 作者:未知 文章来源:世纪新锐 点击数: 更新时间:2005-5-6 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 湖南长沙湖南师范大学计算机部(410006) 李继锋 摘 要PIC单片机在国内日益流行,本文介绍Microchip PIC系列单片机开发过程中软、硬件设计的一些经验、技巧。 关键词Microchip 单片机 功耗 编程 由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。 1怎样进一步降低功耗
2注意INTCON中的RBIF位 INTCON中的各中断允许位对中断状态位并无影响。当PORTB配置成输入方式时,RB<7:4>引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。 3用Mplab-C高级语言写PIC单片机程序时要注意的问题 3.1程序中嵌入汇编指令时注意书写格式 见例3。
当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。 3.2加法、乘法的最安全的表示方法 见例4。
原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。 3.3了解乘除法函数对寄存器的占用 由于PIC片内RAM仅几十个字节,空间特别宝贵,而Mplab-C编译器对RAM地址具有不释放性,即一个变量使用的地址不能再分配给其它变量。如RAM空间不能满足太多变量的要求,一些变量只能由用户强制分配相同的RAM空间交替使用。而Mplab-C中的乘除法函数需借用RAM空间来存放中间结果,所以如果乘除法函数占用的RAM与用户变量的地址重叠时,就会导致出现不可预测的结果。如果C程序中用到乘除法运算,最好先通过程序机器码的反汇编代码(包含在生成的LST文件中)查看乘除法占用地址是否与其它变量地址有冲突,以免程序跑飞。Mplab-C手册并没有给出其乘除法函数对具体RAM地址的占用情况。例5是乘法函数对0×13、0×14、0×19、0×1A地址占用情况。
4对芯片重复编程 对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。 参考文献 1Micorchip PIC16Cxx Data Book |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 文章录入:admin 责任编辑:admin | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 【发表评论】【告诉好友】【打印此文】【关闭窗口】 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| |
| | 设为首页 | 站点地图|<产品开发服务|光盘刻录服务| 广告合作 | 访问记录 |汇款方法 | 关于VIP会员 | | |
![]() |
|