第2章单片机原理与基本应用系统1

上传人:人*** 文档编号:568780136 上传时间:2024-07-26 格式:PPT 页数:64 大小:1.01MB
返回 下载 相关 举报
第2章单片机原理与基本应用系统1_第1页
第1页 / 共64页
第2章单片机原理与基本应用系统1_第2页
第2页 / 共64页
第2章单片机原理与基本应用系统1_第3页
第3页 / 共64页
第2章单片机原理与基本应用系统1_第4页
第4页 / 共64页
第2章单片机原理与基本应用系统1_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《第2章单片机原理与基本应用系统1》由会员分享,可在线阅读,更多相关《第2章单片机原理与基本应用系统1(64页珍藏版)》请在金锄头文库上搜索。

1、第第2章章 单片机原理与基本应用系统单片机原理与基本应用系统本章主要内容1、单片机的内部结构与引脚功能、单片机的内部结构与引脚功能2、单片机存储器空间配置与功能、单片机存储器空间配置与功能 3、汇编语言指令格式与内部、汇编语言指令格式与内部RAM的操作的操作 指令指令 4、单片机、单片机I/O输入输出端口结构及工作原理输入输出端口结构及工作原理 5、单片机基本应用系统、单片机基本应用系统11 常用单片机系列简介1.1 MCS-511.1 MCS-51系列系列 (1 1)MCS-51MCS-51是是IntelIntel公司在公司在19801980年生年生产的的一个高性能一个高性能单片机系列的名称

2、。属于片机系列的名称。属于这一系一系列的列的单片机有多种,如:片机有多种,如: 8051/8751/80318051/8751/8031; 8052/8752/80328052/8752/8032; 80C51/87C51/80C3180C51/87C51/80C31 80C52/87C52/80C3280C52/87C52/80C32等等 。 2(2)该系列生产工艺有两种:)该系列生产工艺有两种:CHMOS是是CMOS和和HMOS的的结结合合,既既保保持持了了HMOS高高速速度度和和高高密密度度的的特特点点,还还具具有有CMOS的的低低功功耗耗的的特特点点。在在产产品品型型号号中中凡凡带带有

3、有字字母母“C”的的即即为为CHMOS芯芯片片,CHMOS芯芯片片的的电电平平既既与与TTL电电平平兼兼容容,又又与与CMOS电平兼容。电平兼容。一一是是HMOS工工艺艺(高高密密度度短短沟沟道道MOS工工艺艺)。二二是是CHMOS工工艺艺(互互补补金金属属氧氧化化物物的的HMOS工艺)。工艺)。3(3)在功能上,该系列单片机有基本型)在功能上,该系列单片机有基本型和增强型两大类:和增强型两大类:增强型增强型:8052/8752/803280C52/87C52/80C32基本型基本型:8051/8751/803180C51/87C51/80C314(4)在在片片内内程程序序存存储储器器的的配配

4、置置上上,该该系系列列单单片片机机有有三三种种形形式式,即即掩掩膜膜ROM、EPROM和和ROMLess(无无片片内内程序存储器程序存储器)。如:。如:80C51有有4K字节的掩膜字节的掩膜ROM;87C51有有4K字节的字节的EPROM ;80C31在芯片内无程序存储器。在芯片内无程序存储器。51.2 80C511.2 80C51系列系列 Intel的的:80C31、80C51、87C51,80C32、80C52、87C52等;等; ATMEL的:的:89C51、89C52、89C2051等;等; Philips、华邦、邦、Dallas、Siemens等公司的等公司的许多多产品品 。 80C

5、51系系列列是是在在MCS-51系系列列单片片机机的的基基础上上发展展起起来来的的,许多多著著名名厂厂商商以以MCS-51系系列列的的8051为基基核核开开发出出的的大大量量的的CMOS工工艺的的单片片机机产品品,我我们常常把把其其统称称为80C51系系列列。当当前前常常用用的的80C51系系列列单片片机机主主要要产品有:品有:61.2.1 80C511.2.1 80C51系列的基本系列的基本结构构71.2.2 80C511.2.2 80C51系列的系列的应用模式用模式 一、一、总线型单片机应用模式总线型单片机应用模式总线型应用的总线型应用的“三总线三总线”模式模式 非总线型应用的非总线型应用

6、的“多多I/O”模式模式 8 二、非总线型单片机应用模式二、非总线型单片机应用模式 非总线型单片机已经将用于外部总线扩非总线型单片机已经将用于外部总线扩展用的展用的I/OI/O口线和控制功能线去掉,从而使口线和控制功能线去掉,从而使单片机的单片机的引脚数减少、体积减小引脚数减少、体积减小。对于不。对于不需进行并行外围扩展,装置的体积要求苛需进行并行外围扩展,装置的体积要求苛刻且程序量不大的系统极其适合。非总线刻且程序量不大的系统极其适合。非总线型单片机典型产品如:型单片机典型产品如: AT89C2051/AT89C4051AT89C2051/AT89C4051。91.3 80C51典型典型产品

