MicroChip单片机知识要点
2016Microchip培训资料-采用MCROCHIP电源管理和混合信号解决方案设计嵌入式系统 -- 1602

“模拟”控制
22
什么是数字增强型 电源模拟产品?
数字控制 模拟控制 电源转换解决方案空间
技术 技术
PWM发生器 外设
MOSFET 驱动器
PWM 比较器 误差 放大 器 VREF
MOSFET 驱动器 VFB
控制器—MCU (系数和 工作设定值)
A/D 转换器
VFB
补偿器 控制器
比较器
“数字”控制
532
1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015
4
模拟产品年度收入(千美元)
$700,000 $650,000 $600,000 $550,000 $500,000 $450,000 $400,000 $350,000 $300,000 $250,000 $200,000 $150,000 $100,000 $50,000 $0
1602
内部 LDO
补偿器
“模拟”控制
26
数字增强型控制器
产品树
数字增强型电源模拟 控制器
MCP19110/1 采用同步驱动器降压拓扑 的32V增强型电源模拟控 制器
MCP19118/19 采用同步驱动器降压拓扑 的40V增强型电源模拟控 制器
MCP19114/5 采用同步驱动器升压拓扑 的42V增强型电源模拟控 制器
易于使用的解决方案降低了对电源专业知识的要 求。EMI性能符合CISPR22,B类标准,非常适合 工业应用。
1602
高端消费市场
19
控制器应用
单片机基础知识资料-PPT

第1、3章 单片机应用概述与开发步骤
1. 电子计算机的发展概述
2. 单片机的发展过程及产品近况
3. 单片机的特点 4. 单片机应用系统开发简介
5.1 计算机语言概述
5.2 80C51单片机寻址方式
5.3 80C51单片机指令系统
暂时不讲
5.4 80C51汇编语言程序设计
5.5 80C51单片机C51程序设计语言
5.6 C51的运算符和表达式
5.7 C51的库函数
5.8 C51的应用技巧
第5章 80C51单片机软件基础知识
单片机应用系统
大家有疑问的,可以询问和交流
可以互相讨论下,但要小声点
第1、3章 单片机应用概述与开发步骤
软件系统
• 系统资源分配 • 程序结构 • 数学模型 • 程序流程 • 编制程序
第1、3章 单片机应用概述与开发步骤
程序设计
通常是C语言或者汇编语言,在特定的集成开发环境(IDE)中编程 调试,比如应用最广泛的KEIL uVision3
通过特殊功能寄存器可实现对单片机内部资源的 操作和管理。
常用特殊功能寄存器
第4章 80C51单片机硬件基础知识
常用特殊功能寄存器
第4章 80C51单片机硬件基础知识
常用特殊功能寄存器
端口P0~P3
特殊功能寄存器P0~P3分别是I/O端口P0~P3的锁存 器。80C51单片机是把I/O当作一般的特殊功能寄存器 使用,不专设端口操作指令,使用方便。
•数据缓冲区 30H~7FH是数 据缓冲区,即 用户RAM区, 共80个单元。
单片机知识点

