内容正文:
《单片机的C语言程序设计及应用》(电工版第4版)
第7章 外部并行扩展的C51编程 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题2分,共40分)
1.C51单片机扩展外部并行存储器时,通常用作地址/数据复用总线的端口是 ( )
A.P0 B.P1 C.P2 D.P3
2.在扩展外部RAM时,ALE信号的作用是 ( )
A.锁存低8位地址 B.锁存高8位地址
C.控制读写操作 D.片选信号
3.以下用于定义外部存储器的访问时序的寄存器是 ( )
A.TMOD B.SCON C.AUXR D.PCON
4.使用xdata关键字声明的变量存储在 ( )
A.片内RAM B.片外RAM C.程序存储器 D.寄存器组
5.扩展外部并行I/O口时,常用的地址锁存器芯片是 ( )
A.74HC573 B.74HC138 C.74HC04 D.74HC595
6.DAC0832数模转换芯片的位数是 ( )
A.8位 B.10位 C.12位 D.16位
7.访问外部ROM时,C51应使用的关键字是 ( )
A.Data B.xdata C.code D.pdata
8.以下用于区分访问的是外部RAM还是ROM的信号是 ( )
A.ALE B.PSEN C.EA D.RD
9.若需要扩展16KB外部RAM,至少需要的地址线的根数是 ( )
A.10 B.12 C.14 D.16
10.在C51中,pdata存储类型对应的地址范围是 ( )
A.0x00-0xFF B.0x0000-0xFFFF C.仅0x0000 D.由编译器决定
11.以下用于向外部RAM写入数据的指令是 ( )
A.MOVX @DPTR,A B.MOVC @A+DPTR,A
C.MOV @R0,A D.MOVX A, @R1
12.外部并行扩展时,P2端口通常用于 ( )
A.数据总线 B.低8位地址 C.高8位地址 D.控制信号
13.若使用线选法扩展3个外设,至少需要的I/O口线的根数是 ( )
A.2 B.3 C.4 D.8
14.以下适合访问外部RAM的页内地址(0-255)的寻址方式是 ( )
A.MOVX A,@DPTR B.MOVX A, @R0
C.MOVC A, @A+DPTR D.MOV A, @R1
15.8255A的工作方式控制字中,若要使PA口输入,PB口输出,PC口高4位输入、低4位输出,则控制字应为( )
A.0x90 B.0x82 C.0x99 D.0x8B
16.扩展8255并行接口芯片时,决定其内部端口地址的是 ( )
A.A0和A1引脚 B.数据总线 C.片选信号 D.复位信号
17.在51单片机系统中,若8255A的A0、A1分别接P2.0、P2.1,CS接P2.7的反相输出,则PA口的地址可能是( )
A.0x7FFC B.0xFFFC C.0x0000 D.0x7FFF
18.若要让8255A工作在方式1(选通输入/输出模式),且PA口作为输入,PB口作为输出,则控制字应为( )
A.0xB0 B.0xA0 C.0xC8 D.0xD0
19.使用74HC138译码器扩展8个外设时,输入需要地址线的根数是 ( )
A.2 B.3 C.4 D.8
20.在C51中,访问外部I/O端口的速度通常比片内I/O ( )
A.更快 B.更慢 C.相同 D.取决于时钟频率
二、判断题(本题共10小题,每题2分,共20分)
1.C51单片机扩展外部并行存储器时,P0口既用作数据总线又用作低8位地址总线。()
2.ALE信号在外部存储器访问周期中用于锁存高8位地址。()
3.ADC0808是一款8位逐次逼近型模数转换芯片,可直接与51单片机并行接口。()
4.ADC0808的转换启动信号和输出允许信号必须由单片机同一引脚控制。()
5.74HC573芯片常用于外部地址锁存。()
6.在单缓冲方式下,向DAC0832写入数据后,需额外发送一个启动信号才能开始转换。()
7.8255A的工作方式控制字必须写入控制寄存器,且只能在上电初始化时设置一次。()
8.DAC0832的输出电压范围是0~5V。()
9.扩展外部I/O口时,必须使用MOV指令进行读写操作。()
10.外部RAM的地址范围由P2端口决定高8位。()
三、填空题(本题共4小题,每空2分,共10分)
1.在C51单片机中,使用__xdata关键字定义的变量存储在______存储器空间。
2.若外部扩展的RAM芯片有12根地址线,其最大存储容量为______KB。
3.使用MOVX A, @Ri指令访问外部存储器时,Ri寄存器提供的是______位地址,高8位地址由______寄存器决定。
4.若外部存储器采用6264芯片(8KB RAM),其地址范围是0x0000~0x1FFF,则P2.7~P2.5应接______(高/低)电平。
四、简答题。(本题共2小题,第1题4分、第2题5分,共9分)
1.简述C51单片机扩展外部并行RAM时,P0口和P2口的作用及地址锁存过程。
2.说明MOVX @DPTR, A和MOVX @Ri, A指令的区别及适用场景。
五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共21分)
1.在某一单片机应用系统中,通过8255A 扩展了3个并行的I/O口,电路如图所示。编程将PA口输入的数据通过PB、PC输出。请填空。
#include<reg51.h>
#include<absacc.h>
#define PA XBYTE[0xfffc]
#define PB XBYTE[0xfffd]
#define PC XBYTE[0xfffe]
#define PK XBYTE[0xffff]
void main()
{ 【1】;
while(1)
{ 【2】 ;
【3】;}}
2.电路如图所示,P1口接拨动开关作为输入值,将该值通过DACO832转换输出,由电压表测量DAC0832输出的电压值。请填空。
include<【1】>
inelude<reg51.h>
#define uchar unsigned char
#define DAC0832 XBYTE[0x7fff]
void main()
{ 【2】;
【3】
{【4】=P1;}}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
《单片机的C语言程序设计及应用》(电工版第4版)
第7章 外部并行扩展的C51编程 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题2分,共40分)
1.C51单片机扩展外部并行存储器时,通常用作地址/数据复用总线的端口是 ( )
A.P0 B.P1 C.P2 D.P3
【答案】A
2.在扩展外部RAM时,ALE信号的作用是 ( )
A.锁存低8位地址 B.锁存高8位地址
C.控制读写操作 D.片选信号
【答案】A
3.以下用于定义外部存储器的访问时序的寄存器是 ( )
A.TMOD B.SCON C.AUXR D.PCON
【答案】C
4.使用xdata关键字声明的变量存储在 ( )
A.片内RAM B.片外RAM C.程序存储器 D.寄存器组
【答案】B
5.扩展外部并行I/O口时,常用的地址锁存器芯片是 ( )
A.74HC573 B.74HC138 C.74HC04 D.74HC595
【答案】A
6.DAC0832数模转换芯片的位数是 ( )
A.8位 B.10位 C.12位 D.16位
【答案】A
7.访问外部ROM时,C51应使用的关键字是 ( )
A.Data B.xdata C.code D.pdata
【答案】C
8.以下用于区分访问的是外部RAM还是ROM的信号是 ( )
A.ALE B.PSEN C.EA D.RD
【答案】B
9.若需要扩展16KB外部RAM,至少需要的地址线的根数是 ( )
A.10 B.12 C.14 D.16
【答案】C
10.在C51中,pdata存储类型对应的地址范围是 ( )
A.0x00-0xFF B.0x0000-0xFFFF C.仅0x0000 D.由编译器决定
【答案】A
11.以下用于向外部RAM写入数据的指令是 ( )
A.MOVX @DPTR,A B.MOVC @A+DPTR,A
C.MOV @R0,A D.MOVX A, @R1
【答案】A
12.外部并行扩展时,P2端口通常用于 ( )
A.数据总线 B.低8位地址 C.高8位地址 D.控制信号
【答案】C
13.若使用线选法扩展3个外设,至少需要的I/O口线的根数是 ( )
A.2 B.3 C.4 D.8
【答案】B
14.以下适合访问外部RAM的页内地址(0-255)的寻址方式是 ( )
A.MOVX A,@DPTR B.MOVX A, @R0
C.MOVC A, @A+DPTR D.MOV A, @R1
【答案】B
15.8255A的工作方式控制字中,若要使PA口输入,PB口输出,PC口高4位输入、低4位输出,则控制字应为( )
A.0x90 B.0x82 C.0x99 D.0x8B
【答案】C
16.扩展8255并行接口芯片时,决定其内部端口地址的是 ( )
A.A0和A1引脚 B.数据总线 C.片选信号 D.复位信号
【答案】A
17.在51单片机系统中,若8255A的A0、A1分别接P2.0、P2.1,CS接P2.7的反相输出,则PA口的地址可能是( )
A.0x7FFC B.0xFFFC C.0x0000 D.0x7FFF
【答案】A
18.若要让8255A工作在方式1(选通输入/输出模式),且PA口作为输入,PB口作为输出,则控制字应为( )
A.0xB0 B.0xA0 C.0xC8 D.0xD0
【答案】A
19.使用74HC138译码器扩展8个外设时,输入需要地址线的根数是 ( )
A.2 B.3 C.4 D.8
【答案】B
20.在C51中,访问外部I/O端口的速度通常比片内I/O ( )
A.更快 B.更慢 C.相同 D.取决于时钟频率
【答案】B
二、判断题(本题共10小题,每题2分,共20分)
1.C51单片机扩展外部并行存储器时,P0口既用作数据总线又用作低8位地址总线。()
【答案】正确
2.ALE信号在外部存储器访问周期中用于锁存高8位地址。()
【答案】错误
3.ADC0808是一款8位逐次逼近型模数转换芯片,可直接与51单片机并行接口。()
【答案】正确
4.ADC0808的转换启动信号和输出允许信号必须由单片机同一引脚控制。()
【答案】错误
5.74HC573芯片常用于外部地址锁存。()
【答案】正确
6.在单缓冲方式下,向DAC0832写入数据后,需额外发送一个启动信号才能开始转换。()
【答案】错误
7.8255A的工作方式控制字必须写入控制寄存器,且只能在上电初始化时设置一次。()
【答案】错误
8.DAC0832的输出电压范围是0~5V。()
【答案】正确
9.扩展外部I/O口时,必须使用MOV指令进行读写操作。()
【答案】错误
10.外部RAM的地址范围由P2端口决定高8位。()
【答案】正确
三、填空题(本题共4小题,每空2分,共10分)
1.在C51单片机中,使用__xdata关键字定义的变量存储在______存储器空间。
【答案】外部RAM
2.若外部扩展的RAM芯片有12根地址线,其最大存储容量为______KB。
【答案】4
3.使用MOVX A, @Ri指令访问外部存储器时,Ri寄存器提供的是______位地址,高8位地址由______寄存器决定。
【答案】8、P2
4.若外部存储器采用6264芯片(8KB RAM),其地址范围是0x0000~0x1FFF,则P2.7~P2.5应接______(高/低)电平。
【答案】低
四、简答题。(本题共2小题,第1题4分、第2题5分,共9分)
1.简述C51单片机扩展外部并行RAM时,P0口和P2口的作用及地址锁存过程。
【答案】
P0口作为分时复用的地址/数据总线,先输出低8位地址(通过ALE信号锁存到74HC573等锁存器),再作为数据总线传输数据;P2口直接输出高8位地址,与锁存后的低8位地址共同构成16位地址线。锁存过程:ALE信号下降沿时,外部锁存器将P0口的低8位地址保存并保持稳定,供后续访问周期使用。
2.说明MOVX @DPTR, A和MOVX @Ri, A指令的区别及适用场景。
【答案】
MOVX @DPTR, A:通过16位DPTR寻址,可访问全部64KB外部RAM,适合随机地址访问。
MOVX @Ri, A:通过8位Ri(R0/R1)寻址,仅访问当前P2口确定的256字节页,适合高速局部操作。
场景:前者用于大范围数据存储,后者用于频繁操作外设寄存器
五、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空3分,共21分)
1.在某一单片机应用系统中,通过8255A 扩展了3个并行的I/O口,电路如图所示。编程将PA口输入的数据通过PB、PC输出。请填空。
#include<reg51.h>
#include<absacc.h>
#define PA XBYTE[0xfffc]
#define PB XBYTE[0xfffd]
#define PC XBYTE[0xfffe]
#define PK XBYTE[0xffff]
void main()
{ 【1】;
while(1)
{ 【2】 ;
【3】;}}
【答案】
【1】PK=0x90
【2】PB=PA
【3】PC=PA
【解析】
【1】处需要初始化8255A的控制字。根据题目要求PA口作为输入,PB和PC口作为输出,工作在方式0,所以控制字应为10010000B(0x90)。
【2】和【3】处分别将PA口读取的数据输出到PB和PC口。
2.电路如图所示,P1口接拨动开关作为输入值,将该值通过DACO832转换输出,由电压表测量DAC0832输出的电压值。请填空。
include<【1】>
inelude<reg51.h>
#define uchar unsigned char
#define DAC0832 XBYTE[0x7fff]
void main()
{ 【2】;
【3】
{【4】=P1;}}
【答案】
【1】absacc.h
【2】P1=0xff
【3】while(1)
【4】DAC0832
【解析】
【1】#include<absacc.h>:因为使用了 XBYTE 宏来访问外部存储器(DAC0832),所以需要包含 absacc.h 头文件。
【2】P1=0xFF;:8051的P1口默认是准双向口,写入 0xFF 可以使其进入输入模式(高电平),以便正确读取拨动开关的状态。
【3】while(1):无限循环,持续读取P1口的值并输出到DAC0832。
【4】DAC0832=P1;:将P1口读取的8位数字量写入DAC0832,DAC0832会将其转换为模拟电压输出。
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$