第1章

初识PIC

我们可以把单片机简单地理解成单芯片计算机。经过多年的发展,单片机的内涵被不断丰富,越来越多的功能被赋予给了这个单芯片计算机,使得其功能变得愈发强大。可以说,在单片机的江湖中,家族林立,门派众多。在不同的单片机品牌中,有这样一类单片机,由于采用了与51单片机不同的内部架构,并且融合了当前众多的先进技术,采用模块化的结构,使得其旗下单片机产品适应性和性能大幅提高,在市场上取得了很大的成功,这类单片机就是我们接下来要探访的PIC单片机。

1.1 与众不同的PIC

1.1.1 PIC单片机大家族

PIC单片机是由美国微芯公司(MICROCHIP)生产的一类高性能系列单片机。微芯公司的产品线非常丰富,有数百个型号的单片机供用户选择。为了说明PIC单片机的分类情况, 我们引用了一幅来自MICROCHIP官方网站上的图片,来介绍PIC单片机的产品系列。

图1-1列出的是PIC单片机的产品家族。从图中可以看出,PIC单片机产品中,按照内部数据总线宽度的不同,可分为8位机(8-bit)、16位机(16-bit)和32位机(32-bit)三大类。在每一类产品中,根据芯片内部资源配置不同,又衍生出了不同的产品型号。在此,我们有必要了解一下PIC单片机产品的命名方法。

PIC单片机的产品命名由前缀、系列号和产品型号三部分构成。

1)前缀为PIC或dsPIC。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)产品型号通常为一组数字或字母。比如PIC18F4520,4520即为产品型号。

1.1.2 哈佛内核结构

桌面上的PC我们并不陌生,可能你对它的内部硬件结构也如数家珍,如CPU、内存、硬盘、主板等。那作为单片机,它的内部会有些什么呢?

在单片机的芯片内部,是由负责逻辑运算功能的CPU、数据存储器RAM、程序存储器ROM、多个I/O端口以及各种功能模块构成的。近年来,单片机的片内功能不断丰富,加入了如A/D转换器、比较器、PWM等多个模块来扩展功能,并且使用基于闪存(FLASH)工艺的程序存储器,代替了原来的只读存储器ROM,使其易用性大大增强。

我们知道,单片机内部有两种常用的存储器,一种是用于保存程序代码的程序存储器,另一种是用于保存程序执行的中间结果和过程数据的数据存储器。单片机在工作的时候,CPU是要访问上面提到的这两种存储器的,在不同的单片机内核结构中,CPU、程序存储器和数据存储器三者之间的关系是不同的。

51单片机是基于“冯?诺依曼”结构的。这种内核结构的单片机典型特点是程序存储器和数据存储器都挂接在同一条8位的数据总线上,CPU也使用这条8位总线来对两种存储器进行访问,基于“冯?诺依曼”结构的单片机内部构成,如图1-2所示。

这种内核结构的单片机在访问程序存储器和数据存储器时,只能通过同一条8位总线来完成,在同一时间里,要么从程序存储器中存取指令,要么从数据存储器中存取数据,这样就难免出现总线竞争的情况,使数据流量受到限制,从而影响单片机的工作效率。

PIC单片机则是采用了更加先进的“哈佛”结构。这种内核结构的典型特点就是程序存储器和数据存储器有各自独立的总线,CPU对数据存储器的访问是通过8位的数据总线来完成的,而对程序存储器的访问则是通过独立的指令总线来完成的。采用“哈佛”结构的单片机内部构成,如图1-3所示。

基于“哈佛”结构的单片机内部有两条独立的总线,CPU在同一时间内,既可以访问数据存储器,又可以访问程序存储器,这样就增加了双倍的数据流量。另外,由于数据总线和指令总线互相独立,二者的宽度也可以不同。

