5 单片机输入输出扩展及应用_第1页
5 单片机输入输出扩展及应用_第2页
5 单片机输入输出扩展及应用_第3页
5 单片机输入输出扩展及应用_第4页
5 单片机输入输出扩展及应用_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.与中断无关的寄存器为()。C. IEA. TCONB. SCOND. DPTR2.中断的总允许控制位是()。A. EAB. ET1C. EX1D. ES3. 串行口的中断入口地址为()。A. 0003HB. 0013HC. 0023HD. 001BH 4. 定时/ 计数器的方式0 为()位计数器。C. 16 位A.8 位B. 13 位D. 自动重装入的 8 位计数器程序存储器ROM:串行口中断入口:定时器1溢出中断入口:外部中断1入口:定时器0溢出中断入口:外部中断0入口:复位后,程序的入口地址(PC=0000H)002AH0023H001BH0013H000BH0003H0000H5.

2、定时/ 计数器的定时是指:()。A. 对时间计数B. 外部定时C. 对内部时钟计数D. 外部计数6. 当定时器工作在方式1 ,系统采用12M 晶振时,若要定时器定时A. 50B. 50000 C. 65536D. 15536 50ms ,则定时器的初始值为()。第五章单片机I/O口扩展及应用5.1I/O口扩展概述5.1.1I/O口扩展的原因MCS-51系列单片机共有四个并行I/O口,分别是P0、P1、P2和P3。其中P0口一般作地址线的低八位和数据线使用;P2口作地址线的高八位使用;P3是一个双功能口,其第二功能是一些很重要的控制信号,所以P3一般使用其第二功能。这样供用户使用的I/O口就只剩

3、下P1口了。另外,这些I/O口没有状态寄存和命令寄存的功能,因此难以满足复杂的I/O操作要求。5.1.2I/O口的编址技术用户可以通过对I/O口进行读和写操作来完成数据的输入和输出。例如:P0口的地址为80H。用户可以使用MOV指令对P0口进行写操作。MOVP0, A5.1.3单片机I/O传送的方式1.无条件传送方式2.3.查询方式中断方式中断方式大大提高了单片机系统的工作效率,所以在单片机中被广泛应用。5.2简单I/O口扩展5.2.1简单输入口扩展1.两个输入口扩展简单输入口扩展使用的集成芯片,比较典型的如74LS244芯片。图7.1为74LS244芯片的引脚。图7.174LS244芯片的引

4、脚图7.274LS244扩展两个输入口2.多输入口扩展使用多片74LS244实现多个(例如5个)输入口扩展的电路连接如图7.3。CS1VCCP074LS3731A1CS227162Y41Y1ALE1A 22A 42Y31Y274LS1A2A2443374LS2442Y21Y31A 42A 22Y11Y4RDCS1CS2GN2A1D地址选通信号输入设备12074LS524415101174LS373P0271674LS244AL EP2.3 P2.7RD+YY CSY CSY CSY CSCS图7.3多个(例如5个)输入口扩展的电路5.2.2简单输出口扩展1. 简单输出口扩展使用的典型芯片简单输

5、出口扩展通常使用74LS377芯片,该芯片是一个具有“使能”控制端的锁存器。其信号引脚如图7.4所示。其中: 1D8D为8位数据输入线,1Q8Q为8位数据输出线,CK为时钟信号上升沿数据锁存,为使能控制信号,低电平有效。VCC为5V电源。74LS377的逻辑电路如图7.5所示。1D1QG 1Q1D2D2Q3Q3D4D4Q GNDVCC 8Q8D7D7Q6Q6D5D5Q CK74LS3778D8QCKG图7.474LS377引脚图图7.5 74LS377的逻辑电路由逻辑电路可知,74LS377是由D触发器组成的,D触发器在上升沿输入数据,即在时钟信号(CK)由低电平跳变为高电平时,数据进入锁存器

6、。其真值表如表7-1所示。DQCK GDQCK G表7-174LS377真值表输出口扩展连接:扩展单输出口只需要一片74LS377,其连接电路如图7.6所示。图7.674LS377作输出口扩展74LS3771D8D1Q8Q CKG地址译码信号输出设备P0.0P0.7WR80C51GCkDQ1XXQ0011000X0XQ05.38255可编程通用并行接口芯片5.3.18255的外部引脚和内部结构1. 外部引脚8255的外部引脚(参考P118)所示,其中:PA0 PA7 :A口的输入输出信号线。该口是输入还是输出或双向,由软件决定。 PB7 :B口的输入输出信号线。该口是输入还是输出,PB0由软件