单片机知识点单片机是一种集成电路芯片,它包含了微处理器、存储器、输入输出接口等多种功能模块,可以用于控制、测量、通信等多种应用领域。
单片机具有体积小、功耗低、成本低等优点,因此在嵌入式系统中得到广泛应用。
以下是单片机的一些知识点:1. 微处理器:单片机中的微处理器是其核心部件,它负责执行指令、进行运算、控制程序流程等操作。
常见的单片机微处理器有8051、PIC、AVR等。
2. 存储器:单片机中的存储器包括程序存储器和数据存储器。
程序存储器用于存储程序代码,数据存储器用于存储程序运行时的数据。
常见的存储器类型有ROM、RAM、EEPROM等。
3. 输入输出接口:单片机通过输入输出接口与外部设备进行数据交互。
输入接口可以接收外部信号,如按键、传感器等,输出接口可以控制外部设备,如LED、继电器等。
4. 中断:单片机中的中断是一种异步事件处理机制,当某个事件发生时,可以通过中断来打断当前程序的执行,转而执行中断服务程序。
常见的中断类型有外部中断、定时器中断等。
5. 定时器:单片机中的定时器可以用于计时、延时、产生脉冲等操作。
定时器一般由计数器和控制电路组成,可以通过编程来设置计数器的初值、计数方式等参数。
6. PWM:PWM(Pulse Width Modulation)是一种脉冲宽度调制技术,可以通过改变脉冲宽度来控制输出信号的电平。
单片机中的PWM可以用于控制电机、LED亮度等应用。
7. ADC:ADC(Analog to Digital Converter)是一种模数转换器,可以将模拟信号转换为数字信号。
单片机中的ADC可以用于测量模拟量信号,如温度、光线等。
8. UART:UART(Universal Asynchronous Receiver/Transmitter)是一种通用异步收发器,可以实现串口通信。
单片机中的UART可以用于与PC、蓝牙模块等设备进行通信。
9. SPI:SPI(Serial Peripheral Interface)是一种串行外设接口,可以实现单片机与外部设备之间的数据传输。
单片机常考知识点总结归纳

单片机常考知识点总结归纳一、单片机概述单片机是一种集成了微处理器、存储器和输入/输出功能的集成电路芯片,也称为微控制器。
常见的单片机有8051系列、AVR系列、PIC系列等。
单片机通常具有CPU、存储器、定时器、串行通信接口、模拟输入/输出和数字输入/输出等外围设备。
二、单片机的基本特点1. 控制功能:单片机是用来控制各种设备和系统的,其核心是实现程序控制和数据处理。
2. 内部存储器:单片机有自带的ROM、RAM和EEPROM存储器,存储程序和数据。
3. 输入输出功能:单片机通过外设和接口实现与外部设备的连接和通信。
4. 超低功耗:单片机通常工作在微功耗下,能长时间运行在电池供电环境中。
5. 嵌入式应用:单片机广泛应用于嵌入式系统、家电控制、自动化设备等领域。
三、单片机常考的知识点1. 单片机的基本原理:包括单片机的工作原理、内部结构、外围设备和程序存储等内容。
2. 单片机的硬件结构:包括CPU、存储器、输入输出设备、定时器计数器、串行通信接口等部分。
3. 单片机的编程开发:包括汇编语言编程、C语言编程、软件开发工具和调试技术等内容。
4. 单片机的应用实例:包括LED显示、按键控制、数码管驱动、定时器应用、串口通信等应用案例。
5. 单片机的系统设计:包括单片机系统设计的原则、方法和技术要点等内容。
6. 单片机的外围接口:包括串行通信接口、模拟输入输出、数字输入输出等外围接口知识。
7. 单片机的存储器管理:包括ROM的存储器结构、程序存储、数据存储和EEPROM的应用。
8. 单片机的中断处理:包括中断的类型、中断的嵌套、中断的优先级和中断的应用等知识点。
9. 单片机的定时器应用:包括定时器的工作原理、定时器的编程、定时器的应用实例等内容。
10. 单片机的串口通信:包括串口的工作原理、串口的编程、串口的数据传输和应用实例等。
11. 单片机的模拟输入输出:包括模拟输入输出的工作原理、模拟输入输出的编程和应用实例等。
单片机自学笔记

