第11章 MCS-51单片机系统扩展-第1部分 - 1
CH3 MCS-51单片机指令系统-1 单片机优秀课件

2020/7/3
§3-3 寻址方式
寻址方式:寻找操作数存放单元的地址的方式。 1、立即寻址 1)定义
操作数在指令中直接给出,通常把出现在指令中的 操作数称之为立即数,因此就把这种寻址方式称之为 立即寻址。 2)举例
8位立即数操作:MOV A,#data 1620/7/3
MCS-51指令格式: [标号:] [操作码][第一操作数][,第二操作数][;注释]
LOOP: MOV A,#40H ;取参数
§3-2 指令格式
助记符举例:
MOV __ move
传送
XCH __ exchange
交换
ANL __ and logic
与逻辑运算
XRL __ exclusive or logic 异或运算
CH3 MCS-51单片机指令系统及汇编程序设计
内容提要: §3-1 指令系统简介 §3-2 指令格式 §3-3 寻址方式 §3-4 指令系统 §3-5 汇编语言程序设计 CH3 习题课
2020/7/3
2020/7/3
§3-2 指令格式
指令 = 操作码 + 操作数 操作码:表示了该指令所能执行的操作功能。 操作数:表示参加操作的数的本身或操作数所在的地址。
MUL __ multiply
乘法
RR __ rotate right
右循环
SJMP __ short jump
短跳转
RET __ return
子程序返回
§3-2 指令格式
操作数的表示形式: (1)无操作数或操作数隐藏在操作码中
如:NOP RET
(2)只有一个操作数 如:INC A DEC A
(3)有两个操作数 如:MOV A, #00H
项目 一 汽车单片机原理应用(任务五 MCS-51单片机系统扩展)

(3) MCS-51单片机系统地址空间的分配 系统空间分配:通过适当的地址线产生各外部扩展器件的片 选/使能等信号就是系统空间分配。
编址:编址就是利用系统提供的地址总线,通过适当的连接, 实现一个编址惟一地对应系统中的一个外围芯片的过程。编 址就是研究系统地址空间的分配问题。
片内寻址:若某芯片内部还有多个可寻址单元,则称为片内 寻址。
2)全地址译码法
利用译码器对系统地址总线中未被外扩芯片用到的高位 地址线进行译码,以译码器的输出作为外围芯片的片选信 号。常用的译码器有:74LS139,74LS138,74LS154等。 优点是存储器的每个存储单元只有惟一的一个系统空间地 址,不存在地址重叠现象;对存储空间的使用是连续的, 能有效地利用系统的存储空间。缺点是所需地址译码电路 较多,。全地址译码法是单片机应用系统设计中经常采用 的方法。
1。程序和数据之和不大于 存储器总容量。 2。程序必须存放在低地址,
数据存放在高地址。
三、并行I/O口扩展 MCS-51单片机具有四个并行8位I/O口原理均可用做双向并行 I/O接口,但在实际应用中,可提供给用户使用的I/O口只有P1 口和部分P3口线及作为数据总线用的P0口。在单片机的I/O口 线不够用的情况下,可以借助外部器件对I/O口进行扩展 (1)概述 1)单片机I/O口扩展方法 并行I/O口扩展的目的:为外围设备提供一个输入输出通道。 ①并行总线扩展的方法 ②串行口扩展方法(只介绍总线扩展方式下I/O接口扩展方法) ③I/O端口模拟串行方法
二、存储器的扩展 存储器是计算机系统中的记忆装置,用来存放要运行的程 序和程序运行所需要的数据。单片机系统扩展的存储器可分为 程序存储器和数据存储器两种类型。
(1)MCS-51单片机对外部存储器的扩展应考虑的问题
《单片机原理及应用》课件01-51单片机基本结构与存储器分配

内中断
并行口
外中断
P0 P1 P2 P3
串口模块 TXD RXD
中断模块 INT0 INT1
P0.0~P0.7
P2.0~P2.7
VCC (+5V)
GND
RAM地址 锁存器
RAM
通道0驱动器
通道0锁 存器
通道2驱动器
通道2锁 存器
ROM/ EPROM
程序地址寄存器
PSEN ALE
EA RST
B寄存器 ACC TMP2
片内地址空间:RAM 128B(00H-7FH) SFR 128B(80H-FFH)
128B SFR
128B RAM
FFH 21个SFR分布 在80H-FFH
83个可寻址位
80H 7FH
用户、
堆栈区
30H 2FH
位寻址区
20H 1FH
工作寄存器区
00H
内部RAM组织结构
10
所有的RAM区(位 寻址区、工作寄 存器区)都可以 用于存放数据, 故也称为数据缓 存寄存器
特殊功能寄存器(SFR)
▼特殊功能寄存器SFR(专用寄存器)
专用于控制、选择、管理、存放单片机内部各功能 部件的工作方式、条件、状态、结果的寄存器。
▼不同的SFR管理不同的硬件模块,负责不同的功 17 能——各司其职
换言之:要让单片机实现预定的功能,必须有相应 的硬件和软件,而软件中最重要的一项工作就是对 SFR写命令(要求)。
4 堆栈指针SP
堆栈:
在片内RAM中,指定一个专门的区域来存放某 些特别的数据,它遵循先进后出和后进先出 (LIFO/FILO)的原则,这个RAM区叫堆栈。
功用:
22
单片机复习资料