7、决定。 PC7 :C口信号线。该口可作输入、输出、控制和状态PC0线使用,由软件决定。:双向数据信号线,用来传送数据和控制字。D0D7RD:读信号线。 WR:写信号线。CS:片选信号线,低电平(有效)时,CS才选中该芯片,才能对8255进行操作。RESET:复位输入信号,高电平有效时,复位8255。复位后8255的A口、B口和C口均被定为输入。A 0 A1:口地址选择信号线。8255内部共有三个口,A口、B口、C口和一个控制寄存器供用户编程。的不同编码可分别选择上述三个口和一个控制寄存器。地址编码如表7-2所示。表7-2地址编码A0A1端口00A口01B口10C口11控制寄存器和可以确定A口、

8、B口、C口和由、WR、CSRD控制寄存器的,如表7-3所示。表7-3 读写逻辑01 001C口读C口01 010C口写C口01 110控制寄存器写控制寄存器1 高阻状态CSA0A1WRCS所选断口操作00 001A口读A口00 010A口写A口00 101B口读B口00 110B口写B口2. 内部结构8255的内部结构框图如图7.8所示。从图可以看到,左边的信号与系统总线相连。而右边是与外设相连接的三个口。三个口均为8位。其中A口输出有锁存能力,输入亦有锁存能力。B口输入输出均有锁存能力。C口输出有锁存能力,输入没有锁存能力,在使用上要注意到这一点。图7.8 8255的内部结构框图为了控制方便

9、,将8255的三个口分成A,B两组。其中A组包括A口的8条口线和C口的高四位PC4。B组包括B口的8条口线 PC7PC0 P 。C3和C口的低四位A组和B组分别由软件编程来加以控制。A组控制PA 0 PA 7DBPC 4 PC7PC0 PC3RDWR 读/写B组PB PBA1控制控制07A0 逻辑RESETCS数据总线缓冲器B组端口BB 组 端口C 低四位A 组 端口C 高四位A组端口A5.3.28255的扩展逻辑电路MCS-51单片机可以和8255直接连接,图7.9给出了一种扩展电路。图7.98255的扩展逻辑电路RDRDWRWRP2.7CSPA PA07P0.774LS373A1P0.0A

10、0D0PB 0 PB 780318255D7ALERSTRESETPC0PC71. 扩展 I/O口(8255)时,8031与可编程I/O接口之间一般要加锁存器,其作用是()A.锁存寻址单元的低八位地址B. 锁存寻址单元的数据C. 锁存寻址单元的高八位地址D. 锁存相关的控制和选择信号2. 扩展8255是为了( )。A. 增大存储器的容量B. 扩展I/O端口的数量C.增加寄存器的数量D.提高端口的驱动能力5.3.38255的工作方式8255共有三种工作方式,这些工作方式可用软件编程来指定。1. 工作方式0,又称基本输入输出方式2. 工作方式1,又称选通输入输出方式在这种方式下,A口和B口仍作为数

11、据的输出或输入口而同时要利用C口的某些位作为控制和状态信号,从而实现这种工作方式。(1)方式0下,A口和B口均为输出各条控制引线的定义如图7.10所示。各控制信号的含义如下:ACK:输出缓冲器满信号,低电平有效。用来告诉外设,在规定的接口上CPU已输出一个有效的数据,外设可以从该口取走此数据。OBF:外设响应信号,低电平有效。用来已经将数据接收,并使OBF = 1。接口外设INTR:中断请求信号,高电平有效。当外设已从接口取走数据,口的缓冲器变空,且接口允许中断时,INTR有效。即,ACK = 1OBF = 1且允许中断,则INTR=1。(2)方式1下,A口和B口均为输入这种情况和两口均为输出

