单片机原理及应用(赵晓安)期末总复习课件_第1页
单片机原理及应用(赵晓安)期末总复习课件_第2页
单片机原理及应用(赵晓安)期末总复习课件_第3页
单片机原理及应用(赵晓安)期末总复习课件_第4页
单片机原理及应用(赵晓安)期末总复习课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章MCS-51单片机的结构和工作原理一、MCS-51 单片机的基本组成1、中央处理器(CPU) 核心部件 2、时钟电路 最高晶振频率为12MHz 3、程序存储器(ROM/EPROM) 4KB 4、数据存储器(RAM) 128B+128B SFR 5、并行I/O口(P0P3口) 8位 6、串行口 全双工串行口 7、定时器/计数器 2个16位 5个中断源,高级和低级两级优先级别 外中断2个8、中断系统 定时器/计数器中断2个 串行中断1个它们都是通过单一总线连接,并被集成在一块半导体芯片上,为单片微型计算机 (二)中央处理器CPU运算器实现算术、逻辑运算、位变量处理、移位、数据传送 1算术逻辑

2、单元(ALU)8位 二进制四则运算和布尔代数的逻辑运算 运算结果影响PSW的有关标志位 2. 累加器(ACC)8位 存放操作数和中间结果 最频繁的寄存器,大多数操作均通过它进行 3寄存器B 8位 乘法时用于存乘数/积的高8位 除法时用于存除数/余数也可作一般寄存器使用 4程序状态字(PSW)8位 特殊功能寄存器, 5布尔处理器 1位 以位为单位,以进位标志(CY)作为累加位 ,以内部RAM中所有可进行位寻址的位作为操作位或存储位,以P0-P3的各位作为I/O位,有自己的指令系统。运行速度快。PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0 CY (

3、PSW.7) 进位标志位 AC (PSW.6) 辅助进位(或称半进位)标志F0 (PSW.5) 用户标志位 RS1和RS0(PSW.4,PSW.3)工作寄存器组选择位 OV (PSW.2) 溢出标志位 PSW.1 未定义位P (PSW.0) 奇偶标志位(偶校验) AC(PSW.6) 辅助进位(或称半进位)标志。加减运算时,其运算结果产生低四位向高四位进位或借位时, AC由硬件置“1”;否则被自动清“0”。 一般在BCD码运算时,系统用于进行十进制调整。 OV(PSW.2) 溢出标志位 运算结果是否溢出,溢出时则由硬件将OV 位置“1”;否则置“0”。只有在补码运算时起作用。溢出是指有正负号的两

4、个数运算时,运算结果超出了累加器以补码所能表示一个有符号数的范围。而进位则表示两数运算最高位(D7)相加(或相减)有无进位(或借位)。 因此使用时应加以注意。P(PSW.0) 奇偶标志位 P标志表明累加器ACC中1的个数的奇偶性。在每条指令执行完后,单片根据ACC的内容对P 位自动置位或复位。 若累加器ACC中有奇数个“1”,则P=1; 若累加器ACC中有偶数个“1”,则P=0控制器1程序计数器(PC)16位计数器 寻址范围达64KB PC 有自动加1功能2指令译码器ID 对指令进行译码,即把指令转化为所需的电平信号。3数据指针(DPTR) 16位寄存器。功能是存放16位的地址,作为访问外部程

5、序存储器和外部数据存储器时的地址。 16位寄存器两个8位寄存器分开使用。DPHDPTR的高8位DPLDPTR的低8位4. 堆栈指针(SP)8 bit SP的内容就是堆栈栈顶的存储单元地址。(向上生长和向下生长型)8051向上生长5. 定时控制与条件转移逻辑电路。(二)存储结构 8051单片机在系统结构上采用了哈佛型,存储器在物理结构上分程序存储器(ROM) 和数据存储器(RAM)。有四个物理上相互独立的存储空间用户使用的角度上看,8051存储空间分为三类: 片内、片外统一编址0000H0FFFFH的64K字节的程序存储器地址空间; 256字节片内数据存储器地址空间 64K字节片外数据存储器/I

6、/O口地址空间,地址也从0000H0FFFFH上述三个空间地址是重叠的,即 程序存储器中片内外低4K字节地址重叠; 数据存储器与程序存储器64K地址全部重叠; 数据存储器中片内外低256个字节地址重叠。采用了不同的操作指令及控制信号EA、PSEN的选择,因此不会产生混乱。程序存储器 0000H-0002H(开机复位单元) 3个0003H-000AH(INT0中断地址区) 8个000BH-0012H(T/C0中断地址区) 8个0013H-001AH(INT1中断地址区) 8个001BH-0022H(T/C1中断地址区) 8个0023H-002AH(串行口中断地址区) 8个片内数据存储器最大可寻址