单片机复习资料绪论单片机定义MCS-51单片机性能第一章1·1 MCS-51 单片机硬件结构及引脚1·2 MCS-51单片机的工作方式1·3 单片机的时序第二章2·1 概述伪指令2·2 寻址方式2·3 MCS-51 单片机的指令系统2·4 汇编语言及程序设计2·5 程序设计举例第三章并行I/O、中断系统、定时器/计数器、串行通信第四章4·1 MCS-51单片机系统扩展概述扩展原理:总线结构、扩展能力(片外数据、程序存储器)地址空间分配:线选法、全地址译码(3-8译码器)、部分地址译码4·2 存储器的扩展常见的程序存储器芯片、地址锁存器、扩展方法常见的数据存储器芯片(数据、地址、片选、读、写引脚)、扩展接线4·3 开行I/O口的扩展普通口(不可编程)、可编程口(8255A、8155)4·6 总线接口扩展EIA RS-232C、RS-422/RS-485、FC、USB第五章5·1 输入/输出通道概述输入通道、输出通道5·2 D/A转换器及接口技术性能指标、分类、DAC08325·3 A/D转换器及接口技术性能指标、分类、ADC0809第六章6·1 MCS-51单片机与键盘的接口技术键盘类型(独立、矩阵)、键盘接口(行反转法、扫描法)6·2 NCS-51单片机与微型打印机的接口技术打印机的状态控制信号单项选择1. PC的内容是:A 当前指令前一条指令的地址B 下一条指令的地址C 控制器中指令寄存器的地址D 当前正在执行指令的地址2. 在MOVX A,@DPTR指令中,DPTR的内容是A 片内数据存储器地址B 片外程序存储器地址C 片内程序存储器地址D 片外数据存储器地址3.以下指令没有错误的是A PUSH DPTRB SUBB R3,R0C POP DPTRD ADD A,@R1/doc/4117226312.html,B是A 总线标准B 可编程并行接口C 可编程串行接口D 译码器5.在MCS-51中,为实现P0口数据和低位地址分时复用,应使用A 地址寄存器B 地址译码器C 地址缓冲器D 地址锁存器6.MCS-51单片机启动复位后,程序计数器PC的内容为A 0000HB 1000HC 2000HD 3000H7.不能使MCS-51单片机的SP改变的指令是A ANL 指令B PUSH指令C POP指令D LCALL指令8.MCS-51单片机PUSH指令的操作数是A 位操作数B 双字操作数C 字节操作数D 字操作数9. 8031片外扩展数据存储器的最大容量是A 16KB 64KC 8KD 32K10.在LED显示中,为了输出位控和段控信号,应使用指令A MOVXB MOVC MOVCD XCH11.MCS-51执行子程序返回指令,从栈顶弹出的断点地址送给A DPTRB CYC SPD PC12.MCS-51执行出栈指令过程中,SPA 加2B 减2C 减1D 加113.MCS-51的定时器/计数器是A 两个16位的加法计数器B 1个16位的加法计数器C 两个16位的减法计数器D 1个16位的减法计数器14.MCS-51的MOV A,20H指令的源操作数的寻址方式是A 直接寻址B 位寻址C 立即寻址D 间接寻址15.以下关于8155的叙述哪一个是错误的A 是一个可编程的并行接口B 有256个单元的RAMC 是一个可编程的接口芯片D 是一个可编程的串行接口16.D/A是A 模数转换器B 解调器C 调制器D 数模转换器17.在MCS-51中,MOVC指令可对以下哪种存储器进行读操作A 片内数据存储器B 片外数据存储器C 程序存储器D 堆栈区域18.MCS-51的PSW寄存器内存放的是A 指令地址B 栈顶地址C 程序运行的状态信息D 片内数据存储器地址19. 8051单片机的一个机器周期有A 6个时钟周期B 12个时钟周期C 24个时钟周期D 32个时钟周期20.已知8255的端口地址为1000H--1003H,其控制口地址是A 1000HB 1001HC 1002HD 1003H21.MCS-51程序计数器PC的加1操作A 是通过加1指令进行的B 是通过传送进行的C 是通过减法指令进行的D 是自动进行的22.在指令MOV A ,@R1中,R1存放的是A 操作数地址B 转移地址C 操作数D 相对位移量23.MCS-51构成系统总线时,可提供高8位地址线的口是A P0 口B P1 口C P2口D P3口24.下列指令中与进位标志位Cy无关的指令是A 加法指令B 减法指令C 除法指令D 数据传送指令25. 8031扩展外部存储器时要加锁存器74LS373,其作用是A 锁存寻址单元的数据B 锁存相关的控制和选择信号C 锁存寻址单元的高8位地址D 锁存寻址单元的低8位地址26. 在中断服务程序中,至少应有一条A 转移指令B 传送指令C 中断返回指令D 加法指令27.MCS-51单片机复位后,当前的工作寄存器是A 0组B 1组C 2组D 3组28.在MCS-51中,ALU是A CPUB 控制器C 算术逻辑运算单元D 寄存器29.内部RAM中的位寻址区定义的位是给A 位操作准备的B 移位操作准备的C 控制移位操作准备的D 存储状态准备的30.在MCS-51中需双向传递信号的是A 地址线B 控制信号线C 电源线D 数据线31.下列定时/计数硬件资源中,不是供用户使用的是A 定时器/计数器控制逻辑B 低8位计数器TLC 高8位计数器THD 用于定时计数器/计数控制的相关寄存器32. 通过串行口发送或接收数据时,在程序中应使用A MOV指令B MOVC指令C SWAP 指令D MOVX指令33. ADC0809 是A 8位数模转换器B 调制器C 8位模数转换器D 解调器34. 以下指令中源操作数为寄存器寻址的是A ANL A,#0FHB ADD A,R0C MOV A,20HD ADD A,@R035. MCS-51单片机的地址线是A 8根B 16根C 32根D 4根36. MCS-51不能为片外数据存储器提供和构成地址的有A 寄存器R0B 指针DPTRC 寄存器R1D 程序计数器PC37. MCS-51只能进行的十进制运算A 只有加法B 有乘法和除法C 有加法和减法D 只有减法38. MCS-51 的ADDC A,#20H指令,源操作数在A 片内RAM中B 片外RAM中C 程序存储器中D 寄存器中39. 在下列信号中,不是给MCS-51单片机扩展数据存储器使用的是A EAB ALEC WRD RD40. 下列哪条指令执行后,程序计数器PC不发生突变A RETB SJMP L1C ACALL STD PUSH 20H41. 以下各项不能用来对内部数据存储器进行访问的是A 堆栈指针SPB 数据指针DPTRC 按存储单元地址或名称D 由R0或R1间址寻址42. 若在MCS-51系统中只扩展一片Inter 2764(8K×8),除应使用P0口的8条口线外,至少还需要使用P2口的口线A 4条B 5条C 6条D 7条43. 8155是A 总线标准B 锁存器C 可编程的串行接口D 可编程的并行接口44. 已知SP的内容为20H,执行PUSH 30H 后,SP的内容为A 1FHB 21HC 22HD 1EH45. 三态缓冲寄存器输出端的“三态”不包含A 高B 低C 低阻D 高阻46. 以下不属于8255特点的是A 可编程的并行接口B 有24根I/O线C 有3个8位的并行口D 有256个字节的RAM47. 读取A/D转换的结果,使用指令A MOV A,@R0B MOVX @DPTR,AC MOVC A,@A+DPTRD MOVX A,@DPTR48. 在寄存器寻址方式中,指定寄存器中存放的是A 操作数B 地址偏移量C 操作数地址D 转移地址49. 在MCS-51中CY是A 溢出标志B 进位标志C 辅助进位标志D 奇偶标志50. 在直接寻址方式中,操作数是在A 寄存器中B 片内数据存储器中C 片外数据存储器中D 程序存储器中51. MCS-51的PSW是A 堆栈指针B 程序计数器C 程序状态字D 数据指针52. MCS-51单片机外中断初始化时不包括A 设置中断总允许B 设置中断优先级C 设置外中断允许D 设置中断方式53. 外中断请求信号是由A 计数器发出的B 串行口发出的C CPU发出的D 外设发出的54. DAC0832是A 模数转换器B 数模转换器C 调制器D 锁存器55. 为MCS-51外扩的I/O 接口的地址是A 和片内数据存储器统一编址B 和片外数据存储器统一编址C 和片外程序存储器统一编址D 和片内程序存储器统一编址56. 以下不属于MCS-51的定时器/计数器特点的是A 两个16位的定时器/计数器B 加法计数器C 有4种工作方式D 减法计数器57. 调制解调器的功能是A 串行数据与数据的转换B 数字信号与模拟信号的转换C 电平信号与频率信号的转D 基带传送方式与频带传送方式的转换58. MCS-51单片机中的SP是A 程序计数器B 数据指针C 程序状态字D 堆栈指针59. 在以下指令的执行时,可能会影响CY的是A MOV A,#20HB ADD A,20HC POP 20HD XCH A,R160. MCS-51外扩ROM、RAM时,它的数据总线是A P0口B P1口C P2口D P3口61. 中断响应时,要保护断点,入栈保护是A PCB 累加器AC 指针DPTRD 寄存器B62. 使用8255可以扩展出的I/O接口线是A 16根B 22根C 24根D 32根63. 某静态RAM芯片的容量是(4K×8),其片内寻址线是A 12根B 13根C 14根D 15根64. 当单片机启动ADC0809进行A/D转换时,应使用指令A MOV A,20HB MOVX A,@DPTRC MOVC A,@A+DPTRD MOVX @DPTR,A65. 执行子程序返回指令时,返回的断点是A 返回指令的末地址B 调用指令的首地址C 调用指令的末地址D 调用指令的下一个指令的首地址66. 以下叙述中,不属于MCS-51的存储器系统特点的是A 片内、片外存储器同时存在B 系统中可有64K程序存储器C 片内数据存储器有128(256)个单元D 数据存储器和程序存储器统一编址67. 在接口电路中的“口”一定是一个A 数据寄存器B 即可读又可写的寄存器C 可编址的寄存器D 已赋值的寄存器68. 对8155进行初始化编程时,需使用A MOVX指令B MOV 指令C MOVC指令D PUSH指令69. 以下叙述中,不属于DAC0832的工作方式是A直通 B 全双工 C 双缓冲 D 单缓冲70. 在子程序中,至少应有一条A 传送指令B 转移指令C 加法指令D 子程序返回指令71. 以下叙述中,属于总线标准的是A RS-232CB 8255AC 8155D 74LS138多项选择题1.MCS-51单片机执行哪些指令PC发生突变A POP 30HB SJMP LL1C LCALL ASID 当Cy=0,执行JNC LOPE 当A=6,执行JZ NEXT2.以下关于单片机的叙述哪些是正确的A 单片机属于微型计算机B 单片机是将CPU、存储器、I/O接口集成在一块芯片上C 单片机是将CPU、计数器、中断集成在一块芯片上D 单片机是CPUE 单片机是一个可广泛应用于工业、军事、家用电器中的微型机3.以下哪些指令是源操作数是在片内数据存储器中A ANL A,20HB ADD A,@R0C ADD A,#10HD MOVX A,@R1E MOVC A,@A+DPTR4.以下关于8255的叙述哪些是错误的A 8255有22根I/O引脚B 8255有256个字节的RAMC 8255是可编程并行接口D 8255有1个14位的计数器E 8255的A口有3种工作方式5.MCS-51执行以下哪些指令SP会发生变化A PUSH 20HB ANL A,#0FHC LCALL SU1D POP 20HE MOV A,#20H6.MCS-51的寄存器R0、R1可对哪些存储器进行间址A 片内程序存储器B 片外程序存储器C 片内数据存储器D 片外数据存储器E 片外数据存储器的前256个单元7.能为访问程序存储器提供或构成地址的有A PC和AB PSW和AC PCD DPTR和AE PC、A、DPTR和SP8.以下关于MCS-51的定时器/计数器的叙述哪些是错误的A MCS-51有两个16位的定时器/计数器B MCS-51定时器/计数器是减法计数器C MCS-51定时器/计数器有4种工作方式D MCS-51定时器/计数器在片外E MCS-51定时器/计数器不需要初始化9.以下哪些指令不属于算术运算指令A ANL A,#20HB ADD A,R3C SUBB A,20HD INC R1E ORL A,R010.以下哪些叙述属于异步串行通信帧格式的内容A 1--2个停止位B 1个起始位C 1个同步字符D 5--8个数据位E 一位奇偶校验位11.以下叙述哪些不属于总线标准A RS-422B USBC DAC0832D 74LS138E RS-232C12.以下关于MCS-51单片机的特性叙述哪些是正确的A 8位CPUB 32个I/O引脚C 程序和数据存储器同时存在D 24V电源供电E 2个16位可编程定时器/计数器13.以下哪些指令的源操作数是间接寻址A ADD A,30HB MOV A,@R0C MOVX A,@DPTRD XCH A,40HE MOVC A,@A+PC14.对于MCS-51工作寄存器,以下叙述正确的是A 共有8个单元B 用R0--R7命名C 共有32个单元D 分为4组,每组8个E 分为2组,每组8个15.MCS-51单片机执行以下哪些操作PC是顺序改变A PUSH 20HB 当A=5,执行JZ NEXTC ACALL SS1D 响应中断E LJMP NEXT16.以下有关MCS-51定时器/计数器的叙述哪些是错误的A MCS-51有2个16位的加法计数器B MCS-51有2个14位的加法计数器C MCS-51有2个16位的减法计数器D MCS-51定时器/计数器需要进行初始化E MCS-51定时器/计数器计数归零可发出中断请求信号17.下列理由中,能说明MCS-51 I/O端口是统一编址的是A P3口线具有第2功能B 扩展数据存储器与片内数据存储器存储空间重叠C 使用片外数据存储器存取指令访问I/O端口D 没有专门的I/O指令E 没有区分存储器和I/O端口的控制信号18.以下关于8155的叙述哪些是正确的A 8155有A口、B口、C口B 8155有256个字节的RAMC 8155是可编程的并行接口D 8155是可编程的串行接口E 8155有2个16位的计数器19.以下对MCS-51机器周期的叙述哪些是对的A 一个机器周期有12个状态B 一个机器周期有12个时钟周期C 机器周期实现特定功能所需要的时间D 一个机器周期有6个时钟周期E 一个时钟周期有6个状态20.以下关于串行通信的叙述哪些是正确的A 数据一位一位顺序发送或接收B 多位数据同时发送或接收C 异步通信发送器和接收器有各自的时钟周期D 可以通过并行口实现串行通信E 异步通信发送器和接收器使用同一个时钟21.以下有关中断的叙述哪些是正确的A MCS-51有5个中断源B MCS-51的中断不能嵌套C MCS-51的中断需要进行初始化D MCS-51的中断请求都是自动撤除的E MCS-51有两个中断优先级填空:1. 8031单片机复位后,其程序计数器PC的内容为___________。
MCS51单片机总线系统与IO口扩展