12、类似,各条控制引线的定义如图7.11所示。A口PC4 OBFASTBA ACKAIBFAINTRAPC5PC3 INTRA8255INTRBPC0 PC1 PC2B口INTRB IBFB STBB OBFBACKB图7.10 A口和B口作输出口时,C口提供的控制引线图7.11 A口和B口作输入口时,C口提供的控制引线A口PC7 PC6 PC3 8255PC0 PC1 PC2B口各控制信号的含义如下:输入选通信号,低电平有效。它由外设提供,利用该STB信号可以将外设数据锁存于8255的口锁存器中。IBF:输入缓冲器满信号,高电平有效。当它有效时,表示已有一个有效的外设数据锁存于8255的口锁存器

13、中。可用此信号外设数据已锁存于接口中,尚未被CPU读走,暂不能向接口输入数据。INTR:中断请求信号,高电平有效。当外设将数据锁存于接口之中,且又允许中断请求发生时,就会产生中断请求。2.工作方式2,又称双向输入输出方式I/O操作只有A口才能工作在方式2。A口工作方式2时要利用C口的5条线才能实现。此时,B口只能工作在方式0或者方式1下,而C口剩余的3条线可作为输入线、输出线或B口方式1之下的控制线。C口提供的控制线如图7.12所示。图7.12工作方式2时,C口提供的控制线7.3.48255的控制字及初始化程序8255是编程接口芯片,通过控制字(控制寄存器)对其端口的工作方式和C口各位的状态进

14、行设置。8255共有两个控制字, 一个是工作方式控制字,另一个是C口置位/复位控制字。这两个控制字共用一个地址,通过最高位来选择使用那个控制字。1. 工作方式控制字主要功能:确定8255接口的工作方式及数据的传送方向。各位的控制功能如图7.13所示。OBFA ACKASTBAIBFA INTRAA口PC7PC68255PC4PC5PC3图7.138255工作方式控制字C口低四位输入还是输出0:输出1:输入B口输入还是输出0:输出1:输入B口工作方式0:方式01:方式1C口高四位输入还是输出0:输出标志位1:输入1:方式控制字A口输入还是输出0:C口置位/复位控制字0:输出1:输入A口工作方式0

15、0:方式001:方式11 :方式2D7D6D5D4D3D2D1D0对工作方式控制字作如下说明:lA口可工作在方式0、方式1和方式2,B口可工作在方式0和方式1l在方式1或方式2下,对C口的定义(输入或输出)不影响作为控制信号使用的C口各位功能l为1。2. 置位/复位控制字在某些情况下,C口用来定义控制信号和状态信号,因最高位是标志位,作为方式控制字使用时,其值固定此C口的每一位都可以进行置位或复位。对C口的置位或复位是由置位/复位控制字进行的。各位的功能如图7.14所示。其中,最高位必须固定为“0”。图7.148255置位/复位控制字未使用确定对那个位进行确定某位置位还是复位置位或复位。0:复

16、位000:PC01:置位001:标志位010:1:方式控制字011:2:C口置位/复位控制字100:101:110:111:PC70D6D5D4D3D2D1D03. 8255初始化8255初始化就是向控制寄存器写入工作方式控制字和C口置位/复位控制字。例如,对8255各口作如下设置:A口方式0输入, B口方式1输出,C口高位部分为输出,低位部分为输入。设8255 的扩展电路如图7.8所示,则控制寄存器的地址为7FFFH。按各口的设置要求,工作方式控制字为10010101,即95H。所以初始化程序应为:MOV MOVDPTR, #7FFFHA,#95HMOVXDPTR,A5.48155可编程通用

17、并行接口芯片5.4.18155的外部引脚及内部逻辑结构1. 外部引脚8155芯片为40引脚双列直插封装,单一的5V电源,其引脚排列如图7.16所示。其中:PA0 PA7:由软件决定。PB0 PB7:A口的输入输出信号线。该口作输入还是输出,B口的输入输出信号线。该口作输入还是输出,由软件决定。PC0 PC5: C口信号线。该口可作输入、输出口外,还可以传送控制和状态信号,因此C口共有四种工作方式,即:输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3) 以及A口 和B口控制端口方式(ALT4)。其工作方式由软件决定。 AD7:地址数据复用线。AD0CS :片选信号。低电平有

