第1章单片机基础知识13单片机内部结构_第1页
第1章单片机基础知识13单片机内部结构_第2页
第1章单片机基础知识13单片机内部结构_第3页
第1章单片机基础知识13单片机内部结构_第4页
第1章单片机基础知识13单片机内部结构_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、基本功能部件:CPU、存储器、I/O接口,内部总线中央处理器:运算器和控制器1 CPU的指令和指令系统指令:指示计算机执行某种操作的命令,以一组二进制数码表示,成为机器指令,计算机只能识别和执行机器指令;计算机通过执行一系列的指令来完成复杂的计算、判断、控制等操作过程。从CPU内部结构看,CPU的所有工作均可归纳为从存储器中取出指令码和数据,经过算术或逻辑运算后输出相应的结果。指令的集合称为指令系统。2、指令格式操作码+操作数: ADD A, #12H;操作码的位数n取决于一台计算机的指令条数N满足:N=2n 例如30条指令的指令系统,操作码位数:5操作数用于指出参加操作的数据或数据的存储地址

2、。MOV A, #23H;A, #23H;操作数可以是1个或多个:INC A;在计算机中,指令由操作码和操作数组成,确定指令中操作数所在存储单元地址的方式,就是寻址方式。对于只有操作码的指令,不存在寻址方式问题;对于有双操作数的指令来说,每一操作数都有自己的寻址方式。例如: 在含有两个操作数的指令中,第一操作数(也称为目的操作数)和第二操作数(也称为源操作数)都有自己的寻址方式。在现代计算机系统中,为了减少指令码的长度,对于算术/逻辑运算指令,一般将第一操作数和第二操作数的运算结果经ALU数据输出口传送到CPU内部数据总线,再存放到第一操作数所在的存储单元(或CPU内某一寄存器)中。3、寻址方

3、式例如:ADD A,B; 累加器A中的内容(目的操作数)加寄存器B中的内容(源操作数),所得的“和” 存到累加器A中。这样就不必为运算结果指定另一存储单元地址,缩短了指令码的长度。当然,运算后累加器A中的原有信息(即被加数)将不复存在。如果在其后的指令中还需要用到指令执行前目的操作数中的信息,可先将目的操作数保存到CPU内另一寄存器或存储器的某一存储单元中。指令中的操作数只能是下列内容之一指令中的操作数只能是下列内容之一 (1) 、CPU内某一寄存器名(如累加器A、通用寄存器B、堆栈指针SP等)。例如,在MCS-51系列单片机CPU内,含有累加器A、通用寄存器B、堆栈指针SP、程序状态字寄存器

4、PSW以及工作寄存器组R7R0。在PIC16C5X系列CPU内,含有工作寄存器W(其功能类似于其他CPU的累加器A)、状态寄存器STATUS(其功能类似于其他CPU的程序状态字寄存器PSW)、特殊功能寄存器SFR、端口控制寄存器TRISA、TRISB、TRISC等。(2) (2) 存储单元。存储单元。存储单元的地址范围由CPU的寻址能力、实际安装的存储器容量以及存储器连接方式来决定。(3) I/O(3) I/O端口号。端口号。在通用微机系统中,I/O地址空间与存储器地址空间相互独立。不过在单片机系统中,I/O端口地址空间往往与外存储器地址空间的一部分,不再区分。(4) (4) 常数。常数。常数

5、类型及范围也与CPU类型有关。在计算机中,常使用下列七种寻址方式之一确定操作所在存储单元的地址。1. 1. 立即寻址方式立即寻址方式当指令第二操作数(源操作数)为8位或16位常数时,就称为立即寻址方式。其中的常数称为立即数,如: MOV A,#23H;其中第二操作数“23H”就是立即数,含义是将立即数23H传送到累加器A(目的操作数)中 又如: MOV DPTR,#2000H;将立即数2000H送到据指针DPTR(16位寄存器)寄存器中例如:“MOV A,#23H”的指令机器码为“7423”,在存储器中的存放位置及执行结果如图所示。注意点:注意点:只有源操作数能使用立即寻址方式,因为在立即寻址