6.2.2 单片机总线扩展的编址技术
OE
LE
Dn
Qn
L
H
H
H
L
H
L
L
L
L
L
Qn-1
L
L
H
Qn-1
H
×
×
Z
地址锁存器74LS373
CLR D0-D7Q0-Q7 4 6 2 6 74LS24474LS273 E 0123456789E GG 12Q0-Q7CLKD0-D7AAAAAAAAAAA10A11A12I/O0I/O1I/O2I/O3I/O4I/O5I/O6I/O7OWCE1CE2 56? UUU P0.0-P0.7P0.0-P0.7 +5V 11 01234567 E >> QQQQQQQQ O 01234567 E DDDDDDDDL 2 U74LS373 012 YYY ABC 3 U74LS138 R AD E R P20P07P21P06P22P05P23P04P24P03P25P02P26P01P27P00 W ALE 89C51 1 U
MOV
DPTR,#0FEFFH ;确定扩展芯片地址
MOVX
A,@DPTR
;将扩展输入口内容读入累加器A
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线 输入为0。
6.2.1 单片机I/O口扩展
输出控制信号由P2.0和相“或”后形成。当二者都为0后,74LS273的控制端 有效,选通74LS273, P0上的数据锁存到74LS273的输出端,控制发光二极管 LED , 芯 片 地 址 与 74LS244 的 选 通 地 址 相 同 ( 都 是 ×××× ×××0 ×××× ××××B,通常取为FEFFH)。当某线输出为0时,相应的LED发 光。
单片微型计算机原理及应用_课后习题答案

