2020年 01月 09日 星期四
您的位置: 威廉希尔主页 > 单片机技术 >

如何开发出一个PIC单片机

来源:未知     作者:威廉希尔     发布时间:2020-01-07 08:41         

  PIC单片机在国内日益流行,本文介绍MicroChipPIC系列单片机开发过程中软、硬件设计的一些经验、技巧。

  由美国Microchip公司生产的PIC系列单片机,由于其超小型、低功耗、低成本、多品种等特点,已广泛应用于工业控制、仪器、仪表、通信、家电、玩具等领域,本文总结了作者在PIC单片机开发过程中的一些经验、技巧,供同行参考。

  功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降低功耗,在满足工作要求的前提下,可采用降低工作频率的方法,工作频率的下降可大大降低功耗(如PIC16C××在3V,32kHz下工作,其电流可减小到15μA),但较低的工作频率可能导致部程序(如数学计算)需占用较多的时间。在这种情况下,当单片机的振荡方式采用RC电形式时,可以采用中途提高工作频率的办法来解决。

  具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1),如图1所示。低速状态置RB1=0。需进行快速运算时先置RB1= 1,由于充电时,电容电压上升得快,工作频率增高,运算时间减少,运算结束又置RB1=0,进入低速、低功耗状态。工作频率的变化量依R1的阻值而定(注意R1不能选得太小,以防振荡电不起振,一般选取大于5kΩ)。

  另外,进一步降低功耗可充分利用“sleep”指令。执行“sleep”指令,机器处于睡眠状态,功耗为几个微安。程序不仅可在待命状态使用 “sleep”指令来等待事件,也可在延时程序里使用(见例1、例2)。在延时程序中使用“sleep”指令降低功耗是一个方面,同时,即使是关中断状态,Port B端口电平的变化可“sleep”,提前结束延时程序。这一点在一些应用场合特别有用。同时注意在使用“sleep”时要处理好与WDT、中断的关系。

  INTCON中的各中断允许位对中断状态位并无影响。当PORT B配置成输入方式时,RB《7:4》引脚输入在每个读操作周期被抽样并与旧的锁存值比较,一旦不同就产生一个高电平,置RBIF=1。在开 RB中断前,也许RBIF已置“1”,所以在开RB中断时应先清RBIF位,以免受RBIF原值的影响,同时在中断处理完成后最好是清RBIF位。

  当内嵌汇编指令时,从“#asm”到“endasm”每条指令都必须各占一行,否则编译时会出错。

  原因是Mplab-C以8×8乘法方式来编译c=a*b,返回单字节结果给c,结果的溢出被忽略。改上例中的“c=a*b;”表达式为“c=a;c=c*b;”,最为安全(对加法的处理同上)。

  由于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地址占用情况。

  对无硬件仿真器的用户,总是选用带EPROM的芯片来调试程序。每更改一次程序,都是将原来的内容先擦除,再编程,其过程浪费了相当多的时间,又缩短了芯片的使用寿命。如果后一次编程的结果较前一次,仅是对应的机器码字节的相同位由“1”变成“0”,就可在前一次编程芯片上再次写入数据,而不必擦除原片内容。

  在程序的调试过程中,经常遇到的调整,如的改变能对应由“1”变“0”,都可在原片内容的基础继续编程。另外,由于指令“NOP”对应的机器码为“00”,调试过程中指令的删除,先用“NOP”指令替代,编译后也可在原片内容上继续编程。

  另外,在对带EPROM的芯片编程时,特别注意程序保密状态位。厂家对新一代带EPROM芯片的保密状态位已由原来的EPROM可擦型改为了熔丝型,一旦程序代码保密熔丝编程为“0”,可重复编程的 EPROM 芯片就无法再次编程了。使用时应注意这点,以免造成不必要的浪费。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  编写程序实现以下功能。在计算机上使用串口大师向开发板发每次发送1个字符。开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。端口初始化时使能发送与接收,使用扫描方式接收数据,接收到数据后立即交换高低四位并发送,交换高低四位方式如下:完整程序:* 标 题: 异步串口通讯* 功能描述: 在计算机上使用串口大师向开发板发每次发送1个字符。* 开发板每接收到一个数据,则交换该数据的高低4位,再发送回计算机。#include#define uint8 unsigned char#define uint16 unsigned int__CONFIG(FOSC_HS &WDTE_OFF &BOREN_OFF &

  三倍,同时,晶振频率最高可达40MHz。W77系列还增加了看门狗WatchDog、两组uART、两组DVTR数据指针、ISP等多种功能。2、PIC单片机的优缺点分析PIC单片机CPU采用RISC结构,分别有33、35、58条指令(视单片机的级别而定),属精简指令集。而51系列有111条指令,AVR单片机有118条指令,都比前者复杂。采用Haryard双总线结构,运行速度快(指令周期约160~200nS),它能使程序存储器的访问和数据存储器的访问并行处理,这种指令流水线结构,在一个周期内完成两部分工作,一是执行指令,二是从程序存储器取出下一条指令,这样总的看来每条指令只需一个周期(个别除外),这也是高效率运行的原因之一。此外,它还

  pic单片机,想必大家都比较熟悉。其中,pic单片机简介、pic单片机优势以及pic单片机不足等内容,皆是入门级知识。本文将向大家介绍pic单片机的高级应用——将pic单片机的数据存储器RAM用作寄存器,本文存在一定难度,望大家用心研读。PIC16C5X把数据存储器RAM都当作寄存器来使用以使寻址简单明洁,它们功能上可分为操作寄存器、I/O寄存器、通用寄存器和特殊功用寄存器。它们的组织结构如下图所示:这些寄存器用代号F0~F79来表示。F0~F4是操作寄存器,F5-F7是I /O寄存器,其余为通用寄存器。特殊功用寄存器地址对用户不透明。一、操作寄存器1、F0间址寄存器寻址F0实际上意味着间址寻址。实际地址为寄存器选择寄存器F4

  R3EQU0X03PORT5EQU0X05PORT6EQU0X06R3EQU0X03KEY_STATUSEQU0X10;低半字节为按键标志,高半字节为控制标志SIGNAL_LOWEQU0X11;信号电平低计数器SIGNAL_HIGHEQU0X12;信号电平高计数器DATA_RECORDEREQU0X1R3EQU0X03PORT5EQU0X05PORT6EQU0X06R3EQU0X03KEY_STATUSEQU0X10;低半字节为按键标志,高半字节为控制标志SIGNAL_LOWEQU0X11;信号电平低计数器SIGNAL_HIGHEQU0X12;信号电平高计数器DATA_RECORDEREQU0X13;接收码数据字节CODE_RECO

  由于在使用时,找了很久也没找到相关的程序,因此把自己后来编写的程序贴出来,希望能给后来者借鉴参考!;实验目的:熟悉SPI总线EEPROM的读写;RBO键按下时把DATA和DATA2写入到EEPROM中以EE—ADDR为地址的单元内,;完成后,单个数码观显示“9”做为完成标志;RB1键按下时,读取EEPROM中以EE—ADDR为地址的单元,并送数码管显示;硬件要求:S3、S5、S6拨码管置ON,S1第7、8ON。LIST P=16F877A, R=DECinclude “” ;包含头文件__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_

  1 前 言随着社会的发展,用电量增大,为提高用电效率,改善用电量不均衡的现象,国内各省市的电力部门己开始全面推出了复费率电能表,计量单位对复费率电能表检定的任务越来越繁重[1-2]。时钟的准确性是分时计量最重要的一部分。目前的计量单位对复费率电能表时钟检定的方法已经逐渐不能满足需要。为了解决目前复费率电能表时钟检定存在的问题,本文设计了一种基于PIC单片机的复费率电能表时钟误差分析仪的系统。该系统是一种便携式时钟误差检定装置,集计时检定,数据处理,数据传送等功能于一体,具有快捷、准确、有效的特点。l频率测量原理[3-4]系统测量频率采用的是多周期同步测量方法,这种方法是在直接测频的基础上发展测量方法,在目前的测频系统中得到越来越

  【报名】在RISC-V应用中实现MultiZone安全性|Microchip 安全解决方案系列在线研讨会

  了解ADI电网管理、能源计量方案,答题赢Kindle、《新概念模拟电》【世健的ADI之主题游 能源站】

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程

      威廉希尔