6、方式中,操作数是一个常数,不是某一寄存器或存储单元。“#”是立即数标志,以便与下面介绍的直接寻址方式中的存储单元地址相区别。此外,立即数的长度必须小于或等于目的操作数的长度。在上例中,如果累加器A的字长为8位,则不能将16位二进制数传送到累加器A中,即如下指令在汇编时将出错。MOV A,#1234H;由于累加器A长度只有8位,无法装入16位二进制数1234H但立即数长度可以小于目的操作数的长度,如:MOV DPTR,#0002H;DPTR是MCS-51 CPU内一个16位寄存器MOV DPTR,#02HMOV DPTR,#2H这三条指令完全等效,汇编时均当作“MOV DPTR,#0002H”指

7、令处理。2. 2. 直接寻址方式直接寻址方式在直接寻址方式中,操作数是某一存储单元的地址编码。例如:MOV A,0023H;直接使用存储单元地址作为源操作数该指令的含义是将0023H存储单元中的内容传送到累加器A中,其中的“0023H”不再是立即数,而是存储单元的地址编码。假设存储器中0023H单元的内容为55H,则该指令执行后,累加器A中的内容将变为55H。指令代码和执行结果如图1-7所示。假设存储器中0023H单元的内容为55H,则该指令执行后,累加器A中的内容将变为55H。指令代码和执行结果如图1-7所示。注意点:直接寻址方式可以用在源操作数中,也可以用在目的操作数中,例如:MOV 00

8、23H,A;指令含义是将累加器A中的内容传送到0023H存储单元中,在这条指令中,0023H存储单元是目的操作数注意点:在直接寻址方式中,存储单元的地址编码一般为16位,但在MCS-51系列单片机中,直接寻址方式仅限于内部RAM前128字节存储单元(00H7FH)、片内位存储单元(00H7FH)和特殊功能寄存器(80HFFH),因此存储单元的地址编码仅为8位,例如:MOV 23H,A3. 3. 寄存器寻址方式寄存器寻址方式在寄存器寻址方式中,操作数是CPU内的某一寄存器名。例如:MOV A,23H ;在这条指令中,累加器A是目的操作数。因此,这条指令的目的操作数;采用寄存器寻址方式寄存器寻址方

9、式可以用在目的操作数中,也可以用在源操作数中MOV 23H,A;在这条指令中,累加器A是源操作数。因此,这条指令的源操作数采用寄存器寻址方式在MCS-51中,可用于寄存器寻址方式的寄存器有:累加器A、寄存器B(仅限于乘法指令)、数据指针DPTR、位操作指令中的进位标志Cy和工作组寄存器R7R0。4. 4. 寄存器间接寻址方式寄存器间接寻址方式将寄存器内容作为指令中操作数所在存储单元地址编码的寻址方式,称为寄存器间接寻址方式。例如: MOV A,R0 该指令的含义是将寄存器R0内容指定的内部RAM单元的内容传送到累加器A中。假设R023H,而内部RAM 23H单元的内容为55H,则指令执行后,累

10、加器A的内容将为55H。指令中的“”是间接寻址标志,该指令与“MOV A,R0”不同。“MOV A,R0”指令的源操作数采用寄存器寻址方式,含义是将寄存器R0中的内容传送到累加器中,因此“MOV A,R0”指令执行后,累加器A的内容将是23H。寄存器间接寻址方式可以用在源操作数中,也可以用在目的操作数中,例如:MOV R0,A 该指令的含义是将累加器A中的内容传送到由寄存器R0中内容指定的存储单元中。假设A34H,R023H,则指令执行后,内部RAM 23H单元的内容将是34H。一般来说,CPU内仅有部分寄存器可用作间接寻址寄存器,至于哪些寄存器可用作间接寻址寄存器由CPU指令系统决定。例如,

11、在例如,在MCS-51MCS-51系列单片机中,只能使用寄存器系列单片机中,只能使用寄存器R0R0、R1R1以及数据指针寄存器以及数据指针寄存器DPTRDPTR作间接寻址寄存作间接寻址寄存器。器。5. 5. 变址寻址方式变址寻址方式将某一寄存器作为基址寄存器,另一寄存器作为变址寄存器,两者相加后作为操作数所在存储单元地址的寻址方式就称为变址寻址方式。例如:MOVC A,A+DPTR 数据指针寄存器DPTR(16位,作为基址寄存器)加上累加器A(作为变址寄存器)后获得存储单元地址,并将该存储单元内容传送到累加器A中。在该指令中,源操作数采用了变址寻址方式。6. 6. 相对寻址方式相对寻址方式相对