7、256个单元,片外可寻址16位(64kB)的地址空间,该空间包括外扩展I/O口的地址,两者统一编址ACC E0H 累加器B F0H B寄存器PSW D0H 程序状态字SP 81H 堆栈指针P0 80H I/O口0P1 90H I/O口1片外数据存储器1、片外数据存储器,即片外RAM一般由静态RAM组成。MCS-51系列单片机访问外部数据存储器通过一个特殊寄存器DPTR(数据指针)寻址。由于DPTR是16位,则外部数据存储器可寻址的范围是64kB。2、片外RAM地址范围为0000H0FFFFH,其中在0000H00FFH这段区间与片内数据存储器空间是重叠的,CPU使用MOV指令和MOVX指令加以

8、区分。 3、若用户应用系统有扩展的I/O接口时,数据区与扩展的I/O口统一编址,所有的外围接口地址均占用片外RAM的地址单元,因此要合理地分配地址空间,保证译码的唯一性。几个地址重叠区的用指令识别:1、片内RAM/SFR 用MOV指令2、片外RAM/I/O 用 MOVX 指令3、片外程序存储器 用MOVC指令4、片内可位寻址区,用SETB ,CLR ,MOV指令用控制信号识别:1、片外程序存储器 用PSEN2、片外RAM/I/O 用WR,RD(三)定时器/计数器(T/C) 定时器/计数器0定时器/计数器1由2个8位寄存器组成,用来存放定时或计数的初值4种工作方式,设置工作方式后,独立运行,不再

9、占用CPU的操作时间,计数器计满溢出时,向CPU申请中断。计数功能的实质就是对外部脉冲进行计数(四)并行I/O接口4个8位的并行接口即PO-P3,共32根I/O线。具有双向I/O功能。一个8位数据输出锁存器、每个I/O口内部都有一个输出驱动器和一个8位数据输入缓冲器。4个数据锁存器与接口号同名,即P0P3,均为特殊功能寄存器。CPU数据从并行I/O接口输出是可以得到锁存,输入时可以得到缓冲。(五)串行口计算机与外界、计算机与计算机之间的信息交换称为通信,串行通信:数据的各位按顺序一位一位地传送基本方式并行通信:数据的各位同时传送可编程的全双工的串行接口,在程序控制下把CPU的8位并行数据变成串

10、行数据从TxD引脚发送出去,也可以把从RxD引脚接收的串行数据变成并行数据送给CPU。这种串行发送和接收柯单独进行,也可以同时进行。串行数据缓冲寄存器SBUF:两个8位寄存器组成,一个作发送缓冲寄存器,另一个作接收缓冲寄存器。二者由读写信号区分,但都使用同一地址。串行口控制寄存器(SCON):串行数据通信中控制电源控制:监视串行口工作状态串行口波特率选择寄存器(PCON):串行口波特率的倍增控制四、MCS-51 单片机的工作方式复位方式 单步执行方式 程序执行方式 掉电和低功耗方式 以及EPROM编程、校验与加密方式等(一)复位方式1、单片机的初始化操作复位2、复位信号 RST引脚是复位信号的

11、输入端,复位信号为高电平有效。当高电平持续24个振荡脉冲周期(两个时钟周期)以上时,单片机完成复位。手动复位3、复位方式上电自动复位(二)单步执行方式单步执行就是通过外来脉冲控制程序的执行,使之达到来一个脉冲就执行一条指令的目的。而外来脉冲是通过按键产生的,因此单步执行实际上就是按一次键执行一条指令。 单步执行借助单片机的外部中断功能实现。(三)程序执行方式程序执行方式是单片机的基本工作方式。由于复位后PC=0000H,因此程序总是从地址0000H开始,为此就得在0000H开始的存储单元中放一条无条件转移指令,以便跳转到实际程序的入口去执行。(四)掉电和低功耗方式单片机系统在运行程序过程中,如