7、品资源配置与引脚源配置与引脚1.3.1 80C51典型产品资源配置10由表可见:由表可见:(1)增强型与基本型在以下几点不同:)增强型与基本型在以下几点不同:片内片内ROM字节数:从字节数:从4K增加到增加到8K;片内片内RAM字节数:从字节数:从128增加到增加到256;定时定时/计数器从计数器从2个增加到个增加到3个个;中断源由中断源由5个增加到个增加到6个个。 11(2)片内)片内ROM的配置形式的配置形式无无ROMROM(即(即ROMLessROMLess)型,)型,应用用时要在片外要在片外扩展展程序存程序存储器,适用于研制新器,适用于研制新产品;品;片内片内掩膜掩膜ROMROM(即(

8、即MaskROMMaskROM)型,用户程序由芯)型,用户程序由芯片生产厂写入,其内容不能更改片生产厂写入,其内容不能更改; 片内片内 EPROMEPROM型,用户程序通过写入装置按规型,用户程序通过写入装置按规定的方法多次写入,通过紫外线照射定的方法多次写入,通过紫外线照射20min20min左右擦除;左右擦除; 片内片内 FlashROMFlashROM型,闪速存储器型,闪速存储器, ,用户程序可用户程序可以电写入或擦除(当前常用方式),开发过程中修以电写入或擦除(当前常用方式),开发过程中修改更容易。改更容易。 片内片内 E E2 2PROMPROM型型, , 电可擦除的可编程电可擦除的

9、可编程程序程序存储器;存储器;121.3.2 80C511.3.2 80C51的引脚封装的引脚封装总线型总线型非总线型非总线型131 1.3.3 .3.3 AT89AT89系列单片机性能及结构系列单片机性能及结构 n 该系列单片机是1998年以后出现的80C51系列单片机的一个新的分支,采用了高性能的静态8051为内核来设计,以先进的CMOS工艺制造并带有非易失性的Flash程序存储器,具有32条I/O口线,6输入4优先级的嵌套中断结构,1个串口(用于多机通信、I/O扩展或全双工串行UART),片内有振荡和时钟电路。 n AT89系列单片机的主要特性:是以8051为核心的单片机,89S51/8

10、9S52/89S54/89S58是这个系列的主要型号,分别具有4KB/8KB/16KB/32KB的Flash程序存储 器 , 89S51与 89S52/89S54/89S58分 别 具 有128B/256B的数据存储器,其存储器寻址范围为64KB ,工作频率为33MHz,计算速度更快,具有ISP(在线更新)功能,集成了看门狗功能等。 141.4 1.4 AT89S51单片机内部结构(1)一个)一个8位的位的CPU;(2)一个片内振荡器及时钟电路;一个片内振荡器及时钟电路;(3)4KB的的Flash ROM;(4)128B的内部的内部RAM(5)可扩展可扩展64KB外部外部ROM和外部和外部 R

11、AM的控制电路;的控制电路;(6)两个十六位的定时)两个十六位的定时/计数器;计数器;(7)26个特殊功能寄存器(双数据个特殊功能寄存器(双数据 指针);指针);(8)4个个8位的并行口;位的并行口;(9)一个全双工的串行口;)一个全双工的串行口;(10)5个中断源,两个外部中断,个中断源,两个外部中断, 三个内部中断;三个内部中断;(11)内部硬件看门狗电路;)内部硬件看门狗电路;(12)一个)一个SPI串行接口,用于芯片串行接口,用于芯片 的在线系统编程(的在线系统编程(ISP)。)。15 a、AT89S51的微处理器(的微处理器(CPU)(1)运算器(算术运算逻辑单元)运算器(算术运算逻

12、辑单元ALU)累加器累加器ACC ;寄存器寄存器B ;程序状态字寄存器程序状态字寄存器PSW 。(2)控制器)控制器程序计数器程序计数器PC ;指令寄存器指令寄存器IR ;指令译码器指令译码器ID;定时与控制逻辑电路定时与控制逻辑电路PLA。16b、 AT89S51的片内存储器的片内存储器P29 在物理上设计成在物理上设计成程序存储器程序存储器和和数据存储器数据存储器两个两个独立的空间独立的空间(称为(称为哈佛结构哈佛结构):): 内部内部ROM容量容量4K字节字节 范围是:范围是:0000H0FFFH 内部内部RAM容量容量128字节字节 范围是:范围是:00H7FH17c、 AT89S51

