历史上的今天
返回首页

历史上的今天

今天是:2025年07月13日(星期日)

正在发生

2020年07月13日 | 51单片机的IO口操作基础知识介绍

2020-07-13 来源:51hei

以我们常用的STC单片机为例:STC单片机所有IO口均可由软件配置成4种工作类型。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。每个口有2个寄存器中的相应位控制每个引脚的工作类型。上电复位后的工作模式为准双向/弱上拉模式。2V以上为高电平,0.8V以下为低电平,每个I/O口驱动能力可以达到20mA。


那么我们通过配置哪两个寄存器来设定I/O口的工作模式呢:这两个寄存器就是PxM1和PxM0,P0口对应的就是P0M1和P0M0,P1口对应的就是P0M1和P0M0,P2口对应的就是P0M1和P0M0,P3口对应的就是P0M1和P0M0。以P0口的设置为例:

如果有P0M1为10100000;P0M0为11000000,我们对照上表可以知道:P0.7管脚为开漏输出;P0.6为强推挽输出;P0.5为输入(高阻);P0.4到P0.0为准双向口。


单片机I/O控制电路典型接法:

1、典型三极管控制电路

如果用弱上拉控制,建议加上拉电阻R1(3.3K - 10K),如果不加上拉电阻R1,建议R2的阻值在15K以上,或用强推挽输出。


2、典型发光二极管控制电路

采用准双向口模式,用灌电流驱动发光二极管限流电阻尽量大于1K,最小不要小于470Ω。

推挽/强上拉口模式,用拉电流驱动发光二极管,限流电阻一般为1K。

3、混合电压供电系统3V/5V器件I/O口互连

STC单片机如果供电是5V,当它连接3.3V器件时,为防止3.3V器件承受不了5V,可将相应的5V单片机I/O口先串一个330Ω的限流电阻到3.3V器件I/O口,程序初始化时将5V器件的I/O口设置成开漏配置,断开内部上拉电阻,相应的3.3V器件I/O口外部加10K上拉电阻到3.3V器件的VCC,这样高电平是3.3V,低电平是0V,输入输出一切正常。


4、当I/O口作为PWM输出I/O口时,需要设置成强推挽输出/强上拉输出,同时加输出限流电阻10K即可。


推荐阅读

史海拾趣

DFRobot公司的发展小趣事

在竞争激烈的电子行业中,DFRobot始终保持创新精神和技术领先。他们不断推出具有创新性和实用性的新产品和技术解决方案,如基于RISC-V构架的开源硬件产品、人工智能教育产品等。这些新产品和技术不仅满足了客户的需求,也推动了行业的发展和进步。同时,DFRobot还注重知识产权保护,积极申请各类专利和软件著作权,保护公司的创新成果和知识产权。

通过以上五个故事,我们可以看到DFRobot在电子行业中的发展历程和成就。他们凭借对技术的热爱和不懈的努力,逐渐在机器人和开源硬件领域崭露头角,并通过拓展教育市场、国际合作和品牌建设等举措,不断提升公司的竞争力和影响力。

Continental Industries公司的发展小趣事

经过多年的发展,Continental Industries已经成为电子行业中的佼佼者。公司不断追求创新和发展,积极拓展新的业务领域和市场空间。未来,随着电子行业的不断发展和变革,Continental Industries将继续保持敏锐的市场洞察力和强大的技术实力,努力成为行业的领导者。

这五个故事展示了Continental Industries在电子行业中的发展历程和取得的成就。虽然无法涵盖公司的全部发展细节,但通过这些故事,我们可以感受到公司在技术创新、市场拓展、合作共赢、应对挑战以及持续发展等方面的努力和成果。

Eon公司的发展小趣事

除了天然气业务外,E.ON还致力于电力市场的拓展。通过与其他电力公司的合作和并购,E.ON逐渐扩大了在欧洲电力市场的份额。特别是在2003年收购德国鲁尔天然气公司后,E.ON间接持有了俄天然气公司的股份,进一步巩固了其在欧洲能源市场的地位。

Filtran Ltd公司的发展小趣事

近年来,随着5G、物联网等技术的快速发展,电子行业面临着前所未有的挑战和机遇。Filtran Ltd深知唯有不断创新才能保持竞争力。公司加大了在研发方面的投入,建立了多个专项研究小组,专注于新技术、新材料和新工艺的探索。通过持续创新,Filtran Ltd成功推出了多款符合市场需求的新产品,进一步巩固了其在电子行业中的地位。同时,公司还积极拥抱数字化转型,利用大数据、人工智能等先进技术提升运营效率和服务水平。

Altmustech公司的发展小趣事

随着业务规模的不断扩大,Altmustech开始实施全球化布局战略。公司在全球范围内设立研发中心和生产基地,与各地合作伙伴建立紧密的合作关系。这一战略使得公司能够更好地利用全球资源,提高生产效率,降低成本,同时也有助于提升公司在国际市场上的竞争力。

Bel Fuse公司的发展小趣事

在发展过程中,Bel Fuse注重与合作伙伴建立长期稳定的合作关系。公司积极寻求与全球知名企业的合作机会,通过技术合作、资源共享等方式,共同推动电子行业的发展。这些合作伙伴关系的建立不仅为公司带来了更多的业务机会,还提升了公司的技术水平和市场竞争力。

问答坊 | AI 解惑

电子书籍PDF下载

基本电子书籍PDF档…

查看全部问答>

清华大学嵌入式培训教材

清华大学的教材,很适合初学者…

查看全部问答>

mc39i 连线问题

我用 mc39i modem 其中31管脚 /pd 发现总是在0.24v--2.24v波动,该管脚为 0v是给modem断电。 我把这个管脚的控制端用6n137 隔离,输入1 断电,输入0 不断电。总是出现  rascs_disconnected ecode 633,上网查为 拨号网络网络由于设备 ...…

查看全部问答>

送分!

坐沙发者即送分!…

查看全部问答>

windows mobile下如何开发数据库(用vc2005环境),需要那些?

windows mobile下如何开发数据库(用vc2005环境),需要那些? access即可…

查看全部问答>

无线网卡

大家好,我的笔记本是IBMt43的1871A85,我的无线网卡信号接受不是很好,所以我想买一款PCM接口的网卡,请大家推荐一下。谢谢。…

查看全部问答>

基于 LM3S的图形驱动库开发之硬件介绍

大家好,首先在这个地方向大家致歉,因为个人原因,11月份突然十分忙碌。所以在上旬的时候没有抽出时间写开发文档。心中万分抱歉。。。这次我要和大家一起分享的是TI的LM3S上图形驱动库的开发。现在在网络上,用ti外设驱动库的很多,但是在网上基 ...…

查看全部问答>

【C28汇编语言杂谈】一、C语言与汇编的比较

【C28汇编语言杂谈】 大家都知道,C语言编程方便,可读性好,移植容易,有与硬件联系密切的特点,使用提供的头文件可以对CPU的内部寄存器及外围编程。通用性强。但编译器并非智能型的,对于C语言编译连接后所产生的机器码不尽相同,且一般很难达到 ...…

查看全部问答>

麻烦各位帮小弟看下18B20程序错在哪 数值读出来错误 而且没有变化

#include #include #include void io_init(); void lcdshow_init(); void write_com(uchar com);       void write_data(uchar data); void write_show(uchar x,uchar y); uint read_temperature(); void lcd_sho ...…

查看全部问答>