STC32位8051单片机原理及应用 课件全套 何宾 第1-7章 单片机设计导论 -USB原理及应用_第1页
STC32位8051单片机原理及应用 课件全套 何宾 第1-7章 单片机设计导论 -USB原理及应用_第2页
STC32位8051单片机原理及应用 课件全套 何宾 第1-7章 单片机设计导论 -USB原理及应用_第3页
STC32位8051单片机原理及应用 课件全套 何宾 第1-7章 单片机设计导论 -USB原理及应用_第4页
STC32位8051单片机原理及应用 课件全套 何宾 第1-7章 单片机设计导论 -USB原理及应用_第5页
已阅读5页,还剩2208页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章单片机设计导论

单片机和桌面系统的基本架构处理器和的指令集类型嵌入式系统的硬件和软件单片机程序设计语言单片机性能评价主要内容单片机和桌面系统的基本架构

本节教学目标说明“单片机”这一术语的本质含义说明单片机与面向桌面应用的计算机系统的本质区别单片机和桌面系统的基本架构

--单片机的结构单片机是指单个集成电路(IntegratedCircuit,IC)芯片上的小型计算机(Microcomputer),也称为微控制器(MicrocontrollerUnit,MCU)MCU主要面向嵌入式应用,这些应用面向自动控制产品和设备比如汽车发动机的控制系统、植入式医疗设备、遥控器、办公机器、电器、电动工具、玩具和其他嵌入式系统单片机和桌面系统的基本架构通常,在MCU内包含一个/多个中央处理器单元(CentralProcessingUnit,CPU)、易失性和非易失性存储器,以及可编程的输入和输出设备CPUEMIFROM/FlashSRAM

UART

GPIOTimerOSCIntControllerADCDAC单片机和桌面系统的基本架构

--单片机的结构OSC为晶体振荡器(Oscillator)的英文缩写,它为MCU提供最基本的时钟源通过MCU内的相位锁相环(PhaseLockedLoop,PLL)电路,基于该时钟源可以产生不同频率和相位的其他时钟信号,以提供给MCU内的所有功能单元随着半导体技术的发展和芯片设计水平的不断提高,厂商经常在MCU内部集成了晶体振荡器,这样就不需要像以前那样需要在MCU外部连接晶体振荡器电路,这样既减少了系统硬件设计的复杂度,降低了系统设计成本,同时也提高了系统的可靠性MCU也仍然保留了从外部输入时钟源的能力。这样,就为系统的设计提供了更多的灵活性单片机和桌面系统的基本架构

--单片机的结构CPU是中央处理单元(CentralProcessingUnit,CPU)的英文缩写,CPU是MCU中的核心功能单元从MCU外部获取的所有信息都要汇集到CPU进行处理,CPU将处理后的数据送到存储器或者外设CPU是指令集架构(InstructionSetArchitecture,ISA)的具体实现,也称为微架构(Microarchitecture),它所采用的ISA决定了MCU的性能和特点比如Intel和AMD的CPU采用的x86的ISA,但是两者的微架构实现有差异单片机和桌面系统的基本架构

--单片机的结构SRAM是静态随机访问存储器(StaticRandomAccessMemory,SRAM)的英文缩写,主要用于暂时保存在程序运行过程中所需要的数据,它充当了易失性存储器的角色这种类型存储器的主要特点是需要上电来保存信息。当MCU断电时,保存在易失性存储器中的数据会丢失单片机和桌面系统的基本架构

--单片机的结构Flash是闪存(FlashMemory)的英文简称,主要用于保存程序代码,它充当了非易失性存储器的角色这种类型存储器的主要特点是不需要上电保存信息。当MCU断电时,程序代码仍然会保存在非易失性存储器中在闪存问世之前,MCU厂商经常使用只读存储器(ReadOnlyMemory,ROM)或一次性可编程ROM(OneTimeProgrammableROM,OTPROM)来保存程序代码单片机和桌面系统的基本架构

--单片机的结构UART为通用串行收发器(UniversalAsynchronousReceiver/Transmitter,UART)的英文缩写,它是一种以串行方式发送和接收数据的简单外部设备(简称外设)在MCU中,UART是标准配置,这是因为这种外设通常用于帮助嵌入式系统开发人员调试设备通过UART和支持UART的串口调试软件进行人机交互,以快速定位系统的故障单片机和桌面系统的基本架构

--单片机的结构GPIO为通用输入输出(GeneralPurposeInput&Output,GPIO)的英文缩写,它是MCU最基本的外设配置,也是MCU中最简单的外设MCU内的CPU可以直接驱动GPIO或读取GPIO的逻辑状态单片机和桌面系统的基本架构

--单片机的结构Timer为定时器的英文单词,它是MCU中必不可少的基本外设定时器为MCU提供定时和计数功能,是MCU中提供最基本的外设配置当在MCU中运行嵌入式操作系统(OperatingSystem,OS)时,定时器也用于为OS提供“嘀嗒”时钟单片机和桌面系统的基本架构

--单片机的结构IntController为中断控制器(InterruptController)的英文缩写,它是MCU中最基本的功能单元中断控制器为MCU提供了处理内部和外部事件的能力,使得MCU内的CPU能够以最高效和最快的速度响应并处理内部和外部事件单片机和桌面系统的基本架构

--单片机的结构EMIF为外部存储器接口(ExternalMemoryInterface,EMIF)的英文缩写,它为MCU提供了连接片外SRAM芯片的能力通过该接口,用户可以在MCU外部连接多片SRAM芯片来扩展SRAM的总容量,以适应整个系统对程序运行期间所需要暂时保存大容量数据的需要显然,对于一些成本比较敏感的应用,扩展SRAM会增加系统的总成本。由于现代MCU中片内提供的SRAM容量足以保证低成本的嵌入式应用,因此只有在必要的情况下,才需要在MCU外部采用外接SRAM芯片的方式来扩展SRAM的总容量单片机和桌面系统的基本架构

--单片机的结构ADC和DAC分别为模拟数字转换器(Analog-to-DigitalConverter,ADC)单元和数字模拟转换器单元(Digital-to-AnalogConvertor,DAC)的英文缩写随着集成电路设计技术的不断发展,MCU也向着混合信号的方向发展,最主要的表现就是在MCU内部集成了ADC和DAC单元这样,MCU就成为连接数据采集、处理和驱动控制的边缘设备,构建起了模拟和数字世界之间的“桥梁”单片机和桌面系统的基本架构

