作业习题 单片机系统扩展Word文档格式.docx

上传人:b****7 文档编号:22070772 上传时间:2023-02-02 格式:DOCX 页数:18 大小:69.20KB
下载 相关 举报
作业习题 单片机系统扩展Word文档格式.docx_第1页
第1页 / 共18页
作业习题 单片机系统扩展Word文档格式.docx_第2页
第2页 / 共18页
作业习题 单片机系统扩展Word文档格式.docx_第3页
第3页 / 共18页
作业习题 单片机系统扩展Word文档格式.docx_第4页
第4页 / 共18页
作业习题 单片机系统扩展Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

作业习题 单片机系统扩展Word文档格式.docx

《作业习题 单片机系统扩展Word文档格式.docx》由会员分享,可在线阅读,更多相关《作业习题 单片机系统扩展Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

作业习题 单片机系统扩展Word文档格式.docx

()

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1