pic单片机与51单片机有什么区别?
pic单片机与51单片机有什么区别?
1、总线结构不同
MCS-51的总线结构是冯-诺依曼型,计算机在同一个存储空间取指令和数据,两者不能进行;而PIC的总线结构是哈佛结构,指令和数据空间是完全分开的,一个用于指令,一个用于数据,由于可以对程序和数据进行访问,所以提高了数据吞吐率。
正因为在PIC系列单片机中采用了哈佛双总线结构,所以与常见的微控制器不同的一点是程序和数据总线可以采用不同的宽度。数据总线都是8位的,但指令总线位数分别位12、14、16位。
2、流水线结构不同
MCS-51的取指和执行采用单指令流水线结构,即取一条指令,执行完后再取下一条指令;而PIC的取指和执行采用双指令流水线结构,当一条指令被执行时,允许下一条指令被取出,这样就实现了单周期指令。
3、寄存器组
PIC的所有寄存器,包括I/O口,定时器和程序计数器等都采用RAM结构形式,而且都只需要一个指令周期就可以完成访问和操作;而MCS-51需要两个或两个以上的周期才能改变寄存器的内容。
扩展资料
单片机的应用
1、单片机在智能仪表中的应用单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。
2、单片机在机电一体化中的应用机电一体化是械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品。
例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。
3、单片机在实时控制中的应用单片机广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。
参考资料来源百度百科-PIC单片机
参考资料来源百度百科-51单片机
pic单片机上电复位后所有I/O引脚将被 成什么工作方式
复位后IO脚为输入状态。默认是普通的IO口作为数字式输入模式,就是对应tris位被配置成1。
而如果这个IO引脚复用做AD输入的话,就默认配置为模拟输入。如果还被复用为和比较器相关的引脚,那么就被配置为比较器输入。
有的IO引脚复用为MCLR上电复位引脚,那么它会根据你程序设置的配置位来决定其复位后是作为IO输入还是作为MCLR引脚。
简介
单片机也被称为单片微控器,属于一种集成式电路芯片。在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。
由此可见,单片机凭借着强大的数据处理技术和计算功能可以在智能电子设备中充分应用。简单地说,单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数据的高速化处理。
pic单片机如何减少堆栈使用
1. 设置堆栈空间大小在使用STM32编程时,一般情况下我们不会关注堆栈空间的大小,因为在STM32的启动文件中,已经帮我们预先设置好了堆栈空间的大小。一般默认的启动代码中,Stack栈的大小为0x400(1024Byte),Heap堆的大小为0x200(512Byte)。
这也是为什么一个基础的工程编译后,RAM的空间也占用了1.6K左右的原因,因为堆栈的空间均分配在RAM中,可在编译的map文件中查看RAM资源占用的情况。
若工程中使用的局部变量较多,定义的数据长度较大时,若不调整栈的空间大小,则会导致程序出现栈溢出,程序运行结果与预期的不符或程序跑飞。这时我们就需要手动的调整栈的大小。
当工程中使用了malloc动态分配内存空间时,这时分配的空间就为堆的空间。所以若默认的堆空间大小不满足工程需求时,就需要手动调整堆空间的大小。
1. 直接在启动文件中修改堆栈空间的大小,如图1所示的位置;
2. 打开启动文件,点击下方Configuration Wizard,可在Option的设置框中设置堆栈空间的大小。