12、发生掉电故障将会使RAM和寄存器中的数据丢失,其后果有时是非常严重的。MCS-51单片机可以设置掉电保护,进行掉电变化处理。 1先把有用信息转存 2然后接通备用电源 HMOS型8051在掉电保护情况下,备用电源给单片机低功耗供电,因此掉电保护方式就是低功耗方式。五、MCS-51 单片机的时序在通常应用情况下,MCS-51使用谐振频率为6MHz的石英晶体, 12MHz主要在高速串行通信的情况下使用。(一)CPU时序1、节拍:把振荡脉冲的周期定义为节拍(用P表示)。每二个节拍定义为一个状态(用S表示)。一个状态包含节拍1(P1)和节拍2(P2)2、机器周期:一个机器周期的宽度为6个状态,依次表示为

13、S1S6 一个机器周期就由12个振荡周期组成分别记作S1P1、S1P2、S6P2。3、指令周期:是最大的时序定时单位,执行一条指令所需的时间称为指令周期 根据指令的不同,可分别包含有一、二、四个机器周期。例:MUL AB DIV AB 是4机器周期指令 SJMP $ 是2机器周期指令 MOV A,B 是1机器周期指令乘法指令和除法指令是四个机器周期单字节指令:其余均为单机器周期或双机器周期双字节指令:单机器周期或双机器周期三字节指令:都是双机器周期三、MCS-51 单片机的引脚功能第三章 单片机的指令系统一、MCS-51 指令系统概述汇编语言指令格式:标号:操作码助记符 目的操作数,源操作数;

14、注释 单字节 RET指令字长有三种 双字节 MOV A,#68H 三字节 MOV 30H,46H 1 机器周期指令 2 机器周期指令 4 机器周期指令二、寻址方式1)适当选择特殊功能寄存器 2)累加器A有三种不同的表达方式,即:A,ACC,E0H,分属不同的寻址方式,但指令的执行的结果完全相同。例如: INC A; 指令机器码:04H INC ACC ;指令机器码:05E0H INC 0E0H; 指令机器码:05E0H3)注意地址的区别:位地址、字节地址例:MOV A,30H;(A) (30H) 机器码E530H MOV C,30H;(Cy) (30H) 机器码A230H 寄存器寻址:寄存器为

15、 R0R7,A,B,DPTR,Cy寄存器B只有在执行乘除法指令时,才是寄存器寻址方式直接寻址:内部数据存储器地址空间():00H-7FH(低128单元)MOV 30H,20H特殊功能寄存器地址空间(SFR):80H-0FFH直接寻址是SFR惟一的寻址方式,SFR可以以单元地址给出,也可用寄存器符号形式给出MOV A,90H 位地址空间00H-0FFH MOV C,00H寄存器间接寻址:寄存器有R0、R1、堆栈指针SP以及数据指针DPTR1)内部RAM低128单元,范围00H-7FH,用Ri (i=0,1) 和SP作为间址寄存器;2)与P2口配合使用,用Ri指示低8位地址,可寻址片外数据存储器或

16、I/O口的64K区域;3)DPTR间接寻址寄存器,可寻址片外程序存储器或数据存储器包括I/O口的各自的64kB区域。立即寻址:立即数一般可以是8位二进制数也可以是16位二进制数,前加#号变址间接寻址:数据指针DPTR或程序指针PC作为基址寄存器以累加器A作为变址寄存器注意:1)变址寻址方式只能对程序存储器进行寻址,因此只能用于读取数据,而不能用于存放数据,它主要用于查表性质的访问2)变址寻址指令有: MOVC A, A+DPTR MOVC A, A+PC JMP A+DPTR相对寻址:访问程序存储器,只出现在转移指令中。“寻址”是要得到程序跳转地址PC值。注意:PC的当前值加上指令中给出的相对

17、偏移量(rel)形成转移地址。相对偏移量(rel)是一个带符号的8位二进制数,以补码的形式出现。所以程序的转移范围为以PC当前值为中心-128127字节之间位寻址:1)内部RAM的位寻址区,共16个单元的128位,字节地址为20H2FH,位地址为00H7FH。可用直接位地址或字节地址加位的表示方法。MOV C , 7AH MOV C , 2FH22)特殊功能寄存器SFR可供位寻址的专用寄存器共11个,实有位地址位83位。位地址有4种表达方式 。(1)直接使用位地址 (3)单元地址加位的表示法 MOV C ,0D6H MOV C ,0D0H6(2)位名称表示法 (4)专用寄存器符号加位的表示法