《单片微型计算机原理及应用》习题参考答案姜志海刘连鑫王蕾编著电子工业出版社目录第1章微型计算机基础 (2)第2章半导体存储器及I/O接口基础 (4)第3章MCS-51系列单片机硬件结构 (11)第4章MCS-51系列单片机指令系统 (16)第5章MCS-51系列单片机汇编语言程序设计 (20)第6章MCS-51系列单片机中断系统与定时器/计数器 (26)第7章MCS-51系列单片机的串行口 (32)第8章MCS-51系列单片机系统扩展技术 (34)第9章MCS-51系列单片机键盘/显示器接口技术 (36)第10章MCS-51系列单片机模拟量接口技术 (40)第11章单片机应用系统设计 (44)第1章微型计算机基础1.简述微型计算机的结构及各部分的作用微型计算机在硬件上由运算器、控制器、存储器、输入设备及输出设备五大部分组成。
运算器是计算机处理信息的主要部分;控制器控制计算机各部件自动地、协调一致地工作;存储器是存放数据与程序的部件;输入设备用来输入数据与程序;输出设备将计算机的处理结果用数字、图形等形式表示出来。
通常把运算器、控制器、存储器这三部分称为计算机的主机,而输入、输出设备则称为计算机的外部设备(简称外设)。
由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元CPU(Central Process Unit)。
2.微处理器、微型计算机、微型计算机系统有什么联系与区别?微处理器是利用微电子技术将计算机的核心部件(运算器和控制器)集中做在一块集成电路上的一个独立芯片。
它具有解释指令、执行指令和与外界交换数据的能力。
其内部包括三部分:运算器、控制器、内部寄存器阵列(工作寄存器组)。
微型计算机由CPU、存储器、输入/输出(I/O)接口电路构成,各部分芯片之间通过总线(Bus)连接。
以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。
MCS-51系列单片机的结构