18、效。IO / M:IO和RAM的选择信号。IO / M0,选中RAM;IO / M1,选中IO口。ALE:地址锁存信号。除了进行AD0 AD7的地址锁存控制外还用于把片选信号CS和IO / M等信号进行锁存。RD:读选通信号。WR:写选通信号。RESET:复位信号。复位后A口、B口和C口均为数据输入方式TIMERTIMERIN:定时器/计数器的计数脉冲输入端。OUT:定时器/计数器。2. 内部逻辑结构8155的内部逻辑结构如图7.17所示。由图可以看出,8155 由三部分组成,即:存储单元为256字节的静态RAM;3个可编程的I/O,其中2个口(A口和B口)为8位口,1个口(C口)为6位口;1

19、个14位的定时器/计数器图7.17 8155的内部逻辑结构由以上可知8155有A口、B口、C口和定时器/计数器低8位以及定时器/计数器高8位五个端口,另外8155内部还有一个命令/状态寄存器,所以8155内部共有6各端口。对它们只需要使用AD3-AD0即可实现编址,如表7-5所示。IO / MPA PA07AD0 AD7CSWRPB0 PB7RDALE PC0 PC5RESETTIMERINTIMEOUT C14位定时计数器BA256字节静态RAM表7-58155的端口地址编码AD7AD6AD5AD4AD3AD2AD1AD0对应端口000命令/状态寄存器001A口010B口011C口100定时

20、器/计数器低8位101定时器/计数器高8位7.4.28155的命令/状态字1. 8155的命令字由以上内容可知,8155的A口有输入和输出两种工作方式,B口也有输入和输出两种工作方式,而C口有输入方式(ALT1),输出方式(ALT2),A口控制端口方式(ALT3) 以及A口 和B口控制端口方式(ALT4)四种工作方式。这些端口的工作方式是由8155内部的命令寄存器(命令字)来控制的。命令字除了规定端口的工作方式还规定了定时器/ 计数器的工作方式。命令字只能进行写操作。其格式如图7.18所示。图7.188155的命令字当A口或者B口以中断方式进行数据传送时,所需要的联络信号由C口提供。各联络信号

21、的定义如表7-6所示。1424314243A口工作方式定时器工作方式:0:输入00:无操作1:输出01:停止计数10:计满后停止B口工作方式11:开始计数0:输入1:输出C口工作方式00:ALT101:ALT210:ALT311:ALT4A口中断0:禁止1:允许B口中断0:禁止1:允许D7D6D5D4D3D2D1D0表7-6联络信号C口对A口控制(ALT3)对A口和B口控制(ALT4)PC0AINTRAINTRPC1ABFABFPC2ASTBASTBPC3输出BINTRPC4输出BBFPC5输出BSTB联络信号共有三个,其中:INTR:中断请求信号(输出),高电平有效。送给MCS- 51单片机

22、的外中断请求BF:缓冲器满状态信号(输出),高电平有效。STB :选通信号(输入),低电平有效。数据输入时,STB是外设送来的选通信号;数据输出时,STB是外设送来的应答信号。以中断方式进行数据输入输出时,其过程和8255基本相同, 在此不作赘述。2. 8155的状态字状态字只能读不能写,所以8155的命令字和状态字共用一 个地址。当对命令/状态字进行写操作时,写进去的是命令, 当对命令/状态字进行读操作时,读出来的是状态。状态字用于寄存各端口及定时器/计数器的工作状态。其格式如图7.19所示。图7.198155的状态字7.4.38155的扩展逻辑电路8155与MCS-51单片机的连接比较简单

