单片机编程入门IO口如何实现AM调制

原标题:单片机IO口拓展小技巧!

单片机IO口拓展小技巧!

首先我们先讲讲为什么要扩展IO口。在我们使用51单片机的时候,有时候会出现IO口不够用的情况。比如键盘!这个时候IO口的资源就十分有限了。

按键是我们常用的器件,做某些东西的时候又不能缺少按键。如果一个按键对应一个IO口,那么可想而知,按键所占的IO口的数量是很大的。单片机IO口的资源是有限的,因此我们要采取一些方法来扩展单片机的IO口,控制按键所占的单片机IO口。

下面有几种方法可以扩展单片机的IO口:

1通过数据缓存器、锁存器来扩展单片机IO口。

这里采用74HC164来扩展单片机IO口。

2采用可编程I/O接口扩展芯片。

8255A是Intel公司生产的8位可编程并行接口芯片。内部有3个可编程的并行I/O口:PA口、PB口、PC口。

3采用矩阵键盘也可以减少IO口的使用。

矩阵键盘是常用的一种方式。可以根据扫描的方法来得到按键按下的位置

4采用A/D获取按键的位置。

因为每个按键按下时,获得的电压不同。因此启动AD采样,根据得到的电压值的不同,判断按键的位置。

声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。

}

我是因为前几天做一个用tm1640扫描数码管的产品,一直没等到货,想到现用一个单片机替代一下调通整体电路才做了这个试验,也上网看了才定了一种主从机各用一个时钟线共一根数据,主从机互用时钟线握手的方法,速度但还是不完善,等完善了公布

}

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

如果使用《高电平》来驱动三极管,就不用在《之间》加电阻。

反而是,应该给IO口,加上上拉电阻。

因为,51 单片机的IO口,输出高电平的能力很差。

这是因为引脚内部结构的原因。

如果使用《低电平》来驱动三极管,就应该在《之间》加限流电阻。

因为,51 单片机的IO口,输出低电平的能力较强。

不加限流电阻,电流将难以控制。

单片机的电流承受能力是有限的,51单片机单个IO口灌电流也就一二十毫安,并且基本型51全机不能超过50ma吧好像。所以连接IO口的三极管基极电流要被限制,同时也防止烧坏三极管。下图是51单片机内部P0口的管脚原理结构,如果你用它来驱动一个PNP三极管 基极不加电阻的话,就相当于直接拿电源正极接到单片机IO口上,图上单片机内部连接IO口管子就会被烧坏

如果io口高电平时由上拉电阻提供,那驱动电流应该很小啊,而且io口电压也不应该是5V啊,因为电压都分到10K的电阻了,那为什么和实际不一样呢?

这样的话,首先你不能用Io口带可编程配置控制的单片机(比如下图中的这种IO输出结构那就更难理解了),再就是如果你管脚除了上拉电阻什么也不接 直接量的话 电阻档上你电表的内阻是远远比10K大的多,电压都被拉电表上了,你不妨把IO置一然后上拉一个10K后再下拉一个10K量量试试(但首先你得是传统51 IO口输出模式单片机,这种模式的输出 不外加上拉电阻时P1P2P3内部拉电流是200多uA)还有就是你担心上拉10K分压后IO口读入就不在是5V了,这担心是多余的,因为我上面发的两张图的下部你都能看到IO读是的输入数据的通道是高阻的,比你的10K也要大得多

作用都是限流。分两种情况:

1、IO口是电流接收端,电流从外界通过三极管流入到单片机中。这个电阻起到限流作用,防止外界电流过大而烧坏IO口。

2、IO口是输出端,三极管的某个极是输入端,这个电阻主要防止,当IO口输出高电平时,电流过大,烧坏三极管的电极特别是基极。

IO口输出高或者输出低时,我们可以分别把它当作电源的+端和-端。当IO口驱动三极管时,如果不加电阻,则通过发射结的电流就等同于把一个二极管直接接于电源的两端而没有负载,这样做的结果几乎等效于将电源短路。所以我们要在中间加一个电阻来限流,并且这个电阻的阻值的选取可能让二极管处于放大状态或者开关状态,所以还要调整其阻值以便工作于我们相要的状态。

单片机接三极管驱动负载一般是为了增加IO口的驱动能力,比如51单片机,它IO口高电平的驱动也才几MA,如果负载需10MA以上才能驱动,需通过三极管才行。

单片机IO口一般是和三极管的B极相接电阻,是为了限流,如果无此电阻,拉电流或灌电流过大,往往超过30MA,易击穿IO口。

单片机的IO口输出电压一般是5V,而单片机外围电路电流在20MA左右,如果你接三极管时(假设为NPN型)不用电阻基极电流会很大,而集电极电流又是基极电流的β倍,太大的电流导致这时三极管通常只会工作在饱和状态,就实现不了放大功能了。同时PN结压降为0.7V,你不接电阻怎么分压(余下的4.3V)啊,电路会产生很大热量,因为电阻不仅可以作为分压,限流用,而且可以产生热量,防止电路损坏。

答案就是限流,因为三极管基极可承受的电流是很小的。三极管做开关作用时基极与发射极之间的电压约为0.6V,单片机IO口输出一般近似VCC,直接加到三极管基极的话电流就会比较大,三极管和IO口都可能会损坏,而加了电阻后电阻就会分得Vcc-0.6V的电压,除以电阻值就是流经IO口和三极管基极的电流,电阻值的大小决定了该电流的大小,因此是限流作用。

一般三极管的电流多少合适呢?三极管作开关用时,关时IO相当悬空?开时呢?集射导通,IO也是悬空吗?
基极电流一般都是微安级别的。不过我不明白你后面“三极管作开关用时,关时IO相当悬空?开时呢?集射导通,IO也是悬空吗?”想表达什么意思。IO口除非是你设置为了高阻态或开漏输出1时呈悬空状态。
}

我要回帖

更多关于 单片机编程入门 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信