第三章单片机_第1页
第三章单片机_第2页
第三章单片机_第3页
第三章单片机_第4页
第三章单片机_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

第三章单片机课件第一页,共五十页,2022年,8月28日3.2MCS-51单片机I/O口的应用分析

8051内部有4个8位并行I/O接口,分别称为P0、P1、P2和P3口第二页,共五十页,2022年,8月28日1.4.1并行I/O接口的结构特点

1.都具有“数据锁存器+输入缓冲器+输出驱动电路”的典型结构2.I/O接口的复用功能

(1)P0、P2口的总线复用

8051单片机在作并行总线扩展时,P0口可作为数据/地址总线使用,分时作地址、数据的传送:先传送低8位地址,然后传送8位数据信号;P2口用来传送高8位地址信号。

(2)P3口的功能复用

口引脚第二功能口引脚第二功能P3.0RXD(串行输入)P3.4T0(定时/计数器0外部输入)P3.1TXD(串行输出)P3.5T1(定时/计数器1外部输入)P3.2外部中断0输入P3.6外部RAM写信号P3.3外部中断1输入P3.7外部RAM读信号并行I/O口的特点:第三页,共五十页,2022年,8月28日

3.准双向口结构

P0~P3口在作通用输入/输出口使用时,我们称其为准双向口结构,其输入操作和输出操作具有本质的不同:

(1)输入操作:当P0~P3口作输入口使用时,必须要对口锁存器进行写“1”操作。由于在输入操作前有这种准备工作,所以P0~P3口叫做准双向口。

(2)输出操作:

实际上是对口锁存器作写入操作。由图1-14结构可知,当由内部总线给口锁存器置“0”或“1”时,锁存器中“0”或“1”的状态立即通过输出驱动电路反映到引脚上。第四页,共五十页,2022年,8月28日1.P0~P3口作通用输入/输出口使用时的硬件连接

P0~P3口都能用于输入或输出操作。而且对每个接口都可将一部分管脚定义为输入,另一部分管脚定义为输出。由于P0~P3口的内部结构不同,所以在作通用输入/输出口使用时,其外部的硬件电路也不相同:

(1)P0口P0口既可用作通用I/O口,也可作为地址/数据总线使用。当单片机系统需要扩展片外存储器或者需要扩展具有地址/数据线的芯片时,P0口只能用作地址/数据线,而不能再作通用I/O口使用。P0口作为地址/数据总线使用时,无需外接上拉电阻;P0口用作通用I/O接口使用时,必须外接上拉电阻。

并行I/O口的应用特性:第五页,共五十页,2022年,8月28日

(2)P1口P1口只能作为通用I/O口使用,没有第二功能。P1口在作为通用输出口使用时,不需要再外接上拉电阻。

(3)P2口当P2口作为通用I/O口使用时,不需要外接上拉电阻;当系统有外部扩展存储器或I/O接口时,P2口作为地址高8位信号线,此时P2口只能作地址线用,而不能作通用I/O口。

(4)P3口P3口除可作为通用I/O口使用外,还具有第二功能。当某些口线作第二功能使用时,不能再把它当作通用输入/输出口使用;其它未用的口线仍可作通用输入/输出口线使用。P3口作通用I/O口使用时,不需要外接上拉电阻。

第六页,共五十页,2022年,8月28日2.并行I/O端口具有自动识别功能3.准双向口的输入操作由于P0~P3口是准双向口结构,所以在进行输入操作时,必须先向相应口的锁存器写“1”,以保证输入数据的正确。如把P1口的状态送累加器A,要用以下指令完成:MOVP1,#0FFH;写1MOVA,P1;P1口状态送A第七页,共五十页,2022年,8月28日4.读引脚与读锁存器(1)读引脚读引脚就是读芯片引脚上的数据端口处于输入状态时单片机进行读引脚操作。MOV类传送指令进行的读口操作就是读引脚。

(2)读锁存器

许多涉及到I/O端口的操作,实际上只是对口锁存器中所存储的内容进行“读出—修改—写入”操作。

