欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    片机AT89S52并行输入输出口.ppt

    • 资源ID:6440203       资源大小:1.14MB        全文页数:69页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    片机AT89S52并行输入输出口.ppt

    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.条件;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、做总线输出输入,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,3、P0口作总线,P0口作总线:输出,P0口作总线:输入,由内部时序切换到读引脚状态,并保证口锁存器内为1,以利外部信号输入,P0口作总线:输入,总线输入/输出过程是自动的,按时序要求切换,输入时简化图为:,结论:1、P0口作总线时,不用加上拉电阻,2、由于不是上拉电阻驱动,因此高低电平驱动能力相当,都很大,15,二、P1口,1、位结构锁存器,输入缓冲器,输出驱动器,等效上拉电阻2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读-修改-写操作,1、P1口位结构,17,说明,P1P3都是准双向口;双向口:可使引脚悬浮作高阻输入;准双向口:其引脚具有内部拉高电阻,其特点:当外部维持在低电平时,准双向口输入要能提供源电流,而外部低电平消失时,又会自动地使自己拉向高电平。,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,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读选通出,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负载,负载能力,应用功能,30,I/O口小结:读入方式,每个I/O口均有两种读入方式(用命令区分)读锁存器读引脚 P1=0 xff;tmp=P1;/读引脚P1/读锁存器注意:读引脚时,需先向锁存器写“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提供,由于D0D7总是伴随着/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等锁存器:从AD0AD7中分离出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个地址线就是片选地址线。全译码方式:所有片选地址线全部参加译码;部分译码方式:片选地址线部分参加译码,剩下部分悬空;线选方式:片选地址线直接接到芯片的片选端。,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.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,读入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,则表示该行没有键按下,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位为0 xe,则表示该行第1个键按下,行列值合成对应该按键的唯一扫描码:0 xee,这一行的4个扫描码分别是:0 xee 0 xde 0 xbe 0 x7e,58,逐行扫描法,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,读入4列,若读入的4位不均为1,则表示有键按下,这一行的4个按键对应的扫描码分别是:0 xed 0 xdd 0 xbd 0 x7d,59,逐行扫描法,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,则表示有键按下,这一行的4个按键对应的扫描码分别是:0 xeb 0 xdb 0 xbb 0 x7b,60,逐行扫描法,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,则表示有键按下,这一行的4个按键对应的扫描码分别是:0 xe7 0 xd7 0 xb7 0 x77,61,编程实现逐行扫描法,#include/要用到sfr:P1#define uchar unsigned charvoid delay(void);/声明函数uchar tmp;main()while(1)/无限循环作为main的结束 P1=0 xfe;tmp=P1,62,编程实现逐行扫描法,void delay(void)int i,j;for(i=0;i10;i+)for(j=0;j1000;j+);void line1_key(void)delay();tmp=P1/等键释放,63,线反转法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,0,0,0,1,1,1,1,0,平常状态,不用扫描键盘,若有键按下会产生中断,/INT0,64,线反转法,VCC,10Kx8,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,P1.0,VCC,10Kx8,4位输出,4位输入,0,0,0,1,1,0,1,0,若有一键按下,进入中断服务程序,读入高4位为0 xb,/INT0,65,线反转法,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,0,1,1,输入输出倒置,并将读入的0 xb原位送出,即输出0 xbf,将高4位送出的同时,低4位被置成输入,/INT0,66,线反转法,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,0,1,1,读入低4位,与高4位送出的数合成扫描码的0 xbb,由此得知是那个按键按下了,/INT0,编程实现线反转法,#include/要用到sfr#define uchar unsigned charuchar tmp=0;main()P1=0 xf0;EA=1;EX0=1;/开INT0中断 for(;)/无限循环作为main的结束 while(tmp=0);/若无按键等待,或做其他工作 switch(tmp)case 0 xee:key1();break;case 0 xde:key2();break;case 0 xbe:key3();break;case 0 x7e:key4();break;case 0 xb7:key15();break;case 0 x77:key16();break;default:break;tmp=0;/end of for(;),68,编程实现线反转法,void delay(void)int i,j;for(i=0;i10;i+)for(j=0;j1000;j+);void key_press(void)interrupt 0/INT0的中断服务程序 uchar tmp1;delay();tmp=P1/返回,69,作业,P138页:2、5补充:1、用12个口线实现4x4键盘和4位LED动态扫描显示,画出电路图,并编程实现按键识别。2、编程实现由P1.0和P1.1构成移位寄存器的数据和时钟输出,将内部RAM 0 x30开始的16字节数据移位输出,低位在前。,

    注意事项

    本文(片机AT89S52并行输入输出口.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开