单片机_AT89S52并行输入输出口

上传人:豆浆 文档编号:3904831 上传时间:2017-08-05 格式:PPT 页数:69 大小:2.40MB
返回 下载 相关 举报
单片机_AT89S52并行输入输出口_第1页
第1页 / 共69页
单片机_AT89S52并行输入输出口_第2页
第2页 / 共69页
单片机_AT89S52并行输入输出口_第3页
第3页 / 共69页
单片机_AT89S52并行输入输出口_第4页
第4页 / 共69页
单片机_AT89S52并行输入输出口_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《单片机_AT89S52并行输入输出口》由会员分享,可在线阅读,更多相关《单片机_AT89S52并行输入输出口(69页珍藏版)》请在金锄头文库上搜索。

1、1,第6章 并行输入/输出口(I/O口),6.1 I/O口概述6.2 MCS-51 I/O口结构和功能6.3 存储器和I/O口的扩展6.4 I/O口的C51应用编程作业,2,6.1 I/O口概述,接口的概念:CPU与外设之间交换信息的连接部件(有并行接口和串行接口两大类)。接口与端口接口电路可以包含多个端口(控制、模式、状态等),端口实际上是特殊的寄存器,不同端口编有不同的地址。口线与总线:口线实际上是I/O端口寄存器各位电平的反映,而总线则是连接存储器和端口的公共通道。I/O口编址技术:1. I/O端口与存储器统一编址; 2. I/O端口独立编址.I/O数据传送的控制方式:1. 无条件; 2

2、. 条件; 3. 中断; 4. DMA.,3,四个双向8位I/O口,共32根I/O口线,每个I/O线均由锁存器,输出电路和输入缓冲器组成。每个I/O既可作输入又可作输出,每一条口线可独立用作输入又可用作输出,作输出时可锁存数据,作输入时可缓冲数据。特殊功能寄存器P0P3:P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表,SFR地址为80H、90H、0A0H、0B0H。,6.2 AT89S52 I/O口结构和功能,4,一、P0口,1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读-修改-写操作3、做总线

3、输出输入,1、P0口位结构,6,输出输出0输出1输入读引脚:只操作一次读锁存器:读-修改-写操作,2、P0口作I/O口线,P0口作I/O口线,P0口作I/O口线:输出,分析输出0和 输出1 两种情况,P0口作I/O口线:输入(读引脚),输入:读引脚特征:只操作1次,注意:要保证口锁存器为1,否则无法读入高电平,操作:可以先写1再读,由于上拉电阻较大,写1并不会使输入低电平变成高电平。,P0口作I/O口线:输入(读锁存器),输入:读锁存器特征:操作2次(读-修改-写)操作:不可先写1再读,例:P0&=0xf0;P0+;P00=!P00;,3、P0口作总线,P0口作总线:输出,P0口作总线:输入,

4、由内部时序切换到读引脚状态,并保证口锁存器内为1,以利外部信号输入,P0口作总线:输入,总线输入/输出过程是自动的,按时序要求切换,输入时简化图为:,结论:1、P0口作总线时,不用加上拉电阻,2、由于不是上拉电阻驱动,因此高低电平驱动能力相当,都很大,15,二、P1口,1、位结构锁存器,输入缓冲器,输出驱动器,等效上拉电阻2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读-修改-写操作,1、P1口位结构,17,说明,P1P3都是准双向口;双向口:可使引脚悬浮作高阻输入;准双向口:其引脚具有内部拉高电阻,其特点:当外部维持在低电平时,准双向口输入要能提供源电流,而外部低电平消失时,又会自动

5、地使自己拉向高电平。,18,三、P2口,1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读-修改-写操作3、做地址总线,输出高8位地址,19,作“通用数据I/O端口”和“高八位地址总线”; P2口在系统使用外部存储器时,由于CPU不断取指令,所以必须做高八位的地址总线;仅使用外部数据存储器时,P2口分两种情况: 1. 使用MOVX A, R0指令分页访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口仍然可能全部或部分做通用I/O端口。(对应C51的pdata存储类型) 2.使用MOVX A, DPTR指令访问外部RAM,

6、 P2口必须作为外存储器的高八位地址总线,不可再作I/O口。(对应C51的xdata存储类型),P2口 特点,1、P2口位结构,2、P2口做I/O口,3、P2口做总线,23,四、P3口,1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读-修改-写操作3、做替代功能,24,P3.0RxD串行数据接收入 P3.1TxD串行数据发送出 P3.2INT0外部中断0申请入 P3.3INT1外部中断1申请入 P3.4T0定时器/计数器0计数输入入 P3.5T1定时器/计数器1计数输入入 P3.6WR外部RAM写选通出 P3.7RD外部RAM读选通出,

