c语言与硬件连接案例,实际LED硬件连接

1.三极管认识

假如我们的开发板的硬件连接有如下情况,我们需要点亮LED,需要怎么做?

94ce26c66e3cbaef60cc80def0c588e7.png                

96808ab205f7d41fc61e4eec2e77e1eb.png

先看左图,要想点亮LED,根据本章第一讲知识,只需“+5”与R1是短接状态即可,那么PNP型三极管就是起到被单片机IO端口控制是否允许此处短接的作用,也叫三极管是否导通。

如果单片机IO端口输出的是低电平(0V),此时我们可以直观的认为“+5”那端与单片机IO端口形成压差有电流通过,而电流流向正如箭头所示,则表明此时“+5”与R1是短接状态,三极管导通,灯就被点亮了。

那单片机IO端口输出的是高电平(5V)时,则没有形成压差也就产生不了电流,那么箭头不能代表此时有电流流向这个方向,所以“+5”与R1是断开状态,灯没有被点亮。箭头起到的就是辅助我们理解的优势。

这样我们可以根据箭头很形象的判断出单片机IO端口输出什么电平状态时就可以点亮LED。R1,R2电阻起到的是限流保护。

同理,右图使用的是NPN型三极管,那么单片机IO端口输出高电平时点亮LED,输出低电平时点不亮LED。

《手把手教你学51单片机》文档第3.3节有全面讲解这部分知识。

2.三八译码器

有一种元器件只需要用到我们单片机三个IO端口就可以控制它的八个引脚其中的一个输出低电平,开发板就用到这种叫74HC138三八译码器。我们省略它的电源供电引脚,画出需要讲解的引脚。

be53b25d123de75d1b0c51122ce0acc9.png

首先有三个引脚E0,E0,E1需要固定给它默认的电平它才能正常工作,俗称使能器件。

此时3个单片机IO端口输出不一样的电平时,IO0~IO7的其中一个引脚就会输出低电平,而其他7个IO都是输出高电平。

当我们的三个IO端口这样输出时,则有以下情况

单片机IO端口3(输出0)

单片机IO端口2(输出0)    → IO0输出0

单片机IO端口1(输出0)

单片机IO端口3(输出0)

单片机IO端口2(输出1)    → IO2输出0

单片机IO端口1(输出0)

一句话总结,三个IO端口输出的三个值从 IO端口3→IO端口2→IO端口1排成二进制数的得数就是哪个IOx输出低电平。比如三个IO端口这样输出:1 1 0。此时二进制值为十进制的6,那么IO6就输出低电平,其他输出高电平。

不过仅凭我们这样粗浅的讲解初学者会有疑惑,所以大家前往《手把手教你学51单片机》文档第三章深入学习了解这些元器件,多琢磨几遍,每遍都会有更深入的认识。

3.原理图新知识

我们先拿上一讲的原理图与图二对比

图一:

93734ac99d582a0c33e72d1bbed4187a.png

图二:

d3e920a7fec61001ed11e48897fd6ae8.png

上下两张图都表示同一个连接原理,图一比较直观看到1盏灯直接连上1个IO端口,而图二为了使观赏性更舒适,用两个名字相同的标号(网络标号)放在断点处,表示这两点代表着硬件连接中有一条覆铜线相连。平时阅读原理图我们推荐使用图二,不然用图一模式时元器件连接多了就会感觉太花眼。

我们通过对比以下两张图就看到使用网络标号的优势所在

c39aabcf14ea0898d5c9100b7c2f290b.png

35938efef4c51b950b843fa1b4cccb33.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值