除MOV类传送指令以外的其它口操作指令都属于读锁存器,如逻辑运算指令(如ANLP1,A)、置位/清除指令(如SETBP1.0)、条件转移指令(JBP1.2,NEXT)等。第八页,共五十页,2022年,8月28日由于4个并行口的输出级在结构上不同,因此它们的负载能力和对接口的要求也各不相同:P0口的每一位输出可以驱动8个LSTTL。P1、P2、P3口的输出驱动电路可以驱动4个LSTTL。CMOS单片机的I/O口通常只能提供几毫安的驱动电流在全CMOS应用系统中,几毫安的输出电流足以满足多CMOS电路输入驱动的要求。并行I/O口的负载能力第九页,共五十页,2022年,8月28日3.3I/O口扩展1.I/0接口简介

CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。存储器通常在CPU的同步控制下工作,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,因此,习惯上说到接口只是指I/O接口。

第十页,共五十页,2022年,8月28日I/O接口的任务是通过系统总线实现8051单片机与I/O电路和外围设备的联系,扩展I/O端口的方法主要有3种:用一些数据缓冲器或数据锁存器如74LS273、74LS373和74LS244等构成简单的并行I/O接口;利用专用芯片接口芯片8255或8155扩展I/O接口。使用串行口同步移位寄存器方式扩展I/O接口(此方法在第5章中介绍)第十一页,共五十页,2022年,8月28日3.3.1使用中小规模集成电路扩展I/O口

类似于扩展数据存储器,即把每一个I/O端口当作一个片外数据存储器单元,给它分配存储空间的一个地址。直接使用访问片外数据存储器的指令(MOVX指令)来访问扩展的I/O口。但当应用系统扩展较多的I/O口时,将会占去大量的RAM地址。原则上说,I/O口的扩展容量最多可达64KB,但实际上并不需要这么多。第十二页,共五十页,2022年,8月28日图6-9并行I/O口的简单扩展2.简单的I/O口扩展实例

扩展数量不多且功能简单的I/O口,常采用TTL电路或CMOS电路锁存器、三态缓冲器。以如图6-9所示电路为例,要求按下任意一个键时,点亮对应的发光二极管。第十三页,共五十页,2022年,8月28日

在该系统中,采用双4位三态门电路74LS244作扩展输入,8位锁存器74LS273作扩展输出。P0口为双向数据线,既能从74LS244输入数据,又能将控制状态传送给74LS273输出。74LS244的位结构简图见图6-10。表6-5给出了74LS244的逻辑功能表。图6-1074LS244的位结构简图表6-574LS244的逻辑功能表第十四页,共五十页,2022年,8月28日图6-1174LS273的位结构简图表6-674LS273的逻辑功能表

图6-11是74LS273的位结构简图,表6-6是74LS273的逻辑功能表。

输入控制信号由P2.0和合成,当二者同时为低电平0时,或门输出为0,选通74LS244,将外部开关状态作为数据输入到总线。当无键按下时,输入为全1;若按下某键,则相应输入端输入0。第十五页,共五十页,2022年,8月28日

输出控制信号由P2.0和合成,当P2.0=0,出现负脉冲时,该负脉冲的上升沿。选通74LS273,将P0口数据锁存到74LS273,用来控制发光二极管的亮灭。由图可见,当某条数据线上输出低电平0时,该线上的LED发光。显然,输入和输出都是在P2.0=0时有效,二者的口地址同为0FEFFH,但因分别是由和信号控制,故不会发生冲突。

参考程序如下:LOOP:MOVDPTR,#0FEFFH;指向扩展I/O口地址MOVXA,@DPTR;从244读入数据,

检测开关状态MOVX@DPTR,A;向273输出数据,驱

动LEDAJMPLOOP;循环检测

除74LS273、74LS244以外,还可用74LS373、74LS377等芯片扩展8051的I/O口。第十六页,共五十页,2022年,8月28日6.3.3可编程I/O扩展芯片8155

