微机控制技术第五章练习题答案第五章5-1 选择题1、6264 芯片是( B)(A ) EEPROM (B)RAM (C)FLASH ROM (D)EPROM2、用 MCS-51 用串行扩展并行 I/O 口时,串行接口工作方式选择( A )(A ) 方式0 ( B)方式1 ( C)方式2 ( D)方式33、使用 8255 可以扩展出的 I/O 口线是( B)(A) 16 根 (B) 24 根 (C) 22 根 (D) 32 根4、当 8031 外出扩程序存储器 8KB 时,需使用 EPROM 2716 (C)(A) 2 片 (B) 3 片 (C) 4 片 (D) 5片5、某种存储器芯片是 8KB*4/ 片,那么它的地址线根线是( C)(A) 11 根 (B) 12 根 (C) 13 根 (D) 14 根6、MCS-51 外扩 ROM ,RAM 和 I/O 口时,它的数据总线是( A)(A) P0 ( B) P1 (C) P2 ( D) P37 、当使用快速外部设备时,最好使用的输入 / 输出方式是( C)(A )中断(B)条件传送(C) DMA ( D)无条件传送8、MCS-51 的中断源全部编程为同级时,优先级最高的是( D)(A ) INT1 ( B) TI ( C)串行接口( D) INTO9 、MCS-51 的并行 I/O 口信息有两种读取方法:一种是读引脚,还有一种是( A)(A )读锁存器具(B)读数据库(C)读A累加器具(D )读CPU10 、MCS-51 的并行 I/O 口读 -改-写操作,是针对该口的( D)(A )引脚(B)片选信号(C)地址线(D)内部锁存器5-2 判断题1、MCS-51 外扩 I/O 口与外 RAM 是统一编址的。
(对)2、使用 8751 且 EA=1 时,仍可外扩 64KB 的程序存储器。
(错) 60KB3、8155 的复位引脚可与 89C51 的复位引脚直接相连。
(对)4、片内 RAM 与外部设备统一编址时,需要专门的输入 / 输出指令。
(错)统一编址的特点正是无需专门的输入输出指令。
5、8031 片内有程序存储器和数据存储器。
(错)无程序存储器6、EPROM的地址线为11条时,能访问的存储空间有 4K。
(错)2K.7、8255A 内部有 3 个 8 位并行口 ,即 A 口, B 口, C 口。
(对)8、8155 芯片内具有 256B 的静态 RAM,2 个8位和 1 个6位的可编程并行 I/O 口, 1个14 位定时期等常用部件及地址锁存器。
(对)9、在单片机应用系统中,外部设备与外部数据存储器传送数据时,使用MOV 指令。
(错)用 MOVX 指令。
5-3 简答题1 8031的扩展储存器系统中,为什么P0 口要接一个8位锁存器,而P2 口却不接?答:这是因为P0 口是扩展储存器系统的多路低8 位地址和数据总线,在访问外部存储器时,P0 口分时用作输出外部储存器低8 位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8 位地址信号,所以P0 口需要外接一个地址锁存器。
ALE信号就是用来把P0 口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。
而P2 口只用作扩展存储器系统的高8 位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。
2 在8031 扩展系统中,外部程序存储器和数据存储器共用16 位地址线和8 位数据线,为什么两个存储空间不会发生冲突?答:这是因为外部程序存储器和外部数据存储器所使用的控制信号不同。
对外部程序存储器的选读通是用PSEN 控制线,而对外部数据存储器的读/写控制是用RD 和WR 读、写控制线,所以不会发生地址冲突。
3 8031 单片机需要外接程序存储器,实际上它还有多少条I/O 线可以用?当使用外部存储器时,还剩下多少条I/O 线可用?答:8031 系统必须外接程序促成器,原则上说,P0 和P2 口要用作数据和地址总线,所以只有P1和P3 口可用作I/O 口,共16条I/O线。
在使用外部存储器时,除了占用P0和P2 口外,还需要用P3 口RD (P3.7 )和WR (P3.6 )两条控制线,所以这种情况下就只剩下14条I/O线可用了。
4 试将8031单片机外接一片2716 EPROM 和一片6116 RAM 组成一个应用系统,请画出硬件连线图,并指出扩展存储器的地址范围。
答:2716是2K X8位的EPROM,6116是2K X8位的静态RAM,两者都仅需要11根地址线。
由于没有规定地址范围,故可按最简单的方式来连接,即省去地址译码器,程序存储器的地址必须从0开始,基本地址为0000H —07FFH。
数据存储器的地址为0000H —07FFH。
控制线的连接为/PSEN控制EPROM的读出,/RD和/WR 控制RAM的读写,两个芯片的片选端都固定接地,连线图如图所示。
(1)总线接口部分其中有数据总线驱动器,读/写控制逻辑 (2)内部逻辑部分 由A 组和B 组控制电路(3)外部接口部分 /RD /WE5简述可编程并行接口 8255 A 的内部结构?答:8255 A 的内部结构由三部分组成:总线接口部分,内部逻辑部分,外部接 口部分。
该部分有3个8位并行I/O 端口,即A 口、B 口和C 口 5-4编程题1试编程对8155进行初始化,设A 口为选通输出,B 口为选通输入,C 口作 为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器 计数脉冲频率为单片机的时钟频率 24分频,fosc=12MHz 。
解:算得初值=5000 =1388HMOVDPTR,#7F04 定时器低八位寄存器地址—DPTR MOV A,#88H 低8位初什 AMOV A,#13H ;高8位初AMOVX @DPTR,A ;高8位初值一高8位寄存器MOV DPTR,#7F00H ;8155命令寄存器地址—DPTRMOV A,0C5H ;命令AMOVX @DPTR,A ;命令字一k命令寄存器设单片机采用8051,未扩展片外ROM,片外RAM采用一片6116 , 编程将其片内ROM从0100H 单元开始的10B得内容依次外接到片外RAM从100H 单元开始得10B中去。
解:MOV R2,#00H ;源数据缓冲器地址偏移量00卄AMOV R3,#0AH ;字节长度—R3MOV DPTR,#0100H ;源数据缓冲区首地址—DPTRMOV A,R2 ;源地址偏移量f AMOVC A,@A+DPTR ;传送一个数据MOVX @DPTR,AINC DPTR ;源地址(目的地址)加1DJNZ R3,L1 ;数据全部传送完?没传送完,转L1继续传送SJMP $ ;结束3 8031扩展8255A,将PA 口设置成输入方式,PB 口设置成输出方式,PC 口设置成输出方式,给出初始化程序AJMP KEY1;无键按下,返回解: (2)键盘扫描子程序: KEY1: ACALL KS1 JNZLK1 ;调用判断有无键按下子程序 ;有键按下,转LK1根据题目要求,A 口输入,B 口输出,二者均采用工作方式0,则控制MOV A,#98H MOVDPTR,#7FFFH MOVX@TPTR,A MOVDPTR,#7FFCH MOVXA,@DPTR MOVDPTR,#7FFDH MOVX @DPTR,A 字为98H 。
编程如下:;方式控制字 A ;选通控制寄存器 ;方式控制字送入8255A ;读PA 口数据 ;送PB 口数据 4 设计一个2 X 2行列式键盘电路并编写键盘扫描子程序。
解: (1) 2 X 2行列式键盘电路如图所示。
LK1: ACALL T12MS: ;调延时12ms子程序ACALL KS1 ;查有无键按下JNZ LK2 ;若有,则为键确实按下,转逐列扫描AJMP KEY1 ;无键按下,返回LK2: MOV R4,#00H ;首列号R4MOV R2,#FEH ;首列扫描字R2 LK4: MOV A,R2 ;列扫描字f P1 口MOV P1,A ;使第一列线为0MOV A,P1 ;读入行状态JB ACC.0 ,L ONE ;第0行无键按下,转查第一行MOV A,#00H ; 第0行有键按下,该行首键号# 00H AAJMP LKP ;转求键号LONE: JB ACC.1,NEXT ;第一行无键按下,转查下一列MOV A,#02 ;第一行有键按下,该行首键号# "02 ALKP: ADD A,R4 ;键号二首行号+列号PUSH ACC ;键号进栈保护LK3: ACALLKS1: ;等待键释放JNZ LK3 ;未释放,等待POP AC ;键释放,键号f ARET ;键扫描结束NEXT: INC R4 ;列号加1,指向卜一列MOV A,R2 ;列扫描字f AJNB ACC.1,KND ;判断2列全扫描完?扫描完,转KNDRL A ;没扫描兀,扫描字左移一位,形成下一列扫扌田子MOV R2,A ;扫描字f R2AJMP LK4 ;扫描下一列AJMP KEY1 ;全扫描完,返回MOV A,#FCH ;全扫描字11111100B-AMOV P1,A ;全扫描字—k所有行MOV A,P1 ;读取列值CPL A ;取正逻辑,高电平表示有键按下ANL A,#0C0H ;屏敝低6位,取咼2位RET ;出口状态(A)!=0,有键按下5 要求将存放在8031 单片机内部RAM中30H —33H单元的4字节数据,按十八进制(8位)从做到右显示,试编制程序。
ORG1000H: ;指向显示缓冲区MOV R0,#30H ;显示字节数MOV R2,#04 ;初始显示位置(最高位)MOV P1,#08H ;取1BSDLAY: MOV A,@R0 ;备份MOV B,A ;截取字节高位ANL A,#0F0H ;装入P1.4—P1.7;准备显示右一位ORL P1,A;取备份INC P1;截取字节低位MOV A,B?SWAP AANL A,#0F0H;装入并显示ORL P1,A;准备显示下一字节INC P1INC R0DJNZ R2,SDLAY ;4B 未显示完循环;显示完成RETEND。