第09章 单片机应用系统资源扩展 习题解答
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#define TRUE 1//定义布尔常量
#define FALSE 0
#define MYADDR 0x08//定义AT24C02内部单元地址
sbit SDA=P1^0; //用P1.0模拟I2C总线的SDA
sbit SCL=P1^1;//用P1.1模拟I2C总线的SCL
sbit SL=P1^7; //4014工作方式控制口
第09章单片机应用系统资源扩展习题解答
一、填空题
1. 8051单片机扩展I/O口时占用片外数据存储器的地址。
2. 8051单片机寻址外设端口时用寄存器间址寻址方式。
3. 8051单片机PSEN控制程序存储器读操作。
4. 8051单片机访问片外存储器时利用ALE信号锁存来自P0口的低八位地址信号。
5.12根地址线可选4K个存储单元,32KB存储单元需要15根地址线。
sbit SD=P3^0; //定义串口数据线
sbit CLK=P3^1;//定义串口时钟线
/*4014并转串输入子程序*/
uchar get_input()
{
uchar dat; //声明RAM变量,用于存放转换后的8位数据
SL=1; //置4014于并行输入工作方式
CLK=0; //串行口未启动之前,P3.1上无同步移位脉冲
图9-33仿真电路原理图
C语言参考程序代码如下:
#include<reg51.h>//包含头文件,其中定义51特殊寄存器
#define uchar unsigned char //简化无符号变量声明字
#define uint unsigned int
#define DELAY_TIME 60 //定义延时时间常数
6.欲增加8KB×8位的RAM区,请问选用Intel 2114(1KB×4位)需购16片; 若改用Intel6116(2KB×8位)需购4片,若改用Intel6264 (1KB×8位)需购8片。
7.74LS164 是串入并出转换芯片,74LS165是并入串出转换芯片。
8.74LS138是具有3个输入端的译码器芯片,其输出作为片选信号时,最多可以选中8块芯片。
(3)线选法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的一根或几根直接连接到各扩展芯片的片选线上。线选法的优点是简单明了,不需增加额外电路。缺点是存储空间不连续,存在地址重叠现象。适用于扩展存储容量较小的场合。
3.画出利用线选法,用3片2764A扩展24K×8位EPROM的电路图。分析每个芯片的地址范围。
SL=1; //置4014于并行输入工作方式
return(dat); //返回dat值
}
/********** I2C相关子函数************/
//--------------延时函数--------------
U3地址:A000H~BFFFH
U4地址:6000H~7FFFH
外部RAM芯片U5、U6、U7的地址范围分别与U2、U3、U4一致,但由于使用不同的指令访问,因此相互并无影响。
三、Proteus仿真
1.在Proteus下,完成9.7节内容。
答:全自动洗衣机控制器存储器扩展Proteus仿真
随着全自动洗衣机功能的不断丰富,需要的存储器容量也不断增加。当单片机内部存储器不够用时,就需要在外部扩展。下面介绍对全自动洗衣机控制器扩展一片AT24C02的方法,并在Proteu下仿真实现。
CLK=1; //并行置数,软件产生一个脉冲上升沿
SL=0; //置wenku.baidu.com014于串行移位工作方式
SCON=0x10; //串口工作方式0,允许接收
ES=0; //关中断
while (RI==0); //查询接收中断标志位
RI=0; //全部接收完成,清零标志位
dat=SBUF; //将转换后的数据送dat
答:电路如图所示
U2地址:C000H~DFFFH
U3地址:A000H~BFFFH
U4地址:6000H~7FFFH
4.采用2114芯片在8031片外扩展1 KB数据存储器,并分析地址范围。
答:电路如图所示。
地址范围:因为地址总线的高位P2.2~P2.7均没用上,共存着26=64个重复地址区间,每个区间的范围为1K。
9.74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。
10.片选方式通常有3种形式:线选法、部分译码器法、全译码法
二、简答题
1.简述单片机并行扩展外部存储器时三总线连接的基本原则。
答:P0口提供数据线,P0、P2口提供地址线,低位用于片内选择,高位用做片选信号,用 控制程序存储器的读操作,用 和 控制数据存储器或I/O端口的读写。
0000H~03FFH,0400H~07FFH,0800H~0BFFH,0C00H~0FFFH
…… …… …… …… …… …… …… …… FC00H~FFFFH
5.采用2764和6264芯片在8031片外分别扩展24 KB程序存储器和数据存储器。
答:电路如图所示
外部ROM
U2地址:C000H~DFFFH
2.什么是全译码?什么是部分译码?什么是线选法?有什么特点?
答:(1)全译码法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的全部经译码后连接到各扩展芯片的片选线上。全译码法扩展芯片的地址空间是唯一确定的,不会有地址重叠。但译码电路相对复杂。
(2)部分译码法:与全译码法类似,先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的一部分经译码后连接到各扩展芯片的片选线上。部分译码使存储器芯片的地址空间也有重叠,但硬件上比全译码法简单,重叠情况与线选法相比较又有所改进。
用8051单片机的P1.0和P1.1模拟I2C总线,扩展一片AT24C02,通过两个独立中断按钮对AT24C02进行读写控制。用一片并串转换芯片4014扩展一个8位数字量输入电路,输入8个拨码开关的状态。在P0口扩展8个LED发光二极管。当读按键按下时,从4014芯片读入8位拨码开关的状态信息,并写入AT24C02芯片。当写按键按下时,从AT24C02芯片中读出刚才保存的8位拨码开关状态信息,并送P0口显示。电路如图9-33所示。
#define FALSE 0
#define MYADDR 0x08//定义AT24C02内部单元地址
sbit SDA=P1^0; //用P1.0模拟I2C总线的SDA
sbit SCL=P1^1;//用P1.1模拟I2C总线的SCL
sbit SL=P1^7; //4014工作方式控制口
第09章单片机应用系统资源扩展习题解答
一、填空题
1. 8051单片机扩展I/O口时占用片外数据存储器的地址。
2. 8051单片机寻址外设端口时用寄存器间址寻址方式。
3. 8051单片机PSEN控制程序存储器读操作。
4. 8051单片机访问片外存储器时利用ALE信号锁存来自P0口的低八位地址信号。
5.12根地址线可选4K个存储单元,32KB存储单元需要15根地址线。
sbit SD=P3^0; //定义串口数据线
sbit CLK=P3^1;//定义串口时钟线
/*4014并转串输入子程序*/
uchar get_input()
{
uchar dat; //声明RAM变量,用于存放转换后的8位数据
SL=1; //置4014于并行输入工作方式
CLK=0; //串行口未启动之前,P3.1上无同步移位脉冲
图9-33仿真电路原理图
C语言参考程序代码如下:
#include<reg51.h>//包含头文件,其中定义51特殊寄存器
#define uchar unsigned char //简化无符号变量声明字
#define uint unsigned int
#define DELAY_TIME 60 //定义延时时间常数
6.欲增加8KB×8位的RAM区,请问选用Intel 2114(1KB×4位)需购16片; 若改用Intel6116(2KB×8位)需购4片,若改用Intel6264 (1KB×8位)需购8片。
7.74LS164 是串入并出转换芯片,74LS165是并入串出转换芯片。
8.74LS138是具有3个输入端的译码器芯片,其输出作为片选信号时,最多可以选中8块芯片。
(3)线选法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的一根或几根直接连接到各扩展芯片的片选线上。线选法的优点是简单明了,不需增加额外电路。缺点是存储空间不连续,存在地址重叠现象。适用于扩展存储容量较小的场合。
3.画出利用线选法,用3片2764A扩展24K×8位EPROM的电路图。分析每个芯片的地址范围。
SL=1; //置4014于并行输入工作方式
return(dat); //返回dat值
}
/********** I2C相关子函数************/
//--------------延时函数--------------
U3地址:A000H~BFFFH
U4地址:6000H~7FFFH
外部RAM芯片U5、U6、U7的地址范围分别与U2、U3、U4一致,但由于使用不同的指令访问,因此相互并无影响。
三、Proteus仿真
1.在Proteus下,完成9.7节内容。
答:全自动洗衣机控制器存储器扩展Proteus仿真
随着全自动洗衣机功能的不断丰富,需要的存储器容量也不断增加。当单片机内部存储器不够用时,就需要在外部扩展。下面介绍对全自动洗衣机控制器扩展一片AT24C02的方法,并在Proteu下仿真实现。
CLK=1; //并行置数,软件产生一个脉冲上升沿
SL=0; //置wenku.baidu.com014于串行移位工作方式
SCON=0x10; //串口工作方式0,允许接收
ES=0; //关中断
while (RI==0); //查询接收中断标志位
RI=0; //全部接收完成,清零标志位
dat=SBUF; //将转换后的数据送dat
答:电路如图所示
U2地址:C000H~DFFFH
U3地址:A000H~BFFFH
U4地址:6000H~7FFFH
4.采用2114芯片在8031片外扩展1 KB数据存储器,并分析地址范围。
答:电路如图所示。
地址范围:因为地址总线的高位P2.2~P2.7均没用上,共存着26=64个重复地址区间,每个区间的范围为1K。
9.74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。
10.片选方式通常有3种形式:线选法、部分译码器法、全译码法
二、简答题
1.简述单片机并行扩展外部存储器时三总线连接的基本原则。
答:P0口提供数据线,P0、P2口提供地址线,低位用于片内选择,高位用做片选信号,用 控制程序存储器的读操作,用 和 控制数据存储器或I/O端口的读写。
0000H~03FFH,0400H~07FFH,0800H~0BFFH,0C00H~0FFFH
…… …… …… …… …… …… …… …… FC00H~FFFFH
5.采用2764和6264芯片在8031片外分别扩展24 KB程序存储器和数据存储器。
答:电路如图所示
外部ROM
U2地址:C000H~DFFFH
2.什么是全译码?什么是部分译码?什么是线选法?有什么特点?
答:(1)全译码法:先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的全部经译码后连接到各扩展芯片的片选线上。全译码法扩展芯片的地址空间是唯一确定的,不会有地址重叠。但译码电路相对复杂。
(2)部分译码法:与全译码法类似,先将扩展芯片的地址线与单片机的地址总线从低位开始顺次相连后,剩余的高位地址线的一部分经译码后连接到各扩展芯片的片选线上。部分译码使存储器芯片的地址空间也有重叠,但硬件上比全译码法简单,重叠情况与线选法相比较又有所改进。
用8051单片机的P1.0和P1.1模拟I2C总线,扩展一片AT24C02,通过两个独立中断按钮对AT24C02进行读写控制。用一片并串转换芯片4014扩展一个8位数字量输入电路,输入8个拨码开关的状态。在P0口扩展8个LED发光二极管。当读按键按下时,从4014芯片读入8位拨码开关的状态信息,并写入AT24C02芯片。当写按键按下时,从AT24C02芯片中读出刚才保存的8位拨码开关状态信息,并送P0口显示。电路如图9-33所示。