也正是按照指令总线的不同宽度,PIC将8位单片机划分成了低、中、高三档。PIC10、PIC12系列指令总线是12位宽,属于低档机,这类单片机特点是结构简单、价格低廉,主要用于一些控制任务相对简单且对价格敏感的低端消费类产品。PIC16系列指令总线是14位宽,属于中档机,也是目前型号最为丰富的一个系列。这类单片机的特点是片内功能模块种类齐全,配置灵活且价格适中,应用十分广泛。PIC18系列指令总线是16位宽,属于高档机,内核结构在PIC16基础上有很大改进,而且加入了单周期硬件乘法器,大大提高了运算能力,其性能甚至达到了部分16位单片机的水平,适合于一些高端的应用。以上介绍的三档PIC单片机,尽管指令总线宽度不同,但数据总线的宽度全部是8位的,所以它们仍然属于8位单片机。

1.1.3 PIC的功能概要

当你在开发产品时,用户的需求往往是多种多样的。有时为了提高处理能力需要很高的运算速度,有时为了延长电池的供电时间需要极低的功耗,有时为了提高产品的竞争力需要有简约的外围电路和与电路一样简约的成本……凡此种种,PIC都想到了,而且还会巧妙地替你去解决,这也是PIC在市场上取得成功的关键。接下来,我们就将对PIC的这些功能分别加以说明。

1.非凡的运算速度

可以肯定地说,你一定不喜欢跑起程序来慢得像蜗牛的处理器。PIC单片机采用了更为先进的“哈佛”内核结构,大部分指令采用单字结构,而且引入了指令流水线的概念,大幅提高了其运算能力。

(1)单字指令

单片机的运行要靠执行一系列的指令才能完成。一条完整的指令是由操作码和操作数两部分组成的,操作码用于表明指令的类型,而操作数则是用来表明指令将会使用哪一个文件寄存器、操作结果的存放位置以及要访问的存储器等。

PIC单片机的指令长度和指令总线的宽度相对应,大部分指令为单字指令,指令的前半部分是操作码,后半部分是操作数。单字指令的好处是只需对程序空间进行一次读取就可获得指令的操作码和操作数,使指令的执行效率大大提高。单字指令的另一个好处是当单片机受到外界的干扰使程序跑飞时,不管执行哪一条指令,其指令结构都是完整的,不会出现错误的执行结果。

相比PIC单片机,51单片机的指令则是多字节指令。其指令的构成是至少用一个字节作为操作码,后面跟随着若干个字节的操作数。由于操作码和操作数分为若干个字节,单片机要通过对程序空间的多次读取才能完成一条指令的执行,浪费了宝贵的时间,而且在程序跑飞时,系统存在着把操作数当成操作码来译码的风险,容易产生错误的运行结果。

(2)单周期完成

指令的执行需要两个步骤,即取指和执行。PIC单片机完成这两个步骤各需要一个指令周期的时间。为了提高指令的执行效率,PIC引入了指令流水线的执行方式,其指令的读取和执行过程如表1-1所示。

由于PIC单片机采用了指令总线和数据总线相互独立的内核结构,使得读取指令和执行指令可以同步进行。从表1-1中可以看出,在一个指令周期内,既完成了上一条指令的执行,又完成了下一条指令的读取,这样的指令流水线机制使得一条指令能在一个指令周期内完成。

2.易用的存储工艺

提起U盘你一定不会陌生,PIC单片机的片内程序存储器也是采用了类似U盘一样的存储介质,用来保存烧写到芯片内部的程序代码。MICROCHIP公司生产的大多数单片机都是FLASH类型的产品,基于FLASH工艺的单片机程序存储器可以电擦除,重复烧写次数能达到10万次以上,某些增强型的FLASH单片机在正常工作时就可以自行更改芯片内部的程序,实现在应用可编程功能,可以方便地实现产品的远程在线升级,这无疑给产品的开发和应用带来很多方便。

3.丰富的片上资源

