好文档 - 专业文书写作范文服务资料分享网站

第09章单片机应用系统资源扩展习题解答

天下 分享 时间: 加入收藏 我要投稿 点赞

第 09 章 单片机应用系统资源扩展 习题解答

一、

填空题

数据 寄存器间址

存储器的地址。

寻址方式。

1. 8051 单片机扩展 I/O 口时占用片外 2. 8051 单片机寻址外设端口时用 3. 8051 单片机 PSEN 控制

程序

存储器读操作。 ALE 信号锁存来自

P0 口的低八位地址信号。 15

根地址线。

片; 若

4. 8051 单片机访问片外存储器时利用 5. 12 根地址线可选

4K

个存储单元, 32KB存储单元需要

6. 欲增加 8KB× 8 位的 RAM区,请问选用 Intel 2114(1KB × 4 位) 需购 16 改用 Intel 片。

7.74LS164 是

串入并出

转换芯片, 74LS165 是

并入串出

6116(2KB× 8 位) 需购 4

片,若改用 Intel

6264 (1KB× 8 位)需购 8

转换芯片。

8

8.74LS138 是具有 3 个输入端的译码器芯片,其输出作为片选信号时,最多可以选中 块芯片。

9.74LS273 通常用来作简单 接口扩展。

10.片选方式通常有 3 种形式: 二、

简答题

线选法 、 部分译码器法 、 全译码法 输出

接口扩展;而 74LS244 则常用来作简单

输入

1.简述单片机并行扩展外部存储器时三总线连接的基本原则。

答:P0 口提供数据线, P0、P2 口提供地址线,低位用于片内选择,高位用做片选信号, 用 PSEN 控制程序存储器的读操作,用

RD 和WR 控制数据存储器或

I/O 端口的读写。

2.什么是全译码?什么是部分译码?什么是线选法?有什么特点?

答:(1)全译码法: 先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后, 剩余的高位地址线的全部经译码后连接到各扩展芯片的片选线上。 空间是唯一确定的,不会有地址重叠。但译码电路相对复杂。

(2)部分译码法:与全译码法类似,先将扩展芯片的地址线与单片机的地址总线从低位开 始顺次相连后, 剩余的高位地址线的一部分经译码后连接到各扩展芯片的片选线上。 码使存储器芯片的地址空间也有重叠, 又有所改进。

(3)线选法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的 高位地址线的一根或几根直接连接到各扩展芯片的片选线上。

线选法的优点是简单明了, 不

部分译

全译码法扩展芯片的地址

但硬件上比全译码法简单, 重叠情况与线选法相比较

需增加额外电路。 缺点是存储空间不连续, 存在地址重叠现象。 适用于扩展存储容量较小的

场合。

3.画出利用线选法,用 地址范围。 答:电路如图所示

3 片 2764A 扩展 24K× 8 位 EPROM 的电路图。分析每个芯片的

U2 地址: C000H~DFFFH U3 地址: A000H~BFFFH U4 地址: 6000H~7FFFH

4.采用 2114 芯片在 8031 片外扩展 1 KB 数据存储器,并分析地址范围。 答:电路如图所示。

地址范围:因为地址总线的高位 6 =64 个重复地址区间, 每个区间的范围为 1K。

P2.2~P2.7 均没用上,共存着 2

0000H~03FFH

,,

,,

,0400H~07FFH,0800H~0BFFH,0C00H~0FFFH ,,

,,

,,

,,

,,

,,

FC00H~FFFFH

5.采用 2764 和 6264 芯片在 8031 片外分别扩展 24 KB 程序存储器和数据存储器。

答:电路如图所示

外部 ROM

U2 地址: C000H~DFFFH U3 地址: A000H~BFFFH U4 地址: 6000H~7FFFH

外部 RAM 芯片 U5、U6、U7 的地址范围分别与 U2、U3、U4 一致,但由于使用不同 的指令访问,因此相互并无影响。 三、

Proteus 仿真

7. 在 Proteus 下,完成 9.7 节内容。 答:全自动洗衣机控制器存储器扩展

Proteus 仿真

需要的存储器容量也不断增加。

当单片机内部存储

AT24C02 的方

随着全自动洗衣机功能的不断丰富,

器不够用时,就需要在外部扩展。下面介绍对全自动洗衣机控制器扩展一片 法,并在 Proteu 下仿真实现。

2C 总线,扩展一片 AT24C02,通过两个独立中断

用 8051 单片机的 P1.0 和 P1.1 模拟 I

按钮对 AT24C02 进行读写控制。用一片并串转换芯片

4014 扩展一个 8 位数字量输入电路,

输入 8 个拨码开关的状态。在 P0 口扩展 8 个 LED 发光二极管。当读按键按下时,从

AT24C02 芯片。当写按键按下时,从

4014

芯片读入 8 位拨码开关的状态信息,并写入 芯片中读出刚才保存的

AT24C02

8 位拨码开关状态信息,并送 P0 口显示。电路如图 9-33 所示。

图 9-33 仿真电路原理图

C 语言参考程序代码如下: #include

#define uchar unsigned char #define uint unsigned int #define DELAY_TIME 60 #define TRUE 1 #define FALSE 0 #define MY ADDR 0x08 sbit SDA=P1^0; sbit SCL=P1^1; sbit SL=P1^7; sbit SD=P3^0; sbit CLK=P3^1;

/*4014 并转串输入子程序 */

//定义 AT24C02 内部单元地址 //用 P1.0 模拟 I2C 总线的 SDA //用 P1.1 模拟 I2C 总线的 SCL //4014 工作方式控制口 //定义串口数据线 //定义串口时钟线 //定义延时时间常数 //定义布尔常量

//包含头文件,其中定义 //简化无符号变量声明字

51 特殊寄存器

uchar get_input() {

uchar dat; //声明 RAM 变量,用于存放转换后的 8 位数据

SL=1; // 置 4014 于并行输入工作方式

CLK=0; //串行口未启动之前, P3.1 上无同步移位脉冲 CLK=1; //并行置数,软件产生一个脉冲上升沿 SL=0; // 置 4014 于串行移位工作方式 SCON=0x10; // 串口工作方式 0,允许接收 ES=0; //关中断

while (RI==0); //查询接收中断标志位 RI=0; //全部接收完成,清零标志位 dat=SBUF; // 将转换后的数据送 dat SL=1; // 置 4014 于并行输入工作方式 return(dat); // 返回 dat 值

}

/********** I2C

相关子函数 ************/

//-------------- 延时函数 -------------- void DELAY(uint t) // 输入定时时间 t,无输出

{

while(t!=0)

t--; //当 t 不为 0 时自减 1 }

/* I2C_Start()函数的作用:产生 I2C 总线启动信号,当 SCL 为高电平时使 一个由高至低的电平跳变 */

void I2C_Start(void) //无输入变量,无返回值

{ SDA=1; //置 SDA 口高电平

SCL=1;

//置 SCL 口高电平

DELAY(DELAY_TIME); //延时,让 SCL,SDA 高电平持续一段时间 SDA=0;

//使 SDA 口输出低电平SDA 产生

第09章单片机应用系统资源扩展习题解答

第09章单片机应用系统资源扩展习题解答一、填空题数据寄存器间址存储器的地址。寻址方式。1.8051单片机扩展I/O口时占用片外2.8051单片机寻址外设端口时用3.8051单片机PSEN控制程序存储器读操作。ALE信号锁存来自
推荐度:
点击下载文档文档为doc格式
196vt3197e35m4y31ezc5v45r56fo50090c
领取福利

微信扫码领取福利

微信扫码分享