单片机也叫微控制器(MCU),是一种数字逻辑控制器件,内部有复杂的电路组成。根据单片机的原理,单片机的正常工做须要一些条件,咱们把知足单片机工做的最基本电路组成称为单片机最小系统。编程
基于 ARM Cortex-M0 的 LPC111x/LPC11Cxx 系列微控制器是低功耗,32 位微控制器家族中 的一员,面向 八、16 位微处理应用,具备高性能,低功耗,简单指令集,统一编址寻址等 优势,并且,相对于如今市场上存在的 8/16 位架构来讲,它有效的下降了代码长度。架构
LPC111x/LPC11Cxx 系列微控制器的工做频率可高达 50MHZ。工具
LPC111x/LPC11Cxx 系列微控制器加入的外围组件包括:高达 32KB 的 flash 存储器,8KB 的数据存储器 , 一个加强快速模式 (FM+)I2C 接口, 一个 RS-485/EIA-485 标准的通用异 步串行收发 器,两个具备 SSP 特性的 SPI 接口,四个通用定时器,一个 10 位 ADC 和 42 个 GPIO 引脚。性能
片上 C_CAN 驱动器和闪存的系统编程工具经过 C_CAN 链接在 LPC11Cxx 里,此外 LPC11C2x 还包含一个一个片上 CAN 收发器。设计
单片机的种类有不少,不一样公司不一样型号的单片机在电路设计上也不尽相同,因此在使用一款单片机时,必定要先获取单片机的数据手册(datasheet)以及用户使用手册(User Manual)。 本文使用的单品机是NXP(恩智浦)公司设计开发的LPC11C14单片机,该单片机属于LPC11xx系列,是在LPC1114的基础上增长了CAN总线功能单元,基本的引脚排布以及其余内部功能基本保持一致。 ![]接口
根据芯片的数据手册和用户使用手册能够知道,LPC11C14单片机的最小系统组成以下:图片
电源供电开发
单片机是一种数字逻辑器件,工做时须要进行电源供电。在众多单片机中,不一样单片机有不一样的供电电压,如传统的51单片机多为5V或3.3V,可是大多数单片机的均可以在必定的电压范围内正常工做,例如宏晶公司2008年11月发布的STC12系列单片机数据手册中,STC12C系列的单片机电压范围是3.3~5.5V;STC12L系列的单片机电压范围是2.2~3.6V。flash
对于LPC11C14,根据芯片手册,能够了解到,LPC11C14的工做电压范围:1.8V~3.6Vit
在芯片手册中能够看到,芯片的八、44两个引脚是电源的正极输入引脚,这两个引脚分别链接到了芯片内部的稳压器、芯片内的外设以及ADC功能单元,用于给芯片供电。
五、41两个引脚是芯片的接地引脚,也就是电源的负极。
在芯片工做的时候,首先要确保电源的这4个引脚被正确的链接在电源的正负极上。
外部时钟电路
时钟电路就是一个振荡器,给单片机提供一个节拍,单片机执行各类操做必须在这个节拍的控制下才能进行,包括程序的运行。
LPC111x/LPC11Cxx 包含三个独立的振荡器。分别是系统振荡器、内部 RC 振荡器 (IRC) 和 看门狗振荡器。 在具体应用中,每个振荡器均可以有不止一个用途。
复位以后,LPC111x/LPC11Cxx 会在内部 RC 振荡器下工做,直到经过软件进行切换。这就 使得系统 bootloader 工做在一个已知的频率下而不会受任何外部晶振的影响。
若是做为最小电路,在电路上能够什么都不用作,单片机内部集成了一个频率为12MHz的RC振荡器,频率偏差1%,可是若是想要提升单片机的时钟精度,就须要在单片机外部提供更加精准的时钟震荡信号。
上图为在XTALIN和XTALOUT之间外接无源晶体振荡器的原理图,能够用晶体振荡器产生的震荡信号驱动单片机工做,多数状况下晶体振荡器选用12MHz,匹配电容选用10pF。
上电复位电路
上电复位电路是一种用来使电路恢复到起始状态的电路,因为单片机是基于时序控制的数字电路,它须要稳定的时钟信号,所以在电源上电时,须要等待单片机内部的电源系统以及时钟系统稳定工做时,才可让单片机开始工做,这个等待过程就是上电复位电路所起的做用。
下图为LPC11C14的上电时序图:
简而言之,对于LPC11C14单片机,上电复位电路的做用就是在上电时,让单片机的RESET引脚保持低电平,延迟一段时间后,拉高电平,电平的跳变会触发单片机内部的施密特触发器,收到触发信号后,处理器从地址 0 处 (即最初的从引导块映射的复位向量)开始执行程序。同时全部的处理器和外设的寄存器被初始为预约值 。
如上所示电路是最简单的RC上电复位电路。
当单片机最小系统电路搭建完成时,须要知道单片机是否正确工做,过程比较简单,借助示波器,检测晶体振荡器的引脚是否产生震荡信号,若是产生了震荡信号,则代表单片机已经开始运行。
若是没有示波器,能够用万用表测量晶体振荡器的引脚电压,若是晶振起振,会在引脚上测出1.8V左右的电压值。