7、P3口的第二功能,P3口位结构,26,特点:通用I/O端口、多用途端口 在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。 在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。,P3口位结构,P3口位结构,29,I/O口小结,P0:系统扩展;一般I/O口(输出时,需接上拉电阻。)P1:专供用户使用的I/O口P2:系统扩展;通用I/O口P3:功能口,每位独立定义;通用I/O口。,P0作AD0AD7驱动8个LSTTL负载P1P3驱动34个LSTTL负载,负载能力,应用功能,3

8、0,I/O口小结:读入方式,每个I/O口均有两种读入方式(用命令区分)读锁存器读引脚 P1=0xff; tmp=P1; /读引脚P1&=0xf0;/读锁存器注意:读引脚时,需先向锁存器写“1”。系统复位时,所有口锁存器均置“1”。,31,6.3 存储器和I/O口的扩展,要点:1、总线和I/O口线的应用特性2、片外三总线结构3、外部程序存储器和数据存储器4、外部RAM地址空间分配和映射,32,MCS-51单片机最小应用系统,33,34,地址总线(AB):宽度16位,寻址范围64KB(0000-FFFFH),低8位由P0经锁存器获得,高8位由P2提供;数据总线(DB):宽度8位,由P0提供,由于D

9、0D7总是伴随着/RD、/WR或/PSEN出现,不用锁存器(只在需要的时候出现);控制总线(CB): /WR、/RD和/PSEN等。,片外总线特性,35,外部程序存储器扩展,36,EPROM: 2764 27128 27256 27512等锁存器:从AD0AD7中分离出A0A7 373:8D锁存器 374:8D触发器(带三态) 273:8D触发器(带清除),扩展芯片,37,373 273和374,38,扩展8K字节程序存储器的连线图,39,访问外部ROM的时序,40,外部数据存储器扩展 (64 K Address Space),41,SRAM: 6264 62256 628128等锁存器:从A

10、D0AD7中分离出A0A7 373:8D锁存器 374:8D触发器(带三态) 273:8D触发器(带清除),扩展芯片,42,扩展2KB数据存储器的线路图,43,访问外部RAM的时序,44,扩展16KB RAM和16KB EPROM,45,简单I/O扩展,简单I/O口的扩展主要由74系列的电路进行扩展;在许多情况下,有些开关量或并行数据需直接输出或输入。经常用8D锁存器和三态驱动门等进行扩展。(373、 374、377、273、244等),46,地址译码方式,片选地址线:用于选择芯片的地址线,是指全部地址总线中去掉芯片内部地址线剩下的地址线。如6264,8KB, 芯片内部要13个地址线,剩下的3

11、个地址线就是片选地址线。 全译码方式:所有片选地址线全部参加译码; 部分译码方式:片选地址线部分参加译码,剩下部分悬空; 线选方式:片选地址线直接接到芯片的片选端。,47,简单I/O接口扩展电路(线译码),48,可编程I/O芯片的扩展,49,6.4 I/O口的C51应用编程,要点:用#include加入对特殊功能寄存器P0,P1,P2,P3的定义.根据需要用sbit对口线进行定义.定义后,按一般变量使用方法来使用。,50,逐行扫描和线反转法查询和中断方式,例1: 用P1口完成4x4键盘的识别,51,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1

12、.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,1,1,1,1,1,1,1,初始状态,52,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,1,1,1,1,1,1,0,第1行送出0, 其余3行送出1, 读入4列, 若读入的4位均为1, 则表示该行没有键按下,53,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,0,1,1,1,1,1,1,1,第2行送出0, 其余3行送出1,

13、 读入4列, 若读入的4位均为1, 则表示该行没有键按下,54,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,0,1,1,1,1,1,1,第3行送出0,其余3行送出1, 读入4列, 若读入的4位均为1, 则表示该行没有键按下,55,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,1,0,1,1,1,1,1,第4行送出0, 其余3行送出1, 读入4列, 若读入的4位均为1, 则表示

14、该行没有键按下,56,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,1,1,1,1,1,1,0,循环回到第1行送出0, 其余3行送出1, 读入4列, 若读入的4位均为1, 则表示该行没有键按下,由于循环很快,远远超过按键的速度,可以识别出所有单个按键,57,逐行扫描法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,1,1,1,0,1,1,1,0,第1行送出0, 其余3行送出1, 读入4列, 若读入的4位为0xe, 则表示该行第1个键按下,行列值合成对应该按键的唯一扫描码: 0xee, 这一行的4个扫描码分别是: 0xee 0xde 0xbe 0x7e,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号