23、,因为8155的许多信号与MCS-51单片机兼容,可以直接连接。表7-7列出了这些信号的对应关系。INTRA:A口中断请求ABF:A口缓冲器满/空INTEA:A口中断允许INTRB:B口中断请求BBF:B口缓冲器满/空INTEB:B口中断允许TIMER:定时器中断(计数满时为高电 平,读出状态字或硬件复位为低电平D6D5D4D3D2D1D0表7-78155与MCS-51单片机兼容的信号P2.0这种方法实际就是编址技术中的线选法。例如以接 IO / M,则8155与8051的连接如图7.20所示。这种 IO / M信号产生方法中,对8155需要使用16位地址进行编址。这种方法适应于有多片I/O扩

24、展及存储器扩展的较大单片机系统中,因此要使用片选信号。例如图中使用 P2.1 作为片选信号与直接相连。8155MCS-51单片机8155MCS-51单片机AD0 AD7口RDRDALEALEWRWRRESETRST图7.20高位地址直接作为信号 假设没有用到的地址位其值为系统复位后的值,即为1。则IO / M = 1时,端口地址范围为:0FDF8H0FDFDH;IO / M = 0时,8155内部RAM地址范围是:0FC00H0FCFFH。7.4.48155的定时器/计数器1. 8155定时器/计数器的计数结构PA 0PA 7PB0PB7PC0PC5RD WR P2.1 P2.0P0.0805

25、1P0.7ALERSTRDWRCS IO / MAD08155AD7ALERESET8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,如图7.21所示。以其中的低14位组成计数器,剩下的两个高位( M 2 ,M1)用于定义计数器输出的信号形式。图7.218155定时器/计数器的计数结构2. 定时器/数器的使用8155的定时器/计数器是减法计数,而MCS-51单片机的定时器/计数器却是加法计数,因此确定计数初值的方法是不同的。计数器低8位输出方式计数器高6位D7D6D5D4D3D2D1D0M 2M1T13T12T11T10T9T8D7D6D5D4D3D2D1D0T7T6T5

26、T4T3T2T1T0MCS-51单片机的定时器/计数器有多种工作方式,而8155的定时器/计数器只有一种固定的工作方式,即14位计数。通过软件方法进行计数初加载。MCS-51单片机的定时器计数器有两种计数脉冲。定时功能时,以机器周期为计数脉冲;计数功能时,从芯片外部引入计数脉冲。但8155的定时器/计数器, 不论是定时功能还是计数功能都是由外部提供计数脉冲,其信号引脚是TIMERIN。MCS-51单片机的定时器/计数器,计数溢出时,自动置位TCON寄存器的计数溢出标志位(TF),供用户查询或中断方式使用;但8155的定时器/计数器,计数溢出时向芯片外部输出一个信号(TIMEROUT)。而且这一

27、信号还有脉冲和方波两种形式,M 2,M1可由用户进行选择。具体由两位定义:M 2 M1M 2 M1M 2 M1M 2 M1=00=01=10=11单个方波连续方波单个脉冲连续脉冲这四种输出形式如图7.22所示。图7.228155信号输出形式M 2 M1开始计数停止计数0 0单个方波0 1连续方波1 0单个脉冲1 1连续脉冲3. 定时器/计数器的控制8155定时器/计数器的工作方式由命令字中的最高两位进行控制(见图7.18)。具体说明如下:D7D6=00D7D6=01不影响计数器工作。停止计数。如计数器未启动则无操作,如计数器正运行则停止计数。D7D6=10D7D6=11达到计数值(计数器减为0

28、)后停止。启动,如果计数器没运行,则在装入计数值后开始计数;如果计数器已运行,则在当前计数值计满后,再以新的计数值进行计数。7.4.58155的初始化要求使用8155定时器/计数器对计数脉冲进行千分频,即计数1000后,TIAMEROUT端电平状态发生变化,并重新置数以产生连续方波。此外假定A口为输出方式,允许中断;B 口为输入方式,不允许中断;C口为对A口控制方式(ALT3)。请编写初始化程序。解:要求输出连续方波,所以定时器/计数器的最高两位M2 M101。计数器的其它14位装入计数初值。8155为减法计数,所以计数初值为1000,化为16进制数为03E8H。则定时器/计数器的高8位为:4

29、3H,低8位为:0E8H。命令名字的设置如下:因此,命令字的内容为0D9H。假定命令/状态寄存器的地址为0FDF8H。则初始化程序为:MOVDPTR, #0FDF8H;命令/状态寄存器地址MOVA, #0D9H;命令字MOVXDPTR, A;装入命令字MOVDPTR, #0FDFEH;计数器低8位地址MOVA, #0E8H;低8位计数值MOVXDPTR, A;写入计数值低8位INCDPTR;计数器高8位地址MOVA, #43H;高8位计数值MOVXDPTR, A;写入计数值高8位计数器B口A口C口B口A口装入后启动不允许中断允许中断ALT3输入输出110110011.当采用单片机控制20个开关信号时,需要扩展(). A. 数据存储器B. 程序存储器C. I/O接口D. 键盘接口2. 8155内部具有()字节的静态RAM。A. 8B. 16C. 128D. 2563. 8155内部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论