上一页 下一页 返回
2.1 MCS-51单片机的内部结构
3.控制总线
(1)
:ALE为地址锁存允许信号。在访问外部
存储器时,ALE用来把扩展地址低8位锁存到外部锁存器。在
不访问外部存储器时,ALE引脚以不变的频率(时钟振荡器频
率的1/6)周期性地发出正脉冲信号,因而它又可用作外部定
品有8031和87510 8031是一个无ROM的8051,它从外部ROM 获取所用的指令,8751是一个用EPROM代替ROM的8051, 除此之外,三者的内部结构及引脚完全相同。今后,除特另 11说明外,用8051这个名称来代表8031、8051和87510
上一页 下一页 返回
2.1 MCS-51单片机的内部结构
二功能是在访问外部存储器时,它分时作为低8位地址线和8 位双向数据线。当P0口作为普通输入口使用时,应先向口锁 存器写“1”。 (2) P1口(P1. 0~P1. 7)是一个内部带上拉电阻的准双向I/O口。 当P1口作为普通输入口使用时,应先向口锁存器写“1” 。
上一页 下一页 返回
2.1 MCS-51单片机的内部结构
(1)带进位和不带进位的加法。 (2)带借位减法。 (3) 8位无符号数乘法和除法。 (4)逻辑与、或、异或操作。 (5)加1、减1操作。 (6)按位求反操作。 (7)循环左、右移位操作。 (8)半字节交换。 (9)二一十进制调整。 (10)比较和条件转移的判断等操作。
上一页 下一页 返回
2.1 MCS-51单片机的内部结构
2)指令寄存器IR (Instruction Register) 指令寄存器是一个8位寄存器,用于暂存待执行的指令,等
单片机教材目录

