C51单片机内部功能单元及.ppt

上传人:max****ui 文档编号:3402791 上传时间:2019-12-13 格式:PPT 页数:114 大小:1.03MB
返回 下载 相关 举报
C51单片机内部功能单元及.ppt_第1页
第1页 / 共114页
C51单片机内部功能单元及.ppt_第2页
第2页 / 共114页
C51单片机内部功能单元及.ppt_第3页
第3页 / 共114页
点击查看更多>>
资源描述
第六章80C51单片机内部功能单元及应用,6.1并行I/O端口,51系列单片机有4组I/O端口,每组端口都是8位准双向口,共占32根引脚。每个端口都包括一个锁存器(即专用寄存器P0P3)、一个输出驱动器和输入缓冲器。,6.1.1P0口,P0口是一个多功能的三态双向口,能驱动8个TTL负载。可以字节访问也可位访问,其字节访问地址为80H,位访问地址为80H87H。1位电路结构,2P0口作为通用I/O口1)输出时CPU发出控制电平“0”封锁“与”门,将输出上拉场效应管T1截止,同时使多路开关MUX把锁存器与输出驱动场效应管T2栅极接通。故内部总线与P0口同相。由于输出驱动级是漏极开路电路,当驱动NMOS或其它电流负载时,需要外接上拉电阻。P0的输出级可驱动8个LSTTL负载。,2)输入时-分读引脚和读锁存器读引脚:由传送指令(MOV)实现;读锁存器:读锁存器是先从锁存器中读取数据,进行处理后,将处理后的数据重新写入锁存器中,这类指令成为“读-修改-写”指令。例如CPLP0.0指令执行时,单片机内部产生“读锁存器”操作信号,使锁存器Q端的数据送到内部总线,在对该位取反后,结果又送回P0.0的端口锁存器并从引脚输出。“读锁存器”可以避免因引脚外部电路的原因而使引脚的状态发生改变造成误读。,当P0作为普通I/O来用时,此时P0口为一个准双向口。所谓准双向口就是在读数据之前,先要向相应的锁存器做写1操作的I/O口;从图6-4中可以看出,在读入端口数据时,由于输出驱动FET并接在引脚上,如果T2导通,就会将输入的高电平拉成低电平,产生误读。所以在端口进行输入操作前,应先向端口锁存器写“1”,使T2截止,引脚处于悬浮状态,变为高阻抗输入。,3P0作为地址/数据总线当P0口作地址/数据复用总线用之后,就再也不能作通用I/O口使用了。1)P0引脚输出地址/数据信息。2)P0引脚输出地址/输入数据,6.1.2P1口P1口是一个准双向口,它只作通用的I/O口使用,其功能与P0口作为通用I/O口时的功能相同。作为输出口使用时,由于其内部有上拉电阻,所以不需要外接上拉电阻;作为输入口使用时,必须先向锁存器写入“1”,使场效应管T截止,然后才能读取数据。P1口能驱动4个TTL负载。P1口即可以字节访问,也可位访问,其字节访问地址为90H,位访问地址为90H97H。,1.位电路结构P1口的位电路结构如图6-2所示,内部包含输出锁存器、输入缓冲器(读引脚、读锁存器)以及由FET晶体管与上拉电阻组成的输出/输入驱动器。,P1口作为通用I/O口1)P1.X作I/O口的输出线当CPU对P1.X锁存器写入高电平“1”时,/Q=“0”,场效应管V1截止,P1.X引脚输出高电平。当CPU对P1.X锁存器写入低电平“0”时,/Q=“1”,场效应管V1导通,P1.X引脚输出低电平。注意输出高电平不要带较重的负载。,2)P1.X作I/O口的输入线软件首先对P1.X锁存器写高电平“1”,使场效应管V1截止,P1.X引脚呈高电平“1”;很微弱的电流就可把P1.X引脚拉为低电平,所以P1.X引脚的电平是随外电路驱动的电平变化而变化;软件读P1.X引脚时,CPU使“读引脚”=“1”,三态缓冲器1导通,将P1.X引脚的电平读入内部数据总线。,6.1.3P2口P2口也是一个准双向口,P2口能带34个TTL负载。可以字节访问,也可位访问,其字节访问地址为A0H,位访问地址为A0HA7H。1位电路结构P2口有8条端口线,命名为P2.7P2.0,每条线的结构如图6-3所示。它由一个输出锁存器、转换开关MUX、两个三态缓冲器、一个非门、输出驱动电路和输出控制电路等组成。输出驱动电路上有上拉电阻。,6.1.4P3口P3口是一个多功能准双向口,第一功能是作为通用的I/O口使用,其功能和原理与P1口相同。可以驱动4个TTL负载。第二功能是作为控制和特殊功能口使用,可以字节访问也可以位访问,其字节访问地址为B0H,位访问地址为B0HB7H。,P3口作为第二功能使用通常情况下,P3口的第二功能在应用中更为重要,此时各引脚定义如表6-1所示。,基本I/O口的应用举例P0口输出功能应用举例【例1】P0口做通用I/O输出口,控制8只发光二极管从左到右依次点亮,再依次熄灭,电路图如图6-5所示。,#includeunsignedchari;unsignedchartemp;unsignedchara,b;voiddelay(void)/循环间隔时间unsignedcharm,n,s;for(m=20;m0;m-)for(n=20;n0;n-)for(s=248;s0;s-);voidmain(void)while(1)temp=0 xfe;P0=temp;delay();,for(i=1;i(8-i);P0=a|b;delay();for(i=1;ii;b=temp0;i-)while(-j);,/*/函数名称:main()/函数功能:主函数/*/main()bitflag=0;while(1)LED=flag;delay();LED=!flag;delay();,【例5】P3.5口做通用I/O输出口,控制蜂鸣器断续发声,电路图如图6-9所示。,参考程序如下:#includesbitBEEP=P35;/蜂鸣器端口voiddelayms(unsignedcharms)/毫秒延时子程序unsignedchari;while(ms-)for(i=0;i0;tmp-);,main()uchartemp=0 xfe;SCON=0 x00;while(1)SBUF=temp;/发送数据while(!_testbit_(TI);/判是否发送完毕temp=_crol_(temp,1);/发送数据左移一位delay_200ms();/延时200ms之后,循环,2方式1应用,基于方式1的串行通信利用单片机U1将一段流水灯控制程序发送到单片机U2,利用U2来控制其P1口点亮8位LED,如图6-39所示。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!