对于计算机学院与电子学院相关的同学来说,单片机一定不是一个陌生的概念。在大学的学习生涯中,经常用于教学的是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。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)http://makerschool.mikecrm.com/olf7geW

PIC单片机与PIC单片机C语言编程简介相关推荐

  1. c语言人机互动编程,单片机人机交互系统的C语言编程简介.ppt

    单片机人机交互系统的C语言编程简介 第5章 单片机人机交互系统的C51语言编程 5.1 单片机的输入/输出端口 5.2 LED数码管显示器 5.3 LED数码管点阵显示器 5.4 液晶显示器 5.5 ...

  2. 单片机c语言程序设计中可以不分大小写,论单片机课程教学中C语言编程的规范性...

    摘 要 文章针对"单片机C语言程序设计"教学中存在的编程困扰,提出在教学实践中重视引导学生进行模块化.规范性程序设计,强调规范化编程对学生理解程序的结构与功能的重要作用,并贯穿于课 ...

  3. 单片机原理及应用c语言编程,单片机原理及应用(C语言版)

    目录 模块1单片微型计算机 项目1:认识单片微型计算机 任务11:认识单片机 任务12:相关知识 项目2:认识单片机应用 任务21:了解单片机应用 任务22:相关知识 项目3:认识仿真软件Pr ...

  4. 单片机DA转换实验c语言编程,单片机DA转换实验报告

    实验九D/A实验报告 ㈠实验目的 1.掌握单片机与D/A的接口及编程方法: 2.通过D/A动态波形输出进一步理解D/A的工作原理: 3.结合实验六中的A/D来检验软硬件的正确性. 4.进一步了解单片机 ...

  5. 51单片机串行口c语言编程,51单片机串口通信c语言编程

    这只是个模板,参考一下 /*----------------------------------------------- 名称:串口通信 网站:www.doflye.net 编写:shifang 日 ...

  6. 单片机如何使用?51单片机C语言编程实例有哪些?

    大家好,我是无际单片机编程的徐明,今天和大家一起探讨一下"单片机如何使用?" 单片机如何使用,我们要知道单片机在哪里使用? 单片机是很多电子产品的核心器件,它具有一定的逻辑判断和事 ...

  7. 《十天学会单片机和C语言编程》

    <十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...

  8. 微控制器编程技术c语言,1.单片机C语言编程技术分析.pptx

    单片机C语言编程;掌握利用C语言进行单片机程序设计的方法掌握单片机的C程序开发工具Keil 的使用方法掌握单片机仿真软件proteus的使用方法了解单片机常用外部接口元件和接口电路了解单片机系统的集成 ...

  9. 单片机c语言LONG变量,单片机C语言编程当中定义的变量类型决定了什么

    在单片机编程中,基本上常用的都是,unsigned char,unsigned int.unsigned long这三种类型,变量的定义不同的类型,就决定了位宽,也就决定了变量的数据范围. char ...

最新文章

  1. 一文速览机器学习的类别(Python代码)
  2. iOS实录15:浅谈iOS Crash
  3. SQL Server 2008行数据和页数据压缩解密
  4. 我们用最详细的方式解析Android消息机制的源码,经典好文
  5. M2: XAML Controls(2)
  6. what you should do when you are alone
  7. kindeditor图片上传 struts2实现
  8. 位操作/获取数组的个数
  9. 更改配置:远程访问gitlab的postgresql数据库
  10. Windows Phone 7 LongListSelector控件实现分类列表和字母索引
  11. HeadFirst之设计模式 觀察者模式
  12. Django文件上传***
  13. 华中科技大学期刊分类办法_紧跟国际前沿,拓展研究思路,立足国内实践,提升科研能力 —— 记国际期刊学术论文写作与发表研修班...
  14. myeclipse报错:The superclass javax.servlet.http.HttpServlet was not found on the Java Build Path
  15. percona-toolkit源码编译安装
  16. 利用junit对springMVC的Controller进行测试
  17. 水晶报表从VS2008升级到VS2010 注意事项
  18. 淘客十大常用网站,成为大牛的起点
  19. 量子计算机的工作原理(转)
  20. 彩信文件服务器,彩信服务器怎么设置

热门文章

  1. 医疗器械类企业及产品FDA注册
  2. Unity中出现的TimeoutException android.content.res.AssetManager$AssetInputStream in close缓解之策
  3. redis的lrange_Redis LRANGE 命令-Redis LRANGE命令详解教程-Redis LRANGE使用案例-嗨客网
  4. EC11代码 旋转编码器
  5. 狂神SpringBoot学习笔记12天-Day 06 基于SpringBoot的员工管理系统
  6. JavaSE练习题(上)
  7. 信息系统项目管理论文范文(二)
  8. 在哪里可以看计算机系统型号,如何在 Windows 10 中查看计算机系统型号
  9. 东方勇夜超,永夜的报应——永夜抄作业
  10. 实战之HTML:把两张图片并排(行)显示