PIC单片机是一种模块化的结构,它将片内的不同功能分别定义成模块,并且按需要配置到不同型号的单片机内部以供用户选择。常用的功能模块有ADC、MSSP、ECCP、USART、E2PROM等,甚至有的PIC单片机还有USB、LCD(液晶驱动)模块,PIC的这种模块化结构就像是我们玩过的拼图游戏,具体如图1-4所示。

PIC的单片机产品走的是无缝迁徙的路线,同一档次的PIC单片机都具有相同的内核。就拿PIC18系列单片机为例,每一颗以PIC18命名的单片机,都具有一个相同的运算控制和执行内核,该系列下不同型号间的区别是所配置的外围功能模块各不相同。这就像汽车一样,同一个系列不管是高配还是低配,其发动机是相同的,只是在外围部件上略有增减罢了。另外,无缝迁徙的概念还在于同一外设模块在不同型号的单片机上用法是完全相同的,这样做的好处是使用户在不同芯片间移植程序变得简便易行。

4.强劲的驱动能力

PIC单片机的I/O口驱动负载的能力是51系列所不能比拟的。每个I/O口输入和输出电流的最大值均可达到25mA,如此大的驱动能力完全可以直接点亮发光二极管、触发可控硅甚至是驱动微型继电器等外部器件。I/O口强大的驱动能力带来的好处是可以简化外围电路,并且使控制功能更加可靠。

5.极低的待机功耗

PIC单片机采用了纳瓦技术,使其成为目前世界上待机功耗最低的单片机品种之一。采用纳瓦技术的单片机在休眠模式下的整体功耗处于纳瓦(十亿分之一瓦)级范围内,而且该技术已经成为所有PIC新型单片机产品的执行标准,我们使用的PIC18F4520单片机也采用了纳瓦技术。

6.可靠的编程方式

我们在PC上为单片机编写的源程序代码经编译后转化为可被芯片识别的机器码,并最终存储到单片机的程序存储器中。程序从PC下载到单片机的过程称为对芯片的编程或烧写。PIC单片机的编程是通过专用的编程器来实现的,MICROCHIP公司专门为其旗下的芯片开发所设计的编程器种类很多,常用的有PICkit 2、PICkit 3、ICD 2、ICD 3等。其中PICkit 2集编程器和调试器功能于一身,是高性价比的编程调试解决方案,它既可以完成PIC大部分芯片的烧写,又可实现诸如设置断点、单步运行和监视寄存器及变量等多种在线调试功能,是入门用户的首选。

