单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统

上传人:w****i 文档编号:92486474 上传时间:2019-07-10 格式:PPS 页数:69 大小:1.16MB
返回 下载 相关 举报
单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统_第1页
第1页 / 共69页
单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统_第2页
第2页 / 共69页
单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统_第3页
第3页 / 共69页
单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统_第4页
第4页 / 共69页
单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统》由会员分享,可在线阅读,更多相关《单片机实用教程 教学课件 ppt 作者 徐江海 第2章 AT89S51单片机原理与基本应用系统(69页珍藏版)》请在金锄头文库上搜索。

1、第2章 AT89S51单片机原理与基本应用系统,本章主要内容,一、AT89S51单片机内部结构,(1)一个8位的CPU; (2)一个片内振荡器及时钟电路; (3)4KB的Flash ROM; (4)128B的内部RAM (5)可扩展64KB外部ROM和外部 RAM的控制电路; (6)两个十六位的定时/计数器; (7)26个特殊功能寄存器(双数据 指针); (8)4个8位的并行口; (9)一个全双工的串行口; (10)5个中断源,两个外部中断, 三个内部中断; (11)内部硬件看门狗电路; (12)一个SPI串行接口,用于芯片 的在系统编程(ISP)。,1、电源 VCC(P40)芯片电源,接+5

2、V。 VSS(P20) 接电源地。,二、AT89S51单片机引脚功能,2、时钟 XTAL1(P19)晶体振荡电路的反相器 输入端 XTAL2(P18)晶体振荡电路的反相器 输出端。,使用内部振荡电路时,该引脚外接石英晶体和补偿电容。使用外部振荡输入时从XTAL2输入,此时XTAL1需接地。,3、控制 控制引脚有4个,先学习其中的两个。 (1)RST/VPD复位/备用电源 RST复位功能是单片机正常工作必不可少的,因为复位可以使单片机从程序的开头运行,使单片机按照人们设计的程序运行,在单片机系统上电开始工作,或单片机系统由于外界干扰偏离正常运行,都需要复位。AT89S51单片机是高电平复位,只要

3、在该引脚上一段时间(两个机器周期以上)的高电平,单片机就复位。在正常运行程序时该引脚为低电平。 VPD功能是在VCC掉电情况下,该引脚接备用电源,向片内的RAM供电,使RAM中的数据不丢失。,3、控制 (2)EA/VPP内外ROM选择/EPROM编程电源 在通常的应用中EA功能是作为内部和外部ROM的选择端。当EA=1,CPU从芯片内部的ROM中取指令运行,但超过4KB范围的程序,也从外部扩展的ROM中取得。反之当EA=0时,只从芯片外部扩展的ROM中取指令运行。在绝大多数的应用中,4KB空间范围足够存放程序,一般都选择内部ROM,将EA接高电平。 VPP功能是在我们要把程序下载到内部ROM中

4、才用到的功能,只有设计制造编程器时考虑,一般情况用不到。,4、I/O口 AT89S51单片机有4个8位的并行口,分别称为P0口、P1口、P2口和P3口,共32个引脚 。 单片机就是通过这些口线对外部电路进行控制和检测。它们的详细结构原理和功能在本章第三节中介绍。,三、AT89S51单片机存储空间配置,AT89S51单片机存储器结构采用的是哈佛型结构,程序存储器(ROM)和数据存储器(RAM)是分开的,有各自的寻址系统和控制信号,分别用不同的指令操作。ROM用来存放我们编写的程序和常数表格。数据存储器用来存放程序运行的数据和结果。ROM和RAM都分为内部和外部。,内部 ROM (4KB) EA=

5、1,外部 ROM (4KB) EA=0,外部 ROM (60KB),内部 RAM 128B,SFR (21个),外部 RAM (64KB),0000H,0000H,0000H,0FFFH,0FFFH,1000H,FFFFH,FFFFH,FFH,00H,7FH,80H,MOVC指令操作,MOV指令操作,MOVX指令操作,ROM地址空间,RAM地址空间,1、程序存储器(ROM) 不管是内部的还是外部的ROM,开头的0003H002AH空间地址是中断源的入口地址区,是专用单元,一般情况下用户不能用来存放其它程序。 CPU是根据PC(程序计数器)值从ROM中取指令来执行的。CPU每从ROM中读取一个字