--单片机的结构此外,在一些对功耗比较敏感的应用中(比如使用电池为MCU供电的应用),要求MCU具有更加灵活的低功耗工作模式这些模式包括间歇工作模式、休眠模式或冬眠模式单片机和桌面系统的基本架构

--单片机的结构从半导体工艺和设计技术的角度来看,MCU朝着片上系统(SystemonChip,SoC)的方向发展,即在MCU中集成的外设数量不断增加,集成的SRAM和闪存的容量也越来越大,CPU的性能也越来越高与以前的MCU相比,MCU的整体性能和复杂度在增加,但是MCU的总成本却保持不变,这符合“摩尔定理”所预测的半导体发展规律MCU的这种发展趋势进一步降低了系统总成本,并且进一步提高了整个系统的可靠性单片机和桌面系统的基本架构

--桌面系统的结构读者经常会问到,MCU与个人电脑(PersonalComputer,PC)和移动电话(也称为手机)上使用的微处理器(Microprocessor)有什么不同?个人电脑和手机主要面向桌面应用,它们搭载着Windows操作系统/Andriod操作系统/iOS操作系统单片机和桌面系统的基本架构

--桌面系统的结构简化的桌面系统结构

CPUDRAM闪存I/OI/O单片机和桌面系统的基本架构

--桌面系统的结构使用了性能强大的微处理器,它的时钟速度可以达到几个GHz的频率,而MCU内的时钟速度最多也就在几百MHz的频率此外,这种性能强大的微处理器中,还包含了多级高速缓存和存储器管理单元,这也是绝大多数MCU中所不具备的处理器内部集成的低容量SRAM用于高速缓存(Cache)单片机和桌面系统的基本架构

--桌面系统的结构面向桌面的应用中,要求处理器外部扩展大容量同步动态随机访问存储器(SynchronousDynamicRAM,SDRAM)这种外扩存储器的容量一般为几十个GB的容量,甚至多达几个GB的容量而MCU内集成的SRAM存储器的容量一般为几十个KB的容量单片机和桌面系统的基本架构

--桌面系统的结构处理器外部扩展了大容量NOR/NAND闪存,这种外扩的闪存容量最多达到几个GB,其容量也远远大于MCU内集成的闪存单片机和桌面系统的基本架构

--桌面系统的结构由于处理器面向桌面应用,因此其外部连接的输入/输出设备也比MCU内集成的输入/输出设备的功能更加复杂比如,在面向桌面应用的处理器中提供了高性能的PCI/PCI-E接口,这种接口在MCU中就没有提供单片机和桌面系统的基本架构

--桌面系统的结构此外,面向桌面的应用中所搭载操作系统的功能也远比MCU上所能搭载操作系统的功能复杂的多常见的,在MCU上搭载的嵌入式操作系统有μC-OS、FreeRTOS、RTX51-Tiny和RT-Thread等

第一章单片机设计导论

单片机设计导论

--处理器核的指令集类型不同厂商的MCU内集成的CPU核也有所不同在前面介绍MCU内的CPU核时,提到CPU是ISA的具体实现,也称为微架构MCU厂商根据ISA设计CPU,以最终实现ISA中每条指令期望实现的功能准确来说,所谓的处理器核的类型实际上是指不同的ISA下面介绍几种MCU常用的CPUISA单片机设计导论

--处理器核的指令集类型无内部互所流水级微处理器(MicroprocessorwithoutInterlockedPipelineStages,MIPS)ISA,它由MIPS公司提供在Microchip(中文称为微芯)公司的PIC32系列MCU内就集成了M4K,该处理器核是MIPS核中的一款32位低功耗RISC内核,采用了增强型的MIPS32IIISA单片机设计导论

--处理器核的指令集类型高级RISC机器(AdvancedRISCMachine,ARM)ISA,它由ARM公司提供全球很多半导体公司通过购买的方式,从ARM公司获取Cortex-M系列处理器核的ISA、硬件描述语言(HardwareDescriptionLanguage,HDL)设计代码、物理版图,并基于它们制造基于ARMISA的MCU产品比如,ST(中文称为意法半导体)公司的STM32G0系列MCU内集成了Cortex-M0+处理器核STM32F4系列MCU内集成了Cortex-M4处理器核STM32H7系列MCU内集成了Cortex-M7处理器核单片机设计导论

--处理器核的指令集类型用于Intel(中文称为英特尔)公司的MCS-51MCU(也称为8051)和MCS-251MCU(也称为80251)的ISA全球很多半导体公司基于英特尔授权的基于MCS-51MCU和MCS-251MCU的ISA,设计并制造基于这些ISA的MCU产品单片机设计导论

--处理器核的指令集类型具体来说,Intel首先制定了一个ISA,基于该ISA实现了MCS-51MCU当其他MCU厂商得到了ISA的使用授权后,就可以自己也设计和实现基于该ISA的MCU,简称为8051单片机比如,STC公司基于该ISA,设计并量产了STC89C52RC系列MCU、STC15系列MCU和STC8系列MCU由于它们基于IntelMCS-51MCU的ISA,因此这些MCU又称为8051单片机此外,由于这些8051单片机对最早的IntelMCS-51MCU的内部结构进行了改进和优化,使得其性能有了显著的提高,因此又把STC公司的这些8051单片机称为增强型8051单片机单片机设计导论

--处理器核的指令集类型课程所介绍的STC32GG系列单片机是基于Intel1996年量产的MCS-251MCU的ISA,并对IntelMCS-251MCU内CPU的实现结构进行了改进和优化,使得STC32GG系列单片机比起Intel早期的MCS-251单片机的性能提高了很多倍注:实际上,STC公司的STC32GGMCU在实现MCS-251ISA时,与Intel早期的MCS-251MCU内CPU核的结构有很大的不同,这一点读者要特别注意!!在本书介绍相关内容时,也会强调这一点处理器核的指令集类型

--MCS-51指令集MCS-51(通常称为8051)是英特尔于1980年开发的应用于嵌入式系统的8位MCU系列。这个最早的版本在20世纪80年代和90年代早期就很受欢迎,其增强型的衍生产品(实际上是指使用MCS-51ISA的改进型MCU)至今被广泛应用于嵌入式系统中处理器核的指令集类型

--MCS-51指令集在MCS-51MCU内部,集成了CPU、RAM、ROM、I/O、UART、中断控制和定时器,它具有单独的程序指令和数据存储空间本质上,MCS-51是一个8位宽度的MCU这是因为MCS-51核内部主要提供了可以实现算术和逻辑运算的8位算术逻辑单元、8位数据总线和8位寄存器处理器核的指令集类型