13、的的I/O口及功能单元口及功能单元n四个四个8位的并行口,即位的并行口,即P0P3。它们均为。它们均为双向口,既可作为输入,又可作为输出。双向口,既可作为输入,又可作为输出。每个口各有每个口各有8条条I/O线线; n有一个全双工的串行口有一个全双工的串行口(利用(利用P3口的两口的两个引脚个引脚P3.0和和P3.1););n有有2个个16位的定时位的定时/计数器计数器 ;n有有1套完善的中断系统套完善的中断系统,5个中断源。个中断源。 n一个一个SPI串行接口,用于芯片的在线系统串行接口,用于芯片的在线系统编程(编程(ISP) 。 18d d、 AT89S51(8051)的特殊功能寄存器(的特

14、殊功能寄存器(SFRSFR)P20n内部有内部有SPSP,DPTRDPTR(可分成(可分成DPHDPH、DPLDPL两个两个8 8位位寄存器),寄存器),PCONPCON,IEIE,IPIP等等26(21)26(21)个特个特殊功能寄存器单元,殊功能寄存器单元,它们同内部它们同内部RAMRAM的的128128个个字节统一编址,地址范围是字节统一编址,地址范围是80H80HFFHFFH。这些。这些SFRSFR只用到了只用到了80H80HFFHFFH中的中的26(21)26(21)个字节单元,个字节单元,且这些单元是离散分布的。且这些单元是离散分布的。191.4.1.4.1、电源 VCC(P40)

15、芯片电源,接+5V。 VSS(P20) 接电源地。 AT89S51单片机引脚功能P14201.4.1.4.2、时钟XTAL1(P19)晶体振荡电路的反相器 输入端XTAL2(P18)晶体振荡电路的反相器 输出端。 使用内部振荡电路时,该引脚外接石英晶使用内部振荡电路时,该引脚外接石英晶体和补偿电容。使用外部振荡输入时从体和补偿电容。使用外部振荡输入时从XTAL2输入,此时输入,此时XTAL1需接地。需接地。21 AT89S51的时钟产生方式的时钟产生方式(P24)内时钟方式 如图所示,XTAL1接地,XTAL2接外部振荡器。 外时钟方式 如上面左图所示:XTAL1接地, XTAL2接外部振荡器

16、。由于XTAL2端的电平不是TTL电平,故接一个上拉电阻。外部振荡器的频率应低于24/33MHz。如上面右图所示: XTAL1接外部振荡器, XTAL2悬空悬空22 1. 机器周期和指令周期机器周期和指令周期 (1)时时钟钟周周期期: 也也称称振振荡荡周周期期, 是是指指为为单单片片机机提提供供时时钟钟脉冲信号的振荡源的振荡脉冲的周期,又称脉冲信号的振荡源的振荡脉冲的周期,又称节拍节拍(P1)。 (2)状状态态周周期期: 每每个个状状态态周周期期为为时时钟钟周周期期的的 2 倍倍(P1,P2), 是振荡周期经二分频后得到的。是振荡周期经二分频后得到的。 (3)机机器器周周期期: 一一个个机机器

17、器周周期期包包含含 6 个个状状态态周周期期(S1S6), 也也就就是是 12 个个时时钟钟周周期期。 在在一一个个机机器器周周期期内内, CPU可以完成一个独立的操作。可以完成一个独立的操作。 (4) 指令周期指令周期: 它是指它是指CPU完成一条操作所需的全部完成一条操作所需的全部时间。时间。 每条指令执行时间都是有一个或每条指令执行时间都是有一个或几个机器周期组成。几个机器周期组成。MCS - 51 系列单片机中系列单片机中, 有单周期指令、双周期指令有单周期指令、双周期指令 和四周期指令。和四周期指令。 单片机工作的时序概念单片机工作的时序概念23思考题:若采用12MHZ晶振,各周期是

18、多少?n振荡周期1/fosc=1/12MHZ=0.0833usn 24AT89S51的时钟信号的时钟信号一个一个机器周期机器周期包含包含12个晶荡周期或个晶荡周期或6个时钟周期个时钟周期 指令长度指令长度13个字节,指令的执行时间称作个字节,指令的执行时间称作指令周期指令周期 (单、双、四机器周期)25 AT89S51的典型时序的典型时序 各指令的微操作在时间上有严格的次序,这各指令的微操作在时间上有严格的次序,这种种微操作的时间次序微操作的时间次序我们称作我们称作时序。时序。 单字节指令单字节指令 双字节指令双字节指令a、单周期指令时序、单周期指令时序26 2个机器周期中个机器周期中ALE信

19、号有效信号有效4次(即发生了次(即发生了4次读操作次读操作码的操作),后码的操作),后3次作无效。次作无效。b、单字节、单字节双双周期指令时序周期指令时序271.4.3 控制 控制引脚有4个,先学习其中的两个。 (1)RST/VPD( 9脚)复位/备用电源 RST复位功能是单片机正常工作必不可少的,因为复位可以使单片机从程序的开头运行,使单片机按照人们设计的程序运行,在单片机系统上电开始工作,或单片机系统由于外界干扰偏离正常运行,都需要复位。AT89S51单片机是高电平复位,只要在该引脚上一段时间(两个机器周期以上)的高电平,单片机就复位。在正常运行程序时该引脚为低电平。 VPD功能是在VCC

20、掉电情况下,该引脚接备用电源,向片内的RAM供电,使RAM中的数据不丢失。 28a、复位电路、复位电路(P38)复位复位目的是目的是使单片机使单片机或系统中的其它部件或系统中的其它部件处于某种处于某种确定的初始状态。确定的初始状态。 上电复位电路上电复位电路 按键与上电复位按键与上电复位 29b、单片机复位后的状态、单片机复位后的状态PC=0000H,所以程序从,所以程序从0000H地址单元开始执行地址单元开始执行;启动后,片内启动后,片内RAM为随机值,运行中的复位操作不为随机值,运行中的复位操作不改变片内改变片内RAM的内容的内容 ;特殊功能寄存器复位后的状态是确定的特殊功能寄存器复位后的

21、状态是确定的 :nP0P3=FFH,各口可用于输出,也可用于输入;,各口可用于输出,也可用于输入;nSP=07H,第一个入栈内容将写入,第一个入栈内容将写入08H单元;单元;nIP、IE和和PCON的的有效位为有效位为0,各中断源处于低优,各中断源处于低优先级且均被关断、串行通讯的波特率不加倍;先级且均被关断、串行通讯的波特率不加倍;nPSW=00H,当前工作寄存器为,当前工作寄存器为0组。组。30(2)EA / VPP (31脚)内外ROM选择 在通常的应用中EA功能是作为内部和外部ROM的选择端。 当EA=1,CPU从芯片内部的ROM中取指令运行,但超过4KB范围的程序,也从外部扩展的RO

22、M中取得。反之当EA=0时,只从芯片外部扩展的ROM中取指令运行。在绝大多数的应用中,4KB空间范围足够存放程序,一般都选择内部ROM,将EA接高电平。 VPP功能是在我们要把程序下载到内部ROM中才用到的功能,只有设计制造编程器时考虑,一般情况用不到。 31() ALE/PROG (30脚)地址锁存允许/编程脉冲输入信号 当CPU访问片外存储器时,ALE用于锁存P0口输出的低8位地址信息到片外地址锁存器。之后,P0口作地址/数据复用口。 P0口的信息究竟是地址还是数据完全由ALE来判别,ALE高电平期间,P0口出现的是地址信息,ALE下降沿到来时,P0口上的地址信息被锁存,在ALE低电平期间

23、P0口上出现指令和数据信息。 对单片机内部程序存储器编程时为输入脚 321.4.1.4.4 4 I/O口 AT89S51单片机有4个8位的并行口,分别称为P0口、P1口、P2口和P3口,共32个引脚 。 单片机就是通过这些口线对外部电路进行控制和检测。33na a 千字节(千字节(KBKB) 1KB = 1024B,2KB = 2048B,4KB = 4096B,8KB = 8192B 。 如果一个存储器中共有1024个存储单元,则该存储器的容量就是:1KB 。如果一个存储器中共有65536个存储单元,则该存储器的容量就是:64KB nb b 兆字节(兆字节(MBMB) 1MB = 1024K

24、B =1048576B。 如果一个存储器中共有1048576个存储单元,则该存储器的容量就是:1MB。1.4.5 几个基本概念34nc c 吉字节(吉字节(GBGB)和()和(TBTB) GB和TB在硬盘上使用。 总线(总线(Bus) 在微处理机中引入了总线的概念,各个器件共同享用这些连线 。na AB a AB 地址总线地址总线 CPU输出地址码的总线,称为地址总线。 地址总线是单向的。用它来存储器中各存储单元的地址和I/O设备地址。nb DB b DB 数据总线数据总线 CPU输出数据的总线,称为数据总线。 数据总线是双向的。主要用于传送数据和指令。通过它,可实现CPU、存储器、 I/O设

25、备之间进行数据交换。35nd CB d CB 控制总线控制总线 CPU输出控制信号的总线,称为控制总线。 控制总线用于传送各种控制信息,以使计算机各部分统一协调工作。n数据数据/ /地址地址 之所以将这二者放在一起,是因为这三者的本质都是一样的数字,或者说都是一串“0”和“1”组成的序列。换言之,地址、指令也都是数据。 na DATA a DATA 数据数据 这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: (1)地址(如:MOV DPTR,#1000H) (2)方式字或控制字(如:MOV TMOD,#3)36 (3)常数(如:MOV TH0

26、,#10H) (4)实际输出值(如:P1口接彩灯全亮,则执行指令“MOV P1,#0FFH”,要灯全暗,则执行指令“MOV P1,#00H”)。nb b ADDRESSADDRESS 地址地址 是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的 。37实例实例1 1n要用单片机的(1)脚去点亮一只发光二极管LED(一直发光)。 na a 电路原理图电路原理图38nb b 编程思路编程思路n(1)脚的名字 编程要用到脚的名字 叫“P1.0”。记住它,类似这样的名字以后还有很多。n(

27、2)指 令 名字有了,但又怎样让它变“高”或变“低”呢?叫人做事,说一声就可以,这叫发布命令。要计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。n(3)程 序 要P1.0输出高电平,则指令应为:SETB P1.0; 要P1.0输出低电平,则指令应为:CLR P1.0。 让某个引脚输出低电平的指令是: CLR 。让某个引脚输出高电平的指令是: SETB。39n 则程序如下:n(4)代 码 计算机看不懂SETB、CLR之类的指令,得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西 数字。 得把“CLR P1.0”变为:C2H、90H ,至于为

28、什么是这两个数字,这也是由51芯片的设计者INTEL规定的。 这样的代码有两种方式可以得到:人工查表和机器编译。 CLR P1.0CLR P1.0 C2H、90H 40n(5)写 片 通过编程器可将“C2H、90H”这样的代码写入到单片机中,然后将单片机放入到应用电路板中方可运行。SUPERPRO L+编程器缓冲区界面如下:412、单片机存储空间配置(P17) 存储器就是用来存放数据的地方。它是利用电平存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的。也就是说,它存放的实际上是的高低来存放数据的。也就是说,它存放的实际上是电平的高、低,而不是我们所习惯认为的电平的高、低,而不是我们

29、所习惯认为的1234这样的这样的数字。数字。 一个存储器单元就似一个个的小抽屉,一个小抽一个存储器单元就似一个个的小抽屉,一个小抽屉里有八个小格子,每个小格子就是用来存放屉里有八个小格子,每个小格子就是用来存放电荷电荷的,的,电荷通过与它相连的电荷通过与它相连的电线电线传进来或释放掉。存储器中传进来或释放掉。存储器中的每个小抽屉就是一个存放数据的地方,称之为一个的每个小抽屉就是一个存放数据的地方,称之为一个“存储单元存储单元”。 要在一个存储单元中放入数据要在一个存储单元中放入数据12,即放入:,即放入:00001100。可见,只要把第二号和第三号小格子里。可见,只要把第二号和第三号小格子里存

30、满电荷,而其它小格子里的电荷给放掉就行了。存满电荷,而其它小格子里的电荷给放掉就行了。42AT89S51存储器存储器采用哈佛型结构采用哈佛型结构可以分成两大类:可以分成两大类: RAM,CPU在运行时能随时进行数据的写入和在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。结果或用作堆栈。 ROM是一种写入信息后不易改写的存储器。断是一种写入信息后不易改写的存储器。断电后,电后,ROM中的信息保留不变。用来存放固定的中的信息保留不

31、变。用来存放固定的程序或数据,如系统监控程序、常数表格等。程序或数据,如系统监控程序、常数表格等。 43内部ROM(4KB)EA=1外部ROM(4KB)EA=0外部ROM(60KB)内部RAM128BSFR(26个)外部RAM(64KB)0000H0000H0000H0FFFH0FFFH1000HFFFFHFFFFHFFH00H7FH80HMOVC指令操作指令操作MOV指令操作指令操作MOVX指令操作指令操作ROM地址空间地址空间RAM地址空间地址空间442.2.1 程序存储器(ROM) 8051/ AT89S51的程序存储器空间,片内ROM/Flash ROM为4KB,地址为0000H0FF

32、FH,片外最多可扩展至64KB的ROM/Flash ROM,地址1000HFFFFH,片内外是统一编址的。 当31引脚接高电平时, AT89S51的PC在0000H0FFFH范围内执行片内ROM中的程序;当PC超过0FFFH时,就自动转向片外ROM取指令。当接低电平时, AT89S51片内ROM不起作用,CPU只能从片外ROM/EPROM中取指令. 注:不管是内部的还是外部的注:不管是内部的还是外部的ROM,开头的开头的0003H002AH空间地址是中断源的入口地址区,是空间地址是中断源的入口地址区,是专用单元,一般情况下用户不能用来存放其它程序。专用单元,一般情况下用户不能用来存放其它程序。

33、 45n 单片机上电复位后,程序计数器指针PC为0000H,故CPU总是从0000H开始执行程序若用户编写的主程序或初始化程序不从此地址开始,则应在0000H单元内存放一条绝对跳转指令,将PC转向主程序或初始化程序的入口地址。 n CPU是根据PC(程序计数器)值从ROM中取指令来执行的。CPU每从ROM中读取一个字节,自动执行(PC)+1PC,即PC指向下一个地址空间,一般情况下CPU是按ROM地址空间顺序从小到大依次执行。只有执行的指令是转移类指令,才根据转移类指令所指示的新地址,调整PC值,然后根据新的PC值从对应的地址空间中取指令来执行。n 当调用子程序或中断发生时,PC值也会改变。4

34、62.2 内部数据存储器(内RAM) P19AT89S51单片机内部有128B字节划分为三部分:工作寄存器区、位寻址区和数据缓冲区。 CyACF0RS1 RS0 OVF1P0区区1区区2区区3区区位寻址位寻址区区数据数据缓冲缓冲区区工作寄存器区工作寄存器区8位整体操作位整体操作位寻址区位寻址区8位整体操作、位操作位整体操作、位操作堆栈与数据缓冲区堆栈与数据缓冲区8位整体操作位整体操作0007H080FH1017H181FH202FH位地址位地址D7D0PSW07H 06H 05H 04H03H 02H 01H 00HD7D020H(字节地址)字节地址)(R0R7)307FH47 在任一时刻只有

35、一个区作为当前的工作寄存器区,相应的空间单元作为工作寄存器使用,表示R0R7。不是当前工作寄存器区的可以作为一般的RAM空间使用。操作方式:8位整体操作。 (1)工作寄存器区工作寄存器区 低端低端32个字节分成个字节分成4个工作寄存器组,每组个工作寄存器组,每组8个单元。个单元。当当前工作寄存器组的机制前工作寄存器组的机制便于快速现场保护。便于快速现场保护。 PSW的的RS1、RS0 决定当前工作寄存器组号决定当前工作寄存器组号 n寄存器0组 :地址00H07H;寄存器1组 :地址08H0FH;n寄存器2组 :地址10H17H;寄存器3组 :地址18H1FH。48(2)位寻址区 20H2FH共

36、计16个单元为位寻址区,每个单元的8位可进行位操作,有位的置1、清0、取反以及判断等操作等指令 。 位地址的范围:007FH。(要注意和内RAM空间单元地址的区别) 位寻址区空间单元操作的有两种方法,即可以象其它RAM空间一样进行8位整体操作,也可以通过位地址对这些空间单元的某一位进行操作。49字节地址位 地 址D7D6D5D4D3D2D1D02FH7FH7EH7DH7CH7BH7AH79H78H2EH77H76H75H74H73H72H71H70H2DH6FH6EH6DH6CH6BH6AH69H68H2CH67H66H65H64H63H62H61H60H2BH5FH5EH5DH5CH5BH5

37、AH59H58H2AH57H56H55H54H53H52H51H50H29H4FH4EH4DH4CH4BH4AH49H48H28H47H46H45H44H43H42H41H40H27H3FH3EH3DH3CH3BH3AH39H38H26H37H36H35H34H33H32H31H30H25H2FH2EH2DH2CH2BH2AH29H28H24H27H26H25H24H23H22H21H20H23H1FH1EH1DH1CH1BH1AH19H18H22H17H16H15H14H13H12H11H10H21H0FH0EH0DH0CH0BH0AH09H08H20H07H06H05H04H03H02H0

38、1H00H位寻址区的位地址映象表位寻址区的位地址映象表(表表2-5)50位寻址区的位地址形式有两种:位地址和位编号。位地址07H 06H 05H 04H03H 02H 01H 00HD7D020H(字节地址) 如如20H单元的单元的8个位个位位地址为:位地址为:00H07H位编号为:位编号为:20H.020H.7 它们的含义是一致的,都表示它们的含义是一致的,都表示20H单元的位地址,单元的位地址,在应用中可以互换,位编号更便于记忆。在应用中可以互换,位编号更便于记忆。51(3)堆栈与数据缓冲区)堆栈与数据缓冲区 30H7FH共共80个字节个字节为数据缓冲区,用为数据缓冲区,用于存放数据和中间

39、结果,起到数据缓冲的作用,于存放数据和中间结果,起到数据缓冲的作用,这些空间数据的操作是这些空间数据的操作是8位的整体操作位的整体操作 。 在实际应用中,常需在在实际应用中,常需在RAM区设置堆栈。区设置堆栈。AT89S51的的堆栈一般设在堆栈一般设在30H7FH的范围的范围内内。栈顶的位置由。栈顶的位置由SP寄存器指示。寄存器指示。复位时复位时SP的初值为的初值为07H,在系统初始化时可以重,在系统初始化时可以重新设置。新设置。52(3) 特殊功能寄存器(特殊功能寄存器(SFRSFR) 单片机的状态字、并行口、串行口、定时器和中断单片机的状态字、并行口、串行口、定时器和中断系统的寄存器等,是

40、一些有专门用途的寄存器,称为特系统的寄存器等,是一些有专门用途的寄存器,称为特殊功能寄存器殊功能寄存器SFRSFR,离散地分布在离散地分布在80H80HFFHFFH地址范围内。地址范围内。 SFRSFR操作同内部操作同内部RAMRAM的操作,其中字节地址能被的操作,其中字节地址能被8 8整整除的特殊功能器,它们的每一位也有自己的位地址,也除的特殊功能器,它们的每一位也有自己的位地址,也可以进行位操作。字节地址不能被可以进行位操作。字节地址不能被8 8整除的特殊功能寄整除的特殊功能寄存器,只能存器,只能8 8位的整体操作。位的整体操作。8 8位整体操作既可以对它们位整体操作既可以对它们的字节地址

41、操作,也可以对它们的符号(名称)操作。的字节地址操作,也可以对它们的符号(名称)操作。53a、与运算器相关的寄存器(、与运算器相关的寄存器(3个)个)n累加器累加器ACC,8位。累加器位。累加器ACC是单片机最常用的寄是单片机最常用的寄存器,许多指令都用到累加器,特别是算术运算都需存器,许多指令都用到累加器,特别是算术运算都需要用到要用到,用于向用于向ALU提供操作数,许多运算的结果也存提供操作数,许多运算的结果也存放在累加器中放在累加器中,在指令中在指令中ACC简写为简写为A ;n寄存器寄存器B,8位。主要用于乘、除法运算。也位。主要用于乘、除法运算。也可以作为可以作为RAM的一个单元使用;

42、的一个单元使用;54程序状态字寄存器程序状态字寄存器PSW , PSW反映的程序反映的程序运行的状态,其结构和含义如下表所示。运行的状态,其结构和含义如下表所示。 位编号PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0位地址D7HD6HD5HD4HD3HD2HD1HD0H位定义CyACF0RS1RS0OVF1PCy进位标志。进位标志。 累加器累加器A在执行加减法运算中,如果最高位有进位或借位,在执行加减法运算中,如果最高位有进位或借位,Cy置置1,否则清,否则清0,用于无符号数运算。另,用于无符号数运算。另Cy还是位操作累还是位操作累加器,在指令中简写为加器,在

43、指令中简写为C。 例:例:78H+97H(01111000 + 10010111)55OV溢出标志。溢出标志。 累加器累加器A在执行加减法运算中,如果最高位和次在执行加减法运算中,如果最高位和次高位只有一个进位或借位,高位只有一个进位或借位,OV置置1,否则清,否则清0,用于,用于有符号数的运算。有符号数的运算。AC进位标志辅助。进位标志辅助。 累加器执行加法运算时,低累加器执行加法运算时,低4位向高位向高4位进位时置位进位时置1,否则清,否则清0。BCD码加法运算调整标志。码加法运算调整标志。例:例:57H+3AH(01010111 + 00111010)P奇偶标志。奇偶标志。 表示累加器表

44、示累加器A中中“1”的个数的奇偶性。如果的个数的奇偶性。如果A中中“1”的个数为奇数,则的个数为奇数,则P置置1,否则清,否则清0 。例:某运算结果是例:某运算结果是78H(01111000),显然),显然1的个数为的个数为偶数,所以偶数,所以P=0。56F0、F1用户标志。用户标志。与位寻址区的位地址功能相同与位寻址区的位地址功能相同,由我们(编程人员)由我们(编程人员)决定什么时候用,什么时候不用。决定什么时候用,什么时候不用。RS1、RS0工作寄存器区选择位。工作寄存器区选择位。 工作寄存器区有工作寄存器区有4个,每次只有一个区当作工作寄个,每次只有一个区当作工作寄存器用,通过存器用,通

45、过RS1、RS0可以选择它们中的一个。可以选择它们中的一个。 RS1、RS0=000区(区(00H07H) RS1、RS0=011区(区(08H0FH) RS1、RS0=102区(区(10H17H) RS1、RS0=113区(区(18H1FH)57例例2-1 设设A中有下面的加法运算,分析中有下面的加法运算,分析PSW中有关中有关位的值,及其表示的含义。位的值,及其表示的含义。 0 1 1 0 0 1 1 1 + 0 0 1 0 1 0 0 1 1 0 0 1 0 0 0 0 最高位没有向更高位进位,因此最高位没有向更高位进位,因此Cy=0,表明如表明如果我们把这两个数看作无符号数,它们的和没

46、有超果我们把这两个数看作无符号数,它们的和没有超过过256。 次高位向最高位进位,最高位没有进位,因此次高位向最高位进位,最高位没有进位,因此OV=1,表明如果我们把这两个数看作有符号数,它表明如果我们把这两个数看作有符号数,它们的和超出了范围,显然两个正数相加,不可能得们的和超出了范围,显然两个正数相加,不可能得到负数。到负数。 58 低低4位向高位向高4位进位,位进位,AC=1,表明如果把这表明如果把这两个数看作是两个数看作是BCD码表示的数,需要在低码表示的数,需要在低4位位加加6调整才能得到结果仍是调整才能得到结果仍是BCD码的正确结果。码的正确结果。显然看作显然看作BCD码,两个分别

47、是码,两个分别是67和和29,相加后,相加后得到得到96,低,低4位加位加6可得可得96的的BCD码。码。 加法运算的结果是放在加法运算的结果是放在A中的,中的,8位中共有位中共有2个个“1”,因此,因此P=0,表明此时累加器中的数表明此时累加器中的数据满足偶校验。据满足偶校验。 59b、指针类寄存器(、指针类寄存器(3个)个)堆栈指针堆栈指针SP,8位。它总是指向栈顶。位。它总是指向栈顶。 堆栈操作遵循堆栈操作遵循“后进先出后进先出”的原则,入栈操作时,的原则,入栈操作时,SP先加先加1,数据再压入,数据再压入SP指向的单元。出栈操作指向的单元。出栈操作时,时, 先将先将SP指向的单元的数据

48、弹出,然后,指向的单元的数据弹出,然后,SP再再减减1,这时,这时SP指向的单元是新的栈顶。可见,指向的单元是新的栈顶。可见,80C51单片机的堆栈区是向地址增大的方向生成的。单片机的堆栈区是向地址增大的方向生成的。60数据指针数据指针DPTR0 (82H(82H、 83H)83H) 、 DPTR1 (84H(84H、 85H)85H) AT89S51单片机内部有两个数据指针(都是单片机内部有两个数据指针(都是16位),但在某一时刻只能使用其中一个作为数位),但在某一时刻只能使用其中一个作为数据指针据指针DPTR,由辅助寄存器由辅助寄存器1 (AUXR1 (A2H) )的的DPS (A2H.0

49、)位控制,位控制,DPS=0,选择选择DPTR0的两个的两个8位的寄存器构成数据指针,位的寄存器构成数据指针,DPS=1,选择选择DPTR1的两个的两个8位的寄存器构成数据指针。统一位的寄存器构成数据指针。统一用用DPH表示表示DPTR的高的高8 位,位,DPL表示低表示低8位。可位。可以十六位整体操作,也可以分开按以十六位整体操作,也可以分开按8位操作。位操作。 在实际的应用中在实际的应用中DPTR一般用来存放一般用来存放ROM空空间或外部间或外部RAM空间的地址。空间的地址。 61c、与口相关的寄存器(、与口相关的寄存器(7个)个)n并行并行I/O口口P0、P1、P2、P3,均为,均为8位

50、;位;n串行口数据缓冲器串行口数据缓冲器SBUF; 串行口控制寄存器串行口控制寄存器SCON; 串行通讯波特率倍增寄存器串行通讯波特率倍增寄存器PCON(一些位(一些位还与电源控制相关,所以又称为电源控制寄还与电源控制相关,所以又称为电源控制寄存器)。存器)。62d、与中断相关的寄存器(、与中断相关的寄存器(2个)个)n中断允许控制寄存器中断允许控制寄存器IE;n中断优先级控制寄存器中断优先级控制寄存器IP。 63e、与定时器、与定时器/计数器相关的寄存器(计数器相关的寄存器(6个)个)n定时定时/计数器计数器T0的两个的两个8位计数初值寄存器位计数初值寄存器TH0、TL0,它们可以构成,它们可以构成16位的计数器,位的计数器,TH0存放高存放高8位,位,TL0存放低存放低8位;位;n定时定时/计数器计数器T1的两个的两个8位计数初值寄存器位计数初值寄存器TH1、TL1,它们可以构成,它们可以构成16位的计数器,位的计数器,TH1存放高存放高8位,位,TL1存放低存放低8位;位;n定时定时/计数器的工作方式寄存器计数器的工作方式寄存器TMOD;n定时定时/计数器的控制寄存器计数器的控制寄存器TCON。64

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号