6、节,自动执行(PC)+1PC,即PC指向下一个地址空间,一般情况下CPU是按ROM地址空间顺序从小到大依次执行。只有执行的指令是转移类指令,才根据转移类指令所指示的新地址,调整PC值,然后根据新的PC值从对应的地址空间中取指令来执行。 当调用子程序或中断发生时,PC值也会改变。,2、内部数据存储器(内RAM) AT89S51单片机内部有128B字节划分为三部分:工作寄存器区、位寻址区和数据缓冲区。,0区,1区,2区,3区,位寻址 区,数据 缓冲 区,工作寄存器区 8位整体操作,位寻址区 8位整体操作、位操作,堆栈与数据缓冲区 8位整体操作,0007H,080FH,1017H,181FH,202

7、FH,位地址,D7,D0,PSW,D7,D0,20H(字节地址),(R0R7),307FH,(1)工作寄存器区 从00H1FH共32个单元为工作寄存器区,每8个一组,分为4个区,依次为: 0区(00H07H) 1区(08H0FH) 2区(10H17H) 3区(18H1FH) 在任一时刻只有一个区作为当前的工作寄存器区,相应的空间单元作为工作寄存器使用。工作寄存器区的选择可通过程序状态字PSW中的D4、D3位实现。不是当前工作寄存器区的可以作为一般的RAM空间使用。 操作方式:8位整体操作。,(2)位寻址区 20H2FH共计16个单元为位寻址区,每个单元的8位又位操作,有位的置1、清0、取反以及

8、判断操作有自己的位地址 。 位地址的范围:007FH。(要注意和内RAM空间单元地址的区别) 位寻址区空间单元操作的有两种方法,即可以象其它RAM空间一样进行8位整体操作,也可以通过位地址对这些空间单元的某一。,位寻址区的位地址映象表,位寻址区的位地址形式有两种:位地址和位编号。,位地址,D7,D0,20H(字节地址),如20H单元的8个位 位地址为:00H07H 位编号为:20H.020H.7 它们的含义是一致的,都表示20H单元的位地址,在应用中可以互换,位编号更便于记忆。,(3)堆栈与数据缓冲区 30H7FH为数据缓冲区,用于存放数据和中间结果,起到数据缓冲的作用,这些空间数据的操作是8

9、位的整体操作 。,3、特殊功能寄存器(SFR) 51系列单片机的状态字、并行口、串行口、定时器和中断系统的寄存器等,是一些有专门用途的寄存器,称为特殊功能寄存器SFR,离散地分布在80HFFH地址范围内。 SFR操作同内部RAM的操作,其中字节地址能被8整除的特殊功能器,它们的每一位也有自己的位地址,也可以进行位操作。字节地址不能被8整除的特殊功能寄存器,只能8位的整体操作。8位整体操作既可以对它们的字节地址操作,也可以对它们的符号(名称)操作。,几个常用的特殊功能寄存器: (1)累加器ACC 累加器ACC是51系列单片机最常用的寄存器,许多指令都用到累加器,特别是算术运算都需要用到,在指令中

10、ACC简写为A。 (2)寄存器B 乘除法指令都要用到寄存器B,B也可以作为一般的寄存器使用。,(3)程序状态字寄存器PSW , PSW反映的程序运行的状态,其结构和含义如下表所示。,Cy进位标志。 累加器A在执行加减法运算中,如果最高位有进位或借位,Cy置1,否则清0,用于无符号数运算。另Cy还是位操作累加器,在指令中简写为C。,OV溢出标志。 累加器A在执行加减法运算中,如果最高位和次高位只有一个进位或借位,OV置1,否则清0,用于有符号数的运算。 AC进位标志辅助。 累加器执行加法运算时,低4位向高4位进位时置1,否则清0。BCD码加法运算调整标志。 P奇偶标志。 表示累加器A中“1”的个