18、MOV C , AC MOV C , PSW6(一)内部数据存储器与内部I/O口统一编址1、内部数据存储器的寻址方式 1) 00H1FH 寄存器寻址 4组R0 R7 Rn 直接寻址 direct 寄存器间接寻址 R0,R12) 20H 2FH 可位寻址区的寻址方式 字节寻址方式: 直接寻址 direct 寄存器间接寻址R0,R1 位寻址: bit 直接寻址3) 30H 7FH 数据缓冲区的寻址方式 字节寻址方式: 直接寻址 direct 寄存器间接寻址R0,R12、SFR 及I/O口的操作只能直接寻址3、关于A累加器有两种寻址方式:A寄存器寻址:MOV A,#23H ; PUSH ACC直接寻

19、址 POP 0E0H4、可做片内RAM的指针有: R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组 MOV R0,#34H ;R0的地址是? SETB RS1 ; 3组 MOV R0,#68H ; R0的地址是?R0/R1指向的地址范围:00H7FH(二)片外数据存储区和外部扩展的I/O口的寻址方式指针:R0,R1 8位 DPTR 16位指令助记符: MOVX 只能寄存器间接寻址MOV DPTR,#2000H MOV P2,#20HMOV A,#34H MOV R0,#00HMOVX DPTR,A MOV A,#34HMOVX R0,A

20、R0/R1指向的地址范围:00H0FFH三、MCS-51 单片机的指令系统数据传送类指令算术运算类指令逻辑运算与位移类指令控制转移类指令 布尔处理类指令(一)数据传送指令Ri间接寻址direct直接寻址A累加器Rn寄存器data立即数外部数据存储器的读写指令MOVX1、若外部扩展RAM小于等于256个单元,用Ri间接寻址进行数据传送;2、若外部扩张较大的RAM区域,须用P2口输出高8位地址,用Ri表示低8位地址; P0口分时作低8位地址线和数据线,P2口应事先预置 movx A, Ri ; (A) (Ri) i=0,1 movx A,DPTR ; (A) (DPTR) movx Ri,A; (

21、Ri) (A) movx DPTR,A ; (DPTR) (A) 程序存储器与累加器A传送数据指令MOVC指令功能:把累加器A作为变址寄存器,将其中的内容与基址寄存器(DPTR、PC)内容相加,得到程序存储器某单元地址,再把该地址单元内容送累加器A。指令指令后,不改变基址寄存器内容。MOVC A,A+DPTR ; (A) (A)+(DPTR) MOVC A,A+PC; (PC) (PC)+1数据交换指令1、整字节交换指令xch A, Rn ; (A) (Rn) n=07xch A,direct ; (A) (direct) xch A, Ri ; (A) (Ri) i=0,12、低半字节交换指

22、令xchd A,Ri ; (A 03 ) ( (Ri)03 ) 3、累加器高低半字节交换指令swap A; (A 03 ) (A 47 )将累加器A的高4位与低4位内容互换,不影响标志位堆栈操作指令(PUSH、POP) pop direct ; (direct) (sp) ,(sp) (sp)-1 push direct ; (sp) (sp)+1,(sp) (direct)占片内RAM 中连续的存储单元 复位后,系统自动将SP指针指向07H 用户可将堆栈区设在30H7FH数据缓冲区内堆栈的使用有两种方式: 一种是自动方式,即在调用子程序或断点时,断点地址自动进栈。程序返回时,断点地址再自动弹

23、回PC。这种操作无需用户干预。 另一种是指令方式,即使用专用的堆栈操作指令,执行进出栈操作,其进栈指令为PUSH,出栈指令为POP。 例如:(二)算术运算类指令不带进位的加法指令加法指令 带进位的加法指令加 1 指令二-十进制调整指令add A,Rn ; (A)-(A)+(Rn)不带进位的加法指令 add A,direct ;(A)-(A)+(direct)add A,Ri ;(A)-(A)+(Ri)add A,#data ;(A)-(A)+#dataaddc A,Rn ;(A)-(A)+(Rn)+(C)带进位的加法指令 addc A,direct ;(A)-(A)+(direct) +(C)

24、addc A,Ri ;(A)-(A)+(Ri) +(C)addc A,#data ;(A)-(A)+#data +(C)inc A ;(A)(A)+1inc Rn ;(Rn)(Rn)+1加 1 指令 inc direct ;(direct)(direct)+1inc Ri ;(Ri) )(Ri) )+1Inc DPTR ;DPTR DPTR+1二-十进制调整指令 DA A 形式上非BCD码 需要加 06H、60H、66H调整形式上是BCD码时:CY AC 调整原则 0 0 不调整 0 1 +06H 1 0 +60H 1 1 +66H dec A ;(A)(A)-1 dec Rn ;(Rn)(R