{ int a=3; int b = 4; a=a^b; b=b^a; a=a^b; printf("a=%d b=%d",a,b); } 4、“取反”运算符(~) 他是一元运算符,用于求整数的二进制反码,即分别将操作数各二进制 位上的1变为0,0变为1。 例如:~77(8) 源代码: #include <stdio.h> main() { int a=077; printf("%d",~a); } 5、左移运算符(<<) 左移运算符是用来将一个数的各二进制位左移若干位,移动的位数由右 操作数指定(右操作数必须是非负 值),其右边空出的位用0填补,高位左移溢出则舍弃该高位。 例如:将a的二进制数左移2位,右边空出的位补0,左边溢出的位舍 弃。若a=15,即00001111(2),左移2 位得00111100(2)。 源代码: #include <stdio.h> main() { int a=15; printf("%d",a<<2); } 左移1位相当于该数乘以2,左移2位相当于该数乘以2*2=4,15<< 2=60,即乘了4。但此结论只适用于该 数左移时被溢出舍弃的高位中不包含1的情况。
单片机自学笔记
预备知识 N进制转化为十进制,按权展开,相加即可。 十进制转化为N进制,整数部分除N求余取整,逆序排列。 二进制转十六进制,先记住:0=0000 1=0001 2=0010 3=0011······E=1110 F=1111这个你应该知道的吧然后再转化,比如:二进制 1101010010.10101先把它从小数点往左右数,四位数一组,不足的补0 所以得到: 0011 0101 0010.1010 1000按照转化的公式: 0011=3 0101=5 0010=2 1010=A 1000=8所以十六进制就是: 352.A8 十六进制转二进制,首先把十六进制数04271544中的每一位数转换为二 进制数,每个数要分四位,不足四位的前面加零,请看下面演示:0 00004 01002 00107 01111 00015 01014 01004 0100将得出四位二进制数串连 起来就是结果了所以,十六进制04271544转换二进制为 100001001110001010101000100 (前面的0就省了) 十六进制 二进制0 00001 00012 00103 00114 01005 01016 01107 01118 10009 1001A 1010B 1011C 1100D 1101E 1110F 1111其中ABCDE对应十进制中的 10,11,12,13,14,15。 2. 数字电路中只有两种电平: 高和低 TTL电平: 高 +5V 低 0V RS232电平:计算机串口 高 -12V 低+12V 所以计算机与单片机之间通讯时需要加电平转换芯片如MAX232 常用进制十进制和十六进制 十六进制:c51 前缀0x,汇编后缀H. 十进制:无,省了(D). 二进制数的逻辑运算 与运算 运算符为”·” 0·X=0 1·1=1 决定事物结果的全部条件同时具备时,结果才会发生。 或运算 决定事物结果的条件中,只要任何一个满足,结果就会发生。 运算符为”+”, 1+X=1 0+0=0。 非运算 只要条件具备了,结果便不会发生,而条件不具备时,结果一 定发生。运算符“-”
微芯片技术(Microchip Technology)无传感器场向控制(FOC)技术指南说明书

