PIC单片机与PIC单片机C语言编程简介
对于计算机学院与电子学院相关的同学来说,单片机一定不是一个陌生的概念。在大学的学习生涯中,经常用于教学的是MCS-51系列单片机。其实,除了MCS-51单片机外,还有一类单片机——PIC单片机。
PIC单片机,英文名为Peripheral Interface Controller,翻译为“开发和控制外围设备用集成电路”,可以看作是一种高度集成化的小型计算机,拥有CPU、寄存器、内存单元、串口并口等一系列计算机运行时需要依赖的硬件设备。
二、PIC单片机与MCS-51单片机的区别
相较于51系列单片机,PIC单片机的区别主要有3点:
1.总线结构。51系列单片机采用的是经典的“冯诺依曼体系结构”,而PIC单片机则是采用“哈佛体系结构”。这里简单介绍一下两种体系结构的不同:冯诺依曼体系结构是单总线结构,即数据传输与指令传输共用一条总线;而哈佛体系结构则是双总线结构,即数据传输与指令传输分别使用一条总线。由于采用哈佛体系结构,所以PIC单片机的数据总线和指令总线位数(宽度)可能不同。
2.流水线结构。51系列单片机采用的是单流水线结构,即在一条指令完全执行完毕后才会执行。而PIC单片机则有二级流水结构,可以在一定程度上实现指令并发(虽然不如x86/64系列CPU或者ARM系列CPU)。
3.汇编指令。51系列单片机大约有一百多条汇编指令,基本包含了在程序运行中需要用到的绝大多数汇编指令。而PIC的汇编只有35条,功能较少(例如没有常用的乘除功能,需要使用循环加/减实现乘除功能)。但是PIC的指令执行较快,PIC单片机一个指令的执行只需一个指令周期,而51系列单片机则需要2至4个指令周期。
除了以上区别,在保密性方面,PIC单片机不如51系列单片机,PIC单片机比较不能抗干扰,也很容易被解密。
三、PIC单片机环境C语言编程简介(pic单片机c语言)
相较于其他编程语言,使用C语言开发PIC单片机程序有许多优点:
1.相较于汇编语言来说,使用C语言这类高级编程语言进行编程比较简单方便。使用汇编语言编程需要掌握一定的CPU运行知识,而且对寄存器、运算器、指令集等都需要有一定的了解,编程时也需要时刻思考汇编指令的运行流程。而使用C语言编程时则只需将精力放在程序运行逻辑即可。
2.相较于C++、Java等面向对象编程语言来说,C语言更加贴近底层运行逻辑,没有封装、继承等更加高级的语法,更加纯粹地关注程序的执行流程。
PIC单片机环境下的C语言编程与我们平时使用的C语言在语法上大致类似,不过仍有些许不同。下面对PIC单片机的C语言编程做简要介绍。
1.编译器配置。由于PIC单片机有独特的CPU架构,因此不同于传统的gcc或者vc++编译器进行编译,PIC单片机环境下的C语言有专门的C语言编译器PICC Compiler。
2.PIC单片机C语言同样支持常见的short、int、long、float等基本数据类型。不过需要注意的是,PIC单片机C语言的int类型为16位存储,long类型为32位存储,float类型为24位存储。
3.除了基本数据类型外,PIC单片机C语言也同样支持数组、结构体和联合体等复合数据类型。
4.PIC单片机C语言有一个特殊的数据寄存器bank,该寄存器由程序员管理,在定义变量时必须指定变量存储位置,若不指定则默认存储在bank0中。
若定义存储于其他bank寄存器的变量,则需要在定义变量时指定bank寄存器编号。例如:
bank1 unsigned char buffer[32];
bank2 int flag1, flag2;
5.PIC单片机C语言保留volatile关键字,用于告知某些特殊的值可能会发生改变。(pic单片机c语言)
6.使用PIC单片机C语言编程时,虽然也可调用标准库函数,不过由于PIC单片机性能有限,由于诸如scanf()/printf()等库函数的代码比较繁杂,因此在调用这些库函数时需要额外谨慎,可能会造成程序运行时间大幅度增加甚至宕机。
7.PIC单片机C语言支持C语言与汇编语言混合编程。若在C语言内插入汇编语言代码,则需要使用asm关键字标识。
嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!
无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。加微信领取资料
PIC单片机C语言仿真实例
PIC单片机汇编语言知识的技术人员或工程师,快速掌握利用C语言编写PIC单片机程序的方法,更多PIC单片机学习软件及其资料--移步戳进 --->【下载】PIC单片机学习资料大全
相关问答
如何读出 pic单片机 的 程序 ?如果没有加密,可以用MPLAB用ICD2或者其他编程器读到汇编指令。但所有伪指令和宏指令都没有了,这个看起来很难懂得。如果已经加密了,拷出来也看不了,黑客一不...
pic单片机 是什么内核?PIC单片机采用的是RISC(ReducedInstructionSetComputer)指令集架构,其内核主要基于哈佛结构,具有高性能、低功耗、易于编程等特点。PIC单片机内置了多种功...
pic 和avr 单片机 编程用什么软件,keil行吗 c语言 编程?KEIL不支持这两种芯片。PIC用的工具是MPLABAVR用的是WINAVR,ICCAVR等以上工具都支持C语言KEIL不支持这两种芯片。PIC用的工具是MPLABAVR用的是WINAVR,I...
PIC单片机 支持串口下载 程序 吗?1.支持2.因为PIC单片机内置了串口通信功能,可以通过串口与计算机进行通信,因此可以利用串口下载程序到PIC单片机中。3.除了支持串口下载程序,PIC单片机还支...
用 PIC 16 C 57 C 怎么做流水灯?用什么单片机做流水灯,原理都是一样的。首先你先熟悉下这个PIC16C57C的资源、和语言吧。熟悉了,你就会了。用什么单片机做流水灯,原理都是一样的。首先你...
PIC单片机 必须配置字吗?PIC单片机在烧写必须配置字。配置字还得正确,如PIC单片机有四种可选振荡方式,RC,XT,HS,LP,你得根据你的设计电路选择的方式,选好配置字,芯片才能工作。...PI...
带以太网功能的 pic单片机 ,可以推荐一款不?个人建议,做以太网的话,不要使用PIC系列的。因为貌似现在只有PIC32系列的才带以太网模块,而PIC32是microchip推出和ARM架构竞争的(但基本拼不过ARM)。所以...
如何读取 单片机 内部的 程序 ?单片机内部程序如果没有被加密,那么可以用编程器(也就是程序烧录器)读取出来,如果加密了的话,那么不解密的情况下是无法读取的。单片机内部程序如果没有被加...
pic 16f 单片机 如何烧录 程序 ?pic16f单片机烧录程序需要使用相应的开发环境和工具。以下是烧录程序的一般步骤:1.准备开发环境:选择适合pic16f单片机的开发环境,例如Microchip的MPLABIDE...
【 PIC 的 单片机 所有GPIO的最大拉电流和任意I/O引脚最大输出拉...[最佳回答]大拉电流是针对单独管脚测试的,是I/O的最大驱动负载,超过此电流,此I/O口将损坏(注意:是针对此I/O脚的,其它的I/O若没超过,则其它I/O不会出...所有I...