25、n)-1 dec direct ;(direct)(direct)-1 dec Ri ;(Ri) )(Ri) )-1 dec A ;(A)(A)-1 dec Rn ;(Rn)(Rn)-1 dec direct ;(direct)(direct)-1 dec Ri ;(Ri) )(Ri) )-1subb A,Rn ;(A)-(A)-(Rn)-(C)减法指令 subb A,direct ;(A)-(A)-(direct) -(C)subb A,Ri ;(A)-(A)-(Ri) -(C)subb A,#data ;(A)=源字节则(C)=0;若目的字节源字节则(C)=1。相等则继续执行 cjne A

26、,direct,rel; cjne A,#data,rel; cjne Rn,#data,rel; cjne Ri,#data,rel(6)循环转移指令 格式: djnz Rn,rel; rel:8位相对偏移量 功能:(PC)(PC)+2,(Rn) (Rn)-1 IF (Rn)0 THEN (PC)(PC)+rel ELSE go on 格式: djnz direct,rel; rel:8位相对偏移量 功能:(PC)(PC)+3, IF (direct) 0 THEN (PC)(PC)+rel ELSE go on(7)子程序调用与返回指令 绝对调用指令acall addr11;(PC) (P

27、C)+2 ,(SP) (SP)+1 (SP) (PC07) ,(SP) (SP)+1,(SP) (PC815) ,(PC010) addr11 ,(PC1115) 不变lcall addr16 返回指令ret; (PC815)(SP),(SP) (SP)-1 (PC07)(SP),(SP) (SP)-1注意:机器语言中:rel 是-128,+127内的补码汇编语言中: rel的书写形式 1、jc loop ;loop使目标地址 2、jc $-5 ; $-5 也代表目标地址3、 jc -5 ;是相对偏移量4、jc +5 ; 5、 jc 85H ; 第五章 输入输出和中断系统一、输入/输出的基本概

28、念1、接口电路的作用. I/O接口是计算机和外设进行数据交换的桥梁。(1)实现与不同外设的速度匹配。锁存作用。防止由于CPU速度快,外设慢而产生的丢数现象。(2)隔离作用。实现与外设的隔离,防止DB上的信息重叠(3)改变信号的性质。把CPU和外设之间所传信息都作为数据信息(4)实现数据传输方式和电平的变换。在CPU与外设之间进行信息类型、电平、传送接收方式变换2、(1)外设与CPU是通过接口连接。不同外设的工作速度差别很大,但大多数外设的速度很慢,无法与微秒级的CPU相媲美,通常,输出接口电路中,需设置一个数据锁存器,将CPU输出的数据先放置在数据锁存器中锁存,然后再由外设慢慢地进行处理.(2

29、)因为,外部设备和存储器都不允许长期占用数据总线,而仅允许被选中的设备在读写周期时享用数据总线。通过输入接口电路,可使每个设备的信息仅在CPU发来的“允许信号”有效期间将数据ID7ID0与总线D7D0接通,在其他时间该接口与总线相连接的线处于高阻浮空状态,起到与总线隔离的作用。(3)CPU与外设间交换的信息有状态信息、控制信息和数据信息三类,这三类不同性质的信息,必须分别传送。为了使他们相互区分开,他们必须有自己的不同端口地址。CPU寻址的是I/O端口,而不是I/O接口和笼统的外设。CPU通过I/O端口地址就可对端口中信息进行读写,来实现和外设交换信息。(4)I/O接口电路具有能把串行数据传送变换成并行数据传送,或把并行数据传送变换成串行数据传送的功能。3、I/O端口的编址方式(1)I/O端口单独编址。I/O端口地址和存储器存储单元地址分别编址,互为独立。优点:不占用存储器地址缺点:需要CPU指令集中有专用的I/O指令,并且也需要增加MREQ和IORQ两条控制线。(2)I/O端口和存储器统一编址I/O端口与内存储器采用一套地址,完全象存储器单元一样处理,使用访问存储器的指令。存储器地址范围为0000H0FEFFH,而0FF000FFFFH让给了外设端口优点:CPU对I/O端口的操作可使用全部的存储器指令,指令多使用方便;CPU不需要为I/O端口设置专门的I/O指令;存储器和I/

温馨提示

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

最新文档

评论

0/150

提交评论