篇章计划.docx
《篇章计划.docx》由会员分享,可在线阅读,更多相关《篇章计划.docx(32页珍藏版)》请在冰点文库上搜索。
篇章计划
篇章计划
第七章80C51的系统扩展
(共8次课)
教学目标及基本要求:
1、理解80C51单片机的总线控制逻辑;
2、掌握80C51单片机存储器扩展方法;
3、掌握80C51单片机并行接口扩展方法。
各节(单元)教学内容及学时分配:
§7.1存储器的扩展4学时
§7.2输入/输出及其控制方式2学时
§7.3并行接口的扩展(8155的扩展)4学时
测验
(二)2学时
教学内容的重点、难点及处理方法:
重点:
1、80C51单片机存储器扩展的实现;
2、80C51单片机并行接口扩展的实现。
处理方法:
图示讲解。
难点:
80C51单片机并行接口扩展的实现。
处理方法:
举例讲解。
教学内容的深化和拓展:
教学方式(手段)及教学过程中应注意的问题:
教学方式:
讲授与多媒体相结合
教学过程中应注意的问题:
结合实际进行讲解
主要参考书目及网络资源:
1、《单片机原理与应用》中国机械教育协会组编
2、《单片机应用新技术教材》朱宇光主编
3、《单片机应用技术》刘守义主编
4、《单片机原理与控制技术》及习题集张志良主编
实践教学安排:
实验四简单I/O口扩展实验
(二)2学时
实验五电子音响实验2学时
第29、30次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
80C51单片机存储器扩展的实现。
处理方法:
图示讲解。
难点:
80C51单片机存储器扩展的实现。
处理方法:
图示讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习20分
2)讲授140分
3)小结10分
4)自行消化10分
3、本单元师生活动设计:
提问。
二、授课内容:
1、复习:
80C51串行接口的结构、控制寄存器及其工作方式。
2、本单元教学内容(具体到知识点)
掌握80C51单片机存储器扩展方法。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§7.1存储器的扩展
一、程序存储器的扩展
1、单片机程序存储器概述
单片机应用系统由硬件和软件组成,软件的载体就是硬件中的程序存储器。
对于80C51系列8位单片机,片内程序存储器的类型及容量下表所示。
80C51系列单片机片内程序存储器一览表
2、常用的程序存贮器
(一)EPROM
2716(2K×8),2732(4K×8),2764(8K×8),27128(16K×8)
27256(32K×8),27512(64K×8)
以上芯片可以一个典型芯片介绍引脚、工作方式。
(二)E2PROM
2816(2K×8),2817(2K×8),2864(8K×8),28256(32K×8)
28010(128K×8),28040(512K×8)。
以上芯片可以一个典型芯片介绍引脚、工作方式。
3、EPROM程序存储器扩展实例
紫外线擦除电可编程只读存储器EPROM是国内用得较多的程序存储器。
EPROM芯片上有一个玻璃窗口,在紫外线照射下,存储器中的各位信息均变1,即处于擦除状态。
擦除干净的EPROM可以通过编程器将应用程序固化到芯片中。
例在80C31单片机上扩展4KBEPROM程序存储器。
(一)选择芯片:
本例要求选用80C31单片机,内部无ROM区,无论程序长短都必须扩展程序存储器(目前较少这样使用,但扩展方法比较典型、实用)。
在选择程序存储器芯片时,首先必须满足程序容量,其次在价格合理情况下尽量选用容量大的芯片。
这样做的话,使用的芯片少,从而接线简单,芯片存储容量大,程序调整余量也大。
如估计程序总长3KB左右,最好是扩展一片4KB的EPROM2732,而不是选用2片2716(2KB)。
在单片机应用系统硬件设计中应注意,尽量减少芯片使用个数,使得电路结构简单,提高可靠性,这也是89C51比80C31使用更加广泛的原因之一。
(二)硬件电路图:
8031单片机扩展一片2732程序存储器电路如下图所示。
(三)芯片说明:
①74LS373。
74LS373是带三态缓冲输出的8D锁存器,由于片机的三总线结构中,数据线与地址线的低8位共用P0口,因此必须用地址锁存器将地址信号和数据信号区分开。
74LS373的锁存控制端G直接与单片机的锁存控制信号ALE相连,在ALE的下降沿锁存低8位地址。
②EPROM2732。
EPROM2732的容量为4K×8位。
4K表示有4×1024(22×210=212)个存储单元,8位表示每个单元存储数据的宽度是8位。
前者确定了地址线的位数是12位(A0~A11),后者确定了数据线的位数是8位(O0~O7)。
目前,除了串行存储器之外,一般情况下,我们使用的都是8位数据存储器。
2732采用单一+5V供电,最大静态工作电流为100mA,维持电流为35mA,读出时间最大为250ns。
2732的封装形式为DIP24,管脚如下图所示。
EPROM2732管脚及说明
其中,A0~A11为地址线;o0~o7为数据线;/CE为片选线;
VPP为编程电压输入引脚。
(四)扩展总线的产生。
80C51系列单片机由于受管脚的限制,数据线与地址线是复用的,为了将它们分离开来,必须在单片机外部增加地址锁存器,构成与一般CPU相类似的三总线结构(AB、DB、CB)。
(五)连线说明:
①地址线。
单片机扩展片外存储器时,地址是由P0和P2口提供的。
2732的12条地址线(A0~A11)中,低8位A0~A7通过锁存器74LS373与P0口连接,高4位A8~A11直接与P2口的P2.0~P2.3连接,P2口本身有锁存功能。
注意,锁存器的锁存使能端G必须和单片机的ALE管脚相连。
②数据线。
2732的8位数据线直接与单片机的P0口相连。
因此,P0口是一个分时复用的地址/数据线。
③控制线。
CPU执行2732中存放的程序指令时,取指阶段就是对2732进行读操作。
注意,CPU对EPROM只能进行读操作,不能进行写操作。
CPU对2732的读操作控制都是通过控制线实现的。
2732控制线的连接有以下几条:
直接接地。
由于系统中只扩展了一个程序存储器芯片,因此,2732的片选端直接接地,表示2732一直被选中。
若同时扩展多片,需通过译码法或线选法来完成片选工作。
接8031的读选通信号端。
在访问片外程序存储器时,只要端出现负脉冲,即可从2732中读出程序。
(六)扩展程序存储器地址范围的确定。
单片机扩展存储器的关键是搞清楚扩展芯片的地址范围,8031最大可以扩展64KB(0000H~FFFFH)。
决定存储器芯片地址范围的因素有两个:
一个是片选端的连接方法,一个是存储器芯片的地址线与单片机地址线的连接。
在确定地址范围时,必须保证片选端为低电平。
二、数据存储器扩展
1、单片机RAM概述
RAM是用来存放各种数据的,80C51系列8位单片机内部有128BRAM存储器,CPU对内部RAM具有丰富的操作指令。
但是,当单片机用于实时数据采集或处理大批量数据时,仅靠片内提供的RAM是远远不够的。
此时,我们可以利用单片机的扩展功能,扩展外部数据存储器。
常用的外部数据存储器有静态RAM(StaticRandomAccessMemory—SRAM)和动态RAM(DynamicRandomAccessMemory—DRAM)两种。
前者读/写速度高,一般都是8位宽度,易于扩展,且大多数与相同容量的EPROM引脚兼容,有利于印刷板电路设计,使用方便;缺点是集成度低,成本高,功耗大。
后者集成度高,成本低,功耗相对较低;缺点是需要增加一个刷新电路,附加另外的成本。
80C51单片机扩展片外数据存储器的地址线也是由P0口和P2口提供的,因此最大寻址范围为64KB(0000H~FFFFH)。
一般情况下,SRAM用于仅需要小于64KB数据存储器的小系统,DRAM经常用于需要大于64KB的大系统。
2、常用芯片
6116(2K×8),6264(8K×8),62256(32K×8)
3、SRAM扩展实例
1)应用系统中只扩展一片RAM
例在一单片机应用系统中扩展2KB静态RAM。
(一)芯片选择。
根据题目容量的要求,我们选用SRAM6116。
它是一种采用CMOS工艺制成的SRAM,采用单一+5V供电,输入/输出电平均与TTL兼容,具有低功耗操作方式。
当CPU没有选中该芯片时,芯片处于低功耗状态,可以减少80%以上的功耗。
6116的管脚与EPROM2716管脚兼容,管脚如下图所示。
6116有11条(A0~A10)地址线;8条(D0~D7)双向数据线;/CE为片选线,低电平有效;/WE为写允许线,低电平有效;/OE为读允许线,低电平有效。
(二)硬件电路。
单片机与6116的硬件连接如下图所示。
单片机扩展2KBRAM电路
(三)连线说明。
6116与单片机的连线如下:
地址线:
A0~A10连接单片机地址总线的A0~A10,即P0.0~P0.7、P2.0、P2.1、P2.2共11根。
(四)片外RAM地址范围的确定及使用。
按照上图所示,片选端直接与某一地址线P2.7相连,这种扩展方法称为线选法。
显然,只有P2.7=0,才能够选中该片6116,故其地址范围确定如下:
8031P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0
A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0
6116A10A9A8A7A6A5A4A3A2A1A0
0××××00000000000
0××××00000000001
0××××00000000010
0××××00000000011
0××××11111111111
其中,“×”表示跟6116无关的管脚,取0或1都可以。
如果与6116无关的管脚取0,那么,6116的地址范围是0000H~07FFH;如果与6116无关的管脚取1,那么,6116的地址范围是7800H~7FFFH。
4、本单元的作业布置:
5、小结:
80C51单片机存储器扩展方法。
第31次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
I/O接口的功能及单片机与I/O接口设备的数据传送方式。
处理方法:
举例讲解。
难点:
单片机与I/O接口设备的数据传送方式。
处理方法:
课堂讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习10分
2)讲授70分
3)小结5分
4)自行消化5分
3、本单元师生活动设计:
提问。
二、授课内容:
1、复习:
80C51单片机存储器扩展方法。
2、本单元教学内容(具体到知识点)
1)掌握I/O接口的功能;
2)掌握单片机与I/O接口设备的数据传送方式。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§7.2输入/输出及其控制方式
一、80C51内部并行I/O口及其作用
1、80C51系列单片机内部有4个双向的并行I/O端口:
P0~P3,共占32根引脚。
P0口的每一位可以驱动8个TTL负载,P1~P3口的负载能力为三个TTL负载。
有关4个端口的结构及详细说明,在前面的有关章节中已作过介绍,这里不再赘述。
在无片外存储器扩展的系统中,这4个端口都可以作为准双向通用I/O口使用。
在具有片外扩展存储器的系统中,P0口分时地作为低8位地址线和数据线,P2口作为高8位地址线。
这时,P0口和部分或全部的P2口无法再作通用I/O口。
P3口具有第二功能,在应用系统中也常被使用。
因此在大多数的应用系统中,真正能够提供给用户使用的只有P1和部分P2、P3口。
综上所述,80C51单片机的I/O端口通常需要扩充,以便和更多的外设(例如显示器、键盘)进行联系。
在80C51单片机中扩展的I/O口采用与片外数据存储器相同的寻址方法,所有扩展的I/O口,以及通过扩展I/O口连接的外设都与片外RAM统一编址,因此,对片外I/O口的输入/输出指令就是访问片外RAM的指令,即:
MOVX@DPTR,A
MOVX@Ri,A
MOVXA,@DPTR
MOVXA,@Ri
2、输入/输出接口的功能:
1)单片机与I/O设备的关系:
见图7.10
CPU与I/O设备间的数据传送,实际上是CPU与I/O接口间的数据传送。
2)I/O口的功能:
①对单片机输出的数据锁存;
②对输入设备的三态缓冲;
③信号转换;
④时序协调。
一、单片机与I/O接口设备的数据传送方式:
1、无条件传送:
2、查询状态传送:
3、中断传送方式:
4、直接存储器存取(DMA)方式:
4、本单元的作业布置:
5、小结:
1)I/O接口的功能;
2)单片机与I/O接口设备的数据传送方式。
第32、33次课
一、教学简要说明:
1、本单元教学重点、难点及处理方法:
重点:
简单的I/O口扩展和可编程接口8155的扩展方法。
处理方法:
举例讲解。
难点:
可编程接口8155的扩展方法。
处理方法:
课堂讲解。
2、本单元教学方式(手段)或教学内容要点与时间分配:
1)复习20分
2)讲授140分
3)小结10分
4)自行消化10分
3、本单元师生活动设计:
提问。
二、授课内容:
1、复习:
1)I/O接口的功能;
2)单片机与I/O接口设备的数据传送方式。
2、本单元教学内容(具体到知识点)
1)掌握简单的I/O口扩展方法;
2)理解可编程接口8155的扩展方法。
3、本单元的讲课提纲、板书设计(或多媒体教学)
§7.3并行接口的扩展(可编程接口8155的扩展)
一.并行输入/输出接口的简单扩展:
简单的I/O口扩展通常是采用TTL或CMOS电路锁存器、三态门等作为扩展芯片,通过P0口来实现扩展的一种方案。
它具有电路简单、成本低、配置灵活的特点。
扩展实例:
下图为采用74LS244作为扩展输入、74LS273作为扩展输出的简单I/O口扩展。
1.芯片及连线说明
电路中采用的芯片为TTL电路74LS244、74LS273。
其中,74LS244为8缓冲线驱动器(三态输出),、为低电平有效的使能端。
当二者之一为高电平时,输出为三态。
74LS273为8D触发器,为低电平有效的清除端。
当=0时,输出全为0且与其它输入端无关;CP端是时钟信号,当CP由低电平向高电平跳变时刻,D端输入数据传送到Q输出端。
P0口作为双向8位数据线,既能够从74LS244输入数据,又能够从74LS273输出数据。
输入控制信号由P2.0和相“或”后形成。
当二者都为0时,74LS244的控制端有效,选通74LS244,外部的信息输入到P0数据总线上。
当与74LS244相连的按键都没有按下时,输入全为1,若按下某键,则所在线输入为0。
输出控制信号由P2.0和相“或”后形成。
当二者都为0后,74LS273的控制端有效,选通74LS273,P0上的数据锁存到74LS273的输出端,控制发光二极管LED,当某线输出为0时,相应的LED发光。
2. I/O口地址确定
简单I/O口扩展电路
因为74LS244和74LS273都是在P2.0为0时被选通的,所以二者的口地址都为FEFFH(这个地址不是惟一的,只要保证P2.0=0,其它地址位无关)。
但是由于分别由和控制,因而两个信号不可能同时为0(执行输入指令,如MOVXA,@DPTR或MOVXA,@Ri时,有效;执行输出指令,如MOVX@DPTR,A或MOVX@Ri,A时,有效),所以逻辑上二者不会发生冲突。
3.编程应用
下述程序实现的功能是按下任意键,对应的LED发光。
CONT:
MOVDPTR,#0FEFFH;数据指针指向口地址
MOVXA,@DPTR;检测按键,向74LS244读入数据
MOVX@DPTR,A;向74LS273输出数据,驱动LED
SJMPCONT;循环
二、可编程接口8155的扩展
1、8155的内部结构和引脚排列
1)外部引脚
8155芯片为40引脚双列直插封装,单一的+5V电源,如下图所示。
其中:
:
A口的输入输出信号线。
该口作输入还是输出,由软件决定
:
B口的输入输出信号线。
该口作输入还是输出,由软件决定。
:
C口信号线。
该口可作输入、输出口外,还可以传送控制和状态信号,因此C口共有四种工作方式,即:
输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口和B口控制端口方式(ALT4)。
其工作方式由软件决定。
~
:
地址数据复用线。
:
片选信号。
低电平有效。
2)8155外部引脚
:
IO和RAM的选择信号。
=0,选中RAM;
=1,选中IO口。
:
地址锁存信号。
除了进行
~
的地址锁存控制外,还用于把片选信号
和
等信号进行锁存。
:
读选通信号。
:
写选通信号。
:
复位信号。
复位后A口、B口和C口均为数据输入方式。
TIMERIN:
定时器/计数器的计数脉冲输入端。
TIMEROUT:
定时器/计数器输出端。
3)内部逻辑结构
8155的内部逻辑结构如下图所示。
由图可以看出,8155由三部分组成,即:
存储单元为256字节的静态RAM;3个可编程的I/O,其中2个口(A口和B口)为8位口,1个口(C口)为6位口;1个14位的定时器/计数器
由以上可知8155有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6各端口。
对它们只需要使用
即可实现编址,如下表所示。
8155的端口地址编码
AD7
AD6
AD5
AD4
AD3
AD2
AD1
AD0
对应端口
×
×
×
×
×
0
0
0
命令/状态寄存器
×
×
×
×
×
0
0
1
A口
×
×
×
×
×
0
1
0
B口
×
×
×
×
×
0
1
1
C口
×
×
×
×
×
1
0
0
定时器/计数器低8位
×
×
×
×
×
1
0
1
定时器/计数器高8位
三、8155的命令/状态字
1.8155的命令字
由以上内容可知,8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3)以及A口和B口控制端口方式(ALT4)四种工作方式。
这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。
命令字除了规定端口的工作方式还规定了定时器/计数器的工作方式。
命令字只能进行写操作。
其格式如下图所示。
当以无条件方式进行数据输入输出时,由于不需要任何联络信号,因此这时A口、B口和C口都可以进行数据的输入输出操作。
当A口或者B口以中断方式进行数据传送时,所需要的联络信号由C口提供,其中
为A口提供,
为B口提供。
各联络信号的定义如下表所示。
联络信号
C口
对A口控制(ALT3)
对A口和B口控制(ALT4)
AINTR
AINTR
ABF
ABF
输出
BINTR
输出
BBF
输出
联络信号共有三个,其中:
INTR:
中断请求信号(输出),高电平有效。
送给MCS-51单片机的外中断请求
BF:
缓冲器满状态信号(输出),高电平有效。
:
选通信号(输入),低电平有效。
数据输入时,
是外设送来的选通信号;数据输出时,
是外设送来的应答信号。
以中断方式进行数据输入输出时,其过程和8255基本相同,在此不作赘述。
2.8155的状态字
状态字只能读不能写,所以8155的命令字和状态字共用一个地址。
当对命令/状态字进行写操作时,写进去的是命令,当对命令/状态字进行读操作时,读出来的是状态。
状态字用于寄存各端口及定时器/计数器的工作状态。
其格式如下图所示。
四、8155的定时器/计数器
1.8155定时器/计数器的计数结构
8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,如图7.21所示。
以其中的低14位组成计数器,剩下的两个高位(
,
)用于定义计数器输出的信号形式。
2.定时器/数器的使用
8155的定时器/计数器与MCS-51单片机芯片内部的定时器/计数器,在功能上是完全相同的,同样具有定时和计数两种功能。
但是在使用上却与80C51单片机的定时器/计数器有许多不同之处。
具体表现在:
①8155的定时器/计数器是减法计数,而80C51单片机的定时器/计数器却是加法计数,因此确定计数初值的方法是不同的。
②MCS-51单片机的定时器/计数器有多种工作方式,而8155的定时器/计数器只有一种固定的工作方式,即14位计数。
通过软件方法进行计数初加载。
③ MCS-51单片机的定时器计数器有两种计数脉冲。
定时功能时,以机器周期为计数脉冲;计数功能时,从芯片外部引入计数脉冲。
但8155的定时器/计数器,不论是定时功能还是计数功能都是由外部提供计数脉冲,其信号引脚是TIMERIN。
④ MCS-51单片机的定时器/计数器,计数溢出时,自动置位TCON寄存器的计数溢出标志位(TF),供用户查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TIMEROUT)。
而且这一信号还有脉冲和方波两种形式,可由用户进行选择。
具体由
,
两位定义:
=00单个方波
=01连续方波
=10单个脉冲
=11连续脉冲
这四种输出形式如下图所示。
3.定时器/计数器的控制
8155定时器/计数器的工作方式由命令字中的最高两位
进行控制。
具体说明如下:
D7D6=00不影响计数器工作。
D7D6=01停止计数。
如计数器未启动则无操作,如计数器正运行则停止计数。
D7D6=10达到计数值(计数器减为0)后停止。
D7D6=11 启动,如果计数器没运行,则在装入计数值后开始计数;如果计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。
五、8155与单片机的接口
8155与MCS-51单片机的连接比较简单,因为8155的许多信号与MCS-51单片机兼容,可以直接连接。
下表列出了这些信号的对应关系。
8155与80C51单片机兼容的信号
8155
80C51单片机
8155
80C51单片机
~
口
ALE
ALE
RESET
RST