《我和PIC单片机:基于PIC18》——第1章 初识PIC 1.1 与众不同的PIC相关推荐

  1. 《我和PIC单片机:基于PIC18》——1.2 主题芯片介绍

    1.2 主题芯片介绍 PIC单片机产品线丰富,型号众多.目前在国内介绍PIC的书籍中,大多都以具有较高性价比的中档机作为例子.为了能更加全面地展示PIC,本书是以高档的18系列单片机PIC18F452 ...

  2. 单片机汇编编程300例_pic单片机编程串烧,pic单片机汇编语言讲解下篇

    看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求.前文中,小编曾对pic单片机汇编语言进行过部分讲解.本文中,将对pic单片机的清零等指令加以讲解,以帮助大家 ...

  3. 16F877A和24C02通信汇编语言,pic单片机IIC通信读24C02程序例 16F877A 主频4M

    #define _iic_h_//pic单片机IIC通信初始化函数声明 void iiccsh(void); //pic单片机IIC通信读外围设备函数声明 //功能:传送一个8位地址,返回一个8位数据 ...

  4. PIC单片机驱动LCD断码屏代码生成工具

    PIC单片机驱动LCD断码屏代码生成工具 PIC 16系列单片机部分型号都带有LCD(断码)驱动模块, 在编写这部分代码的过程中发现对驱动管脚赋值逻辑有很大的重复部分. 所以写了一个宏函数,自动生成驱 ...

  5. PIC16F C语言测频率程序,PIC单片机C语言程序—实例5

    PIC单片机C语言程序-实例5 来源:华强电子网 作者:华仔 浏览:3630 时间:2016-08-10 14:18 标签: 摘要: 前面已介绍了学习pic单片机c语言程序的一些最基本内容,并以具有一 ...

  6. pic单片机与51单片机,谁更易于学习?

    pic 单片机是学单片机人士必须掌握的一款单片机,对于 pic 单片机,小编层带来诸多介绍. 如果你对 pic 单片机很感兴趣,不妨翻阅往期文章.本文对 pic 单片机的介绍内容为:pic 单片机与 ...

  7. 《我和PIC单片机:基于PIC18》——第2章 PIC的开发环境 2.1 PIC开发的硬件资源...

    第2章 PIC的开发环境 前面我们学习了PIC的内部资源配置和I/O口的基本结构,这一章我们重点要实现对I/O口的控制.单片机是软硬件结合的统一体,因此本章先介绍如何用简单的材料搭建起供学习使用的最小 ...

  8. PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886

    学习PIC单片机的目的是打算做一款433M无线开关,之前学习过51与AVR单片机,对8位单片机有一些基础,不过PIC单片机还是第一次接触,先从入门开始吧!入门实验最经典的是点亮一只LED了,这次也它为 ...

  9. spwm单片机4路输出C语言,基于PIC单片机的正弦波逆变器设计与实现

    描述 目前,SPWM信号主要有3种生成方式: 1)使用比较器.振荡器等模拟电路产生三角波和方波进行比较,产生SPWM波,但是此种方法电路复杂,受元器件精度影响大,且不易控制: 2)利用专用SPWM集成 ...

最新文章

  1. UPDATE 时主键冲突引发的思考
  2. greenPlum资源隔离
  3. java网络编程阻塞_Java网络编程由浅入深三 一文了解非阻塞通信的图文代码示例详解...
  4. jsp医院管理系统_Thymeleaf+SpringBoot+SpringDataJPA实现的中小医院信息管理系统
  5. 使用with 创建视图
  6. Linux 内核调试器 调试指南
  7. 1.1什么是数据仓库
  8. ArcGIS 使用等高线和高程点数据生成DEM栅格数据
  9. 国内主流大数据平台对比
  10. 如何实现EXCEL图表曲线纵坐标不从0开始
  11. 世界在变化刷脸支付一直奋进
  12. C语言实现raw格式图像的读入和存取
  13. 宁夏开票系统服务器地址,宁夏增值税发票综合服务平台网址
  14. Oracle11g新特性之Replay a captured workload 捕获工作负载新环境重放负载测试压力
  15. 图像数字识别、数字分割(OCR识别,毕业设计)
  16. Android自定义控件之圆形头像
  17. Delphi 版的IIF函数
  18. 地方两会前瞻布局 谋定·经信研究-李刚:各地元宇宙虚实融合
  19. 虚拟货币的专制,要保持惯性思维
  20. 用html编写古诗词欣赏,关于立夏的经典古诗词句欣赏

热门文章

  1. 哈工大赛尔 | 事理图谱:事件演化的规律和模式
  2. Win7中设置共享文件夹(通过账户密码访问)
  3. 你的团队需要一个会讲故事的人读书笔记
  4. 2023 年腾讯云服务器租用价格表出炉(CPU、内存、带宽、系统盘)
  5. 计算几何与图形学有关的几种常用算法
  6. Windows 2003 下 SquirrelMail 的安装
  7. 力扣-518题 零钱变换 II(C++)- 动态规划、完全背包问题
  8. 日志Error creating bean with name ‘sqlSessionFactory‘ defined in class path resource [applicationConte
  9. 字符串匹配算法题:病毒感染监测
  10. [汇编语言][bx]和loop指令