1、 微机原理及应用 课程考核组成和方法课程考核组成和方法 考勤5分:每旷课一次扣一分,迟到/早退一次0.5分,扣完为止。 作业 5分:每次交1/3左右,不定具体数量和人,随机抽查,不交者一次 扣一分,晚交者一次扣0.5分,扣完为止,发现雷同作业扣0.5分。 实验 20分(由实验老师给出) 考试占 70% 微型计算机系统的组成可分为微型计算机系统的组成可分为微处理器、微型计算机、微处理器、微型计算机、 微型计算机系统微型计算机系统三个层次。三个层次。 运算器运算器 控制器控制器 寄存器组寄存器组 内存储器内存储器 总线总线 I/OI/O接口接口 中断系统中断系统 外部设备外部设备 软件软件 197
2、11971年年1 1月,月,INTELINTEL公司公司 的特德的特德霍夫在与日本商霍夫在与日本商 业通讯公司合作研制台式业通讯公司合作研制台式 计算器时,将原始方案的计算器时,将原始方案的 十几个芯片压缩成三个集十几个芯片压缩成三个集 成电路芯片。其中的两个成电路芯片。其中的两个 芯片分别用于存储程序和芯片分别用于存储程序和 数据,数据,另一芯片集成了运另一芯片集成了运 算器和控制器算器和控制器及一些寄存及一些寄存 器,称为器,称为微处理器微处理器(即(即 Intel 4004Intel 4004)。)。4 4位位 档微处理器档微处理器 第四代第四代 (1981至今)至今)80386/804
3、8632位机位机 段页式管理,提高内存使用率段页式管理,提高内存使用率 第三代(第三代(1978-1981)8086, 80286加强型加强型16位机位机 里程碑里程碑 虚拟存储器虚拟存储器 描述符描述符 第一代第一代 (19711973) 4位或位或8位低档微处理器位低档微处理器 智能芯片智能芯片Intel 4004 (航天)微处理器(航天)微处理器(MPU) 对对4位二进制数进行运算。位二进制数进行运算。Intel 8008(8位)位) 存储容量=2地址线条数数据线条数(bit) 例:书图1-2 有四条地址线,地址码范围为: 0000B-1111B,共16个地址编码(16个单 元 中每个单
4、元的地址码是唯一的) 数据线8条,可传送一个二进制数的8位 所以存储容量= 248(bit) 练习:16条地址线,8条数据线,存储容量 位字节,地址范围是? n概念:概念: 机器数机器数一个数在计算机中的表示形式。一个数在计算机中的表示形式。 真值真值即为该机器数的实际算术值。即为该机器数的实际算术值。 字节字节在计算机中,作为数据传送、存贮和运算在计算机中,作为数据传送、存贮和运算 基本单位的一组二进制数称为一个字节基本单位的一组二进制数称为一个字节 Byte(通常为(通常为8位二进制数)。位二进制数)。 字字两个字节的二进制数称为字两个字节的二进制数称为字(Word )。 1 1、二进制数
5、转换成十六进制数、二进制数转换成十六进制数 从二进制数的小数点开始,或左或右每四位一组,从二进制数的小数点开始,或左或右每四位一组, 不是四位以不是四位以0 0补足,然后分别把每组用十六进制数码补足,然后分别把每组用十六进制数码 表示,并按序连接。表示,并按序连接。 例:把例:把1101111100011.10010100B转换为十六进制数转换为十六进制数 例:把例:把1101111100011.10010100B转换为十六进制数转换为十六进制数 答案:答案: 1 1011 1110 0011.1001 01001 1011 1110 0011.1001 0100000000 1 1B BE
6、E3 39 94 4 1101111100011.10010100B=1BE3.94H 2 2、十六进制数转换成二进制数、十六进制数转换成二进制数 把十六进制数的每位分别用四位二进制数码表示,然把十六进制数的每位分别用四位二进制数码表示,然 后把它们连成一体。后把它们连成一体。 例:把例:把1F6.3EH转化为二进制转化为二进制 答案:答案: 例:把例:把1F6.3EH转化为二进制转化为二进制 0001 1111 0110 .0011 1110B 1 F 6 . 3 E 1 1、机器数和真值、机器数和真值 为表示符号数,通常规定数的为表示符号数,通常规定数的最高位为符号位最高位为符号位。 符号
7、位通常用符号位通常用“0”0”表示正表示正,用,用“1”1”表示负表示负。 连同符号位一起作为能被计算机识别的一个数称连同符号位一起作为能被计算机识别的一个数称 为机器数,而它所代表的真实值称为机器数的真值。为机器数,而它所代表的真实值称为机器数的真值。 例:例:01001100B为机器数。为机器数。 真值为真值为+76 2 2、微型计算机的原码、反码和补码、微型计算机的原码、反码和补码 机器数通常有原码、反码和补码三种形式机器数通常有原码、反码和补码三种形式 (1)(1)原码原码 最高位为符号位最高位为符号位, ,其余为数值位其余为数值位, ,表示数的绝对值表示数的绝对值 例:例:【+38】
8、原原=00100110B00100110B 0 0的原码有两种形式:的原码有两种形式:00000000B00000000B和和10000000B10000000B (2)(2)反码反码 正数的反码与原码相同,负数的反码可将符号位保持正数的反码与原码相同,负数的反码可将符号位保持 不变,数值位按位取反。不变,数值位按位取反。 例:例:【+11】反反=00001011B00001011B 【11】反反= 【6】原原 = 10000110B 11110100B11110100B 负数反码求真值:数值位按位取反,得原码得真值。负数反码求真值:数值位按位取反,得原码得真值。 当前时间为当前时间为8 8点
9、,实际点,实际 应为应为5 5点点 可逆时针可逆时针8-3=58-3=5 也可顺时针也可顺时针 8+9=8+4+5=12+5=58+9=8+4+5=12+5=5 1212称为称为“模模”自动丢失,自动丢失, 因此可将减法运算简化因此可将减法运算简化 为加法运算,二者等价,为加法运算,二者等价, 9 9为模为为模为1212的数的补数的数的补数 (3)(3)补码补码 正数的补码与原码相同,负数的补码等于它的反码末正数的补码与原码相同,负数的补码等于它的反码末 位加位加1 1。 例:例:【1111】反反=11110100B=11110100B 【1111】补补=11110101B=11110101B
10、 负数补码求真值:数值位按位取反再加负数补码求真值:数值位按位取反再加1 1,得原码得,得原码得 真值。真值。 “求反加1”需要作两步运算,这个过程也可以 简化为一步,即符号位不变,只对原码各位中最低 一位1以左的各位求反,而最低一位1和右边各位都 不变,即可得到负数的补码。 已知X的补码,求X的原码时,可以将X的补码当 作 X 原 码 形 式 , 再 求 一 次 X 的 补 码 得 到 , 即X补补=X 原。 总结: q(1)正数 正数的补码与正数的原码相同。 q(2)负数 负数的补码由它的绝对值求反加1后得 到。 q(3)0的补码表示 0的补码表示只有一种,其表达 式为: +0补=-0补0
11、0000000B q补码的加法规则是: q XY补=X补Y补 q补码的减法规则是: q XY补=X补-Y补 一般而言,两个数的补码运算可按以下步一般而言,两个数的补码运算可按以下步 骤进行:骤进行: 1把参与运算的两数连同其前面的正负号,把参与运算的两数连同其前面的正负号, 变成补码;变成补码; 2对补码做加法,得到两数运算结果的补对补码做加法,得到两数运算结果的补 码,码,若最高位上有进位则舍弃不要若最高位上有进位则舍弃不要; 3若要求运算结果的真值,则按补码数求若要求运算结果的真值,则按补码数求 真值的办法进行。真值的办法进行。 3 3、数的定点和浮点表示、数的定点和浮点表示 符号符号 数
12、值部分数值部分符号符号 数值部分数值部分 或或 阶阶 符符 阶阶 码码 尾尾 符符 尾尾 数数 4 4、计算机中的编码、计算机中的编码 (1) ASCII(1) ASCII码码 是美国信息交换标准代码的简称。是美国信息交换标准代码的简称。 通常由通常由7 7位二进制代码组成,可为位二进制代码组成,可为128128个字符编码个字符编码 (2) BCD(2) BCD码码 是一种具有十进制位权的二进制编码,也就是用二进是一种具有十进制位权的二进制编码,也就是用二进 制编码表示的十进制数。制编码表示的十进制数。 方法为:将一个十进制数的方法为:将一个十进制数的每一位用等值的四位二进每一位用等值的四位二
13、进 制数制数表示,即得到该十进制数的表示,即得到该十进制数的BCDBCD码。(码。(84218421码是码是 其中较常用的一种)其中较常用的一种) 一般用一般用BCDBCD码表示无符号数码表示无符号数 例:十进制数例:十进制数76的的BCD码为码为01110110B即即76H 而它的等值二进制数为:而它的等值二进制数为:01001100B即即4CH 【45】BCD = 01000101B (1)第一阶段第一阶段(1974一一1975) (2)第二阶段第二阶段(1976一一1978) (3)第三阶段第三阶段(19791982) (4)第四阶段第四阶段(1983年以后年以后) 习题:习题: 1 1
14、、写出下列各十进制数在、写出下列各十进制数在8 8位微机中的原码、反码和位微机中的原码、反码和 补码补码 (1 1)+103 +103 (2 2)-54 -54 2 2、将下列数看作、将下列数看作8 8位机中的原码、反码和补码形式,位机中的原码、反码和补码形式, 写出相应的真值写出相应的真值 (1 1)10101100B 10101100B (2 2)01110001B 01110001B 3 3、写出下列各数的、写出下列各数的BCDBCD码码 (1 1)34 34 (2 2)225 225 (3 3)7676 教学目标: 介绍MCS51系列单片机的内部结构与外部引脚功能 介绍MCS51系列单
15、片机的存储器组织 介绍MCS51系列单片机的CPU时序 学习要求: 掌握MCS51系列单片机的内部结构与外部引脚功能 掌握MCS51系列单片机存储器的构成与编址方法 了解振荡电路与复位电路的构成,单片机的CPU时序 第二章 MCS-51单片机的结构和原理 一、MCS-51单片机的基本组成 图 2.1 MCS - 51单片机结构框图 程序存储器 ROM 8051 CPU 并行接口 串行接口 中断系统 时钟电路数据存储器 RAM 定时/计数器 2 16 T0T1 P0 P1P2 P3 内部中断 外部中断 INT0INT1TXD RXD 二、 MCS - 51系列单片机的分类 表 2.1 MCS -
16、 51 系列单片机配置一览表 2.2 8051单片机内部结构和功能 一、中央处理器CPU (字长为8位 DB:8位;AB:16位) 8051内部CPU是一个字长为二进制8位的中央处理单 元,由运算器和控制器两大部分组成。 1、运算器 用于实现算数逻辑运算、位变量处理、数据传送操作 (1) 算数逻辑单元ALU 用来完成二进制的四则运算、布尔代数的逻辑运算 运算结果 影响状态标志寄存器PSW的有关标志位 组成:算术逻辑单元ALU、累加器ACC、寄存器B、程序状态寄存器PSW、 用于位操作的布尔处理器。 2021-9-1668 注意:在交换信息中 单片机在与外部数据存储器交换信息时必须要经过累加器A
17、 在与I/O接口或外设交换信息时也要经过累加器A 代表直接地址0E0H时,计为ACC;专指累加器时简写为A (2) 累加器ACC 用于存放操作数或运算的中间结果 (4) 程序状态字PSW (Program Status Word) 一个8位特殊功能寄存器,它的各位包含了程序运行 的状态信息,以供程序查询和判断 注意:PSW中各位状态通常是在指令执行过程中自动形成,但也可以由用户根据 需要采用指令加以改变 CYACF0RS1RS0OVP CY :进位/借位标志位,无进位/借位时CY=0,否则 CY=1 由硬件或 软件置位和清零 注: 在做加法或减法运算过程中,若运算结果在最高位有进位或借位时,
18、CY被硬件自动置“1”,反之则自动置“0”, 在进行位操作时,CY作为累加器使用,作用相当于字节操作的累加器 ACC, 。 例:78H+97H 0111 1000 +1001 0111 1 0000 1111 有进位 CY=1 没有半进位 AC=0 AC :辅助借位(或称半借位)标志位,注:在做加法或减法运算过程 中,若低4位向高4位有进位或借位时,AC被硬件自动置“1”,反之则 自动置“0” RS1RS0寄存器组片内RAM地址通用寄存器名称 000组00H07HR0R7 011组08H0FHR0R7 102组10H17HR0R7 113组18H1FHR0R7 RS1、RS0:工作寄存器组选择
19、位,这两位的值决定选 择哪一组工作寄存器为当前工作寄存器组。只有一组为当前 工作组(默认值为0组),可以用指令改变RS1、RS0的状态,从而改变当前工作区 F0:用户自定义位 如:MOV PSW,#10H 第?组 OV:溢出标志位,有溢出OV=1,无溢出OV=0 溢出:就是计算机在运算过程中产生的数超出了计算 机所能表示数的范围,一旦发生溢出,得到的运算结 果是错误的。 P:奇偶标志位,表明累加器ACC中1的个数的奇偶性。 若ACC中有奇数个“1”则P=1,否则P=0。 (5) 布尔处理器 对位进行逻辑运算和操作(以CY作为累加位,以RAM内 部所有可寻址的位作为操作位或存储位) 用途:该标志
20、位对串行口通信中的串行数据传输有重要意义。在串行通信中, 常用奇偶校验方法来校验数据传输的可靠性 2、控制器是计算机的指挥控制部件 控制器是计算机的指挥控制部件 功能:识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片 机各部分能自动而协调地工作 组成:由定时控制逻辑电路和各种控制寄存器构成 定时控制逻辑电路:用来产生各种工作时序,每条指令的执行过程严格遵 循这种工作时序 控制寄存器:由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针 SP和外部数据指针寄存器DPTR组成 (1) 程序计数器PC (Program Counter) 程序指针 PC是一个16位计数器,其内容是将
21、要执行的下一条 指令的地址,(由16位触发器组成)寻址范围达64KB, PC有自动加1功能,从而实现程序的顺序执行。 (2) 指令译码器ID 对指令进行译码,把指令转变成所需要的电平信号 工作过程: (PC)程序存储器指令寄器IR指令译码器 (PC)+1下一条指令 (3) 数据指针DPTR DPTR为16位寄存器,存放16位的地址,作为访问 外部程序存储器和外部数据存储器时的地址。DPTR 也可以拆成两个8位寄存器单独使用即:DPH和DPL。 二、存储器结构 图23 MCS51单片机存储器空间结构图 (a) 程序存储器; (b) 内部数据存储器; (c) 外部数据存储器 1 程序存储器ROM
22、用来存放程序代码和常数。 8051内部有4KB的ROM,地址范围为0000H-0FFFH, 片外用16位地址线扩充64KB的ROM 当单片机引脚EA接高电平时,CPU从片内ROM取指令, 当PC0FFF时,则自动转向片外ROM去取指令。当 EA接低电平时片内ROM不起作用,CPU从片外ROM取 指令,地址从0000H开始编制。 片内片外取指令的速度相同 表24 MCS51单片机复位、 中断入口地址 2 片内数据存储器RAM 8051片内数据存储器最大可寻址256个单元(00H-FFH) (1) 片内数据存储器低128单元(00H-7FH) 低128单元共分为工作寄存器区、位寻址和数据缓冲 区三
23、个区域 1)工作寄存器区(00H-1FH) 32个RAM单元共分四组,每组8个寄存器单元(R0-R7) 地址分别为00H-07H、08H-0FH、10H-17H、18H-1FH 在任一时刻,CPU只能使用其中的一组寄存器,并且 把正在使用的那组寄存器称为当前寄存器组,由程序 状态寄存器PSW中的RS1、RS0位决定。 7FH 30H 用户用户RAM区区 堆栈数据缓冲堆栈数据缓冲 2FH 20H 位地址为位地址为 00H7FH (128位位) 位位 寻寻 址址 区区 1FH 18H R0、R1R7 (第(第3组)组) 通通 17H 10H R0、R1R7 (第(第2组)组) 用用 寄寄 0FH
24、08H R0、R1R7 (第(第1组)组) 存存 器器 07H 00H R0、R1R7 (第(第0组)组) 区区 图2-4 低128字节RAM区 表26 工作寄存器组的选择表 2)位寻址区(20H-2FH) 20H2FH单元为位寻址区,这16个单元(共 计128位)的每1位都有一个8位表示的位地址, 位地址范围为00H7FH, 如表27所示。 位寻 址区的每1位都可当作软件触发器, 由程序直接 进行位处理。通常可以把各种程序状态标志,位 控制变量存于位寻址区内。同样,位寻址的RAM 单元也可以按字节操作作为一般的数据缓冲。 表27 内部RAM中位地址表 (2) 高128单元(80H-FFH)特
25、殊功能寄存器SFR 有PC和21个特殊功能寄存器。 特殊功能寄存器SFR, 又称为专用寄存器。 它 专用于控制、 管理单片机内算术逻辑部件、 并行 I/O口锁存器、 串行口数据缓冲器、 定时器/计数 器、 中断系统等功能模块的工作, SFR的地址空间 为80HFFH。 3)用户RAM区(30H-7FH) 供用户使用的一般RAM区,也是数据缓冲区, 共80个单元。用于存放用户数据及作堆栈区使用 特点: l每个SFR占有一个RAM单元, 21个SFR是不连续地分散在内部RAM高128单元 中,不为SFR占用的RAM单元实际并不存在,访问它们也没有什么意义 l对SFR只能使用直接寻址方式,书写时即可
26、使用寄存器名,也可使用寄存器地 址 l21个SFR中,有11个寄存器具有位寻址,只有83个位地址 SFR(Special Function Register)是指特殊用途的寄存器集合 SFR的实际个数和单片机型号有关:8051和8031的SFR有21个,8052的SFR有 26个 3 片外数据存储器 可扩展64KB的片外RAM,0000H-FFFFH 0000H00FFH区间:片内RAM和片外RAM地址范围重叠,CPU使用MOV 指令和MOVX指令加以区分 堆栈的定义 是一种数据结构,只允许在其一端进行数据插入和数据删除操作的线性表 入栈:数据写入堆栈(PUSH) 出栈:数据从堆栈中读出(PO
27、P) “后进先出” 栈顶:由栈顶地址指示(SP) 栈底:由栈底地址指示,是固定不变的(用户可以设定) 程序运行开始时,栈顶地址 = 栈底地址 如:MOV SP,#70H 堆栈的特点 堆栈的功能 主要为程序调用和中断操作服务 功能 保护断点 现场保护 数据临时存放 保护断点:无论子程序调用,还是执行中断操作,最终都要返回主程序,所 以,应预先将主程序的断点保护在堆栈中,使子程序、中断服务程序能 正确返回 现场保护:执行子程序或中断服务程序时,可能用到CPU中的寄存器,这些 寄存器中的原有内容可能遭到破坏,所以在子程序、中断服务程序起始 部分应将其保护起来(PUSH),在其结束用POP弹出 数据的
28、临时存放:用于一般存储器 堆栈类型 类型 向上生长型 向下生长型 向上生长型:栈底设在低地址单元 SP + 1(或2) 数据进栈 SP 1(或2) 数据出栈 操作规则: 进栈: SP + 1(或2) 写数据 出栈: SP 1(或2) 读数据 图 MCS51单片机堆栈 2021-9-1696 自动方式 指令方式 70H栈底SP SP+1 进栈 38H SP指针: 8位 能自动加减1,专门用来存放堆栈的栈顶地址 MCS-51,片内RAM:30H 7FH 为栈区,栈区大小可以设定,但不能超过 该范围,属于向上型堆栈 自动方式:调用子程序或中断时,断点地址自动进栈,程序(子程序、中断 服务程序)返回时
29、,断点地址再自动弹回PC 指令方式:使用专用的堆栈指令(PUSH、POP),执行进出栈操作 如: MOV A, #38H PUSH ACC 三、定时器/计数器 8051内部有两个16位可编程序的定时器/计数器,命名 为T/C0和T/C1。它们有定时器和计数器两种工作模式。 TH08位 TL08位 T0 16位 TH18位 TL18位 T1 16位 2个特殊功能寄存器,TMOD用于设置T/C的工作方式;TCON用于控 制T/C的启动与停止 四个8位特殊功能寄存器,用 来存放定时或计数的初值 四、并行I/O接口 特点: 四个8位并行接口即P0-P3,共有32根I/O线。它们都具有双向I/O功能,均
30、 可以作为数据输入/输出使用 每个接口内部都有一个8位数据输出锁存器(4个锁存器与接口同名P0-P3为 SFR,)、一个输出驱动器和一个8位数据输入缓冲器, 每个接口占用一个字节地址,可用指令直接寻址,CPU从I/O接口输出数 据时可以通过锁存器(P0P3),输入时可以通过缓冲器读引脚状态 四、并行I/O接口 8051有四个并行I/O接口:P0、P1、P2、P3,都有 双向I/O功能。 P0:可以输出片外存储器的低八位地址(A7-0),也可 以同时用作8位双向数据总线(D7-0 ) P1:数据输入/输出使用,为CPU传送用户数据 P2:输出片外存储器的高八位地址(A15-8), P3:数据输入
31、/输出使用,第二功能作串行输入输出口 五、串行口 8051有一个全双工的可编程串行I/O口,它利用 P3.1作为串行数据的发送线TXD,P3.0作为串行数据的 接收线RXD。 串行通信,TXD(P3.1)、RXD(P3.0),全双工串行接口,串行发送和 接收可单独进行,也可以同时进行 单片机内部有一个串行数据缓冲寄存器SBUF(地址:99H)可直接寻 址,在机器内部实际是由两个8位寄存器组成,一个作发送缓冲寄存器, 另一个作接收缓冲寄存器,二者使用同一个地址99H,由读写信号区别 设置工作方式:由串行口控制寄存器SCON及波特率选择寄存器PCON控 制 六、中断系统 8051共有5个中断源,它
32、可以接收外部中断申请、 定时器/计数器申请和串行口申请。 中断源 T0 T1 串行口 INT0 INT1 优先级 (两级) 高级 低级 2.3 MCS-51的引脚及其功能 图 MCS - 51单片机引脚 9:RST复位信号 10:串行数据接收端 11:串行数据发送端 12:外部中断0申请 13:外部中断1申请 14:定时器/计数器T0 16:写信号 17:读信号 18、19:外接时钟信号 20:电源接地端 15:定时器/计数器T1 29:片外程序存储器选通信号 40:+5V电源端 31:访问外部ROM的控制信号 30:地址锁存信号,在访问外部 存储器时,用于锁存出现在P0口 的低八位地址,以实
33、现低八位地 址和数据的隔离。 1. 主电源引脚Vcc和Vss VCC: 接+5V电源端; VSS: 接地端。 XTAL2: 接外部晶体。当采用外部时钟时, 对于HMOS单片机, 该引脚作为 外部振荡信号的输入端; 对于CHMOS芯片, 该引脚悬空不接。 3控制信号引脚 (1)ALE/PROG(30脚):地址锁存控制信号输出端。 功能: 在访问外部存储器时,它锁存出现在P0口的低8位地 址,以实现低位地 址和数据的隔离 当单片机正常工作时,它以时钟振荡频率的六分之一的固有频率向外输 出正脉冲信号 对于片内含有EPROM的机型(8751),在编程期间,该引脚用作编程脉冲PROG的输 入端。 (2)
34、PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程 序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0 口读回指令或常数。在访问片外数据存储器期间,PSEN信号将不出现。 (3)EA/VPP(31脚): 对于片内含有EPROM的机型(8751),在编程期间,此引脚用作21V编程电源VPP 的输入端。 EA 访问外部ROM的控制信号,低电平有效 EA = 0时,对ROM读操作,只限定在外部ROM EA = 1时,对ROM读操作,从内部ROM 开始(PC值4KB 时,CPU自动转向外部ROM (4)RST/VPD(9脚):RST即为RESET,VPD
35、为备用电源。该引脚为单片机的上电复 位或掉电保护端。 RST 复位信号,高电平有效 要求:该输入端保持2个机器周期以上的高电平,才完成单片机复位初始化工作, 相应的PC、SFR状态清0 当VCC发生故障,该引脚可接上备用电源VPD(+5 V)为内部RAM供电,以保证 RAM中的数据不丢失。 4I/O(输入/输出)引脚 P2 P3 P0 P1 8位数据输出锁存器 输出驱动器 8位数据缓冲器 每一个 口组成 P0口(P0.0P0.7):8位双向I/O,端口地址80H 位地址80H87H 功能: 访问外部存储器时分时复用。提供低8位地址和8位双向数据 当不接外部存储器或不扩展I/O接口时,通用输入/
36、输出。当P0口输入时, 应先向P0口锁存器写“1”;当P0口输出时,需外接上拉电阻 2021-9-16109 P2口(P2.0P2.7):8位准双向I/O,端口地址A0H 位地址A0HA7H 功能:通用输入/输出 当P1口输入时,应先向P1口锁存器写“1” 当P1口输出时,无需外接上拉电阻 功能: 访问片外存储器时,输出高8位地址(A15A8) 通用输入/输出。P2口输入时,应先向P2口锁存器写“1”;当P2口输出 时,无需外接上拉电阻 P3口(P3.0P3.7):8位准双向I/O,端口地址B0H 位地址B0HB7H 功能: 通用输入/输出。P3口输入时,应先向P3口锁存器写“1”;当P3口输
37、出时, 无需外接上拉电阻 特殊功能(也称第二功能) (2)P1口:P1.0-P1.7统称为P1口,可作为准双向I/O口使用。 (1)P0口:P0.0-P0.7统称为P0口。在不接片外存储器与不扩展I/O口时,可 作为准双向输入/输出口。在接有片外存储器或扩展I/O口时,P0口分时复用为 低8位地址总线和双向数据总线。 (3)P2口:P2.0-P2.7统称为P2口,一般可作为准双向I/O口使用;在接有片外存 储器或扩展I/O口且寻址范围超过256字节时,P2口用作高8位地址总线。 (4)P3口:P3.0-P3.7统称为P3口。除作为准双向I/O口使用外,还可以将每一 位用于第二功能,而且P3口的
38、每一条引脚均可独立定义为第一功能的输入输出或 第二功能。 P3口第二功能表 引 脚第 二 功 能 P3.0 串行口输入端 P3.1 串行口输出端 P3.2外部中断0请求输入端,低电平有效 P3.3外部中断1请求输入端,低电平有效 P3.4 定时器/计数器0计数脉冲输入端 P3.5 定时器/计数器1计数脉冲输入端 P3.6外部数据存储器写选通信号,低电平有效 P3.7 RXD TXD INT0 INT1 T0 T1 WR RD外部数据存储器读选通信号,低电平有效 综上所述,MCS-51系列单片机的引脚可归纳为以下两点: (1)单片机功能多引脚数少,因而许多引脚都具有第二功能。 (2) 单片机对外
39、为总线形式,由P2、P0口组成16位地址总线;由P0口分时复 用为数据总线;由ALE、PSEN、RST、EA与P3口中的INT0、INT1、T0、T1、WR、RD 共10个引脚组成控制总线。由于是16位地址线,因此,可使片外存储器的寻址范 围达到64KB。 2.4 MCS-51的工作方式 一、复位方式 通过某种方式, 使单片机内各寄存器的值变为初始状态的操作称为复位。 MCS51单片机在时钟电路工作以后, 在RST/VPD端持续给出2个机器周期的高 电平就可以完成复位操作(一般复位正脉冲宽度大于10 ms)。复位分为上 电复位和按键复位两种方式。 图 MCS51单片机复位电路 (a) 上电复位
40、电路; (b) 按键电平复位电路 (3)(SP)=07H 表示复位后堆栈在片内RAM的08H单元处建立; (4)P0口P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口, 无须向端口写1; (5)定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功 能部件工作状态的影响。 PC与SFR复位状态表 一、 时钟电路 图 单片机时钟电路 (a) 内部时钟电路; (b) 外部振荡源 2.5 MCS-51单片机的时序 二、CPU时序 1. 机器周期和指令周期 (1)振荡周期: 也称时钟周期, 为单片机提供时钟脉冲信号的振荡源的周期。 用节拍(P)表示。 (2)状态: 每个状态为
41、时钟周期的2倍。用S表示,2个节拍P1和P2为1个状态 S。 计算机在执行指令时, 通常将一条指令分解为若干基本的微操作, 这 些微操作所对应的脉冲信号在时间上的先后次序称为计算机的时序。 (3)机器周期: 一个机器周期包含6个状态周期S1-S6, 即12个节拍P。 (4)指令周期: 指CPU完成一条操作所需的全部时间。每条指令执行时间都 是有一个或几个机器周期组成。MCS-51系统中, 有单周期指令、双周期指令 和四周期指令。 图(c)表示单字节双周期指令的时序,单字节双周期指令在两个机器周期 内作4次读操作码的操作,由于是单字节指令,后3次读操作是无效的。 图(d)表示执行访问外部数据存储
42、器指令MOVX的时序, 这是一条单字节双 周期指令,具有其特殊性。 三、访问外部ROM和RAM的时序 读外部程序ROM时序 图 读外部数据RAM时序 二、指令字长和指令周期二、指令字长和指令周期 指令字长是指存储这条指令所占的存储单元的个数。指令字长是指存储这条指令所占的存储单元的个数。指令字长有单字节、双字节和指令字长有单字节、双字节和 三字节三种。三字节三种。 例:例:RETRET;单字节指令;单字节指令 00100010 22H 00100010 22H 例:例:MOV AMOV A,#0FH#0FH;双字节指令;双字节指令 例:例:MOV 55HMOV 55H,#0AH#0AH;三字节
43、指令;三字节指令 机器周期:机器周期: 指令字节数越多,所占存储单元越多,但指令周期并不与指令所占字节数成比例。指令字节数越多,所占存储单元越多,但指令周期并不与指令所占字节数成比例。 例:例:f=12MHZ T=1usf=12MHZ T=1us 指令周期:执行一条指令所需的时间。指令周期:执行一条指令所需的时间。 例:例:MUL ABMUL AB;乘法指令,是单字节指令,但指令周期为;乘法指令,是单字节指令,但指令周期为4 4个机器周期。个机器周期。 凡以字母凡以字母A-FA-F开头的十六进制数均需加前导开头的十六进制数均需加前导0 0 寻址方式是指寻址方式是指CPUCPU寻找操作数或操作数
44、地址的方法寻找操作数或操作数地址的方法 一、直接寻址一、直接寻址 指令中直接给出操作数所在的单元地址或位地址指令中直接给出操作数所在的单元地址或位地址 1 1、可访问的存储空间、可访问的存储空间 1.1 1.1 内部内部RAMRAM低低128128单元(单元(00H-7FH00H-7FH) 例:例:MOV AMOV A,0D0H0D0H; (D0HD0H) (A A) MOV AMOV A,PSWPSW; (PSWPSW) (A A) 1.2 1.2 特殊功能寄存器区,可以以单元地址给出,也可用寄存器符号形式给出。(特殊功能寄存器区,可以以单元地址给出,也可用寄存器符号形式给出。(A A, A
45、BAB,DPTRDPTR除外)除外) 例:例:MOV AMOV A,70H70H; (70H70H) (A A) 1.3 2111.3 211个位地址空间个位地址空间。 内部内部RAMRAM中可位寻址的中可位寻址的20H-2FH20H-2FH 对应的对应的128128个位地址和个位地址和1111个个SFRSFR中中8383个可用的位地址空间个可用的位地址空间 例:例:MOV AMOV A,30H30H;30H30H是单元地址是单元地址 例:例:MOV CMOV C,30H30H;30H30H是位地是位地 址址 二、立即寻址二、立即寻址 操作数为立即数。立即数前加操作数为立即数。立即数前加 “#
46、 #”,以区别地址,以区别地址 例:例:MOV AMOV A,#7AH#7AH; 7AH 7AH (A A) MOV DPTRMOV DPTR,#1234H#1234H;12H 12H (DPHDPH),),34H 34H (DPLDPL) 三、寄存器寻址三、寄存器寻址 操作数在寄存器中。操作数在寄存器中。 寻址范围:寻址范围: 1 1 四组工作寄存器四组工作寄存器R0-R7R0-R7共共3232个工作寄存器个工作寄存器 例:例:MOV AMOV A,R0R0;(;(R0R0) (A A) 2 2 特殊功能寄存器中有:特殊功能寄存器中有:A A,ABAB,DPTRDPTR,CYCY 寄存器寄存
47、器B B只有在执行只有在执行乘除法乘除法指令时,才是寄存器寻址方式指令时,才是寄存器寻址方式 四、寄存器间接寻址四、寄存器间接寻址 间接寻址是由指令指定某一间接寻址是由指令指定某一寄存器的内容寄存器的内容作为操作数的作为操作数的地址地址。该地址指定的单元内容。该地址指定的单元内容 作为被寻找的操作数。作为被寻找的操作数。 MCS-51MCS-51用于间接寻址的寄存器有用于间接寻址的寄存器有R0R0、R1R1、堆栈指针、堆栈指针SPSP、数据指针、数据指针DPTR DPTR 1 1、内部、内部RAMRAM低低128128单元,地址范围单元,地址范围00H-7FH00H-7FH,用,用RiRi(i
48、=0i=0、1 1)和和SPSP作为间址作为间址 寄存器寄存器 例:例:(R0)=30H(R0)=30H,(30H)=20H(30H)=20H MOV A MOV A,R0R0; 结果:(结果:(A A)=20H=20H; 2 2 与与P2P2口配合,用口配合,用RiRi指示低指示低8 8位地址,可寻址片外数据存储器或位地址,可寻址片外数据存储器或I/OI/O的的64K64K区域区域 例:(例:(P2P2)=20H =20H ,(,(R0)=10H,(2010H)=30H R0)=10H,(2010H)=30H MOVX A, MOVX A, R0;R0; 结果:(结果:(A A)=30H =
49、30H 3 DPTR 3 DPTR 间接寻址寄存器,可寻址片外程序存储器、数据存储器、间接寻址寄存器,可寻址片外程序存储器、数据存储器、I/OI/O的的64KB64KB区域区域. . 例:(例:(DPTRDPTR)=4000H=4000H,(,(4000H4000H)=50H=50H MOVX A, MOVX A, DPTR; DPTR; 结果:(结果:(A A)=50H =50H 寄存器间接寻址方式不能用于对特殊功能寄存器区寄存器间接寻址方式不能用于对特殊功能寄存器区SFRSFR的寻址的寻址 例:例:MOV R0MOV R0,#0F0H#0F0H; MOV AMOV A,R0R0; 以上指令
50、不能执行,因为以上指令不能执行,因为0F0H0F0H为特殊功能寄存器为特殊功能寄存器B B的单元地址,的单元地址,而对特殊功能而对特殊功能 寄存器只能直接寻址,不能间接寻址。寄存器只能直接寻址,不能间接寻址。 五五 基址加变址寄存器间接寻址(变址寻址)基址加变址寄存器间接寻址(变址寻址) 变址寻址是以数据指针变址寻址是以数据指针DPTRDPTR或程序指针或程序指针PCPC作为基址寄存器,以累加器作为基址寄存器,以累加器A A作为变址寄作为变址寄 存器,并以两者内容相加形成新的存器,并以两者内容相加形成新的1616位地址作为操作数地址,再寻址该地址,读位地址作为操作数地址,再寻址该地址,读 取数