作业习题 单片机系统扩展Word文档格式.docx
《作业习题 单片机系统扩展Word文档格式.docx》由会员分享,可在线阅读,更多相关《作业习题 单片机系统扩展Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
()
2、使用8751且EA=1时,仍可外扩64KB的程序存储器。
3、8155的复位引脚可与89C51的复位引脚直接相连。
4、片外RAM与外部设备统一编址时,需要专门的输入/输出指令。
5、8031片内有程序存储器和数据存储器。
6、EPROM的地址线为11条时,能访问的存储空间有4K。
7、8255A内部有3个8位并行口,即A口,B口,C口。
8、8155芯片内具有256B的静态RAM,2个8位和1个6位的可编程并行I/O口,1个14位定时期等部件。
9、在单片机应用系统中,与外部设备、外部数据存储器传送数据时,使用MOV指令。
10、为了消除按键的抖动,常用的方法有硬件和软件两种方法。
三、简答题
18031的扩展储存器系统中,为什么P0口要接一个8位锁存器,而P2口却不接?
2在8031扩展系统中,外部程序存储器和数据存储器共用16位地址线和8位数据线,为什么两个存储空间不会发生冲突?
38031单片机需要外接程序存储器,实际上它还有多少条I/O线可以用?
当使用外部存储器时,还剩下多少条I/O线可用?
4试将8031单片机外接一片2716EPROM和一片6116RAM组成一个应用系统,请画出硬件连线图,并指出扩展存储器的地址范围。
5简述可编程并行接口芯片8255A的内部结构?
四、编程题
1试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/计数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。
2设单片机采用8051,未扩展片外ROM,片外RAM采用一片6116,编程将其片内ROM从0100H单元开始的10B的内容依次传送到片外RAM从0100H单元开始的10B中去。
38031扩展8255A,将PA口设置成输入方式,PB口设置成输出方式,PC口设置成输出方式,给出初始化程序。
4设计一个2×
2行列式键盘电路并编写键盘扫描子程序。
5要求将存放在8031单片机内部RAM中30H-33H单元的4字节数据,按十六进制(8位)从左到右显示,试编制程序。
答案
1、6264芯片是(B)
(A)EEPROM(B)RAM(C)FLASHROM(D)EPROM
2、MCS-51用串行口扩展并行I/O口时,串行接口工作方式选择(A)
3、使用8255可以扩展出的I/O口线是(B)
4、当8031外扩程序存储器8KB时,需使用EPROM2716(C)
5、某种存储器芯片是8KB*4/片,那么它的地址线根线是(C)
6、MCS-51外扩ROM、RAM和I/O口时,它的数据总线是(A)
7、当使用快速外部设备时,最好使用的输入/输出方式是(C)
8、MCS-51的中断源全部编程为同级时,优先级最高的是(D)
9、MCS-51的并行I/O口信息有两种读取方法:
一种是读引脚,还有一种是(A)
10、MCS-51的并行I/O口读-改-写操作,是针对该口的(D)
(对)
(错)60KB
(错)统一编址的,特点正是无需专门的输入输出指令。
(错)无程序存储器
(错)2K
7、8255A内部有3个8位并行口,即A口、B口、C口。
(错)用MOVX指令。
答:
这是因为P0口是扩展存储器系统的低8位地址和数据总线,在访问外部存储器时,P0口分时用作输出外部储存器低8位地址和传送数据,为了在整个访问外部存储器期间,对外部存储器存在着有效的低8位地址信号,所以P0口需要外接一个地址锁存器。
ALE信号就是用来把P0口输出的地址字节锁存在这个外接的锁存器中,再从锁存器输出外部存储器的低8位地址。
而P2口只用作扩展存储器系统的高8位地址线,并在整个访问外部存储器期间不变,所以不必外接地址锁存器。
这是因为外部程序存储器和外部数据存储器所使用的控制信号不同。
对外部程序存储器的选读通是用PSEN控制线,而对外部数据存储器的读/写控制是用RD和WR读、写控制线,所以不会发生地址冲突。
8031系统必须外接程序存储器,原则上说,P0和P2口要用作数据和地址总线,所以只有P1和P3口可用作I/O口,共16条I/O线。
在使用外部存储器时,除了占用P0和P2口外,还需要用P3口RD(P3.7)和WR(P3.6)两条控制线,所以这种情况下就只剩下14条I/O线可用了。
2716是2K×
8位的EPROM,6116是2K×
8位的静态RAM,两者都仅需要11根地址线。
由于没有规定地址范围,故可按最简单的方式来连接,即省去地址译码器,程序存储器的地址必须从0开始,基本地址为0000H—07FFH。
数据存储器的地址为0000H—07FFH。
控制线的连接为/PSEN控制EPROM的读出,/RD和/WR控制RAM的读写,两个芯片的片选端都固定接地,连线图如图所示。
P2.2
P2.1
P2.0
D7Q7
.
D0Q0
G/E
P0
8031
ALE
/PSEN
/EA
/RD
/WE
5简述可编程并行接口8255A的内部结构?
8255A的内部结构由三部分组成:
总线接口部分,内部逻辑部分,外部接口部分。
(1)总线接口部分其中有数据总线驱动器,读/写控制逻辑
(2)内部逻辑部分由A组和B组控制电路。
(3)外部接口部分该部分有3个8位并行I/O端口,即A口、B口和C口。
1试编程对8155进行初始化,设A口为选通输出,B口为选通输入,C口作为控制联络口,并启动定时器/记数器按方式1工作,工作时间为10ms,定时器计数脉冲频率为单片机的时钟频率24分频,fosc=12MHz。
解:
算得初值=5000
=1388H
MOVDPTR,#7F04;
定时器低八位寄存器地址DPTR
MOVA,#88H;
低8位初值A
MOVX@DPTR,A;
低8位初值低8位寄存器
INCDPTR;
DPTR指向定时器高8位
MOVA,#13H;
高8位初值A
MOVX@DPTR,A;
高8位初值高8位寄存器
MOVDPTR,#7F00H;
8155命令寄存器地址DPTR
MOVA,0C5H;
命令字A
命令字命令寄存器
MOVR2,#00H;
源数据缓冲器地址偏移量00HA
MOVR3,#0AH;
字节长度R3
MOVDPTR,#0100H;
源数据缓冲区首地址DPTR
MOVA,R2;
源地址偏移量A
MOVCA,@A+DPTR;
传送一个数据
MOVX@DPTR,A
源地址(目的地址)加1
DJNZR3,L1;
数据全部传送完?
没传送完,转L1继续传送
SJMP$;
结束
根据题目要求,A口输入,B口输出,二者均采用工作方式0,则控制字为98H。
编程如下:
MOVA,#98H;
方式控制字A
MOVDPTR,#7FFFH;
选通控制寄存器
MOVX@TPTR,A;
方式控制字送入8255A
MOVDPTR,#7FFCH
MOVXA,@DPTR;
读PA口数据
MOVDPTR,#7FFDH;
送PB口数据
(1)2×
2行列式键盘电路如图所示。
5V
(2)键盘扫描子程序:
KEY1:
ACALLKS1;
调用判断有无键按下子程序
JNZLK1;
有键按下,转LK1
AJMPKEY1;
无键按下,返回
LK1:
ACALLT12MS;
调延时12ms子程序
ACALLKS1;
查有无键按下
JNZLK2;
若有,则为键确实按下,转逐列扫描
AJMPKEY1;
LK2:
MOVR4,#00H;
首列号R4
MOVR2,#FEH;
首列扫描字R2
LK4:
MOVA,R2;
列扫描字P1口
MOVP1,A;
使第一列线为0
MOVA,P1;
读入行状态
JBACC.0,LONE;
第0行无键按下,转查第一行
MOVA,#00H;
第0行有键按下,该行首键号#00HA
AJMPLKP;
转求键号
LONE:
JBACC.1,NEXT;
第一行无键按下,转查下一列
MOVA,#02;
第一行有键按下,该行首键号#02A
LKP:
ADDA,R4;
键号=首行号+列号
PUSHACC;
键号进栈保护
LK3:
等待键释放
JNZLK3;
未释放,等待
POPAC;
键释放,键号A
RET;
键扫描结束
NEXT:
INCR4;
列号加1,指向下一列
列扫描字A
JNBACC.1,KND;
判断2列全扫描完?
扫描完,转KND
RLA;
没扫描完,扫描字左移一位,形成下一列扫描字
MOVR2,A;
扫描字R2
AJMPLK4;
扫描下一列
全扫描完,返回
MOVA,#FCH;
全扫描字11111100BA
MOVP1,A;
全扫描字所有行
MOVA,P1;
读取列值
CPLA;
取正逻辑,高电平表示有键按下
ANLA,#0C0H;
屏蔽低6位,取高2位
出口状态(A)!
=0,有键按下
ORG1000H
MOVR0,#30H;
指向显示缓冲区
MOVR2,#04;
显示字节数
MOVP1,#08H;
初始显示位置(最高位)
SDLAY:
MOVA,@R0;
取1stB
MOVB,A;
备份
ANLA,#0F0H;
截取字节高位
ORLP1,A;
装入P1.4-P1.7
INCP1;
准备显示右一位
MOVA,B;
取备份
SWAPA;
截取字节低位
装入并显示
准备显示下一字节
INCR0
DJNZR2,SDLAY;
4B未显示完循环
RET;
显示完成
END