Microchip Technology Inc.User GuideSensor less Field Oriented Control with SAM E54Contents1. Introduction (2)1.1. SAME54 Microcontroller Card for ATBLDC24V Motor Control Starter Kit (2)1.2. ATBLDC24V-STK Features (3)1.3. Microchip ATSAME54 MOTOR MCU Board (4)1.3.1. MCU Card (4)1.3.2. Power Supply (4)1.3.3. Embedded Debugger (4)1.3.4. 67-pin MCU-DRIVER Board Interface (5)1.4. Motor Specification (6)2. Software Requirement (7)3. Getting Started with ATBLDC24V-STK (7)4. Firmware User Configuration (11)5. Software Implementation (12)6. References (14)7. Revision History (14)1.Introduction1.1.S AME54 Microcontroller Card for ATBLDC24V Motor Control Starter KitThe ATSAME54MOTOR is a MCU card for Atmel® Motor control low voltage starter kits. The hardware has the ARM® M4 core -based SAME54 MCU, with integrated on-board debug support. The MCU card can be directly used with the currently available ATSAMD21BLDC24V-STK®, a low voltage BLDC, PMSM motor control starter kit. The kit contains a driver board hardware with half-bridge power MOSFET drivers, current and voltage sensing circuit, Hall, and Encoder interface, fault protection circuits, etc. Supported by the Atmel studio integrated development platform, the kit provides easy access to the features of SAME54 MCU and explains how to integrate the device in a custom motor control application.Figure 1 Atmel low voltage motor control kit1.2.A TBLDC24V-STK FeaturesATBLDC24V-STK has the following features:• Pluggable MCU card interface• Debug support using on-board Atmel EDBG device• Three half-bridge MOSFET driver• Motor BEMF sensing• Motor individual phase current sensing• DC-bus voltage sensing• Hall sensor interface• Encoder s ensor interface• Over-current protection support• Over-voltage protection at 30VDC• 5V and 3.3V MCU card support• Selectable MCU supply voltage• Reverse power supply voltage protection• Atmel Xplained Pro compatible header interface• On board Temperature sensor• On board serial flash• LED fault indications• Atmel studio plug-and-use support using unique ID device1.3.M icrochip ATSAME54 MOTOR MCU Board1.3.1.MCU CardSAM E54 is a high-performance Flash microcontroller (MCU) based on the 32-bit ARM® Cortex®-M4 RISC (403 CoreMark at 120MHz) processor with floating point unit (FPU). The device operates at a maximum speed of 120 MHz, features up to 1024 Kbytes of Flash, up to 4 Kbytes of TCM (Tightly Coupled Memory)and up to 256 Kbytes of SRAM.The device is intended to work with external 12MHz oscillator. An external reset switch is connected to the MCU RESET pin.Figure 2 ATSAME54 MCU Card1.3.2.Power SupplyThe ATSAME54 MOTOR MCU card takes 3.3VDC supply from the 67-pin edge connector. Both the EDBG device and the Main MCU operate from 3.3VDC. The power supply selection jumper on the Driver board should be connected to 3V3 selection..1.3.3.Embedded DebuggerThe ATSAME54 MCU is interfaced to the EDBG debug device. The EDBG uses SWD interface for programming and debugging the main MCU. A debug header is also provided on the MCU board with ARM Cortex® debug pin out. An external debugger can be connected to this debug port.The DGI is a proprietary communication interface used by the Atmel Data Visualizer software to communicate with the development kits through the EDBG. ATSAME54 connected to the EDBG device, with DGI SPI interface and uses the Atmel ADP protocol.High Speed USB port of the EDBG is accessible at the driver board. EDBG USB enumerates as a composite device supporting debug, DGI SPI, and CDC interfaces.The USB port of the EDBG is connected to the Micro-USB connecter on the driver board.1.3.4.67-pin MCU-DRIVER Board InterfaceATSAME54 MCU card is connected to driver board through 67-pin interface as shown below.Figure 3 67 Pin MCU-Driver Board Interface1.4.M otor Specification2.Software RequirementTo run this demo below mentioned software should be installed on the PC.3.Getting Started with ATBLDC24V-STKThis chapter is a step-by-step guide to get started with the ATSAME54 for ATBLDC24V-STK.1.ATBLDC24V-STK kit contains a fully assembled chassis and 24VDC power adaptor.2.Make sure switch SW1 on driver board (ATBLDC24V) is set to USB/X5V.3.Make sure jumper (J26) on driver board (ATBLDC24V) is set to 3.3V.4.Connect the power adaptor to the “SUPPLY-IN connector”. Connect white color cable to + PIN.Figure 4 Kit with Power and USB Ports Connected5.Connect the Micro-USB cable to the “EDBG-USB connector” and PC USB port.6.Switch ON the power adaptor.7.The power LED indications on the MCU card are now ON.8. If MCU is pre-programmed then directly open "Data Visualizer". If it’s not, then program itthrough Atmel studio and run the program first and then open the data visualizer9.In the "Data Visualizer Connect Window" select the kit from the DGI control panel's drop downlist.Figure 5 Data Visualizer Connect Window10.Click "Connect".11.The Data Visualizer default window will pop up once the connection is made. All the fields shallshow default values as shown below.Figure 6 Data Visualizer Start Window12.Click on "START/STOP" button to turn the motor ON with default values.Figure 7 Data Visualizer Motor Start Window13.One can adjust the graph by selecting checkbox "Automatically fit Y" for better visualization.14.To change the parameter, enter the value in a input field and press "Enter". For example, tochange the motor speed, type in the desired speed within the Reference Speed (RPM) input box and press "Enter".Figure 8 Data Visualizer Change Parameter Online15.To stop the motor, click on the “Stop" button. It will ramp down and stop the motor.Figure 9 Data visualizer Stop motor window4.Firmware User ConfigurationAlgorithm can be fine-tuned for any motor by updating motor parameters in “userparams.h” file. Following are the configurations available for the user to modify the motor and algorithm parameters.5.Software ImplementationPWM event generation unit is configured to trigger AFEC module to start adc conversion. Once the trigger is received by AFEC module, two configured phase current measurements are simultaneously sampled and conversion takes place. Phase current result ready event will generate interrupt. Then DC bus voltage is measured inside interrupt. In addition, speed POT is measured if it is enabled.The FOC algorithm is executed inside ADC end of conversion interrupt handler. This interrupt is dedicated for fast controlling and it’s in sync with PWM. If any fast controlling tasks need to be added then this is the place. Apart from this, slow control loop is also available and its frequency can be configured by “SLOW_LOOP_TIME_SEC” in user configurations. Slow loop execution frequency should be in multiple of PWM frequency. Speed ramp and speed PI control loop is executed from slow control loop. If any additional tasks one has to execute at slower rate, then “SlowControlLoop()” function is a place holder.ADCEOCInterruptHandlerRead 2 phase currents Software trigger for DC bus and POTmeasurementClarke Transform Convert balanced three-phase quantities to balanced two-phase quadrature quantitiesPark TransformTwo-phase orthogonal stationary system to orthogonal rotating reference framePLL EstimatorBEMF based PLL observer to Estimate Motor Position and SpeedPI ControllersId(Flux), Iq (Torque) PI controllersInverse Park Transform Rotating reference frame to Orthogonal stationary reference frame Inverse Clarke Transform2 axis orthogonal frame to3 phase stationary frameSVPWMSpace vector modulation to update PWM duty cycleSTOP SlowControlLoopSpeedRamp()PI ControlSpeed PI controlSTOPFigure 10 Control loop flow chart6.ReferencesApp Note - /downloads/en/AppNotes/00002520B.pdfAtmel Studio 7 - /microsite/atmel-studio/Data Visualizer - https:///Products/Details/0b2891f4-167a-49fc-b3f0-b882c7a11f98 7.Revision History。
单片机重点知识点