2. 相关理论补充
bss段
bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。
bss是英文Block Started by Symbol的简称。
bss段属于静态内存分配。
data段
数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。
数据段属于静态内存分配。
text段
代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。
这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读(某些架构也允许代码段为可写,即允许修改程序)。
在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等。
堆(heap):
堆是用于存放进程运行中被动态分配的内存段,它的大
PIC单片机的命名规则
PIC XX XXX XXX (X) -XX X /XX 1 2 3 4 5 6 7 8 1.前缀: PIC MICROCHIP 公司产品代号,特别地dsPIC为集成DSP功能的新型PIC单片机
2.系列号:10、12、16、18、24、30、33、32,其中
PIC10、PIC12、PIC16、PIC18为8位单片机
PIC24、dsPIC30、dsPIC33为16位单片机
PIC32为32位单片机
3.器件型号(类型)
C CMOS 电路
CR CMOS ROM
LC 小功率CMOS 电路
LCS 小功率保护
AA 1.8V
LCR 小功率CMOS ROM
LV 低电压
F 快闪可编程存储器
HC 高速CMOS
FR FLEX ROM
4.改进类型或选择
54A 、58A 、61 、62 、620 、621
622 、63 、64 、65 、71 、73 、74
42 、43 、44等
5.晶体标示
LP 小功率晶体,
RC 电阻电容,
XT 标准晶体/振荡器
HS 高速晶体
6.频率标示
-02 2MHZ,
-04 4MHZ,
-10 10MHZ,
-16 16MHZ
-20 20MHZ,
-25 25MHZ,
-33 33MHZ
7.温度范围
空白 0℃至70℃,
I -45℃至85℃,
E -40℃至125℃
8.封装形式
L PLCC 封装
JW 陶瓷熔封双列直插,有窗口
P 塑料双列直插
PQ 塑料四面引线扁平封装
W 大圆片
SL 14腿微型封装-150mil
JN 陶瓷熔封双列直插,无窗口
SM 8腿微型封装-207mil
SN 8腿微型封装-150 mil
VS 超微型封装8mm×13.4mm
SO 微型封装-300 mil
ST 薄型缩小的微型封装-4.4mm
SP 横向缩小型塑料双列直插
CL 68腿陶瓷四面引线,带窗口
SS 缩小型微型封装
PT 薄型四面引线扁平封装
TS 薄型微型封装8mm×20mm
TQ 薄型四面引线扁平封装
pic单片机为什么那么少见知乎
市场竞争力的问题吧。PIC的单片机,个人使用后,觉得它适合工控类产品。目前本人将它用于价格低廉的汽车电子产品上。个人了解,汽车行业,还是以飞思卡尔为主流单片机。(开发新产品,国内很多车厂的技术人员都会问我,你们使用的是不是飞思卡尔的(CPU))。所以在汽车行业上,microchip 的PIC争不过飞思卡尔。(说个题外话飞思卡尔被NXP收购,而microchip却收购了Atmel 和 Micrel,有点颠覆)
51系列单片机,作为单片机起源,在现今的社会,更是大有泛滥之势,价格低得难以想象。所以,教育行业、消费类产品(玩具、家具等),被51单片机包圆。PIC根本抢不了这市场。
而另一个要命的是,PIC单片机编程软件兼容性差,编译器之间升级换代,根本就是不同的软件。前面学会的都没用,得重新学新的编程软件。
PIC 的一些设计,确实不够好
像什么 1<<16位编译失败啦、硬件堆栈层限制啦、除法运算1000周期啦……
pic 单片机 参考文献
PIC8位单片机的基本组成
PIC系列8位单片机为适应各种不同的用途,有多种型号可供选用。,尽管PIC单片机有不同的档次和型号,但其最基本的组成则大同小异。,在这里先从型号PIC16F84的单片机入手,讨论其基本组成。PIC16F84是双列直插式(DIP)塑料封装,最大时钟频率可达4MHz。现为Microchip公司的独家产品,关于其具体技术指标,可查阅该公司的产品手册,或在网址.microchip.上查找。
PIC16F84单片机的引脚排列可参阅本期本版的16F8X系列简介一文。本文的附图是该器件的主要组成部分。PIC16F84虽然体积不大,但仍然是一个完整的计算机,它有一个中央处理器(CPU)、程序存储器(ROM)、数据寄存器(RAM)和两个输入/输出口(I/O口)。
和其它品种的单片机一样,CPU是此单片机的“首脑”,它从程序存储器中读取和执行指令。在取指和执行时,还可对数据寄存器进行取数(前已介绍PIC16F84采用哈佛结构)。由附图可明显看出,程序存储器和数据存储器各有一条总线与CPU相连。有些CPU将CPU内部的寄存器与其外部的RAM是分开管理的,但PIC单片机不是这样,它的通用数据RAM也归为寄存器,称为File寄存器。在PC16F84中,有68个字节的通用RAM,其地址为0CH~4FH。
除了通用数据寄存器外,还有一些专用寄存器,其中最常用的工作寄存器为“W寄存器”。CPU将工作数据存放在W寄存器中。寄存器W的作用与其它单片机中的“累加器A”相似。,还有几个专用寄存器,它们分别以某种方式控制PIC的运作。
PIC16F84的程序存储器是由Flash(闪速)EPROM构成,它可用电来记录和擦除,而在断电时,仍可保留其内容。PIC单片机有些型号的程序存储器用的是EPROM,需要用紫外线来擦除;还有一些型号是一次性可编程(OTP)的产品(一经编程便不能再擦除)。
PIC16F84有两个输入/输出口,即A口和B口。每个口的每个引脚可单独设定为输入或输出。各个口的位是从0开始编号的。当A口为输出方式时,其第4位(即RA4)为开路集电极(或开路漏极)输出,而B口及A口其它各位为常规的全CMOS驱动电路。这些功能必须注意,否则会在编程时出错。CPU对每个端口都按一个字节8位来处理,但A口只有5位引脚。
PIC输入与COMS兼容,所以PIC输出可驱动TTL或CMOS逻辑芯片。每个输出引脚可以流出或吸入20mA电流,即使一次只用了一个引脚亦是如此。
摘 要在介绍空调室内机控制器功能的基础上,从软件的规划着手,详细介绍了室内机软件的总体设计过程、详细设计过程以及编码的实现,并在此基础上重点给出了空调室内机运行模式的特点和结合这些特点如何用MPLAB集成开发环境去实现各运行模式。
关键词空调;控制器;单片机;软件设计
单片机软件实现是单片机系统应用的重点,他是在硬件设计基础上实现程序设计的重要环节。单片机程序设计一般包括以下几个步骤软件规划、流程图编制、代码编写。由于单片机系统具有软硬件紧密结合的特点,在基于某种单片机系统的软件开发时,应充分了解该系统实现的硬件环境,也应该在系统设计与硬件设计阶段,对软件设计有一个大体的规划。,本文在介绍室内机控制器功能的基础上,重点讨论如何用软件实现该室内机的功能。
一PIC16C71的问题和对策
问题1在芯片进入低功耗睡眠模式 (SLEEP MODE)后,其振荡脚将处于浮态,这将使芯片的睡眠功耗上升,比原手册中的指标高了10μA以上。
对策在振荡脚OSC1和地 (GND)之间加一10MΩ电阻可防止OSC1进入浮态,且不会影响正常振荡。
问题2RA口方向寄存器TRISA目前只是一个4位寄存器,对应于RA0~RA3,并非手册中所言是8位寄存器,对应于RA0~RA4,即RA4并没有相应的输入/输出方向控制位,它是一个具有开极输出,施密特输入I/O脚。
对策避免使用对RA口进行读-修改-写指令(如BCF RA, BSF RA),以免非意愿地改变RA4的输入/输出状态。对于RA口的操作应采用寄存器的操作方式(MOVWF RA)。
问题3当CPU 正在执行一条对INTCON寄存器进行读-修改-写指令时,如果发生中断请求,则读中断例程会被执行二次。这是因为当中断请求发生后INTCON寄存器中的GIE位会被硬件自动清零(屏蔽所有中断),并且程序转入中断例程入口(0004H)。当GIE位被清零后,如果这时正好CPU在执行一条对 INTCON的读-修改-写指令(如BSF INTCON等),则 GIE位还会被写回操作重新置1,这样会造成CPU二次进入中断例程。
对策如果在程序中需对INTCON的某一中断允许位进行修改,则应事先置GIE=0
,修改完成后再恢复GIE=1。
…………..
BCF INTCON, GIE
BSF INTCON, ×××
BSF INTCON, GIE
…………..
图1
问题4当芯片电压VDD加电上升时间大于100μs时,电源上电复位电路POR和电源上电延时器PWRT可能不能起正常的作用,而使芯片的复位出现不正常(即PC≠复位地址)。一般在这种情况下建议不要采用PWRT。
对策如果VDD上升时间很长,此芯片一般需较长的电源上电延时,可靠的电源上电延时方法如图1所示,在MCLR端外接复位电路。
问题5如果在A/D转换中用RA3作为参考电压输入,则最大满量程误差(NFS)要大于手册中的指标。实际情况如表1所示。
表1 A/D满量程误差表
VREF源
(5.12V) 满量程误差
(NFS)
VDD <±1 LSb
RA3 <±2.5 LSb
二PIC16C84的问题和对策
问题1PIC16C84的内部的E2PROM数据存储器的E/W周期偶尔会超出最大值(10ms)。
对策在程序中应该用EECON1寄存器中的WR位来判断写周期的完成,或是启用“写周期完成中断”功能,这两种方法可保证写入完成。
问题2VDD和振荡频率的关系如表2所示。
VDD 振荡方式 最高频率
2V-3V RC, LP 2MHZ,200MHZ
3V-6V RC,XT,LP 4MHZ,200MHZ
4.5V-5.5V HS 10MHZ
PIC单片机的特点
MicroChip单片机: MicroChip单片机的主要产品是PIC 16C系列和17C系列8位单片机,CPU采用RISC结构,分别仅有33,35,58条指令,采用Harvard双总线结构,运行速度快,低工作电压,低功耗,较大的输入输出直接驱动能力,价格低,一次性编程,小体积. 适用于用量大,档次低,价格敏感的产品.在办公自动化设备,消费电子产品,电讯通信,智能仪器仪表,汽车电子,金融电子,工业控制不同领域都有广泛的应用,PIC系列单片机在世界单片机市场份额排名中逐年提高.发展非常迅速.pic单片机端口怎么定义
pic单片机的端口方向是由相应的trisx寄存器决定的,其中x为a,b,c...如果相应的trisx的位为0表示为输出,这个很容易记住,output的第一个字母o和数字0相象。
如果相应的trisx的位为1表示为输入,这个很容易记住,put的第一个字母i和数字1相象。
如
trisb=0b11001010;
则表示rb7,rb6,rb3,rb1为输入,其余(rb5,rb4,rb2,rb0)为输出。
至于数字的格式,你爱怎么写就怎么写,上面的例子还可以写为
trisb=0xca;
trisb=202;
以上的二句与trisb=0b11001010;都是完全一样的结果,只是数字的格式不同罢了。
显然,虽然几种格式结果是一样的,但在这里,用二进制表示是最直观的。
顺便说一下,pic默认时,引脚是输入的,即默认时,trisx=0xff.
pic单片机的pic是什么意思。
单片机PIC,是MICROCHIP公司单片机的标志,差不多都是以PIC开头的,在控制算法中有PID控制算法,Proportion Integration Differentiation,意为:比例积分微分PIC单片机的指令周期
PIC单片机的时钟经过内部分频,实际的工作频率为晶振频率的四分之一,指令的执行采用流水线方式,大部分的指令的执行时间是一个周期,所以在用4MHz的晶振时,指令执行的最大速度为1MIPS,即指令周期为1微秒。你可以参考PIC16F84单片机的资料。