采用可编程接口芯片来扩展I/O口,可以完成复杂的接口功能,如扩展并行I/O口采用8255、8155,扩展串行I/O口采用8251,扩展定时/计数器采用8253等。

8155是单片机常用的接口扩展芯片。其内部含有256B的静态RAM,2个8位的并行I/O接口,1个6位的并行I/O接口和1个14位的定时/计数器。8155与8051系列单片机的连接非常简单。第十七页,共五十页,2022年,8月28日

1.8155的结构和技术性能(1)内部结构8155芯片采用40脚双列直插式封装,其引脚和内部结构如图6-12所示。从图中不难看出,在8155内部具有:

256字节的静态RAM,存取时间为400ns3个通用的输入/输出口PA、PB、PC1个14位的可编程定时/计数器。1个8位命令寄存器(只能写入)/8位状态寄存器(只

能读出)(2)引脚介绍

第十八页,共五十页,2022年,8月28日图6-128155引脚和内部结构图第十九页,共五十页,2022年,8月28日2.8155的工作方式与地址编码8155能工作于以下3种方式:⑴作80C51单片机片外256字节RAM使用。条件是IO/=0,这时CPU对8155的256B的RAM单元寻址。⑵作扩展I/O口使用。条件是IO/=1。这时8155片内的3个I/O接口及命令/状态寄存器被选中。⑶作14位定时/计数器使用。条件是IO/=1。由于I/O接口、命令/状态寄存器和定时/计数器各自对应的口地址不同,因此不会发生冲突。

第二十页,共五十页,2022年,8月28日8155内部寄存器和I/O口的编址情况见下表第二十一页,共五十页,2022年,8月28日3.8155的命令/状态寄存器

8155内部的命令寄存器和状态寄存器使用同一个端口地址。命令寄存器只能写入不能读出,状态寄存器只能读出不能写入。

⑴命令字8155的3个I/O口的工作方式由CPU写入命令寄存器的控制命令字决定。命令字的格式如图6-13所示。

图6-138155的控制命令字第二十二页,共五十页,2022年,8月28日表6-8C口工作方式的设置表6-9C口用作控制信号的说明第二十三页,共五十页,2022年,8月28日

8155的状态寄存器用于锁存8155I/O口和定时/计数器的当前状态,供CPU查询。状态寄存器只能读出,不能写入,而且和命令寄存器共用一个口地址。CPU对该地址写入的是命令字,读出的是状态字。状态字格式如图6-14所示。图6-148155的状态字⑵状态字第二十四页,共五十页,2022年,8月28日

8155的定时/计数器是一个14位的减法计数器,可用来定时或对输入脉冲进行减法计数。要对计数的过程进行控制,必须首先装入计数初值。由于计数长度为14位,故定时器的计数初值由两个字节组成,每次装入8位,要分两次才能全部装入。8155定时/计数器的计数长度为2H~3FFFH之间的任意值。定时/计数器格式如表6-10所示。表6-10定时/计数器的设置4.8155的定时/计数器第二十五页,共五十页,2022年,8月28日图6-158155定时/计数器的4种输出波形

需要指出的是,硬件复位信号RESET,会使定时/计数器停止工作,直至由命令/状态寄存器再次启动计数操作(TM2TM1=11)时为止。

定时/计数器有4种输出方式,分别由M2和M1定义,每一种方式的输出波形如图6-15所示。

第二十六页,共五十页,2022年,8月28日

80C51单片机可以直接和8155连接而不需要任何附加电路,直接为系统增加256字节外部RAM、22根I/O线及一个14位定时器。其基本硬件连接方法如图6-16所示。图6-168051与8155连接的硬件电路图5.80C51单片机与8155的连接与操作第二十七页,共五十页,2022年,8月28日

