版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机并行输入输出口1第1页,课件共69页,创作于2023年2月6.1I/O口概述接口的概念:CPU与外设之间交换信息的连接部件(有并行接口和串行接口两大类)。接口与端口接口电路可以包含多个端口(控制、模式、状态等),端口实际上是特殊的寄存器,不同端口编有不同的地址。口线与总线:口线实际上是I/O端口寄存器各位电平的反映,而总线则是连接存储器和端口的公共通道。I/O口编址技术:1.I/O端口与存储器统一编址;2.I/O端口独立编址.I/O数据传送的控制方式:1.无条件;2.条件;3.中断;4.DMA.<2第2页,课件共69页,创作于2023年2月四个双向8位I/O口,共32根I/O口线,每个I/O线均由锁存器,输出电路和输入缓冲器组成。每个I/O既可作输入又可作输出,每一条口线可独立用作输入又可用作输出,作输出时可锁存数据,作输入时可缓冲数据。特殊功能寄存器P0-P3:P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表,SFR地址为80H、90H、0A0H、0B0H。6.2AT89S52I/O口结构和功能3第3页,课件共69页,创作于2023年2月一、P0口1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读--修改-写操作3、做总线输出输入4第4页,课件共69页,创作于2023年2月1、P0口位结构第5页,课件共69页,创作于2023年2月输出输出0输出1输入读引脚:只操作一次读锁存器:读--修改-写操作2、P0口作I/O口线6第6页,课件共69页,创作于2023年2月P0口作I/O口线第7页,课件共69页,创作于2023年2月P0口作I/O口线:输出分析输出0和输出1两种情况第8页,课件共69页,创作于2023年2月P0口作I/O口线:输入(读引脚)输入:读引脚特征:只操作1次注意:要保证口锁存器为1,否则无法读入高电平操作:可以先写1再读,由于上拉电阻较大,写1并不会使输入低电平变成高电平。第9页,课件共69页,创作于2023年2月P0口作I/O口线:输入(读锁存器)输入:读锁存器特征:操作2次(读-修改-写)操作:不可先写1再读例:P0&=0xf0;P0++;P00=!P00;第10页,课件共69页,创作于2023年2月3、P0口作总线第11页,课件共69页,创作于2023年2月P0口作总线:输出第12页,课件共69页,创作于2023年2月P0口作总线:输入由内部时序切换到读引脚状态,并保证口锁存器内为1,以利外部信号输入第13页,课件共69页,创作于2023年2月P0口作总线:输入总线输入/输出过程是自动的,按时序要求切换,输入时简化图为:结论:1、P0口作总线时,不用加上拉电阻2、由于不是上拉电阻驱动,因此高低电平驱动能力相当,都很大第14页,课件共69页,创作于2023年2月二、P1口1、位结构锁存器,输入缓冲器,输出驱动器,等效上拉电阻2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读--修改-写操作15第15页,课件共69页,创作于2023年2月1、P1口位结构第16页,课件共69页,创作于2023年2月说明P1~P3都是准双向口;双向口:可使引脚悬浮作高阻输入;准双向口:其引脚具有内部拉高电阻,其特点:当外部维持在低电平时,准双向口输入要能提供源电流,而外部低电平消失时,又会自动地使自己拉向高电平。17第17页,课件共69页,创作于2023年2月三、P2口1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读--修改-写操作3、做地址总线,输出高8位地址18第18页,课件共69页,创作于2023年2月作“通用数据I/O端口”和“高八位地址总线”;P2口在系统使用外部存储器时,由于CPU不断取指令,所以必须做高八位的地址总线;仅使用外部数据存储器时,P2口分两种情况:1.使用MOVXA,@R0指令分页访问外部RAM,此时用8位的寄存器R0或R1作间址寄存器,这时P2口仍然可能全部或部分做通用I/O端口。(对应C51的pdata存储类型)2.使用MOVXA,@DPTR指令访问外部RAM,
P2口必须作为外存储器的高八位地址总线,不可再作I/O口。(对应C51的xdata存储类型)
P2口特点19第19页,课件共69页,创作于2023年2月1、P2口位结构第20页,课件共69页,创作于2023年2月2、P2口做I/O口第21页,课件共69页,创作于2023年2月3、P2口做总线第22页,课件共69页,创作于2023年2月四、P3口1、位结构锁存器,输入缓冲器,输出驱动器,多路开关2、做输入/输出口输出输出0输出1输入读引脚读锁存器:读--修改-写操作3、做替代功能23第23页,课件共69页,创作于2023年2月
P3.0 RxD 串行数据接收 入
P3.1 TxD 串行数据发送 出
P3.2 INT0 外部中断0申请 入
P3.3 INT1 外部中断1申请 入
P3.4 T0 定时器/计数器0计数输入 入
P3.5 T1 定时器/计数器1计数输入 入
P3.6 WR 外部RAM写选通 出
P3.7 RD 外部RAM读选通 出P3口的第二功能24第24页,课件共69页,创作于2023年2月P3口位结构第25页,课件共69页,创作于2023年2月特点:通用I/O端口、多用途端口在多用途情况下,P3口分别作为串行口、外中断输入、外部计数输入和系统扩展时使用的WR和RD信号的端口。在这种情况下,锁存器Q端为“1”电平以保证与门是打开的。在通用I/O模式下,“替代输出功能”端为“1”电平,以保证与门打开。26第26页,课件共69页,创作于2023年2月P3口位结构第27页,课件共69页,创作于2023年2月P3口位结构第28页,课件共69页,创作于2023年2月I/O口小结P0:系统扩展;一般I/O口(输出时,需接上拉电阻。)P1:专供用户使用的I/O口P2:系统扩展;通用I/O口P3:功能口,每位独立定义;通用I/O口。P0作AD0~AD7驱动8个LSTTL负载P1~P3驱动3~4个LSTTL负载负载能力应用功能29第29页,课件共69页,创作于2023年2月I/O口小结:读入方式每个I/O口均有两种读入方式(用命令区分)读锁存器读引脚P1=0xff;tmp=P1; //读引脚P1&=0xf0; //读锁存器注意:读引脚时,需先向锁存器写“1”。系统复位时,所有口锁存器均置“1”。<30第30页,课件共69页,创作于2023年2月6.3存储器和I/O口的扩展要点:1、总线和I/O口线的应用特性2、片外三总线结构3、外部程序存储器和数据存储器4、外部RAM地址空间分配和映射31第31页,课件共69页,创作于2023年2月MCS-51单片机最小应用系统32第32页,课件共69页,创作于2023年2月33第33页,课件共69页,创作于2023年2月地址总线(AB):宽度16位,寻址范围64KB(0000-FFFFH),低8位由P0经锁存器获得,高8位由P2提供;数据总线(DB):宽度8位,由P0提供,由于D0~D7总是伴随着/RD、/WR或/PSEN出现,不用锁存器(只在需要的时候出现);控制总线(CB):/WR、/RD和/PSEN等。片外总线特性34第34页,课件共69页,创作于2023年2月外部程序存储器扩展35第35页,课件共69页,创作于2023年2月EPROM:2764271282725627512等锁存器:从AD0~AD7中分离出A0~A7373:8D锁存器374:8D触发器(带三态)273:8D触发器(带清除)扩展芯片36第36页,课件共69页,创作于2023年2月373273和37437第37页,课件共69页,创作于2023年2月扩展8K字节程序存储器的连线图38第38页,课件共69页,创作于2023年2月访问外部ROM的时序39第39页,课件共69页,创作于2023年2月外部数据存储器扩展(64KAddressSpace)
40第40页,课件共69页,创作于2023年2月SRAM:626462256628128等锁存器:从AD0~AD7中分离出A0~A7373:8D锁存器374:8D触发器(带三态)273:8D触发器(带清除)扩展芯片41第41页,课件共69页,创作于2023年2月扩展2KB数据存储器的线路图42第42页,课件共69页,创作于2023年2月访问外部RAM的时序43第43页,课件共69页,创作于2023年2月扩展16KBRAM和16KBEPROM44第44页,课件共69页,创作于2023年2月简单I/O扩展简单I/O口的扩展主要由74系列的电路进行扩展;在许多情况下,有些开关量或并行数据需直接输出或输入。经常用8D锁存器和三态驱动门等进行扩展。(373、374、377、273、244等)45第45页,课件共69页,创作于2023年2月地址译码方式片选地址线:用于选择芯片的地址线,是指全部地址总线中去掉芯片内部地址线剩下的地址线。如6264,8KB,芯片内部要13个地址线,剩下的3个地址线就是片选地址线。全译码方式:所有片选地址线全部参加译码;部分译码方式:片选地址线部分参加译码,剩下部分悬空;线选方式:片选地址线直接接到芯片的片选端。
46第46页,课件共69页,创作于2023年2月简单I/O接口扩展电路(线译码)47第47页,课件共69页,创作于2023年2月可编程I/O芯片的扩展<48第48页,课件共69页,创作于2023年2月6.4I/O口的C51应用编程要点:用#include<reg51.h>加入对特殊功能寄存器P0,P1,P2,P3的定义.根据需要用sbit对口线进行定义.定义后,按一般变量使用方法来使用。49第49页,课件共69页,创作于2023年2月逐行扫描和线反转法查询和中断方式例1:用P1口完成4x4键盘的识别50第50页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11111111初始状态51第51页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11111110第1行送出0,其余3行送出1,读入4列,若读入的4位均为1,则表示该行没有键按下52第52页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入01111111第2行送出0,其余3行送出1,读入4列,若读入的4位均为1,则表示该行没有键按下53第53页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入10111111第3行送出0,其余3行送出1,读入4列,若读入的4位均为1,则表示该行没有键按下54第54页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11011111第4行送出0,其余3行送出1,读入4列,若读入的4位均为1,则表示该行没有键按下55第55页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11111110循环回到第1行送出0,其余3行送出1,读入4列,若读入的4位均为1,则表示该行没有键按下,由于循环很快,远远超过按键的速度,可以识别出所有单个按键56第56页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11101110第1行送出0,其余3行送出1,读入4列,若读入的4位为0xe,则表示该行第1个键按下,行列值合成对应该按键的唯一扫描码:0xee,这一行的4个扫描码分别是:0xee0xde0xbe0x7e57第57页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入01111111第2行送出0,其余3行送出1,读入4列,若读入的4位不均为1,则表示有键按下,这一行的4个按键对应的扫描码分别是:0xed0xdd0xbd0x7d58第58页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入10111111第3行送出0,其余3行送出1,读入4列,若读入的4位不均为1,则表示有键按下,这一行的4个按键对应的扫描码分别是:0xeb0xdb0xbb0x7b59第59页,课件共69页,创作于2023年2月逐行扫描法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入11011111第4行送出0,其余3行送出1,读入4列,若读入的4位不均为1,则表示有键按下,这一行的4个按键对应的扫描码分别是:0xe70xd70xb70x7760第60页,课件共69页,创作于2023年2月编程实现逐行扫描法#include<reg51.h> //要用到sfr:P1#defineucharunsignedcharvoiddelay(void); //声明函数uchartmp;main(){while(1) //无限循环作为main的结束{ P1=0xfe;tmp=P1&0xf0;if(tmp!=0xf0)line1_key(); P1=0xfd;tmp=P1&0xf0;if(tmp!=0xf0)line2_key(); P1=0xfb;tmp=P1&0xf0;if(tmp!=0xf0)line3_key(); P1=0xf7;tmp=P1&0xf0;if(tmp!=0xf0)line4_key();}}61第61页,课件共69页,创作于2023年2月编程实现逐行扫描法voiddelay(void){inti,j;for(i=0;i<10;i++)for(j=0;j<1000;j++);}voidline1_key(void){delay();tmp=P1&0xf0;if(tmp==0xf0)return; //延时约10ms去抖动switch(tmp){ case0xe0:key1();break; //key1-16函数省略 case0xd0:key2();break; case0xb0:key3();break;
case0x70:key4();break; default:break;}while(1){tmp=P1&0xf0;if(tmp==0xf0)break;} //等键释放}62第62页,课件共69页,创作于2023年2月线反转法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入00011110平常状态,不用扫描键盘,若有键按下会产生中断/INT063第63页,课件共69页,创作于2023年2月线反转法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输出4位输入00011010若有一键按下,进入中断服务程序,读入高4位为0xb/INT064第64页,课件共69页,创作于2023年2月线反转法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输入4位输出11111011输入输出倒置,并将读入的0xb原位送出,即输出0xbf,将高4位送出的同时,低4位被置成输入/INT065第65页,课件共69页,创作于2023年2月线反转法VCC10Kx8P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0VCC10Kx84位输入4位输出10111011读入低4位,与高4位送出的数合成扫描码的0xbb,由此得知是那个按键按下了/INT066第66页,课件共69页,创作于2023年2月编程实现线反转法#include<reg51.h> //要用到sfr#defineucharunsignedcharuchartmp=0;main(){P1=0xf0;EA=1;EX0=1; //开INT0中断 for(;;) //无限循环作为main的结束{
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年制定的幼儿园劳动协议范本细则版B版
- 2024年商业信用担保协议标准格式版B版
- 2024年创新产品知识产权合作合同版B版
- 2024专业借款协议格式版B版
- 江南大学《复变函数与积分变换》2021-2022学年第一学期期末试卷
- 江南大学《产品工程设计基础》2022-2023学年第一学期期末试卷
- 佳木斯大学《美学》2021-2022学年第一学期期末试卷
- 2024年地产企业与教育机构协作开发项目协议范本版
- 2024年加盟合作经营合同样本版B版
- 佳木斯大学《儿科学》2021-2022学年第一学期期末试卷
- 碘一二五粒子防护
- 质量文化导论智慧树知到答案章节测试2023年华东理工大学
- 新生儿气胸课件
- 员工罚款单模板
- 标准轴载作用次数计算-excel
- 2023年山东省冬季普通高中学业水平合格考试语文试题解析版
- 人音版5年级上第7课《堆雪人》课件(15张PPT)
- 预制梁场临建施工技术交底
- 美国移民入籍考试题
- LED路灯产品设计介绍课件
- 产品一致性与产品变更控制程序
评论
0/150
提交评论