11、数的奇偶性。如果A中“1”的个数为奇数,则P置1,否则清0 。,F0、F1用户标志。 与位寻址区的位地址功能相同。 RS1、RS0工作寄存器区选择位。 工作寄存器区有4个,每次只有一个区当作工作寄存器用,通过RS1、RS0可以选择它们中的一个。 RS1、RS0=000区(00H07H) RS1、RS0=011区(08H0FH) RS1、RS0=102区(10H17H) RS1、RS0=113区(18H1FH),例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 最高位没有

12、向更高位进位,因此Cy=0,表明如果我们把这两个数看作无符号数,它们的和没有超过256。 次高位向最高位进位,最高位没有进位,因此OV=1,表明如果我们把这两个数看作有符号数,它们的和超出了范围,显然两个正数相加,不可能得到负数。,低4位向高4位进位,AC=1,表明如果把这两个数看作是BCD码表示的数,需要在低4位加6调整才能得到结果仍是BCD码的正确结果。显然看作BCD码,两个分别是67和29,相加后得到96,低4位加6可得96的BCD码。 加法运算的结果是放在A中的,8位中共有2个“1”,因此P=0,表明此时累加器中的数据满足偶校验。,(4)数据指针DPTR0、DPTR1。 AT89S51

13、单片机内部有两个数据指针(都是16位),但在某一时刻只能使用其中一个作为数据指针DPTR,由辅助寄存器1 (AUXR1)的DPS位控制,DPS=0,选择DPTR0的两个8位的寄存器构成数据指针,DPS=1,选择DPTR1的两个8位的寄存器构成数据指针。统一用DPH表示DPTR的高8 位,DPL表示低8位。可以十六位整体操作,也可以分开按8位操作。 在实际的应用中DPTR一般用来存放ROM空间或外部RAM空间的地址。,一、汇编语言指令的基本格式,1、51系列单片机汇编语言指令格式由4部分构成: 标号:操作码 目的操作数,源操作数 ;注释。 (1)标号:为该指令的符号地址,根据需要设置。 标号以字

14、母开头,由字母、数字和下画线组成的字符串,字符串的最后必须有“:” ,系统的保留字不能作为标号 。 标号是该指令的符号地址,它的实质是反映该指令在ROM中的地址(存放位置),因此在同一个程序中标号不可重复。 标号在程序中主要是作为其它转移类指令的目的地址,或子程序的名称。,指令举例: LOOP:MOV A,20H;将20H单 ;元内容送 ;累加器A,(2)操作码 操作码是每条汇编语言指令都必须有的,它是51系列单片机指令系统规定的助记符,规定某条指令的操作功能。 (3)操作数 操作数是参与操作的数据或地址。不同功能的指令,操作数的个数是不同的,在03个之间。在书写时操作数和操作码之间要留有空格

15、,当有多个操作数时,操作数之间要用“,”隔开,前面的操作数称为目的操作数,后面的称为源操作数。,(4)注释。是对该条指令的说明,便于阅读和理解程序功能。必须以“;”开始。,二、51系列单片机汇编语言指令中常用符号 即操作数的符号。 (1)Rn:当前工作寄存器区的8个工作寄存器R0R7,n=07。 (2)Ri:当前工作寄存器R0和R1, i=0,1。,(3)direct:8位的直接地址,代表内部RAM 00H7FH单元,以及特殊功能寄存器的字节地址或名称。 (4)Ri:8位的间接地址,也代表内部RAM 00H7FH的某一单元,此时工作寄存器Ri的内容是多少,就代表相应的单元。 用间址寻址的优点之

16、一是循环方便。 (5)#data:8位的立即数,所谓立即数就是指令中直接参与操作的数据。 (6)#data16:16位的立即数。,(7)bit:位地址。代表内部RAM 位寻址区 (20H2FH)中可寻址位以及SFR中的可寻址位。具体的形式可以是位地址、位编号以及位定义。 (8)addr16:十六位的目的地址。 (9)addr11:11位的目的地址。 (10)rel:带符号的8位偏移地址。范围是 +127 128。 X:某寄存器或某单元 (X):某寄存器或某单元中的内容。 :指令执行后数据传送的方向。,操作数在具体程序中是数字形式或标号,direct、data、bit可以用二进制数、十进制数或十六进制数书写,用十六进制数时,如果高位是A、B、C、D、E、F时,必须在数的前面加0,以便和标号区别开来。addr16、addr1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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