图中的P2.X、P2.Y可以是P2口的任意引脚,如果图中X取7,Y取6,则8155中RAM的地址因P2.7(A15)=0,P2.6(A14)=0,可选为0011111100000000B(3F00H)~0011111111111111B(3FFFH)。此时I/O端口地址和命令/状态寄存器地址由下表得:7F00H~7F05H。表中无关位选0或1均可。表6-11图6-16的地址分配表

第二十八页,共五十页,2022年,8月28日

应用系统电路如图6-17所示。试编程实现如下功能:将PA口设定为输出口,PB口设定为输入口,当按钮没按下时,PA口作单一灯的左移;当按钮按下时,PA口作单一灯的右移。分析:首先应对8155初始化,然后判断按钮状态,据此作灯的移动图6-178155应用实例硬件电路

6.8155应用实例第二十九页,共五十页,2022年,8月28日

ORG0100HSETBP2.0;令IO/=1,选择使用8155的I/O口MOVR1,#00H;指向命令/状态寄存器地址00HMOVA,#01H;由命令/状态寄存器设定PA为输

出,PB口为输入MOVX@R1,A;控制字传送给命令/状态寄存器LOOP:MOVR1,#02H;指向PB口地址MOVXA,@R1;读取PB口状态JBACC.0,LEFT;判断按钮是否按下?没按下,

作左移

参考程序如下:第三十页,共五十页,2022年,8月28日CJNEA,#00H,LEFT;再判断MOVR2,#7FH;按钮已按下,赋右移初值MOVR3,#08HMOVR1,#01H;指向PA口地址RIGHT:MOVA,R2

MOVX@R1,A;输出至PARRAMOVR2,ALCALLDELAYDJNZR3,RIGHTAJMPLOOPLEFT:MOVR2,#0FEH;按钮没按下,赋左移初值MOVR3,#08HMOVR1,#01H;指向PA口地址第三十一页,共五十页,2022年,8月28日LOOP1:MOVA,R2MOVX@R1,A;输出至PARLAMOVR2,ALCALLDELAYDJNZR3,LOOP1AJMPLOOPDELAY:MOVR4,#200

D1:MOVR5,#248DJNZR5,$DJNZR4,D1RETEND第三十二页,共五十页,2022年,8月28日6.4显示器接口技术

6.4.1LED数码显示器1.LED数码显示器结构发光二极管显示器(LightEmittingDiode)简称LED,又称数码管,具有结构简单、价格低廉、使用方便、耗电少、与单片机接口容易等特点,在单片机应用系统使用非常普遍。

LED数码显示器由七段条形的发光二极管组成“

”字形显示字段,用一只圆形的发光二极管做小数点。结构如图6-18(a)所示。第三十三页,共五十页,2022年,8月28日图6-18LED数码显示器结构

在LED数码显示器中,通常将各段发光二极管的阴极或阳极连在一起做公共端,这样可以使驱动电路简单。因此,LED数码显示器就有共阴极和共阳极两种接法,如图6-18(b)、6-18(c)所示。第三十四页,共五十页,2022年,8月28日

要使LED数码管显示数字,只要点亮相应字段的发光二极管即可。如要显示“1”,点亮b、c段;要显示“0”,点亮a、b、c、d、e、f段。从图6-17中不难看出,对于共阴极数码管,点亮字段用高电平“1”表示,而对于共阳极数码管,点亮字段则用低电平“0”来表示。这样我们就可以把要显示的数字与一串二进制代码对应起来,即对LED数码显示器实现编码。由于这种编码是与显示器结构相对应的,因此分为共阴显示码和共阳显示码两种。

不考虑小数点的编码只有七位,常称为七段显示码;如果对小数点也进行编码,则称为八段显示码。表6-10列出了常用字符的八段显示码。

2.LED数码显示器的编码第三十五页,共五十页,2022年,8月28日表6-12常用字符的八段显示码

第三十六页,共五十页,2022年,8月28日续表6-12:3.显示方式

在实际LED显示系统中,常要进行多位显示。在这种情况下,LED数码显示器有静态显示和动态显示两种方式。第三十七页,共五十页,2022年,8月28日