单片机重点知识点单片机是嵌入式系统开发中的重要组成部分,广泛应用于各种领域,如家电、汽车、医疗等。
本文将对单片机重点知识点进行介绍。
一、单片机的基础知识点1. 单片机的定义单片机是一种集成了处理器、存储器和输入/输出接口的微型计算机系统,具有体积小、功耗低、成本低等特点。
常用的单片机有AVR、PIC、STM32等。
2. 单片机的组成单片机由以下几个部分组成:- 中央处理器- 存储器- 输入/输出接口- 时钟电路- 辅助电路3. 单片机的工作原理单片机的工作原理可分为以下几个步骤:- 程序存储器中的指令被取出并送到中央处理器中执行;- 执行指令时,进行数据读取和存储;- 中央处理器将结果写入存储器或输出到外部设备。
二、单片机编程的知识点1. 单片机编程语言单片机编程语言主要有汇编语言和高级语言两种。
常用的高级语言有C语言和Basic语言。
2. 单片机的寄存器单片机寄存器是指内部的用于存储数据和控制单元的设备。
常用的寄存器有通用寄存器、状态寄存器、计数寄存器等。
3. 单片机的输入/输出单片机的输入/输出通常使用端口操作来实现。
输入操作可以通过读取端口输入的信号,输出操作可以通过向端口输出信号来实现。
4. 单片机的中断中断是指单片机在执行程序时遇到某些事件时,暂停程序的执行,跳转到中断服务程序中去处理该事件。
常见的中断有外部中断、定时中断和任务间中断等。
三、单片机应用的知识点1. 单片机应用领域单片机应用广泛,涉及的领域包括:- 家电控制- 汽车电子- 机器人控制- 医疗器械等。
2. 单片机的通信方式单片机的通信方式有多种,常用的有串口通信、并口通信、SPI通信、I2C通信等。
其中串口通信应用最为广泛。
3. 单片机的电源管理单片机的电源管理是指如何控制单片机系统的供电,以保证单片机正常工作。
常见的电源管理方式有降压稳压和电源管理芯片等。
4. 单片机的调试与测试单片机的调试与测试是指如何验证单片机系统的正确性,包括硬件测试和软件测试。
单片机基础知识点全攻略