--MCS-51指令集MCS-51MCU所使用的ISA包含了111条指令,其中49条为单字节指令,46条为双字节指令,以及16条是三字节指令,这是复杂指令集计算机(ComplexInstructionSetComputer,CISC)的典型代表CISC的典型特点就是具有可变的指令长度,并且允许在存储器上执行算术和逻辑运算处理器核的指令集类型

--MCS-51指令集与CISC不同,精简指令集计算机(ReducedInstructionSetComputer,RISC)主要表现为指令长度固定,并且不支持在存储器上执行算术和逻辑运算,所有的算术和逻辑运算必须在寄存器上完成在本节前面所提到的用于ARMCortex-M处理器核的ISA就属于RISC的范畴处理器核的指令集类型

--MCS-51指令集需要注意,由于半导体集成电路设计技术的发展,现代版本的MCS-51MCU比Intel最早的MCS-51MCU运行速度更快且性能越高,同时保持了与传统MCS-51ISA指令的兼容性最早的IntelMCS-51MCU每个机器周期运行12个时钟周期,大多数指令在一个或两个机器周期内完成典型的,最高时钟频率为12MHz,这意味着早期Intel的MCS-51MCU可以在每秒执行100万条单周期指令,或50万条双周期指令处理器核的指令集类型

--MCS-51指令集而现代版本的基于MCS-51ISA的MCU(或称为8051单片机)可以在每个周期执行一个时钟周期这意味着在相同的时钟频率下,基于MCS-51ISA的现代版本8051单片机可以在每秒执行1200万条单周期指令,或600万条双周期指令。随着8051单片机时钟频率的提高,每秒可执行指令的个数还会显著增加。处理器核的指令集类型

--MCS-251指令集英特尔于1996年推出8/16/32位的MCS-251MCU。与MCS-51MCU相比,在相同时钟频率下MCS-251MCU内的CPU执行速度显著提高,主要特性表现为:片内提供了24位线性寻址能力,可寻址高达16MB的存储器空间可通过字节、字和双字方式访问处理器核内的寄存器用于加速获取外部指令的页面模式指令通道采用了流水线技术丰富的指令集,包括16和32位算术和逻辑指令处理器核的指令集类型

--MCS-251指令集一个64KB的扩展堆栈空间两个时钟的最短指令执行时间(相对于MCS-51MCU的12个时钟)处理器核的指令集类型

--MCS-251指令集MCS-251MCU的ISA在最初MCS-51MCU的ISA基础上进行了扩展,包括新的操作、寻址模式和操作数MCS-251ISA中的许多指令可以对8/16/32位操作数进行操作,从这点就可以看出MCS-251ISA要比MCS-51ISA的功能更加强大处理器核的指令集类型

--两个指令集的兼容性由于MCS-251ISA是在MCS-51ISA的基础上进行了扩展,因此在MCS-51上编写的代码可以不需要任何修改就可以运行在MCS-251上,这就是MCS-251向下兼容MCS-51的根本原因!!!处理器核的指令集类型

--两个指令集的兼容性在C251版本的KeilμVision软件中,可以将STC32G系列单片机配置为以二进制模式(binarymode)或源模式(sourcemode)运行这两种模式都执行所有MCS-51ISA指令和所有MCS-251ISA指令源模式对MCS-251ISA的指令更有效,而二进制模式对MCS-51ISA的指令更有效。在二进制模式下,在8051微控制器的目标代码无需重新编译即可在STC32GG系列单片机上运行处理器核的指令集类型

--两个指令集的兼容性处理器核的指令集类型

--两个指令集的兼容性如果嵌入式系统最初是使用8051单片机开发的,并且如果新的基于STC32G系列单片机的嵌入式系统将运行为8051单片机编写的代码,那么在二进制模式下运行STC32G系列单片机时性能会更好。为8051单片机编写的目标代码在STC32G系列单片机上运行得更快。处理器核的指令集类型

--两个指令集的兼容性但是,如果使用新指令集重新书写大部分代码,则在源模式下运行STC32GG系列单片机时性能会更好。在这种情况下,STC32G单片机的运行速度明显快于8051单片机(或者说STC15系列/STC8系列单片机)

第一章单片机设计导论

单片机设计导论

--嵌入式系统硬件和软件美国电气和电子工程师协会(InstituteofElectricalandElectronicsEngineers,IEEE)将嵌入式系统定义为用于控制、监视或者辅助操作机器和设备的装置嵌入式系统是以具体应用为导向的,以计算机技术为核心的,根据具体应用对硬件和软件系统量身订做的便于携带的微型计算机系统嵌入式系统是系统级的概念,包含硬件和软件两个层面嵌入式系统硬件和软件

--嵌入式系统硬件微控制器或面向桌面应用的高性能处理器是嵌入式系统的硬件核心,通过印刷电路板(PrintCircuitBoard,PCB)将它与其他电子元器件组装在一起构成满足特定功能需求的硬件平台在一个嵌入式系统中,可能使用MCU作为嵌入式系统的硬件核心,也可能使用面向桌面应用的高性能处理器作为嵌入式系统的硬件核心,这是由嵌入式系统的功能需求所决定的。电视机遥控器就是一个典型的简单嵌入式系统,在这种嵌入式应用中使用MCU作为系统的硬件核心。移动电话这种需要面向桌面应用的复杂嵌入式系统,就必须使用高性能的处理器作为系统的硬件核心。嵌入式系统硬件和软件

--嵌入式系统硬件嵌入式系统的硬件有点像乐高玩具那样,当把乐高正确组合在一起时,就会产生壮观的效果。而单个乐高本身并没有什么特别的作用,这也适用于嵌入式系统的硬件在嵌入式系统的硬件中,即使MCU或者面上桌面应用的微处理器是整个嵌入式系统硬件的核心,但是单独存在的它们一点价值都不能体现出来,只有将它们和其他电子元器件组合在一起用于实现特定的应用目标时,它们的重要作用才能体现出来嵌入式系统硬件和软件

--嵌入式系统硬件STC官方提供的基于STC32G系列MCU的硬件开发平台嵌入式系统硬件和软件

--嵌入式系统软件嵌入式系统的软件开发,划分为三个层次。包括:第一层次是直接在嵌入式硬件上开发软件应用,这要求软件开发人员对嵌入式系统的硬件原理非常清楚,这就对软件开发人员提出了比较高的要求。这种直接面向嵌入式硬件开发软件应用,最大的问题就是程序的移植比较麻烦,因为当软件应用移植到不同的嵌入式硬件平台时,需要对针对新的嵌入式硬件来修改软件应用代码。其次,这种直接面向嵌入式硬件开发软件的方法不利于对系统进行维护,一旦系统出现故障,很难查找系统的故障点。嵌入式系统硬件和软件

