版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章单片机和嵌入式系统导论单片机和桌面系统的基本架构处理器核的指令集架构单片机硬件基础知识单片机编程语言小结本章主要内容单片机和桌面系统的基本架构
--单片机的结构单片机是指单个集成电路(IntegratedCircuit,IC)芯片上的小型计算机(Microcomputer)也称为微控制器(MicrocontrollerUnit,MCU)MCU主要面向嵌入式应用,这些应用面向自动控制产品和设备比如,汽车发动机的控制系统、植入式医疗设备、遥控器、办公机器、电器、电动工具、玩具和其他嵌入式系统单片机和桌面系统的基本架构
--单片机的结构在MCU内包含一个/多个中央处理器单元(CentralProcessingUnit,CPU)、易失性和非易失性存储器,以及可编程的输入和输出设备CPUEMIFROM/FlashSRAM
UART
GPIOTimerOSCIntControllerADCDAC单片机和桌面系统的基本架构
--单片机的结构OSC为晶体振荡器(Oscillator)的英文缩写,它为MCU提供最基本的时钟源通过MCU内的相位锁相环(PhaseLockedLoop,PLL)电路,基于该时钟源可以产生不同频率和相位的其他时钟信号,以提供给MCU内的所有功能单元随着半导体技术的发展和芯片设计水平的不断提高,厂商经常在MCU内部集成了晶体振荡器。当然,MCU也仍然保留了从外部输入时钟源的能力单片机和桌面系统的基本架构
--单片机的结构CPU是中央处理单元(CentralProcessingUnit,CPU)的英文缩写,CPU是MCU中的核心功能单元从MCU外部获取的所有信息都要汇集到CPU进行处理,CPU将处理后的数据送到存储器或者外设CPU是指令集架构(InstructionSetArchitecture,ISA)的具体实现,也称为微架构(Microarchitecture),它所采用的ISA决定了MCU的性能和特点单片机和桌面系统的基本架构
--单片机的结构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)有什么不同?PC和手机主要面向桌面应用,它们搭载着Windows操作系统/Andriod操作系统/iOS操作系统单片机和桌面系统的基本架构
--桌面系统的结构
CPUDRAM闪存I/OI/O单片机和桌面系统的基本架构
--桌面系统的结构使用了性能强大的微处理器它的时钟速度可以达到几个GHz的频率,而MCU内的时钟速度最多也就在几百MHz的频率此外,这种性能强大的微处理器中,还包含了多级高速缓存(Cache)和存储器管理单元(MemoryManagementUnit,MMU)虽然有些高性能MCU的CPU内部也提供了Cache,但是MCU内部不存在MMU处理器内部集成的低容量SRAM用于高速缓存单片机和桌面系统的基本架构
--桌面系统的结构而面向桌面的应用中,要求处理器外部扩展大容量同步动态随机访问存储器(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处理器核的指令集架构
--指令集架构的主要类型无内部互所流水级微处理器(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单片机处理器核的指令集架构
--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指令的兼容性处理器核的指令集架构
--MCS-51指令集架构最早的IntelMCS-51MCU每个机器周期运行12个时钟周期,大多数指令在一个或两个机器周期内完成典型的,最高时钟频率为12MHz,这意味着早期Intel的MCS-51MCU可以在每秒执行100万条单周期指令,或50万条双周期指令而现代版本的基于MCS-51ISA的MCU(或称为8051单片机)可以在每个周期执行一个时钟周期这意味着在相同的时钟频率下,基于MCS-51ISA的现代版本8051单片机可以在每秒执行1200万条单周期指令,或600万条双周期指令第1章单片机和嵌入式系统导论单片机硬件基础知识
--主要内容本书以STC公司的STC15W4K32S4系列8位8051单片机为例,介绍了单片机的硬件基础知识内容包括主要功能IAP和ISPI/O驱动原理硬件下载电路设计电源系统设计单片机硬件基础知识
--主要功能片内集成高达4KB容量的RAM数据存储空间采用了增强型8051CPU核,达到1个时钟/1个机器周期的性能比传统的8051速度快7~12倍。速度比STC早期的1T系列单片机(如STC12/11/10系列)的速度快20%采用宽电压供电技术,其工作电压范围为2.5~5.5V采用低功耗设计技术,该系列单片机可以工作在低速模式、空闲模式、掉电模式内置高可靠复位电路,不需要外部复位。当通过ISP编程时,提供16级可选的复位门槛电压单片机硬件基础知识
--主要功能内置R/C时钟电路,无需使用外部晶体振荡器。当使用ISP编程时,内部时钟频率为5~35MHz。振荡器频率特性为在正常温度时,温漂为±0.3%在-40℃~+85℃;温漂为±1%在-20℃~+65℃时,温漂为±0.6%提供了大量的掉电唤醒资源,包括:INT0/INT1(上升沿/下降沿中断均可)INT2/INT3/INT4(下降沿中断)CCP0/CCP1/RxD/RxD2/RxD3/RxD4/T0/T1/T2/T3/T4引脚内部掉电唤醒专用定时器单片机硬件基础知识
--主要功能该系列单片机提供了16KB、32KB、40KB、48KB、56KB、58KB、61KB、63.5KB容量的片内Flash程序存储器,擦写次数可达10万次以上片内大容量EEPROM功能,擦写次数可达10万次以上芯片集成8通道10位的高速模拟-数字转换器(analogtodigitalconverter,ADC),采样速度可达30万次采样/秒单片机硬件基础知识
--主要功能芯片集成比较器模块可以当作1路ADC使用,并可作掉电检测;支持外部引脚CMP+与外部引脚CMP-进行比较,可产生中断,并可在引脚CMPO上产生输出(可设置极性);也支持外部引脚CMP+与内部带隙电压进行比较片内集成6通道15位带死区控制的专用高精度脉冲宽度调制(pulsewidthmodulation,PWM)模块此外,还提供了2通道CCP模块,通过它的高速脉冲输出功能可实现2路11~16位PWM。它们可以用来实现以下功能,即8路数字到模拟转换器(digitaltoanalogconverter,DAC)功能;2个16位定时器;2个外部中断(支持上升沿/下降沿中断)。注:CCP是Capture(捕获)、Compare(比较)和PWM(脉冲宽度调制)的缩写单片机硬件基础知识
--主要功能片内集成最多7个定时器/计数器模块5个16位可重装载定时器/计数器,包括:T0/T1/T2/T3/T4(T0和T1与普通8051单片机的定时器/计数器模块兼容),均可实现时钟输出通过引脚MCLKO,可以将分频(分频因子为1、2、4、16)后的系统时钟SYSCLK输出此外,2路CCP也可实现2个定时器单片机硬件基础知识
--主要功能片内提供可编程时钟输出功能。实现对内部系统时钟,或者连接到外部引脚的时钟进行分频后输出。其中:P3.5引脚输出定时器/计数器0的时钟T0CLKOP3.4引脚输出定时器/计数器1的时钟T1CLKOP3.0引脚输出定时器/计数器2的时钟T2CLKOP0.4引脚输出定时器/计数器3的时钟T3CLKOP0.6引脚输出定时器/计数器4的时钟T4CLKO在P5.4引脚对外输出分频后的系统时钟SYSCLK单片机硬件基础知识
--主要功能片内集成四个完全独立的超高速串口/UART片内集成硬件看门狗定时器(watchdogTimer,WDT)模块该系列单片机采用了先进的指令集架构,100%兼容普通8051指令集此外,提供了硬件乘法/除法指令单片机硬件基础知识
--主要功能该系列单片机提供了通用输入/输出(generalpurposeinput/output,GPIO)资源,根据不同器件,可提供26、30、42、38、46、62个GPIO端口当对单片机复位后,将GPIO配置为准双向IO口/弱上拉模式,这与传统8051单片机一致在复位后,可以通过模式寄存器将GPIO设置为四种模式,即准双向口/弱上拉、强推挽/强上拉、仅为输入/高阻以及开漏每个I/O口驱动能力最大可达到20mA,但是注意整个芯片的电流最大不要超过120mA单片机硬件基础知识
--主要功能8051单片机硬件开发平台使用了STC公司最新的硬件可仿真的IAP15W4K58S4单片机硬件基础知识
--IAP和ISP当软件开发人员使用KeilμVision(C51)集成开发环境完成软件代码的编写和调试后,就需要使用STC公司提供的STC-ISP软件工具将最终的程序固化到8051单片机内部的程序存储器中很明显,当在本地完成程序的固化后,就可以将基于STC8051单片机开发的电子产品(系统)交付给最终的用户单片机硬件基础知识
--IAP和ISP但是,也存在另一种情况,当最终的电子产品交付客户使用一段时间后,需要对产品的软件程序进行更新,但是由于种种原因设计人员又不能到达现场处理更新产品软件的事情,此时就需要使用其他更新方式典型地,通过网络的远程更新方式单片机硬件基础知识
--IAP和ISP将本地固化程序的方式称为在系统编程(insystemprogramming,ISP);而将另一种固化程序的方式称为在应用编程(inapplicationprogramming,IAP)IAP和ISP
--ISP通过单片机专用的串行编程接口和STC提供专用串口下载器固化程序软件,对单片机内部的Flash存储器进行编程一般来说,实现ISP只需要很少外部电路的辅助IAP和ISP
--IAP而IAP技术是从结构上将Flash存储器映射为两个存储空间当运行一个存储体空间的用户程序时,可对另一个存储空间重新编程。然后,将控制权从一个存储空间切换到另一个存储空间与ISP相比,IAP的实现更加灵活典型地,可利用USB电缆和USB-UART转换芯片将STC单片机接到计算机的USB接口(在计算机上会虚拟出一个串口),并且通过软件开发人员自行开发的软件工具对STC单片机内部的存储器进行编程IAP和ISP
--IAP支持ISP方式的单片机,不一定支持IAP方式;但是,支持IAP方式的单片机,一定支持ISP方式ISP方式应该是IAP方式的一个特殊的“子集”在STC量产的单片中,前缀为STC的单片机,不支持IAP固化程序方式;而前缀为IAP的单片机,支持IAP固化程序方式单片机硬件基础知识
--I/O驱动原理STC15系列单片机提供了四种驱动模式准双向输出强推挽输出仅为输入(高阻)开漏输出I/O驱动原理
--准双向输出配置准双向输出类型可以用作输出和输入功能,而不需要重新配置I/O口输出状态当端口锁存数据置为逻辑高时,驱动能力很弱,允许外部设备将其拉低(要尽量避免出现这种情况)而当引脚的输出为低时,驱动能力很强,可吸收很大的电流I/O驱动原理
--准双向输出配置在准双向口提供3个上拉晶体管以满足不同的要求第1个晶体管,称为弱上拉晶体管当端口锁存数据置“1”且引脚本身为“1”时打开,此上拉提供基本驱动电流使准双向口输出为“1”如果一个引脚输出为“1”而由外部设备下拉到低时,弱上拉晶体管关闭而极弱上拉晶体管维持打开状态,为了把这个引脚强拉为低,外部设备必须有足够的灌电流能力使引脚上的电压降到门限电平以下对于5V供电的单片机,弱上拉晶体管的电流大约为250µA;对于3.3V供电的单片机,弱上拉晶体管的电流大约为150µAI/O驱动原理
--准双向输出配置第2个上拉晶体管,称为极弱上拉晶体管当端口锁存数据置为“1”时,该晶体管导通。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流将引脚上拉到高电平对于5V供电的单片机,极弱上拉晶体管的电流约为18µA;对于3.3V单片机,极弱上拉晶体管的电流约为5µAI/O驱动原理
--准双向输出配置第3个上拉晶体管,称为强上拉晶体管当端口锁存数据由“0”变化到“1”时,这个上拉用于加快准双向口由逻辑“0”到逻辑“1”的跳变过程。当出现这种情况时,强上拉打开约2个时钟以使引脚能够迅速地上拉到高电平I/O驱动原理
--强推挽输出配置强推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同I/O驱动原理
--仅为输入(高阻)配置输入口带有一个施密特触发器输入以及一个干扰抑制电路I/O驱动原理
--开漏输出配置在开漏模式下,单片机既可以读取引脚的外部状态也可以控制外部引脚输出高电平或低电平如果要正确地读取外部状态或者需要对外部输出高电平时,需要外加上拉电阻注:由于8051CPU的时钟速度较高。因此,当软件执行由低变高的指令后,加入1~2个空操作延迟指令,在读取外部状态。单片机硬件基础知识
--硬件下载电路设计本节介绍STC公司提供的两个典型的ISP硬件下载电路,包括:通过USB-串口芯片的下载电路USB直接下载编程电路硬件下载电路设计
--通过USB-串口芯片的下载电路通过CH340G芯片,实现通过从PC/笔记本USB口与IAP15W4K58S4单片机的串口连接硬件下载电路设计
--通过USB-串口芯片的下载电路由于IAP15W4K58S4单片机的P3.0和P3.1口作为下载/仿真使用(下载和仿真时仅可以使用P3.0和P3.1口),因此STC公司建议用户将串口1放在P3.6/P3.7或者P1.6/P1.7如果读者不想切换,坚持使用P3.0/P3.1或作为串口1进行通信,则必须在下载程序时,在STC-ISP软件中,在软件上勾选“下次冷启动时,P3.2/P3.3为0/0时才可以下载程序硬件下载电路设计
--USB直接下载编程电路STC公司提供了通过USB直接下载编程电路在这种下载模式中,单片机的P3.0/P3.1直接连接电脑USB的D+和D−信号线硬件下载电路设计
--电源系统设计单片机系统的电源可以由电脑USB供电,也可不用电脑USB供电,而由系统电源供电如果读者自己设计的单片机系统直接使用USB供电,则在将读者自己设计的单片机系统插到PC/笔记本的USB口时,电脑就会检测到IAP15W4K58S4单片机插入到PC/笔记本USB接口如果读者第一次使用该电脑对IAP15W4K58S4单片机进行ISP下载,则该电脑会自动安装USB驱动程序,而IAP15W4K58S4单片机则处于等待状态,直到PC/笔记本安装完驱动程序并发送“下载/编程”命令给它硬件下载电路设计
--电源系统设计如果单片机系统使用系统电源供电,则该单片机系统必须在停电(即关闭系统电源)后才能插上电脑USB口在单片机系统插到PC/笔记本电脑USB接口并且打开单片机上的系统供电电源后,电脑会检测到IAP15W4K58S4单片机插入电脑USB接口如果读者第一次使用电脑对IAP15W4K58S4单片机进行ISP下载,则该电脑会自动安装USB驱动程序,而IAP15W4K58S4单片机则自动处于等待状态,直到电脑安装完驱动程序,并且发送“下载/编程”命令给单片机系统。第1章单片机和嵌入式系统导论单片机和嵌入式系统导论
--单片机编程语言从系统结构来说,8051单片机语言分为四个不同的层次微指令控制序列机器语言/机器指令汇编语言高级语言底层顶层微指令控制序列机器指令汇编语言高级语言单片机编程语言
--微指令控制序列微指令控制序列存在于CPU内部,单片机应用开发人员看不到微指令控制序列本质上,CPU就是通过由有限自动状态机所构成的微指令控制器对其内部的寄存器、存储器和ALU等参与具体数据处理的功能单元“发号施令”例如,要完成对8051单片机CPU内的两个寄存器的数据进行相加,则CPU内的微指令控制器会发出一系列的控制序列,这些控制序列在CPU主时钟的控制下,按顺序先后给出,这就是时序微指令控制序列属于数字逻辑中组合逻辑和时序逻辑的范畴。只有设计8051单片机芯片的工程师,才会接触到微指令控制序列单片机编程语言
--微指令控制序列下面给出微指令控制序列控制两个数据相加过程的形式化描述:选择某个寄存器,将加数读取出来选择另一个寄存器,将被加数读取出来将这两个操作数,送到ALU根据功能选择,ALU执行加法运算同时,ALU产生运算的结果和标志,比如:零标志、符号标志、进位标志和溢出标志等根据指令的要求,将运算的结果,送到寄存器或者存储器中进行保存由此可以看出,一个简单的加法运算,要产生一系列的控制序列这也是通常所说的译码和执行指令单片机编程语言
--机器语言对于单片机的应用工程师,根本不需要知道微指令控制序列,他只要告诉CPU,执行加法运算即可也就是不需要掌握CPU内部结构的具体实现方式保存在单片机内程序存储器中的由“0”和“1”构成的序列,就是机器语言(也称为机器指令或机器代码)通过取出相应的机器指令(机器代码),就可以实现加法运算单片机编程语言
--机器语言在8051单片机中,ACC累加器和一个常数(立即数)相加的机器语言的格式机器语言是由0和1构成的序列这个序列(机器指令)中包含操作码和操作数两部分操作码操作码告诉CPU所需要执行的操作。该指令的操作码用二进制表示为:“00100100”,等效的十六进制数为24操作码部分包含了操作的类型编码,同时也包含了一部分的操作数内容,指明了参与加法运算的一个数来自ACC累加寄存器器中单片机编程语言
--机器语言操作数操作数是操作的对象操作对象包括:立即数(常数)、寄存器和存储器等在上图中,immediatedata表示立即数(常数),占用了一个字节(8个比特位),表示参与加法运算的另一个数的具体取值单片机编程语言
--机器语言但是,纯粹意义上的机器语言对程序员太难理解了,为什么?这是因为程序员是CPU的操作者,而不是CPU的设计者,程序员根本不可能从二进制代码的排列中看出机器语言所描述的逻辑操作行为。而且,程序员很难记忆这些“0”和“1”构成的机器语言/机器指令序列单片机编程语言
--汇编语言为了帮助程序员从更抽象的行为级上理解CPU所执行的操作,计算机软件设计人员开发了一套基于助记符的CPU指令系统的描述方法通过汇编语言助记符指令,程序员可以将这些助记符所表示的CPU指令组合在一起,构成一个复杂的称为“程序”的软件来控制CPU的运行单片机编程语言
--汇编语言通过汇编器(软件工具),将使用汇编语言助记符描述的指令转换成使用成机器语言描述的机器指令用下面完整的汇编助记符形式描述机器指令。其中:[标号:]助记符[操作数][;注释]标号用来表示一行指令助记符表示所要执行的逻辑操作行为操作数为逻辑操作行为所操作的具体对象单片机编程语言
--汇编语言现在用下面的汇编语言助记符指令来描述前面的机器指令ADDA,#25ADD表示数据相加操作A表示目的操作数,即:ACC累加器#25表示源操作数这个汇编助记符指令所实现的功能是,将立即数(常数)25和ACC累加器内所保存的数相加,得到的结果保存在ACC累加器中在汇编语言(助记符)级上理解CPU的指令操作,更加直观,而且无需知道指令二进制的具体表示形式显著降低了软件程序设计人员在8051单片机上开发应用程序的难度单片机编程语言
--汇编语言由于汇编语言下面是机器语言,所以对于使用汇编语言编程的程序员,必须很清楚CPU的指令集、寄存器单元和存储器映射等繁琐的硬件规则虽然其执行效率与机器语言相当,但是使用汇编语言开发复杂应用程序的效率很低由于很多程序员根本不了解CPU的具体内部结构,所以对它们使用汇编语言编程并不比直接使用机器语言编程有更多的优势,这也是一件令他们非常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 发热反应的识别与处理
- 八年级英语沪教版暑假第三单元同步测试卷基础版A卷
- PP-R给排水管道施工方案(详细完-整版)
- 林区改革专题试题及精准答案
- 网格员考核试题及答案要点
- 2026年暑假工合同范本商超临时工协议书二篇
- 企业间产品代销合作协议二篇
- 露营房车租赁合同书范本二篇
- 2026年Python框架应用专项训练试卷
- 地质灾害崩塌隐患治理方案
- (2026秋新版)大象版版五年级科学上册全册教学设计
- 2026年电工低压特种作业考试题库(附含答案)
- 2026秋学期小学苏教版数学四年级上册教学计划含进度表
- 一企一档模板
- 全国优质课一等奖部编版高中语文必修上册《学写文学短评写作指导》课件
- 发展经济学 马工程课件 1.第一章 发展中国家与发展经济学
- GB/T 25775-2010焊接材料供货技术条件产品类型、尺寸、公差和标志
- 公共艺术设计-课件
- 石油地质学-8-油气的运移-课件
- NB∕T 10731-2021 煤矿井下防水密闭墙设计施工及验收规范
- 《干部履历表》(1999版电子版)
评论
0/150
提交评论