静态显示是指显示器显示某一字符时,相应段的发光二极管处于恒定导通或截止状态,直至需要显示下一个字符时为止。静态显示又分并行输出和串行输出两种形式。

图6-19静态显示方式下2位共阳LED作并行输出的接口电路

⑴静态显示第三十八页,共五十页,2022年,8月28日

图6-19给出了静态显示方式下2位共阳LED作并行输出的接口电路。图中采用两片74LS373扩展并行输入输出接口,接口地址由2线-4线译码器74LS139的输出决定。74LS139的逻辑功能见表6-13。显然,2片74LS373的地址分别为3FFFH、0BFFFH。译码输出信号(或)与单片机的写信号共同控制对74LS373的写入操作。

由图可见,并行输出时,每个LED数码管都需要8位输出口独立控制,因此该方式虽然亮度好,且不占用CPU的工作时间,但在显示器位数较多时,连线较复杂。表6-1374LS139的真值表并行输出第三十九页,共五十页,2022年,8月28日

采用串行输出可以大大节省单片机的内部资源。图6-20为2位共阳LED作串行输出的接口电路。该电路用74LS164将80C51输出的串行数据转换成并行数据输出给LED显示器,减少了接口连线。其中74LS164的TXD为移位时钟输出,RXD为移位数据输出,P1.7作为显示器允许控制输出线。每次能够输出2个字节(16位)的段码数据。依据此方法,可以作多位LED的串行输出显示。

串行输出第四十页,共五十页,2022年,8月28日

显示原理动态显示就是一位一位地轮流点亮各位LED显示器(即扫描),对于每位显示器来说,每隔一段时间被80C51点亮一次,并保留一定时间(通常为1~10ms),以造成视觉暂留效果。这样,虽然在同一时刻,实际上只有一位LED显示器在显示,但利用人眼的“视觉暂留”和发光二极管熄灭时的余晖效应,使人感觉好像若干位LED显示器在同时显示不同的数字一样。⑵动态显示第四十一页,共五十页,2022年,8月28日

图6-20静态显示方式下2位共阳LED作串行输出的接口电路

使用特点动态显示常用于多位LED显示。其最大的优点是硬件开销省,接口电路简单,但它要求CPU频繁地为显示服务。第四十二页,共五十页,2022年,8月28日

图6-21经8155扩展的6位动态扫描LED显示器接口电路

图6-21是经8155扩展的6位动态扫描LED显示器接口电路。图中8155的PA口作为位选口,其地址可设为7F01H,PB口作为段选口,其地址可设为7F02H,由于LED显示器需要一定的驱动电流,故在接口中增设驱动器。第四十三页,共五十页,2022年,8月28日6.4.2点矩阵显示器

点矩阵显示器实际上就是LED显示,只是构成显示器的所有LED都依矩阵形式排列而得名。点矩阵显示器主要用来制作电子显示屏,广泛用于火车站、体育场、股票交易厅、大型医院等处作信息发布或广告显示。其优点是能根据需要的大小、形状、单色或彩色来汇编,能与单片机连线,作各种动态效果或图形变化。

1.分类和结构矩阵显示器的种类,可分为单色、双色、三色。依LED的极性排列方式,又可分为共阴极与共阳极两种类型。如果根据矩阵每行或每列所含LED个数的不同,点矩阵显示器还可分为5×7、8×8、16×16等类型。本章以单色共阳极8×8点矩阵显示器为例。其外观和引脚排列如图6-22所示。等效电路如图6-23所示。第四十四页,共五十页,2022年,8月28日图6-22单色共阳极8×8点矩阵显示器外观和引脚排列2.显示原理

由图6-22可知,只要让某些LED亮,就可以组成数字、英文字母、图形和汉字。从等效电路不难看出,点亮LED的方法就是要让该LED对应的Y轴、X轴处于正向偏置状态。但如果用直接点亮的方式,则显示形状是固定的;而采用多工扫描的方式,就

温馨提示

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

评论

0/150

提交评论