--嵌入式系统软件第二层次是借助于嵌入式硬件厂商提供的应用程序接口(ApplicationProgramInterface,API)函数开发应用。软件开发人员就无需过多关心嵌入式系统的硬件原理,这样就显著降低了对软件开发人员的要求,并且提高了程序开发的效率,同时也便于今后对所开发的嵌入式应用进行维护。当把嵌入式应用移植到不同的嵌入式硬件平台时,只需要修改所调用的API函数即可实现,显著降低了应用程序移植的难度。嵌入式系统硬件和软件

--嵌入式系统软件第三层次是借助于嵌入式操作系统。当软件开发人员使用基于MCU的嵌入式硬件平台进行嵌入式应用开发遇到需要处理多任务时,就可以在嵌入式硬件平台上搭载用于嵌入式系统的OS,比如μC-OS、FreeRTOS、RTX51/RTX51-Tiny或RT-Thread。这些操作系统支持多任务处理,并且为软件开发人员提供了针对不同嵌入式平台的底层硬件驱动程序,因此软件开发人员只需要关注应用程序本身即可,这样就进一步提高了软件应用的开发效率,并且很好的解决了在不同嵌入式硬件上移植软件应用的难题。此外,基于MCU的嵌入式应用往往要求有更好的实时响应能力,因此搭载在MCU嵌入式系统的操作系统也称为实时操作系统(RealTimeOperatingSystem,RTOS),μC-OS、FreeRTOS、RTX51/RTX51-Tiny或RT-Thread都属于RTOS。

第一章单片机设计导论

单片机程序设计语言

--分层结构按从顶层到底层的顺序将单片机的程序设计分为四个层次,包括高级语言、汇编语言、机器指令和微指令底层顶层机器指令汇编语言高级语言微指令单片机程序设计语言

--分层结构根据MCU内CPU所使用ISA的指令格式,软件工具链将使用C语言或汇编语言所编写的程序代码最终转换为可以运行在CPU上的以二进制格式表示的机器指令比如,在基于8051和80251处理器核的单片机应用程序开发过程中,在使用C语言或汇编语言编写完程序代码后,就可以通过KeilμVision软件开发环境中集成的工具链(包括C编译器、汇编器和链接器),将高级语言和汇编语言转换为以二进制形式表示的机器指令单片机程序设计语言

--分层结构程序设计的最低层次为微指令,微指令(也称为微指令控制序列)为MCU中CPU内部的控制信号序列根据机器指令所要实现的功能,CPU设计人员将其转换为CPU内部的控制信号序列,这个控制信号序列也是以二进制序列表示的,与二进制逻辑“1”(高电平)和逻辑“0”(低电平)对应单片机程序设计语言

--设计实例从本质上,使用C语言编写程序代码实际上是从高层次对计算机的逻辑行为进行建模,即只需要将MCU完成的逻辑行为表达清楚即可,不需要知道MCU在硬件底层是如何完成具体的逻辑行为设计实例

--高级语言在KeilμVision软件集成开发环境中,可以使用C语言对MCS-51和MCS-251核的MCU进行应用开发

代码清单1-1对于两个8位数进行加法运算的C语言描述voidmain(){ volatilecharconsta=10,b=80;volatilecharc; c=a+b;}设计实例

--高级语言在代码清单1-1给出的代码中,main()表示主函数,{}表示main函数的作用范围。在main函数中:定义了两个字符型(char)常量a和b,它们的值分别为10和80定义了一个字符型(char)变量c在字符型char前面的关键字volatile用于告诉C编译器,不要对常量a和b,以及变量c进行优化通过赋值语句c=a+b,让常量a和常量b进行相加,相加的结果保存到变量c中显然,在C语言代码中,只需要描述a加上b这个算术运算即可,无需知道在MCU的CPU是如何完成a加上b这个运算的。设计实例

--汇编语言在keilμVision中使用编译器工具在二进制模式(BinaryMode)对该代码进行编译和链接后,生成可执行代码在KeilμVision调试器工具下打开Disassembly窗口,在窗口中可以看到C语言所对应的汇编语言助记符指令和机器指令设计实例

--汇编语言C语言中的两条类型声明语句:

volatilecharconsta=10,b=80;volatilecharc;汇编语言指令实现的功能MOVA,#c(0x0A)将立即数0x0A加载到累加器A中MOVa(0x0008),R11将累加器A(累加器A=寄存器R11)的数据保存到数据存储器地址为0x0008的单元MOVA,#0x50将立即数0x50加载到累加器A中MOVb(0x0009),R11将累加器A(累加器A=寄存器R11)的数据保存到数据存储器地址为0x0009的单元设计实例

--汇编语言C语言中的加法和赋值语句:c=a+b;

汇编语言指令实现的功能MOVR7,b(0x0009)将数据存储器地址为0x0009单元的数据加载到寄存器R7,即(R7)=0x50MOVSWR4,R7将8位寄存器R7的内容加载到16位寄存器WR4中,高8位符号扩展,即(WR4)=0x50MOVR7,a(0x0008)将数据存储器地址为0x0008单元的数据加载到寄存器R7,即(R7)=0x0AMOVSWR6,R7将8位寄存器R7的内容加载到16位寄存器WR6中,高8位符号扩展,即(WR6)=0x0AADDWR6,WR4将16位寄存器WR4的值和16位寄存器WR6的值相加,结果保存在16位寄存器WR6中,即(WR4)+(WR6)=0x50+0x0A=0x5A,(WR6)=0x5AMOVc(0x000A),R7将WR6寄存器的低8位的值(即寄存器R7的值),保存到数据存储器地址为0x000A的单元设计实例

--汇编语言(反)汇编指令由操作码和操作数两部分组成操作码说明该指令要实现的功能,比如MOV,表示移动数据;ADD,表示算术加法操作。对于MCS-251MCU的汇编指令来说,每条汇编指令的格式为

操作码目的操作数,源操作数操作码和目的操作数之间用空格分隔目的操作数和源操作数之间用逗号分隔操作码后面跟着目的操作数,目的操作数的右侧是源操作数设计实例

--汇编语言对于下面的汇编指令ADDWR6,WR416位寄存器WR6为目的操作数,16位寄存器WR4为源操作数在该操作中,源操作数和目的操作数的内容进行相加,相加的结果保存在目的操作数中对于下面的汇编指令MOVSWR6,R716位寄存器WR6为目的操作数,8位寄存器R7为源操作数在该操作中,将源操作数R7中的8位数据移动到16位目的操作数WR6中,对于WR6中的高8位,根据源操作数R7中的最高位进行符号扩展。设计实例

