第11章 MCS-51单片机系统扩展-第1部分 - 1
- 格式:doc
- 大小:656.50 KB
- 文档页数:11
单片机复习资料绪论单片机定义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的内容为___________。
《单片微型计算机原理及应用》习题参考答案姜志海刘连鑫王蕾编著电子工业出版社目录第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)连接。
以微型计算机为主体,配上外部输入/输出设备、电源、系统软件一起构成应用系统,称为微型计算机系统。
(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、单片机内外中断源按优先级别分为高级中断和低级中断,级别的高低是由(中断优先级寄存器,)寄存器的置位状态决定的。
第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单片机原理和接口技术习题参考答案第一章绪论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子系列。
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作为寄存器名称。
第十一章 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}}。