第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单片机原理及应用技术教程
51单片机课件第一章
1.2.2单片机的发展趋势
(1)CPU功能增强
(2)内部资源增多 (3)引脚多功能化 (4)寻址范围增加 (5)超微型化
(6)低电压和低功耗
1.3 单片机应用
电讯方面
工业方面
汽车方面
民用方面 数据处理方面
仪表方面
1.4 MCS-51单片机
1.4.1 MCS-51系列单片机
MCS51是指由美国INTEL公司生产的一系列单片 机的总称,这一系列单片机包括了好些品种,如 8031,8051,8751,8032,8052,89C51等,其中 8051是最早最典型的产品,该系列其它单片机都是 在8051的基础上进行功能的增、减、改变而来的, 所以人们习惯于用8051来称呼MCS51系列单片机, 而8031是前些年在我国最流行的单片机,所以很多 场合会看到8031的名称。
1.2 单片机的发展历史及发展趋势 1.2.1 单片机的发展历史 单片机的发展经历了由4位机到8位机,再到16位 机的发展过程,目前8位单片机仍在广泛使用。 第一代:1974~76,起步阶段 特点:制造工艺落后,集成度低,采用双片形式 典型代表:美国仙童(Fairchild)公司F8系列 第二代:1976~78,低性能单片机阶段 特点:性能低,品种少,应用范围不广(比较简单 场合) 典型代表:Intel公司的MCS-48型,8位单片机 采用8位CPU、2个 I/O口、8位定时器/计数器、简单 中断,寻址小于4K,且无串行口。
单片机系统
CPU
输 入 设 备
输 入 接 口 设 备
运算器 控制器
存储器 硬件系统
输 出 接 口 设 备
输 出 设 备
软
+
件 系
统
单片机内部结构示意图
MCS-51单片机结构和原理
整理课件 15
跳转到第一页
7FH 30H
2FH
7F
7E
7D
7C
7B
7A
79
78
2EH
77
76
75
74
73
72
71
70
2DH
6F
6E
6D
6C
6B
6A
69
68
2CH
67
66
65
64
63
62
61
60
2BH
5F
5E
5D
5C
5B
5A
59
58
2AH
57
56
55
54
53
52
51
50
29H
4F
4E
4D
4C
4B
4A
P2.1
P2.0
9F
9E
9D
9C
9B
9A
SCON
SM0
SM1
SM2
REN
TB8
RB8
99
98
98H
TI
RI
97
96
95
94
93
92
91
90
P1
90H
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
8F
8E
8D
8C
8B
8A
89
88
TCON
88H
TF1
TR1
TF0
TR0
IE1
IT1
IE0
整理课件 4
第1章 MCS-51单片机的组成及结构
3.开发手段:
硬件调试:编制出简单的单元调试程序使系统运行, 用示波器、万用表也可使用逻辑分析仪。软件调试目前多用 KEIL51软件,它集编辑、编译、仿真为一体,支持汇编、 PLM语言和C语言的程序设计,界面友好,易学易用,是目 前对单片机进行调试最好的软件之一。
22
4.开发工具:
设计一种通用的调试程序工具,把开发系统的CPU和 RAM暂时出借给用户控制板(控制系统),利用开发系统进 行调试,然后把调试好的程序固化到EEPROM中。
25
▪ 调试——硬件仿真器
目标系统 硬件仿真器
开发软件 26
▪ 调试
开发软件 通信数据线 目标系统
27
▪ 程序下载——使用ISP(In System Program在系统
编程)ISP软件
下载线 目标系统
28
1.1.3 MCS-51的应用特性
MCS-51系列单片机已有十多种产品,可分为两大系列:51 子系列和52子系列。
6
(2) 通用微机中存储器组织结构主要针对增大存储容量和 CPU对数据的存取速度。
单片机中存储器的组织结构比较简单,存储器芯片直接 挂接在单片机的总线上,CPU对存储器的读写按直接物理地址 来寻址存储器单元,存储器的寻址空间一般都为64 KB。
7
(3) 通用微机中I/O接口主要考虑标准外设(如CRT、标准键 盘、鼠标、打印机、硬盘、光盘等)。用户通过标准总线连接 外设,能达到即插即用。
30
2)SST89X564XX器件带有72/40KByte的片内 FlashEEROM,内存储器,8个中断源,4个优先级,3 个定时/计数器,功能更加强大。
3)以CPU为核心,将A/D,D/A,前置电路和显示接口电路 等全部进行嵌入设计后,烧写在一个芯片中,从而使系Байду номын сангаас简 化,实现了真正的“系统单片机”的应用设计.
(C语言版)绝密版C51单片机复习题及答案
(C语言版)绝密版C51单片机复习题及答案一填空题1、计算机中最常用的字符信息编码是(ASCII码)。
2、MCS-51系列单片机为(8)位单片机。
3、若不使用MCS-51片内存储器引脚(/EA)必须接(地)。
4、8031内部有(128)个RAM;8051内部有(4K ROM)和(128个RAM)。
5、堆栈的地址由(SP)内容确定,其操作规律是“(先)进(后)出”。
6、在单片机扩展时,(P0)口和(P2)口为地址线,(P0)口又分时作为数据线。
7、在MCS-51单片机中,如采用6MHZ晶振,一个机器周期为(2us)。
8、当80C51的RST引脚上保持(2)个机器周期以上的低电平时,80C51即发生复位。
9、当P1口做输入口输入数据时,必须先向该端口的锁存器写入(1),否则输入数据可能出错。
10、若某存储芯片地址线为12根,那么它的存储容量为(4K B)。
11、程序状态寄存器PSW的作用是用来保存程序运行过程中的各种状态信息。
其中CY为(进位)标志,用于无符号数加(减)运算,当进行(位)操作时作为位累加器。
OV为(溢出)标志,用于有符号数的加(减)运算。
12、消除键盘抖动常用两种方法,一是采用(硬件去抖电路),用基本RS触发器构成;二是采用(软件去抖程序),既测试有键输入时需延时(约大于10毫秒)后再测试是否有键输入,此方法可判断是否有键抖动。
13、若MCS-51单片机采用12MHz的晶振频率,它的机器周期为(1us),ALE引脚输出正脉冲频率为(2MHZ)。
14、8051有两个16位可编程定时/计数器,T0和T1。
它们的功能可由两个控制寄存器(TCON)、(TMOD)的内容决定,且定时的时间或计数的次数与(TH)、(TL)两个寄存器的初值有关。
15、串行口的控制寄存器SCON中,REN的作用是(允许串行接收位)。
16、单片机内外中断源按优先级别分为高级中断和低级中断,级别的高低是由(中断优先级寄存器,)寄存器的置位状态决定的。
51单片机复习题及答案
第1章单片机概述1.单片机与普通微型计算机的不同之处在于其将CPU、存储器、和I/O口 3部分集成于一块芯片上。
2.8051与8751的区别是C。
A.内部数据存储单元数目不同B.内部数据存储器的类型不同C.内部程序存储器的类型不同D.内部寄存器的数目不同3.在家用电器中使用单片机应属于微计算机的。
A.辅助设计应用;B.测量、控制应用;C.数值计算应用;D.数据处理应用答:B。
第2章 51单片机片内硬件结构1.在51单片机中,如果采用6MHz晶振,一个机器周期为。
答:2µs2.AT89C51单片机的机器周期等于个时钟振荡周期。
答:12。
3.若A中的内容为63H,那么,P标志位的值为。
答:P标志位的值为0。
4.内部RAM中,可作为工作寄存器区的单元地址为 H~ H。
答:00H;1FH。
5.通过堆栈操作实现子程序调用,首先要把的内容入栈,以进行断点保护。
调用返回时,再进行出栈保护,把保护的断点送回到。
答:PC;PC。
6. 51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为51单片机的PC是16位的,因此其寻址的范围为 KB。
答:64KB。
7.判断下列项说法是正确的。
A.51单片机的CPU是由RAM和EPROM组成的B.区分片外程序存储器和片外数据存储器的最可靠的方法是看其位于地址范围的低端还是高端C.在51单片机中,为使准双向的I/O口工作在输入方式,必须保证它被事先预置为1D.PC可以看成是程序存储器的地址指针答: A. 错; B. 错;C. 对;D. 对。
8.判断以下有关PC和DPTR的结论是正确的。
A.DPTR是可以访问的,而PC不能访问B.它们都是16位寄存器C.在单片机运行时,它们都具有自动加“1”的功能D.DPTR可以分为2个8位的寄存器使用,但PC不能答:A. 对; B. 对;C. 错;D. 对。
9.判断下列说法项是正确的。
A.程序计数器PC不能为用户编程时直接访问,因为它没有地址B.内部RAM的位寻址区,只能供位寻址使用,而不能供字节寻址使用C.51单片机共有21个特殊功能寄存器,它们的位都是可用软件设置的,因此,是可以进行位寻址的。
MCS-51单片机原理和接口技术习题参考答案
MCS-51单片机原理和接口技术习题参考答案第一章绪论1-1解答:第一台计算机的研制目的是为了计算复杂的数学难题。
它的特点是:计算机字长为12位,运算速度为5000次/,使用18800个电子管,1500个继电器,占地面积为150m2,重达30t,其造价为100多万美元。
它的诞生,标志着人类文明进入了一个新的历史阶段。
1-2解答:单片微型计算机简称单片机。
一个完整的单片机芯片至少有中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时/计数器及I/O接口等部件。
1-3解答:单片机的发展大致经历了四个阶段:第一阶段(1970—1974年),为4位单片机阶段;第二阶段(1974—1978年),为低中档8位单片机阶段;第三阶段(1978—1983年),为高档8位单片机阶段;第四阶段(1983年至今),为8位单片机巩固发展阶段及16位单片机、32位单片机推出阶段。
1-4解答:Intel公司的MCS-48系列、MCS-51系列、MCS-96系列产品;Motorola公司的6801、6802、6803、6805、68HC11系列产品;Zilog公司的Z8、Super8系列产品;Atmel公司的AT89系列产品;Fairchild公司的F8和3870系列产品;TI公司的TMS7000系列产品;NS公司的NS8070系列产品;NEC公司的μCOM87(μPD7800)系列产品;National公司的MN6800系列产品;Hitachi公司的HD6301、HD63L05、HD6305。
1-5解答:(1)8031/8051/8751三种型号,称为8051子系列。
8031片内没有ROM,使用时需在片外接EPROM。
8051片内含有4KB的掩模ROM,其中的程序是生产厂家制作芯片时烧制的。
8751片内含有4KB的EPROM,用户可以先用紫外线擦除器擦除,然后再利用开发机或编程器写入新的程序。
(2)8032A/8052A/8752A是8031/8051/8751的增强型,称为8052子系列。
MCS-51单片机(完整版)
智能仪表
单机应用 机电一体化产品
智能接口
单片机应用
智能民用产品 功能集散系统
多机应用 并行多控制系统
局部网络系统 是指在一个应用系统中,使用多个单片机。
2 单片机芯片的硬件结构
2.1 MCS-51单片机的逻辑结构及信号引脚
2.1.1 MCS-51单片机基本结构框图
输入输出接口 (I/O)
控制与运算单元 (CPU)
1.2 单片机的发展 1.2.1 单片机的发展概述
1946 第一台计算机诞生 1971 第一个微处理器诞生 1976 MCS-48(8位) 1980 MCS-51(8位) 1983 MCS-96(16位) 80年代末 Motorola 680X
Zilog Z-8
Rockwell 650X•••
当前: (1) MCS-51、MCS-96系列发 展(2。) PIC (Microchip公司) (3) ARM (4) 凌阳单片机 (5) AVR
1.3.1 单片机的特点
长寿命 体积小 低电压与低功耗
低噪声与高可靠性技术
总而言之,单片机具有集成度高、功能强、体 积小、功耗低、使用方便、价格低廉等优点。
第一章 单片机概述
1.1 单片机的概念
1.2 单片机的发展
1.3 单片机的应用
1.3.1 单片机的特点 1.3.2 单片机的应用领域
是指在一个应用系统中,只用一个单片机。 测控系统
外接晶体引线端
2.1.3 MCS-51的信号引脚 1. 信号引脚介绍 2. 信号引脚的第二功能
• P3口线的第二功能
口线
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
第二功能 RXD TXD INT0 INT1 T0 T1 WR RD
MCS-51单片机的硬件结构
XTAL1 19
VSS
20
8031 8051 8751
40 VCC 39 P0.0 38 P0.1 37 P0.2 36 P0.3 35 P0.4 34 P0.5 33 P0.6 32 P0.7 31 EA/Vpp 30 ALE/PROG 29 PSEN 28 P2.7
27 P2.6 26 P2.5 25 P2.4 24 P2.3
P1.0 1 P1.1 2 P1.2 3 P1.3 4
P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST/VPD 9
RXD/P3.0
10
TXD/P3.1
11
INT0/P3.2
12
INT1/P3.3
13
T0/P3.4
14
T1/P3.5
15
WR/P3.6
16
RD/P3.7
17
XTAL2 18
17
RD(外部数据存储器读脉
P3.7
冲)
返回本节
2.2 MCS-51单片机的引脚及片外总线结构
2.2.1 MCS-51单片机芯片引脚描述 2.2.2 MCS-51单片机的片外总线结构
返回本章首页
2.2.1 MCS-51单片机芯片引脚描述
图2-7为MCS-51单片机的引脚配置图。 1.主电源引脚VCC和VSS 2.外接晶振引脚XTAL1和XTAL2 3.控制或其他电源复用引脚RST/ VPD、ALE/、 和/VPP 4.输入/输出引脚P0、P1、P2、P3(共32根)
VCC
P2.7 PP22..56 P2.4 P2.3 P2.2 P2.1 P2.0 PPP000...756
P0.3 P0.2 P0.1 P0.0
ALE
第1章 MCS-51单片机结构
ROM
(I/O口 地址)
7FH 通用 RAM区
1000H 位寻址区 工作寄 存器区 0000H 外部数据存储器 (b) 0000H 0FFFH 0FFFH 外部 内部 ROM ROM (EA=1) (EA=0) 0000H
30H 2FH 20H 1F H 00H
内部数据存储器 (a)
程序存储器
(c)
图1-6
第1章 MCS-51单片机结构
P0.0~P0.7:P0口,数据/低八位地址复用总线端口。 P1.0~P1.7:P1口,静态通用端口。 P2.0~P2.7:P2口,高八位地址总线端口。 P3.0~P3.7:P3口,双功能静态端口。
在增强型的52系列单片机中,P1.0、P1.1除为端口
线外,还为定时/计数器2的外部引脚 T2和T2EX。
哈佛结构:ROM和RAM地址空间分开,两者可以有相同的地址。如
8XX51单片机。
第1章 MCS-51单片机结构
从物理空间看,MCS-51有6个存储器地址空间:
(1)片内程序存储器 8031无内部ROM;其他一般为4kB/8kB (2)片外程序存储器 64kB ROM (3)片内数据存储器 128B/256B RAM
图1-6
第1章 MCS-51单片机结构
ALE/PROG: ①ALE (Address locked enable)地址锁存 允许。 访问外部存储器时,ALE为低8位地址锁 存允许输出信号端。ALE输出脉冲的频率为振荡 频率的1/6。 ②PROG 对8751单片机片内 EPROM 编程时, 编程脉冲由该引脚引入。 (3)用示波器查看ALE检查单片机好坏。 PSEN:程序存储器允许。输出读外部程序存储 器的选通信号。 EA/VPP: ① EA =0,单片机只访问外部程序存储器。 EA =1,单片机访问内部程序存储器。 ②在8751单片机片内EPROM编程期间,此引脚 引入21V编程电源VPP。
《单片机原理及应用》课后习题答案
2.5 MCS-51系列单片机的存储器可划分为几个空间?各自的地址范围 和容量是多少?在使用上有什么不同?
答案:MCS-51的存储器空间可以划分为以下4种,分别是: 程序存储器;内部数据存储器;内部特殊功能寄存器;外部数据存储 器; 对89S51来说,程序存储器分为片内程序存储器和片外程序存储器, 片内程序存储器地址范围为0000H-0FFFH,4KB;片外程序存储器地址范 围0000H~FFFFH,64KB。内部程序存储器与外部程序存储器统一编址, 当EA为高电平时,从内部程序存储器开始读取程序,达到4KB后跳到片 外程序存储器的1000H开始读取程序;当EA为低电平时,直接从片外程 序存储器的0000H开始处读取程序。 内部数据存储器地址范围为00H~7FH,128B,在程序中做通用存 储器使用。 内部特殊功能寄存器地址范围80H~FFH,128B,专用于控制、管 理片内算术逻辑部件、并行I/O口、串行I/O口、定时器/计数器、中断 系统等功能模块的工作。 外部数据存储器地址范围0000H~FFFFH,64KB,又称为外部数据 RAM,当单片机内部128个字节的数据RAM不能满足系统工作的需要时, 可以通过它的外部总线扩展外部数据存储器。
第2章 MCS-51的基本结构
• • • • • • • • 2.1 MCS-51单片机内部包含那些主要逻辑功能部件?各个功能部件的最主要的功能是 什么? 2.2 2.3 2.4 MCS-51的EA端有何用途? MCS-51单片机外部总线结构是怎样的? MCS-51单片机存储器的组织结构是怎样的?
ቤተ መጻሕፍቲ ባይዱ
2.5 MCS-51系列单片机的存储器可划分为几个空间?各自的地址范围和容量是多少? 在使用上有什么不同? 2.6 8051如何确定和改变当前工作寄存器组? 2.7 MCS-51单片机的程序存储器中0000H、0003H、000BH、0013H、001BH和0023H这几 个地址具有什么特殊的功能? 2.8 8051单片机有哪几个特殊功能寄存器?可位寻址的SFR有几个?
51单片机基础知识试题题库(含答案)
51单片机基础知识试题题库(含答案)第1章习题参考答案一、填空题:1、当MCS-51引脚ALE有效时,表示从P0口稳定地送出了低8位地址。
2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。
3、当使用8751且EA=1,程序存储器地址小于1000H时,访问的是片内ROM。
4、MCS-51系统中,当PSEN信号有效时,表示CPU要从外部程序存储器读取信息。
5、MCS-51有4组工作寄存器,它们的地址范围是00H~1FH6、MCS-51片内20H~2FH范围内的数据存储器,既可以字节寻址又可以位寻址。
7、PSW中RS1RS0=10时,R2的地址为12H8、PSW中RS1RS0=11时,R2的地址为1AH9、单片机系统复位后,(PSW)=00H,因此片内RAM寄存区的当前寄存器是第0组,8个寄存器的单元地址为00H~07H10、PC复位后为0000H11、一个机器周期=12个振荡周期=6个状态周期。
12、PC的内容为将要执行的指令地址13、在MCS-51单片机中,如果采用6MHz晶振,1个机器周期为2u14、内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H15、若A中的内容为63H,那么,P标志位的值为016、8051单片机复位后,R4所对应的存储单元的地址为04H,因上电时PSW= 00H这时当前的工作寄存器区是第0工作寄存器区。
17、使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。
18、片内RAM低128个单元划分为哪3个主要部分:工作寄存器区、位寻址区和用户RAM区19、通过堆栈操作实现子程序调用,首先就要把PC的内容入栈,以进行断点保护。
调用返回时,再进行出栈保护,把保护的断点送回到PC20、MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为64KB。
21、MCS-51单片机片内RAM的寄存器共有32个单元,分为4组寄存器,每组8个单元,以R0~R7作为寄存器名称。
- 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}}。