--汇编语言

从上面的分析可知,汇编语言是对机器指令的一种形式上的“抽象”在汇编语言指令中,使用类似MOV和ADD这种英文单词的缩写来描述指令的功能(即操作码),用英文符号表示操作数,这些符号比较简单易于被软件开发人员记住,因此称它们为“助记符”因此,将汇编语言指令称为汇编助记符指令与下面介绍的机器指令相比,汇编语言助记符就显得非常容易记忆了设计实例

--汇编语言与使用高级语言相比较,使用汇编助记符描述MCU的具体操作需要对MCU内的CPU的结构和ISA非常清楚,也就是需要掌握机器底层的原理与C语言相比,汇编语言更接近机器指令,因此汇编语言的运行效率要比C语言高。设计实例

--机器指令在二进制模式下,汇编语言和机器指令对应的关系汇编助记符指令机器指令(以十六进制数表示)机器指令字节个数MOVA,#c(0x0A)740A2MOVa(0x0008),R11A57AB300085MOVA,#0x5074502MOVb(0x0009),R11A57AB300095MOVR7,b(0x0009)A57E7300095MOVSWR4,R7A51A273MOVR7,a(0x0008)A57E7300085MOVSWR6,R7A51A373ADDWR6,WR4A52D323MOVc(0x000A),R7A57A73000A5设计实例

--机器指令从上表可知,汇编助记符指令对应的机器指令的长度是不一样的,有2个字节、3个字节和5个字节,这符合CISC的典型特征,也就是MCS-251的指令长度是可变的设计实例

--机器指令下面对上表中的汇编助记符指令MOVSWRj,Rm所对应的机器指令进行分析该指令对应的机器指令编码格式下图所示图中,tttt为寄存器WRj的编号j除以2得到值的二进制表示,即j/2=“tttt”;ssss为寄存器Rm编号值m的二进制表示,即m=“ssss”寄存器WR4的编号为4,4/2=2的二进制表示为”0010“,即为tttt的二进制编码;寄存器R7的编号为7,该编号的二进制表示为”0111“,即为ssss的二进制编码根据该指令的编码规则,对于二进制模式,需要在图1.5给出的二进制编码前添加前导的二进制序列10100101(即十六进制数A5)00011010

ttttssss设计实例

--机器指令根据上图给出的机器指令编码格式,得到该指令的机器指令编码为二进制序列“0001101000100111”,等效的十六进制数表示为1A27对于二进制模式,在该十六进制数的前面添加A5,即得到十六进制数A51A27设计实例

--机器指令下面对表中的汇编助记符指令ADDWRjd,WRjs所对应的机器指令进行分析图中,tttt为寄存器WRjd的编号jd除以2得到值的二进制表示,即jd/2=“tttt”;TTTT为寄存器js的编号js除以2得到值的二进制表示,即js/2=“TTTT”比如,寄存器WR6的编号为6,6/2=3的二进制表示为”0011“,即为tttt的二进制编码;寄存器WR4的编号为4,4/2=2的二进制表示为”0010“,即为TTTT的二进制编码根据该指令的编码规则,对于二进制模式,需要在上图给出的二进制编码前添加前导的二进制序列10100101(即十六进制数A5)00101101

ttttTTTT设计实例

--机器指令根据上图给出的机器指令编码格式,得到该指令的机器指令编码为二进制序列“0010110100110010”,等效的十六进制数表示为2D32。对于二进制模式,在该十六进制数的前面添加A5,即得到十六进制数A52D32

第一章单片机设计导论

单片机性能评价本节以STC公司STC15/STC8系列增强型8051单片机和STC32GG单片机为例,评价STC15/STC8系列增强型8051单片机和STC32G系列单片机的性能单片机性能评价对于下面的一段C语言代码,如代码清单1-2所示。

代码清单1-2C语言程序设计voidmain(){volatilelonginta=10000000,b=30000000;volatilelongintc;c=a+b;}单片机性能评价运行在STC15/STC8系列增强型8051单片机上时,该段代码生成的反汇编指令和每条指令的周期数汇编助记符指令机器指令(十六进制表示)指令长度(以字节计)时钟周期数MOV0x0B,#P0(0x80)750B8033MOV0x0A,#0x96750A9633MOV0x09,#SCON0(0x98)75099833MOV0x08,#0x0075080033MOV0x0F,#P0(0x80)750F8033MOV0x0E,#0xC3750EC333MOV0x0D,#0xC9750DC933MOV0x0C,#0x01750C0133MOVA,0x0BE5B022ADDA,0x0F250F22MOV0x13,AF51322单片机性能评价MOVA,0x0AE50A22ADDCA,0x0E350E22MOV0x12,AF51222MOVA,0x09E50922ADDCA,0x0D350D22MOV0x11,AF51122MOVA,0x08E50822ADDCA,0x0C350C22MOV0x10,AF51022汇编助记符指令机器指令(十六进制表示)指令长度(以字节计)时钟周期数单片机性能评价从上表可知,在STC15/STC8系列增强型8051单片机上实现代码清单1-2给出的代码,需要20条指令,所有指令的字节总数为48个字节,所需要的时钟周期数为48个。单片机性能评价当运行在STC32G系列单片机(采用MCS-251ISA)且选择源模式(SourceMode)时,该段代码生成的反汇编指令和每条指令的周期数如下表所示单片机性能评价汇编助记符指令机器指令(十六进制表示)指令长度(以字节计)时钟周期数MOVWR6,#0x96807E34968041MOVWR4,#0x00987E24009841MOVa(0x0008),DR47A1F000842MOVWR6,#0xC3807E34C38041MOVWR4,#0x01C97E2401C941MOVb(0x000C),DR47A1F000C42MOVDR0,b(0x000C)7E0F000C42MOVDR4,a(0x0008)7E1F000842ADDDR4,DR02F1021MOVc(0x0010),DR47A1F001042单片机性能评价从上表可知,在STC32G系列单片机上实现代码清单1-2给出的代码,需要10条指令,所有指令的字节总数为38个字节,所需要的时钟周期数为15个。单片机性能评价当采用STC32GG系列单片机后,所需要的时钟周期从使用STC15/STC8系列增强型8051单片机需要48个减少为15个,程序运行时间缩短为原来的1/3,即所需要的时钟周期数是原来的33%,并且指令条数从使用STC15/STC8系列增强型8051单片机需要20条减少为10条,指令数量缩短为原来的1/2(50%)。指令总长度从使用STC15/STC8系列增强型8051单片机需要48个字节缩短为38个字节,即代码的存储容量减少为原来的80%。从指令个数和运行时间来看,采用MCS-251ISA的STC32GG系列MCU的性能要明显高于采用MCS-51ISA的STC15/STC8系列MCU的性能。