12、寻址的含义是以程序计数器PC的当前值加上指令中给出的相对偏移量rel作为程序计数器PC的值。例如: JZ lable;lable 用补码表示,当rel为正,表示向下跳转;当rel为负时,表示向上跳转。指令代码占两个字节,当累加器A为零时,PCPC2rel(其中rel为相对偏移量,与目标地址lable有关),即程序发生了转移;当累加器A不为零时,PCPC2,即程序没有转移,顺序执行“JZ lable”指令的下一条指令。JZ指令代码和执行结果如图7. 7. 位寻址方式位寻址方式 位寻址方式是MCS-51系列单片机特有的一种寻址方式。执行简单的逻辑控制(如电机的开、关,指示灯的亮、灭等),8位单片机

13、系统具有位寻址功能。例如:MOV C,23H;指令中的“C”是进位标志Cy的简写,23H是位寻址空间内的位地址CISC和RISC复杂指令系统(Complex Instruction Set Computer,简称CISC指令结构)精简指令系统(Reduced Instruction Set Computer,简称RISC指令结构)。CISC指令长短不一单字节指令:这类指令仅有操作码,没有操作数,或者操作数隐含在操作码字节中。RET;双字节指令:这类指令第一字节为操作码,第二字节为操作数。 CLR C;多字节指令:这类指令第一字节为操作码,第二、三字节为操作数或操作数所在的存储单元地址。ADD

14、A, #12H;CISC可选择两条或两条以上指令完成同一操作。程序设计灵活性大,但缺点是指令数目较多(这类CPU一般具有数十条至百余条指令)。例如,在MCS-51系列单片机中,将累加器Acc内容清零,可以选择下列指令之一来实现:CLR A;直接对累加器A清零MOV A,#00H;将立即数00H写入 累加器A中ANL A,#00H;用立即数00H与累 加器A内容相与,使累加器A内容变为0CISC可选择两条或两条以上指令完成同一操作。程序设计灵活性大,但缺点是指令数目较多(这类CPU一般具有数十条至百余条指令)。例如,在MCS-51系列单片机中,将累加器Acc内容清零,可以选择下列指令之一来实现:

15、CLR A;直接对累加器A清零MOV A,#00H;将立即数00H写入 累加器A中ANL A,#00H;用立即数00H与累 加器A内容相与,使累加器A内容变为0CISC: CISC指令内核结构复杂,元件数目较多,功耗较大,51为CISC结构RISC指令数目相对较少,完成同一操作,一般只有一条指令可供选择,如PIC系列、Atmel的AVR系列单片机、ARM等。指令机器码长度相同,例如PIC16C54单片机任一指令机器码长度均为12位(1.5字节)。由于所有指令码长度相同,取指、译码过程中不必做更多的判断,因而指令执行速度较快。便于采用流水线架构。ROMRAM存储器PROMEPROMEEPROMO

16、TP ROMFLASH ROMSRAMDRAMNOR FLASHNAND FLASH单片机的存储系统单片机的存储系统 程序存储器和数据存储器一.程序存储器ROM:1K64K通常为只读存储器,掉电后程序不会丢失掩膜ROM型,用户将程序代码交给厂商,厂商在出厂时把程序固化到ROM中。EPROM型,紫外线擦除,专用工具写入,可反复擦写。OTP,无窗口型,不能反复擦写。FLASH Memory型:快速整体擦除、逐字写入,目前最为流行二.数据存储器RAM静态随机存取存储器SRAM,简称RAM,容量为几十字节到几K字节。E2PROM,逐字擦除、写入,掉电不丢失,用于存储工作参数。单片机的输入输出接口串行接口:USART,SPI,I2C,CAN,USB模数转换器:AD定时器:TIMER:定时、计数、捕捉、比较、PWM等功能显示驱动器:LED、LCD等驱动电路其他:DA、监视定时器(看门狗)等单片机基本系统-

温馨提示

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

最新文档

评论

0/150

提交评论