MCS-51单片机
原理及应用技术教程
主编 高洪志 副主编 孙平 关晓冬 孟祥莲
哈尔滨工业大学华德应用技术学院
目录
第1章 单片机概论 第2章 MCS-51单片机的硬件结构 第3章 MCS-51单片机指令系统与程序设计 第4章 MCS-51单片机片内功能模块的使用 第5章 单片机的C语言编程
MCS-51单片机原理及应用技术教程
目录
第6章 MCS-51单片机系统扩展 第7章 MCS-51单片机接口技术应用 第8章 MCS-51单片机的串行通信技术 第9章 单片机应用系统设计与调试 第10章 C51应用实训
MCS-51单片机原理及应用技术教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第十一章 MCS-51单片机系统扩展11.1 8051/8751的最小系统80C51片内有4KB的程序存储器,因此,只需要外接晶体振荡器和复位电路就可构成最小系统。
图11-1 最小单片机系统最小系统的特点如下:(1)由于片外没有扩展存储器和外设,P0、P1、P2、P3都可以作为用户I/O口使用。
但P0口作为用户I/O口使用时,需要加上拉电阻。
(2)片内数据存储器有128字节,地址空间00H~7FH,没有片外数据存储器。
(3)内部有4KB程序存储器,地址空间0000H~0FFFH,没有片外程序存储器,EA应接高电平。
(4)可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源。
80C51虽有4个I/O口P0~P3,但在大多数应用系统中,真正用作I/O 口线的只有P1口的8位位线和P3口的某些位线。
因此,在I/O接口引脚不够,或在片内的存储器资源还不能满足要求时,需要进行如下的扩展:(1) 外部I/O接口的扩展;【例如74LS164、74LS165等】(2) 外部程序存储器的扩展;(3) 外部数据存储器的扩展。
11.2 系统扩展结构单片机采用总线结构,使扩展易于实现,单片机系统扩展结构如图11-2所示。
图11-2 80C51单片机的系统扩展结构从图11-2可以看出,系统扩展主要包括存储器扩展和I/O接口部件扩展。
存储器扩展包括程序存储器扩展和数据存储器扩展。
系统扩展是以单片机为核心,通过总线把单片机与各扩展部件连接起来。
因此,首先要利用单片机的I/O口构造系统总线。
系统总线按功能通常分为3组,如图11-2所示。
(1)地址总线AB(Address Bus):用于发送CPU发出的地址信号,以便进行存储单元和I/O接口芯片中的寄存器的选择。
地址总线宽度为16位,由P0口经地址锁存器(通常用74LS373)提供地址低8位,P2口直接提供地址高8位,地址信号是由CPU发出的单方向信号。
存储器芯片的地址线的数目由芯片的容量决定。
容量(Q)与地址线数目(N)满足关系式:2NQ 。
存储器芯片的地址线与单片机的地址总线(A0~A15,P0口为低8位(需用74LS373锁存),P2口为高8位)按由低位到高位的顺序顺次相接。
一般来说,存储器芯片的地址线数目少于单片机地址总线的数目,因此连接后,单片机的高位地址线(P2口)应该有剩余。
剩余的地址线一般作为译码线,译码器的输出与存储器芯片的片选信号线(CS或CE)相接。
片选信号线CS或CE与单片机系统的译码器输出相接后,就决定了存储器芯片的地址范围。
【P153】地址总线的低8位(A0~A7)由P0口提供,由于P0口是地址和数据分时使用,所以P0口输出的低8位地址必须用锁存器锁存,可以利用ALE 的下降沿将P0口输出的地址信息锁存,P2口提供高8位(A8~A15)地址信息。
由于P2口不是地址和数据分时使用,而且P2口有锁存功能,所以P2口不需要加锁存器。
(2)数据总线DB(Data Bus):数据总线由P0提供,用于单片机与外部存储器之间或与I/O接口之间传送数据,数据总线是双向的。
【由单片机P0口提供,和外部存储器芯片或与I/O芯片的数据口相连】连接时,存储器芯片的数据线与单片机的数据总线(P0.0~P0.7)按由低位到高位的顺序顺次相接。
【要注意顺序,例如ADC0809的数据线就不规范】【P154】数据总线与哪个外设进行数据通信,由CPU输出的地址信号决定,选中的芯片数据线与单片机的数据总线相连,未选中的芯片数据线与单片机总线处于三态高阻状态【相当于断开状态】。
(3)控制总线CB(Control Bus):控制总线是单片机发出的各种控制信号线。
【例如:单片机的ALE、PSEN和P3口的WR、RD】如何构造系统的三总线。
1.P0口作为低8位地址/数据总线80C51受引脚数目限制,P0口既可作为低8位地址总线,又可用作数据总线(分时复用),因此,需增加一个8位地址锁存器【配合ALE信号线】。
单片机访问外部扩展的存储器单元或I/O接口寄存器时,先发出低8位地址送地址锁存器锁存,锁存器输出作为系统的低8位地址(A7~A0)。
随后,P0口又作为数据总线口(D7~D0),如图11-3所示。
【发出的地址由ALE控制地址锁存器进行锁存】2.P2口的口线作为高位地址线P2口用作系统的高8位地址线,再加上地址锁存器提供的低8位地址,便形成了系统完整的16位地址总线。
使单片机系统的寻址范围可以达到64KB。
(216=64K)图11-3 80C51单片机扩展的片外三总线3.控制信号线【控制信号线=P3口的第二功能线+控制引脚】【P154】除地址线和数据线外,还要有系统的控制总线。
这些控制信号线有的就是单片机引脚的第一功能信号,还有的则利用P3口第二功能信号线。
包括:(1)PSEN(29)为外扩程序存储器的读选通控制信号。
例如对于程序存储器来说,具有输出允许控制线OE,它与单片机的PSEN信号线相连。
在执行访问外部程序存储器指令时,PSEN(外部程序存储器选通)信号有效。
【注意:读取EPROM中数据(指令)时,不用RD信号,而用PSEN】(2)RD(P3.7)和WR(P3.6)为外扩数据存储器和I/O的读、写选通控制信号。
例如对于数据存储器,一般都有输出允许控制线OE和写控制线WE,它们分别与单片机的读信号线RD和写信号线WR相连。
在访问外部数据存储器【包括I/O】指令时,由P3口自动产生读/写(RD/WR)信号,通过P0口对外部数据存储器单元进行读/写操作。
(3)ALE(30)作为P0口发出的低8位地址锁存控制信号。
(4)EA(31)为片内、片外程序存储器的选择控制信号。
可见,80C51的4个并行I/O口,由于系统扩展的需要,真正作为通用I/O 引脚用的部分,就剩下P1口和P3口的部分引脚了。
11.3 地址空间分配和外部地址锁存器11.3.1 存储器地址空间分配在设计实际系统时,可能既需要扩展程序存储器,又需要扩展数据存储器,如何把片外的两个64KB地址空间分配给各个程序存储器、数据存储器芯片,使一个存储单元只对应一个地址,避免单片机发出一个地址时,同时访问两个单元,发生数据冲突。
这就是存储器地址空间分配需要解决的问题。
单片机发出的地址用于选择某个存储器单元,如果外扩多片存储器芯片时,单片机就必须进行两种选择:一是:选中该存储器芯片,这称为“片选”,未被选中的芯片不能被访问(三态-高阻)。
二是:在“片选”的基础上再根据单片机发出的地址来对“选中”芯片的某一单元进行访问,即“单元选择”。
【相当于两级方式,一是选中该芯片,然后用地址选择存储单元】【相当于找人,先问住哪栋楼(片选),再问哪房间号(单元选择)】【先找学校,系别,班级,再找人。
学校、学号是唯一的对应人】【实验A楼,203房间】为了实现片选,存储器芯片都有片选引脚CE,还有多条地址线引脚,以便进行单元选择。
注意,“片选”和“单元选择”都是单片机通过地址线一次发出的地址信号来完成选择。
通常把单片机系统的地址线分为低位地址线和高位地址线,“片选”都是使用高位地址线(P2口的线)。
实际上,16条地址线中的高、低位地址线的数目并不是固定的,只是习惯上把用于“单元选择”的地址线,称为低位地址线,其余的为高位地址线。
常用的存储器地址空间分配方法有两种:线选法和地址译码法。
1.线选法线选法是直接利用系统的某一高位地址线(P2口的某一根线)作为存储器芯片(或I/O接口芯片)的“片选(CE)”控制信号。
为此,只需要把用到的高位地址线与存储器芯片的“片选”端直接连接即可。
【在DAC0832中】线选法优点是电路简单,不需要另外增加地址译码器硬件电路,成本低。
缺点是可寻址的芯片数目受到限制。
另外,地址空间不连续,每个存储单元的地址不唯一,这会给程序设计带来不便,只适用于外扩芯片数目不多的单片机系统的存储器扩展。
【因为P2口的一根线对应一个芯片】【前面有的例子中,如果只有一片外扩芯片,也可以直接把片选信号线直接接地,但是有多片的话,不能直接接地】2.译码法存储器芯片的地址线与单片机系统的地址线顺次相接后,利用剩余的高位地址线参加译码。
使用译码器对80C51单片机的高位地址线进行译码,译码输出作为存储器芯片的片选信号。
这种方法能够有效地利用存储器空间,适用于多芯片的存储器扩展。
常用的译码器芯片有74LS138(3线-8线译码器)、74LS139(双2线-4线译码器)和74LS154(4线-16线译码器)。
【139――24;154――416】下面介绍常用的译码器芯片。
(1)74LS1383-8译码器,有3个数据输入端,经译码后产生8种状态。
引脚如图11-4所示,真值表见表11-1。
由表11-1可见,当译码器的输入为某一固定编码时,其输出仅有一个固定的引脚输出为低电平,其余的为高电平。
输出为低电平的引脚就作为某一存储器芯片的片选信号CS或CE。
表11-1 74LS138真值表注:1表示高电平,0表示低电平,×表示任意【C为高位,A为低位】【G1接高电平,/G2A和/G2B接低电平】【G1、2G B必须分别为:“1”、“0”、“0”】G A、2图11-4 74LS138引脚图先看一个简单的例子:【已通过138】#include <reg51.h>void Delay(unsigned int count) // 延时子函数{ unsigned char i;while(count--)for(i=0;i<120;i++); // 延时1ms}void main(){ P2 = 0x00;while(1){ P2 = (P2+1)%8; // 结果分别为1,2,3,4,5,6,7,0 Delay(500);}}(2)74LS139双2线-4线译码器。
这两个译码器完全独立,分别有各自的数据输入端、译码状态输出端以及数据输入允许端,其引脚如图11-5所示,真值表见表8-2(只给出其中一组)。
图11-5 74LS139引脚图【/1G、/2G接低电平。
B为高位,A为低位】#include <reg51.h>【已通过139】void Delay(unsigned int count) // 延时子函数{unsigned char i;while(count--)for(i=0;i<120;i++); // 延时1ms}void main(){P2 = 0x00;while(1){P2 = (P2+1)%4; // 结果分别为1,2,3,0Delay(500);}}(3)74LS154D、C、B、A:译码地址输入端(低电平有效),D为高位G、2G:选通端(低电平有效)10~15:输出端(低电平有效)功能表:说明: H-高电平;L-低电平;X-任意;*-其他输出为高电平#include <reg51.h> 【已通过154】void Delay(unsigned int count) // 延时子函数{unsigned char i;while(count--)for(i=0;i<120;i++); // 延时1ms}void main(){P2 = 0x00;while(1){ P2 = (P2+1)%16; // 结果分别为1,2,3,4,5,6,7,8 Delay(500); // 9,10,11,12,13,14,15,0}}。