第二章单片机硬件开发基础

主要内容STC系列单片机的发展历史STC单片机的IAP和ISPSTC32G系列单片机的功能STC32位单片机命名规则及封装STC32G系列单片机引脚驱动原理STC32G系列单片机硬件下载电路STC系列单片机的发展历史STCmicro(宏晶科技公司)于1999年成立经过15年的发展,目前成为全球最大的8051单片机设计公司目前,原STC宏晶科技创始团队在深圳创立深圳国芯人工智能有限公司,从事人工智能的前期研发和32位8051的研发STC系列单片机的发展历史STC公司具备0.35µm、0.18µm、0.13µm、90nm、55nm、40nm的高阶数模混合集成电路设计技术,目前设计的芯片在TSMC上海流片生产,在南通富士通封装STC系列单片机的发展历史STC是systemchip的缩写意味着随着半导体工艺的不断演进和发展,以及摩尔定律指引的框架范围内,在STC公司的基于51处理器核的单片机芯片内将要集成越来越多的外设,并且性能也不断提升,芯片价格不断降低,芯片工作频率升高STC系列单片机的发展历史2004年推出STC89C52RC/STC89C58RD+系列8051单片机2006年

推出STC12C5410AD和STC12C2052AD系列8051单片机,第1代1T8051诞生2007年推出STC12C5A60S2、STC12C5608AD、STC11F04E、STC10F08XE、STC11F60XE、STC12C5204AD系列8051单片机2009年推出STC90C58AD系列8051单片机2010年推出STC15F104W系列8051单片机,第2代1T8051诞生2011年推出STC15F2K60S2/IAP15F2K16S2系列8051单片机STC系列单片机的发展历史2016年推出STC8A8K64S4A12、STC8A4K64S2A12、STC8F2K64S4、STC8F1K08S2系列单片机2019年推出STC8H8K64U、STC8H3K64S4、STC8H1K16、STC8H1K08、STC8A8K64D4、STC8C2K64S4、STC8G2K64S4,STC8G1K08系列单片机2022年推出STC32G12K128系列32位8051单片机,32位8051诞生2014年推出STC15W408AS、STC15W1K24S、STC15W408S、STC15W104W、STC15W4K32S4/

IAP15W4K58S4

系列8051单片机STC单片机的IAP和ISP当软件开发人员使用KeilμVision集成开发环境完成软件代码的编写和调试后,就需要使用STC公司提供的STC-ISP软件工具将最终的程序固化到STC32系列单片机内部的程序存储器中很明显,当在本地完成程序的固化后,就可以将基于STC32系列单片机开发的电子产品(系统)交付给最终的用户STC单片机的IAP和ISP但是,也存在另一种情况,当最终的电子产品交付客户使用一段时间后,需要对产品的软件程序进行更新,但是由于种种原因设计人员又不能到达现场处理更新产品软件的事情,此时就需要使用其他更新方式典型地,通过网络的远程更新方式STC单片机的IAP和ISP将本地固化程序的方式称为在系统编程(insystemprogramming,ISP);而将另一种固化程序的方式称为在应用编程(inapplicationprogramming,IAP)STC单片机的IAP和ISP

-ISP通过单片机专用的串行编程接口和STC提供专用串口下载器固化程序软件,对单片机内部的Flash存储器进行编程一般来说,实现ISP只需要很少外部电路的辅助STC单片机的IAP和ISP

-IAPIAP技术是从结构上将Flash存储器映射为两个存储空间当运行一个存储体空间的用户程序时,可对另一个存储空间重新编程。然后,将控制权从一个存储空间切换到另一个存储空间与ISP相比,IAP的实现更加灵活典型地,可利用USB电缆和USB-UART转换芯片将STC单片机接到计算机的USB接口(在计算机上会虚拟出一个串口),并且通过软件开发人员自行开发的软件工具对STC单片机内部的存储器进行编程也可以这样理解,支持ISP方式的单片机,不一定支持IAP方式;但是,支持IAP方式的单片机,一定支持ISP方式。ISP方式应该是IAP方式的一个特殊的“子集”。

第二章单片机硬件开发基础

