1980年,英特尔开发了第一个具有哈佛架构8051的微控制器(8051),此后微控制器在电子和嵌入式行业掀起了一场革命。随着时间的推移,随着技术的进步,我们已经拥有了更多高效,低功耗的微控制器,例如AVR,PIC,ARM。这些微控制器功能更强大,更易于使用,具有USB,I2C,SPI,CAN等最新的通信协议。即使Arduino和Raspberry Pi也完全改变了对微控制器的看法,Raspberry Pi不仅是微控制器,而且具有完整的功能。里面的电脑。
这将是一系列教程的第一部分,将帮助您学习PIC单片机。如果您来自电子领域,并且始终希望从学习一些微控制器开始,并逐渐进入编码和构建的领域,那么这一系列教程将是您的第一步。
PIC单片机是入门微控制器项目的非常方便的选择,因为它具有出色的支持论坛,并且可以作为您尚未学习的所有高级微控制器的坚实基础。
这些教程是为绝对或中级学习者制作的;我们计划从最基础的项目开始到高级的项目。我们希望学习者没有先决条件,因为我们在这里可以从任何层次帮助您。每个教程都会有理论上的解释和模拟,然后是动手教程。这些教程将不涉及任何开发板,我们将使用perf板制作自己的电路。因此,请做好准备,并每周花一些时间来增强您的微控制器能力。
现在,我们从“ PIC单片机的简单介绍”和一些软件设置开始,以使我们在下一个教程中运行。在最后检查视频,以安装和设置MPLABX,XC8,Proteus以及对PICkit 3编程器的快速拆箱。
PIC单片机架构和应用:
PIC微控制器由Microchip Technologies于1993年推出。最初,这些PIC被开发为PDP (程序数据处理器)计算机的一部分,并且计算机的每个外围设备都使用该PIC微控制器进行连接。因此,PIC的名称与Peripheral Interface Controller相同。后来,Microchip开发了许多PIC系列IC,可将其用于任何小型应用,例如照明应用,直至高级应用。
每个微处理器都将围绕某种体系结构构建,最著名的体系结构类型是哈佛体系结构,我们的PIC基于这种体系结构,因为它属于经典的8051系列。让我们简要介绍一下PIC的哈佛体系结构。
的PIC16F877A微控制器包括一个内置的CPU,I / O端口,存储器组织,A / d转换器,定时器/计数器,中断,串行通信,振荡器和CCP模块,其聚集使得IC强大的微控制器初学者与开始的。PIC体系结构的一般框图如下所示
CPU(中央处理单元):
微控制器具有一个CPU,可以执行算术运算,逻辑决策和与存储器相关的运算。CPU必须在RAM和微控制器的其他外围设备之间进行协调。
它由一个ALU(算术逻辑单元)组成,使用它执行算术运算和逻辑决策。执行指令后,还可以使用MU(存储单元)存储指令。该MU决定了我们MC的程序大小。它还由一个CU(控制单元)组成,该CU用作CPU和微控制器其他外围设备之间的通信总线。这有助于在指定寄存器中处理完数据后获取数据。
随机存取存储器(RAM):
随机存取存储器是决定我们微控制器速度的存储器。RAM由其中的寄存器组组成,每个寄存器组分配有一个特定任务。总体而言,它们可以分为两种类型:
- 通用寄存器(GPR)
- 特殊功能寄存器(SFR)
顾名思义,GPR用于通用寄存器功能,例如加法,减法等。这些操作限制在8位之内。GPR下的所有寄存器都是用户可写和可读的。除非指定了软件,否则它们本身没有任何功能。
尽管SFR用于执行复杂的特殊功能(其中还涉及一些16位处理),但它们的寄存器只能被读(R),而我们不能向其写(W)任何东西。因此,这些寄存器具有要执行的预定义功能,这些功能是在制造时设置的,它们只是向我们显示结果,使用这些功能我们可以执行一些相关的操作。
只读内存(ROM):
只读存储器是程序存储的地方。这决定了我们程序的最大大小;因此它也称为程序存储器。当MCU处于运行状态时,按照每个指令周期执行ROM中存储的程序。该存储单元只能在对PIC编程时使用,在执行过程中它将成为只读存储器。
电可擦可编程只读存储器(EEPROM):
EEPROM是另一种类型的存储单元。值可以在程序执行过程中存储。此处存储的值仅是电可擦除的,即使关闭IC,这些值也将保留在PIC中。它们可以用作较小的存储空间来存储执行的值。但是,存储空间将以KB为单位大大减少。
闪存 :
闪存也是可编程只读存储器(PROM),在其中我们可以读取,写入和擦除程序数千次。通常,PIC微控制器使用这种类型的ROM。
I / O端口
- 我们的PIC16F877A包含五个端口,即端口A,端口B,端口C,端口D和端口E。
- 在所有五个端口中,只有端口A是16位的,而端口E是3位的。其余的PORTS是8位的。
- 这些端口上的引脚可以根据TRIS寄存器配置用作输入或输出。
- 除了执行I / O操作外,这些引脚还可以用于特殊功能,例如SPI,中断,PWM等。
总线:
术语总线只是将输入或输出设备与CPU和RAM连接起来的一堆电线。
数据总线用于传输或接收数据。
地址总线用于将内存地址从外设传输到CPU。I / O引脚用于连接外围设备。UART和USART都是串行通信协议,用于连接GSM,GPS,蓝牙,IR等串行设备。
为我们的教程选择PIC单片机:
Microchip公司的PIC单片机分为4个大家族。每个系列都有提供内置特殊功能的各种组件:
- 第一个系列PIC10(10FXXX)被称为低端。
- 第二系列PIC12(PIC12FXXX)–被称为中档。
- 第三个系列是PIC16(16FXXX)。
- 第四个系列是PIC 17/18(18FXXX)
由于我们开始学习PIC,因此,让我们选择一种通用且可用的IC。该IC属于16F系列,其部件号为PIC16F877A。从第一个教程到最后,我们将使用相同的IC,因为该IC具有SPI,I2C和UART等所有高级功能。但是,如果您现在没有任何这些东西,那就完全可以了,我们将在每个教程中都有进展,并最终使用上述所有功能。
一旦选择了IC,阅读IC的数据表就非常重要。无论我们打算尝试什么概念,这都应该是第一步。现在,由于我们已选择该PIC16F877A,因此可以通读数据手册中的该IC规范。
外围功能 提到它有3个定时器,其中两个是8位,一个是16位预分频器。这些计时器用于在我们的程序中创建计时功能。它们也可以用作计数器。它还表明它具有CCP(捕获比较和PWM)选项,这有助于我们生成PWM信号并读取输入的频率信号。为了与外部设备通信,它具有SPI,I2C,PSP和USART。为了安全起见,它配备了欠压复位(BOR), 可帮助复位while程序。
模拟功能, 表明该IC具有10位8通道ADC。这意味着,我们的IC可以将模拟值转换为具有10位分辨率的数字,并具有8个模拟引脚来读取它们。我们还有两个内部比较器,可用于直接比较输入电压,而无需通过软件实际读取它们。
特殊的微控制器功能 表示它具有100,000次擦除/写入周期,这意味着您可以对其编程约100,000次。在线串行编程™(ICSP™)帮助我们使用PICKIT3直接对IC进行编程。可以通过在线调试(ICD)进行调试。看门狗定时器(WDT)是另一个安全功能,它是一种自可靠定时器,可以在需要时重置整个程序。
下图显示了我们的PIC16F877A IC的引脚排列。此图像代表每个针脚的名称和其他功能。也可以在数据表中找到。请妥善保存此图像,因为它将在硬件工作期间为我们提供帮助。
为我们的教程选择软件:
PIC单片机可以使用市场上可用的不同软件进行编程。有些人仍然使用汇编语言来编程PIC MCU。在我们的教程中,我们选择了由Microchip自己开发的最先进的软件和编译器。
为了对PIC单片机进行编程,我们需要进行编程的IDE(集成开发环境)。一个编译器,在那里我们得到的程序转换成MCU可读的形式称为HEX文件。一个IPE(集成编程环境),它是用来转储我们的hex文件下载到我们的PIC MCU。
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
编译器: XC8
Microchip已免费提供所有这三个软件。可以直接从其官方页面下载它们。为了方便您,我也提供了链接。下载完成后,将它们安装在您的计算机上。如果这样做有任何问题,您可以查看最后给出的视频。
出于仿真目的,我们使用了Labcenter提供的名为PROTEUS 8的软件。该软件可用于模拟我们使用MPLABX生成的代码。有一个免费的演示软件,可以通过链接从其官方页面下载。
准备使用硬件:
我们所有的教程都将以硬件结尾。要以最佳方式学习PIC,始终建议通过硬件测试我们的代码和电路,因为仿真的可靠性非常低。在仿真软件上工作的代码可能无法按预期在硬件上工作。因此,我们将在Perf板上构建自己的电路以转储我们的代码。
倾倒或上传我们的代码到PIC,我们需要的PICkit 3中 的PICkit 3 编程/调试器是通过运行MPLAB IDE在PC(v8.20或更高版本)软件控制的简单,低成本的在线调试器Windows平台。该 的PICkit 3 编程/调试器是开发工程师的工具套件的组成部分。除此之外,我们还将需要其他硬件,例如Perf板,焊台,PIC IC,晶体振荡器,电容器等。但是,随着教程的进行,我们会将它们添加到列表中。
我从亚马逊带来了PICkit 3,可以在下面的视频中找到其拆箱视频。还提供了PICKIT3的链接;价格可能有点高,但请相信我,值得投资。