单片机基础知识点全攻略单片机 (Microcontroller) 是一种内含的微处理器、存储器以及各种输入输出接口的集成电路芯片。
它广泛应用于各种嵌入式系统中,如家电、汽车、电子设备等。
单片机的基础知识点主要包括以下几个方面:1.单片机的基本结构:单片机由中央处理器单元(CPU)、存储器、输入输出(I/O)接口和定时器/计数器等组成。
其中,CPU是单片机最重要的部件,负责执行程序指令。
存储器可分为随机存取存储器(RAM)和只读存储器(ROM),其中ROM存储着程序代码和常量数据,RAM用于存储运行时的数据。
2.单片机的工作原理:单片机通过执行存储在ROM中的程序指令,完成各种任务。
CPU从ROM中读取指令并执行,将结果存储在RAM中。
由于单片机通常工作在时钟信号的控制下,故CPU在时钟的辅佐下工作。
3.单片机的编程语言:单片机的编程语言通常采用汇编语言或高级语言(如C语言)。
汇编语言是一种机器指令的助记符,编程复杂、灵活、直接,通常用于对程序执行效率要求较高的场合;而C语言则具有语法简洁、易读易写的特点,适合快速开发程序。
4.单片机的输入输出接口:单片机通过输入输出接口与外部设备进行数据交互。
常见的输入接口有开关、按钮、传感器等;常见的输出接口有LED灯、蜂鸣器、电机等。
通过编程,用户可以控制这些接口的状态,与外设实现数据的输入和输出。
5.单片机的定时器/计数器:单片机的定时器/计数器模块用于生成精确的时间间隔或计数外部事件。
它可以被用来实现定时中断、测量脉冲宽度、计数等功能,是单片机中非常重要的功能模块之一6.单片机的中断和中断服务程序:单片机在执行程序的过程中,可以接收和响应外部的中断信号。
当中断发生时,单片机会立即暂停当前任务,跳转执行预先定义好的中断服务程序,处理中断事件。
中断机制是实现实时响应和多任务操作的重要手段。
7.单片机的电源与时钟:单片机需要稳定可靠的电源和时钟信号供给。
电源通常由直流电源或电池提供,特别是在嵌入式系统中,通常需要考虑功耗和电池寿命等因素;时钟信号则是单片机正常工作的基础,它通过晶体振荡电路或者外部时钟源提供。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机知识要点1、概念:单片机(Single chip microcomputer)亦称单片微电脑或单片微型计算机,国际上统称为微控制器(microcontrollor, MCU, μC),就是把中央处理器CPU、随机存取存储器RAM、只读存储器ROM、输入/输出端口I/O等主要的计算机功能部件,都集成在一块集成电路芯片上,从而形成一部完整的微型计算机,就称其为单片机。
目前市场做单片机的产家很多,如ATMEL,Microchip,Cypress,AMD,Intel,STC,HOLTEK 等等。
2、结构:一般的单片机内部结构如下图:以上为简单的结构图,对应关系是:CPU包含控制器和运算器;ROM和RAM对应着存储器,前者存放程序,后者存放数据;I/O则对应着输入设备和输出设备,用总线(BUS)实现各模块之间的信息传递。
ROM 和RAM存储器容量可多可少,但CPU只有一个,另外,为了提高单片机的性能和扩展单片机的用途,厂家通常将一些不同功能的专用模块也集成到单片机芯片内部当中来,比如定时器模块、数模转换模块、串行端口模块等等,同时,习惯于把这些模块与I/O端口模块一起统称为外围模块。
3、单片机应用介绍:(1)电信:电话机、无绳电话、投币电话机、无线对讲机、传真机、来电显示器(caller ID)等;(2)家用电器:智能电视、电磁炉、DVD、卫星电视接收机,音响、空调、各种报警器等;(3)计算机外围设备:键盘、打印机、Modem、无线网卡等;(4)办公自动化:复印机、智能打字机、PDA等;(5)工业控制:数控机床、智能机器人、电机控制、过程控制、温度控制、智能传感技术等;(6)商用电子:自动售货机、电子收款机、电子秤、IC卡等;(7)玩具:袖珍游戏机、电子宠物、遥控玩具等;(8)仪器仪表:用于医疗、化工、电子、计量等各种智能仪器仪表;(9)汽车电子:点火控制、变速控制、防滑控制、防撞控制、排气控制、GPS等;(10)军用电子:各种导弹和鱼雷的精确制导控制、智能武器、雷达系统等。
4、PIC单片机的特点:PIC是美国Microchip公司生产的单片机系列产品型号的前缀,PIC系列单片机的硬件系统设计简洁,指令系统设计精炼,在所有单片机品种中是最容易学习、最容易应用的单片机品种之一。
PIC单片机相比其它品种单片机有以下优点:(1)哈佛总线结构:其设计异同于其它单片机之处是:不仅采用了哈佛体系结构,而且还采用了哈佛总线结构,在芯片内部将数据总线和指令总线分离,并且采用不同的宽度,这样做的好处在于,实现指令提取的“流水作业”,也就是在执行一条指令的同时对下一条指令进行取指操作,以便实现全部指令的单字节化,单周期化,从而有利于提高CPU执行指令的速度。
如下图结构:(2)指令单字节化因为数据总线和指令总线是分离的,并且采用了不同的宽度,所以程序存储器ROM和数据存储器RAM的寻址空间(即地址编码空间)是互相独立的,而且两种存储器宽度也不同。
这种设计既可以确保数据的安全性,还可提高运行速度和实现全部指令的单字节化。
(3)精简指令集(RISC)技术PIC系列单片机的指令系统(就是该单片机所能识别的全部指令的集合,叫做指令系统或者指令集,Instruction set)只有35条指令,易学好用。
而MCS-51单片机指令系统共有111条指令。
(4)寻址方式简单寻址方式就是寻找操作数的方法。
PIC系列单片机只有4种寻址方式(即寄存器间接寻址、立即数寻址、直接寻址和位寻址),容易掌握,而MCS-51单片机则有7种寻址方式。
(5)代码压缩率高1KB的存储器空间,对于像MCS-51单片机,大约只能存放600条指令,而对于PIC系列单片机则能够存放的指令条数可达1024条。
(6)运行速度高由于采用了哈佛总线结构,以及指令的读取和执行采用了流水作业方式,使得运行速度大大提高,在所有8位机中,PIC17CXX是目前世界上速度最快的品种之一。
(7)功耗低PIC系列单片机的功率消耗极低,是目前世界上最低的单片机品种之一。
在4MHz时钟下工作时耗电不超过2mA,在睡眠模式下耗电可以低到1μA以下。
(8)驱动能力强I/O端口驱动负载的能力较强,每个I/O引脚吸入和输出电流的最大值可分别达到25mA和20mA,能够直接驱动发光二极管LED、光电耦合器或者微型继电器等。
(9)I2C和SPI串行总线端口PIC系列单片机的一些型号具备I2C和SPI串行总线端口。
I2C(Inter IC bus,也可以记为IIC)和SPI (Serial peripheral interface)分别是由Philips公司和Motorola公司发明的两种串行总线技术,是在芯片之间实现同步串行数据传输的技术,利用这些串行总线端口可以方便灵活地扩展一些必要的外围器件。
(10)外接电路简洁PIC系列单片机内集成了上电复位电路、I/O引脚上拉电路、看门狗定时器等,可以最大程度地减少或免用外接器件,以便实现“纯单片”应用,这样即方便开发,也可以节省电路板空间和制造成本。
5、PIC单片机电路设计的构成和应用Microchip微芯公司的单片机种类繁多,可以从系列为:10F系列、12F系列、16F系列、18F或18LF系列、24F系列、30F系列和dsPic33F系列等等,但核心都是一样的,所以,现在我们以16F系列中的PIC16F84A 为代表来学习PIC家族单片机,来研究自动化控制电路的构成原理。
(1)电路的基本构成PIC单片机与其它的单片机有着很多的共同点,都是由振荡电路,复位电路,I/O电路组成。
上图是一个简单的LED灯控制电路,分别由MUC(PIC16F84A)、振荡器XT、复位电路R1、触发开关SW、限流电路(R7、R6、R5、R4)、去耦电容C1、上拉电阻R2、下拉电阻R3组成。
我们用这个电路实现LED灯流水闪动(LED1-LED2-LED3-LED4),由触发开关SW触发启动。
具体的流程如下:ASM格式汇编语言程序如下:LIST P=16F84A,R=DEC ;清单标示MCU种类,以DEC(十进制)为默认INCLUDE P16F84A.INC ;加入PIC16F84A文件头,主要是各寄存器的定义CB = _CP_OFF ;代码保护关CB &= _PWRTE_ON ;上电延时开CB &= _WDT_OFF ;看门狗关CB &= _XT_OSC ;XT晶振,标准振荡__CONFIG CB__IDLOCS H'3FFF' ;以上是定义芯片配置位TIME10_C1 EQU 20H ;定义变量的寄存器位置地址TIME10_C2 EQU 21HTIMES1 EQU 22HTIMES2 EQU 23HTIMES3 EQU 24H;------------------------------------------------------------------------------;宏定义Bank0 和Bank1;------------------------------------------------------------------------------BANK0 MACRO ;定义BANK0BCF STATUS,5ENDMBANK1 MACRO ;定义BANK1BSF STATUS,5ENDM;------------------------------------------------------------------------------;程序初始化;------------------------------------------------------------------------------CLRF PORTA ;清空portA端口CLRF PORTB ;清空portB端口BANK1 ;选择Bank1MOVLW 0XFF ;赋值1111 1111BMOVWF TRISA ;设定所有RA端口为高阻输入MOVLW 0X0F ;赋值0000 1111BMOVWF TRISB ;设定RB口中RB7~RB4为输出,RB3~RB0输入BANK0 ;选择Bank0;------------------------------------------------------------------------------;SW检测;------------------------------------------------------------------------------KEY_CHECKBTFSC PORTA,2 ;检测RA2是否按下(低电位)GOTO KEY_CHECK ;否!返回继续检测CALL TIME10 ;是!延时10msBTFSC PORTA,2 ;延时10ms之后重新检测是否按下开关(低电位)GOTO KEY_CHECK ;否!误判,返回重新检测!BSF PORTB,7 ;LED1亮CALL TIME500 ;延时500msBSF PORTB,6 ;LED2亮CALL TIME500 ;延时500msBSF PORTB,5 ;LED3亮CALL TIME500 ;延时500msBSF PORTB,4 ;LED4亮CALL TIME500 ;延时500msCLRF PORTB ;全灭CALL T TIME500 ;延时500msGOTO LED_ON ;返回到Led_ON开始下一轮;------------------------------------------------------------------------------;10mS DELAY (10ms延时);------------------------------------------------------------------------------TIME10MOVLW 10 ; 1μs,外循环10*1ms=10ms左右MOVWF TIME10_C1 ; 1μsTIME10_LOOP1MOVLW 250 ; 1μs,内循环250*4μs=1ms左右MOVWF TIME10_C2 ; 1μsTIME10_LOOP2NOP ; 1μsDECFSZ TIME10_C2 ; 1(2)μs,结果为0时增加1μsGOTO TIME10_LOOP2 ; 2μsDECFSZ TIME10_C1 ; 1(2)μs,结果为0时增加1μsGOTO TIME10_LOOP1 ; 2μsRETURN;------------------------------------------------------------------------------;500mS DELAY (500ms延时);------------------------------------------------------------------------------TIME500 MOVLW 26MOVWF TIMES1TEMP_LOOP1 MOVLW 35MOVWF TIMES2TEMP_LOOP2 MOVLW 149MOVWF TIMES3TEMP_LOOP3 DECFSZ TIMES3,1GOTO TEMP_LOOP3DECFSZ TIMES2,1GOTO TEMP_LOOP2DECFSZ TIMES1GOTO TEMP_LOOP1RETURN;---------------------------------------------------------------------------------------END ;程序结束以上是一个简单的循环闪亮的电路设计,这种设计也可以延伸到其它的控制设计当中。