STC32G系列单片机的功能STC32G12K128系列单片机的主要特点包括:处理器内核采用了超高速32位处理器内核(1T),100%兼容MCS-251ISA。与传统8051相比,速度快70倍以上支持在线仿真/调试功能MDU32。硬件32位乘除法器(包含32位除以32位、32位乘以32位)工作电压范围为1.9~5.5V。当工作温度低于-40℃时,工作电压不低于3.0VSTC32G系列单片机的功能工作温度范围为-40~85℃。可使用内部参考时钟(InternalReferenceClock,IRC)(其频率最高为36MHz)和外部晶体振荡器范围为-40~125℃。当温度高于85℃时请使用外部耐高温晶振,且工作频率控制在24MHz以下Flash存储器最大128K字节FLASH程序存储器(ROM),用于存储用户代码支持用户配置EEPROM大小,512字节单页擦除,擦写次数可达10万次以上。支持硬件USB直接下载和普通串口下载支持硬件SWD实时仿真,P3.0/P3.1(需STC-USBLink1工具)STC32G系列单片机的功能SRAM,共12K字节4K字节内部SRAM(edata)8K字节内部扩展RAM(内部xdata)时钟控制内部高精度IRC(ISP编程时可进行上下调整)。常温25℃时,误差±0.3%;-40℃~85℃时,温漂为-1.35%~+1.30%;在-20℃~65℃时,温漂为-0.76%~+0.98%内部32kHz低速IRC(误差较大)外部晶振(4MHz~33MHz)和外部时钟,有专门的外部时钟干扰内部电路,可软件启动内部PLL输出时钟。其中,PLL输出的96MHz/144MHz可独立作为高速PWM和高速SPI的时钟源)STC32G系列单片机的功能复位硬件复位。上电复位。复位电压值为1.7~1.9V。(在芯片未使能低压复位功能时有效)复位脚复位。出厂时P5.4默认为I/O口,ISP下载时可将P5.4管脚设置为复位脚(注意:当设置P5.4管脚为复位脚时,复位电平为低电平)看门狗溢出复位低压检测复位。提供4级低压检测电压:2.0V、2.4V、2.7V、3.0V软件复位。软件方式写复位触发寄存器STC32G系列单片机的功能中断支持49个中断源,包括INT0、INT1、INT2、INT3、INT4、定时器0、定时器1、定时器2、定时器3、定时器4、USART1、USART2、UART3、UART4、ADC模数转换、LVD低压检测、SPI、I2C、比较器、PWMA、PWMB、USB、CAN、CAN2、LIN、LCMIF彩屏接口中断、RTC实时时钟、所有的I/O中断(8组)、串口1的DMA接收和发送中断、串口2的DMA接收和发送中断、串口3的DMA接收和发送中断、串口4的DMA接收和发送中断、I2C的DMA接收和发送中断、SPI的DMA中断、ADC的DMA中断、LCD驱动的DMA中断以及存储器到存储器的DMA中断。其中,所有的I/O均支持中断,每组I/O中断有独立的中断入口地址,所有的I/O中断可支持4种中断模式,包括高电平中断、低电平中断、上升沿中断、下降沿中断。I/O口中断可以进行掉电唤醒。支持4个中断优先级。STC32G系列单片机的功能数字外设5个16位定时器。包括定时器0、定时器1、定时器2、定时器3和定时器4,其中定时器0的模式3具有不可屏蔽中断(NMI)功能,定时器0和定时器1的模式0为16位自动重载模式2个高速同步/异步串口。包括串口1(USART1)和串口2(USART2),它们的波特率时钟源最快可为FOSC/4。支持同步串口模式、异步串口模式、SPI模式、LIN模式、红外模式(IrDA)、智能卡模式(ISO7816)2个高速异步串口。包括串口3(UART3)和串口4(UART4),它们的波特率时钟源最快可为FOSC/42组高级PWM。可实现8通道(4组互补对称)带死区的控制的PWM,并支持外部异常检测功能STC32G系列单片机的功能SPI。3组硬件SPI(一组独立SPI,两组USART的SPI模式)。支持主机模式和从机模式以及主机/从机自动切换。其中,一组独立的SPI可支持DMA,两组USART的SPI不支持DMA)I2C。支持主机模式和从机模式ICE。硬件支持仿真RTC。支持年、月、日、时、分、秒、次秒(1/128秒),并支持时钟中断和一组闹钟USB。兼容USB2.0/USB1.1,6个双向端点,支持4种端点传输模式(控制传输、中断传输、批量传输和同步传输),每个端点拥有64字节的缓冲区。STC32G系列单片机的功能CAN。两个独立的CAN2.0控制单元LIN。3组硬件LIN(一组独立LIN,两组USART的LIN模式)一个独立的LIN控制单元(支持1.3和2.1版本)LCD驱动模块。支持8080和6800两种接口以及8位和16位数据宽度DMA。支持SPI移位接收数据到存储器、SPI移位发送存储器的数据、I2C发送存储器的数据、I2C接收数据到存储器、串口1/2/3/4接收数据到的存储器、串口1/2/3/4发送存储器的数据、ADC自动采样数据到存储器(同时计算平均值)、LCD驱动发送存储器的数据、以及存储器到存储器的数据复制硬件数字ID。支持32字节。STC32G系列单片机的功能模拟外设超高速ADC。支持12位高精度15通道(通道0~通道14)的模数转换,ADC的通道15用于测试内部参考电压(芯片在出厂时,内部参考电压调整为1.19V,误差±1%)比较器STC32G系列单片机的功能GPIO最多60个GPIO,包括P0.0~P0.7、P1.0~P1.7(无P1.2)、P2.0~P2.7、P3.0~P3.7、P4.0~P4.7、P5.0~P5.4、P6.0~P6.7和P7.0~P7.7所有的GPIO均支持如下4种模式:准双向口模式、强推挽输出模式、开漏输出模式、高阻输入模式除P3.0和P3.1外,其余所有IO口上电后的状态均为高阻输入状态,用户在使用IO口时必须先设置IO口模式另外每个I/O均可独立使能内部4K上拉电阻

第二章单片机硬件开发基础

STC32位单片机命名规则及封装

--命名规则该系列单片机用下面符号格式进行标识

STC

32

X

xK

xxSTC:表示是宏晶科技公司的单片机32:表示该单片机为32位X:表示32位单片机的子系列当X为字母‘G’时,表示STC32G系列单片机,该系列单片机内无硬件浮点处理单元;当X为字母‘F’时,表示STC32F系列单片机,该系列单片机内部有硬件浮点处理单元STC32位单片机命名规则及封装

--命名规则xK:用于标识单片机内数据存储器(SRAM工艺)总的存储容量(包含片上基本SRAM和片上扩展SRAM)容量以1kB为单位进行计算,总的数据存储器容量为1kB乘以该数字xK例如,当xK=12时,表示数据存储器存储空间的总容量为1kB×12=12kBSTC32位单片机命名规则及封装

--命名规则xx:用于标识单片机内程序存储器(Flash工艺)总的存储容量大小容量以1kB为单位进行计算,总的程序存储器容量为1kB乘以该数字xx当xx=64时,表示程序存储器空间总的容量为64kB当xx=128时,表示程序存储器空间总的容量为128kBSTC32位单片机命名规则及封装

--封装类型从封装类型上来说,STC单片机主要有双列直插式(DualInline-pinPackage,DIP)封装和表面贴装(SurfaceMountedDevices,SMD)封装两种类型STC32位单片机命名规则及封装

--封装类型双列直插式封装(DualInline-pinPackage,DIP)早期的集成电路芯片大多采用双列直插形式封装。DIP封装的引脚按逆时针顺序排列,芯片的第一个引脚位于下图所示芯片左下角的位置STC32位单片机命名规则及封装

--封装类型薄型四方扁平式(Low-profileQuadFlatPackage,LQFP)封装该封装采用的集成电路芯片引脚之间距离很小,引脚很细LQFP封装的引脚按逆时针顺序排列,芯片的第一个引脚位于芯片左下角的位置,该引脚对应于一个凹陷的小圆点右图给出了三个LQFP的封装,

分别是LQFP32、LQFP48和LQFP64,对应的总的引脚个

数分别为32个、48个和64个。STC32位单片机命名规则及封装

--封装类型薄的缩小型小外形(ThinShrinkSmallOutlinePackage,TSSOP)封装比小外形封装(SmallOut-LinePackage,SOP)封装薄,引脚更密,相同功能的话封装尺寸更小TSSOP封装的引脚按逆时针顺序排列,芯片的一个

引脚位于芯片左下角的位置,该引脚对应于一个凹

陷的小圆点。从图中可知,具体的芯片封装标识为TSSOP20,表示该芯片总的引脚数量为20个。STC32位单片机命名规则及封装

--封装类型方形扁平无引脚(QuadFlatNo-lead,QFN)封装QFN封装的引脚按逆时针顺序排列,芯片的第一个引脚位于芯片左下角的位置,该位置有一个丝印标记的小圆点。如图(b)所示,对于这种封装来说,其引脚在芯片封装的背面。QFN封装的引脚从芯片的顶视图无法看到。这种封装的体积更小,更适用于对电路面积有苛刻要求的应用场合。(a)正面(b)背面STC32位单片机命名规则及封装

--引脚定义STC32G12K128单片机为例,说明不同封装各个引脚的定义编号名称类型说明LQFP64LQFP48LQFP32PDIP4011——P5.3I/O标准IO口TxD4_2O串口4的发送脚CAN2_TX_2OCAN2总线发送脚LIN_TX_2OLIN总线发送脚22—6P0.5I/O标准IO口AD5I地址总线ADC13IADC模拟输入通道13T3CLKOO定时器3时钟分频输出STC32位单片机命名规则及封装

--引脚定义33—7P0.6I/O标准IO口AD6I地址总线ADC14IADC模拟输入通道14T4I定时器4外部时钟输入PWMFLT2_2I增强PWM的外部异常检测脚44—8P0.7I/O标准IO口AD7I地址总线T4CLKOO定时器4时钟分频输出编号名称类型说明LQFP64LQFP48LQFP32PDIP40STC32位单片机命名规则及封装

--引脚定义5———P6.0I/O标准IO口PWM1P_3I/OPWM1的捕获输入和脉冲输出正极6———P6.1I/O标准IO口PWM1N_3I/OPWM1的捕获输入和脉冲输出负极7———P6.2I/O标准IO口PWM2P_3I/OPWM2的捕获输入和脉冲输出正极8———P6.3I/O标准IO口PWM2N_3I/OPWM2的捕获输入和脉冲输出负极编号名称类型说明LQFP64LQFP48LQFP32PDIP40STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP409519P1.0I/O标准IO口ADC0IADC模拟输入通道0PWM1PI/OPWM1捕获输入和脉冲输出正极RxD2I串口2的接收脚106210P1.1I/O标准IO口ADC1IADC模拟输入通道1PWM1NI/OPWM1捕获输入和脉冲输出负极TxD2I串口2的发送脚117——P4.7I/O标准IO口TxD2_2I串口2的发送脚CAN2_TX_3OCAN2总线发送脚LIN_TX_3OLIN总线发送脚STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP40128311P1.4I/O标准IO口ADC4IADC模拟输入通道4PWM3PI/OPWM3捕获输入和脉冲输出正极MISOI/OSPI主机输入从机输出S1MISOI/OUSART1-SPI主机输入从机输出S2MISOI/OUSART2-SPI主机输入从机输出SDAI/OI2C接口的数据线139412P1.5I/O标准IO口ADC5IADC模拟输入通道5PWM3NI/OPWM3捕获输入和脉冲输出负极SCLKI/OSPI的时钟脚S1SCLKI/OUSART1-SPI的时钟脚S2SCLKI/OUSART2-SPI的时钟脚SCLI/OI2C的时钟线STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP401410513P1.6I/O标准IO口ADC6IADC模拟输入通道6RxD_3I串口1的接收脚PWM4PI/OPWM4的捕获输入和脉冲输出正极MCLKO_2O主时钟分频输出XTALOO外部晶振的输出脚1511614P1.7I/O标准IO口ADC7IADC模拟输入通道7TxD_3O串口1的发送脚PWM4NI/OPWM4的捕获输入和脉冲输出负极PWM5_2I/OPWM5的捕获输入和脉冲输出XTALII外部晶振/外部时钟的输入脚STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP401612715P1.3I/O标准IO口ADC3IADC模拟输入通道3MOSII/OSPI主机输出从机输入S1MOSII/OUSART1-SPI主机输出从机输入S2MOSII/OUSART2-SPI主机输出从机输入PWM2NI/OPWM2的捕获输入和脉冲输出负极T2CLKOO定时器2时钟分频输出1713816UCAPIUSB内核电源稳压脚STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP401814917SSISPI的从机选择脚(主机为输出)S1SS_3IUSART1-SPI的从机选择脚(主机为输出)S1SSIUSART1-SPI的从机选择脚(主机为输出)S2SS_3IUSART2-SPI的从机选择脚(主机为输出)S2SSIUSART2-SPI的从机选择脚(主机为输出)PWM2PI/OPWM2的捕获输入和脉冲输出正极PWM6_2I/OPWM6的捕获输入和脉冲输出T2I定时器2外部时钟输入ADC2IADC模拟输入通道2P5.4I/O标准IO口RSTI复位引脚MCLKOO主时钟分频输出SS_3ISPI的从机选择脚(主机为输出)STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP4019151018VccVCC电源脚AVccVCCADC电源脚20161119Vref+IADC的参考电压脚21171220GndGND地线AgndGNDADC地线Vref-IADC的参考电压地线2218——P4.0I/O标准IO口MOSI_3I/OSPI主机输出从机输入S1MOSI_3I/OUSART1-SPI主机输出从机输入S2MOSI_3I/OUSART2-SPI主机输出从机输入STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP4023———P6.4I/O标准IO口PWM3P_3I/OPWM3的捕获输入和脉冲输出正极S1SS_4IUSART1-SPI的从机选择脚(主机为输出)24———P6.5I/O标准IO口PWM3N_3I/OPWM3的捕获输入和脉冲输出负极S1MOSI_4I/OUSART1-SPI主机输出从机输入25———P6.6I/O标准IO口PWM4P_3I/OPWM4的捕获输入和脉冲输出正极S1MISO_4I/OUSART1-SPI主机输入从机输出STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP4026———P6.7I/O标准IO口PWM4N_3I/OPWM4的捕获输入和脉冲输出负极S1SCLK_4I/OUSART1-SPI的时钟脚27191321P3.0I/O标准IO口D-I/OUSB数据口RxDI串口1的接收脚INT4I外部中断4

28201422P3.1I/O标准IO口D+I/OUSB数据口TxDO串口1的发送脚STC32位单片机命名规则及封装

--引脚定义编号名称类型说明LQFP64LQFP48LQFP32PDIP4029211523P3.2I/O标准IO口INT0I外部中断0SCLK_4I/OSPI的时钟脚SCL_4I/OI2C的时钟线PWMETIIPWM外部触发输入脚PWMETI2IPWM外部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论