产品选型

单片机同时工作 单片机都是相通的

小编 2024-10-25 产品选型 23 0

单片机都是相通的

作为一个七年的从业者,单片机对于我个人而言它是一种可编程的器件,现在长见到的电子产品中几乎都有单片机的身影,它们是以单片机为核心,根据不同的功能需求,搭建不同的电路,从8位的单片机到32位的单片机,甚至比较高大上的ARM和DSP都可以看成是高级一点的单片机。

由于单片机是一种可编程工具,所以在一定程度上简化了设计电路的复杂程度,软件可以很轻松的完成复杂的逻辑,所以单片机在电子产品中处处可见。对于8位单片机而言,其典型的代表就是51单片机,由于51单片机资料众多,学习起来非常的方便,而且大学里也开设了51单片机的课程,所以很多初学者都把51单片机作为入门的首选。

很多同学说我在网上看到现在基本都不用51开发产品了,学会了还有意义吗?很多公司实际上已经不用51来开发产品了,它们都选用STM8、STM32、AVR、MSP430、PIC系列的单片机去设计产品,原因是上述单片机功能更为强大、片上资源更为丰富,而且价格也不是很贵。学会51单片机,再去学习STM32等功能更强大的单片机,在理解上会更加的容易,先学51是让自己对单片机有个初步的了解,同时也是寻找自己学单片机的一套逻辑方法;步子不能跨得太大,一但遇到挫折容易产生放弃的想法。

单片机是一门工具,不同的单片机基本逻辑都是相通的,学会一款型号,总结出学习的路线,那么再学习其他型号的时候你就有方法可寻,单片机基本上是一通则百通,学单片机最终的目的是做产品,以产品带动学习是一个非常不错的选择。从学习51单片机到学习STM32不会非常困难,两者不同的地方体现在单片机寄存器的配置上,下面分几个方面进行说明。

1.从外围电路层面的过度 在产品设计中,单片机往往是核心,产品的不同功能需要不同的外设电路去实现,同一外设电路不会因为单片机的更换而发生颠覆性的改动,所在外设电路这个层面上,不同平台的单片机其外设电路基本一致,只需要考虑GPIO口的复用功能即可。STM32单片机的片上资源更加丰富,使用合适的片上资源和GPIO端口甚至可以简化电路的设计。

2.从寄存器层面的过度 STM32单片机是32位的,51单片机是8位,STM32单片机片上资源丰富,功能强大,相应的其寄存器也就越多。但是同样的功能其区别不大,仅仅是寄存器的名称和配置方法不同。因为我们在51单片机对这些有过一定的了解,所以我们只要学习一下STM32单片机的寄存器和配置方法就可以了。

3.从库函数层面的过度 STM32单片机提供了库函数操作,这大大降低了编程的复杂度,官方都把片上功能和相应的寄存器都配置好了,形成了函数,用户只需要调用函数就可以实现片上功能的调用,这在51单片机是没有的。所以,从51单片机过度过来需要了解一下STM32单片机的固件库的使用方法。

所以学习51单片机还是非常有必要的,这就好比我们建房子一样,只有地基打得牢固,后面在起高楼大厦的时候才能一帆风顺。

希望以上的知识能够给大家提供帮助,这期我们先分享到这里,觉得有用的可以给华维点个赞关注一下!

想要一起学习单片机的朋友,评论”我要入门“,有惊喜,加入我们,就可以与导师一对一互动,快速成长

如何使用单片机一个IO端口分别控制两个LED?

今天在公众号“芯片之家 ”看到一篇推文, 介绍使用单片机的一个IO端口,分别控制两个发光二极管各自独立的点亮与熄灭[1] ,总共四个状态。为了控制两个LED的目的,需要应用到MCU的IO端口的四个工作状态:输出高电平、输出低电平、高阻状态以及输出连续对称方波这四种状态。

在下面的面包板上,演示了使用一条IO控制线控制l两个LED分别点亮和熄灭的四种状态。

▲ 一个个单片机IO端口分别控制两个LED

为了理解其中的工作原理,则需要熟悉LED的两个工作特性:

单向导电特性;导通阈值特性;

正如发光二极管名字所说,LED只能向二极管那样单向导电发光。如果施加电压极性反了,LED则不工作。

导通阈值特性是指,只要施加的正向电压超过一定阈值之后,LED才能够导通。这一点可以从下面这支红色LED的正向V-A特性曲线看出。

▲ 红色LED的V-A特性

上面曲线表明,只有当正向电压超过大约1.5V之后,电流才会出现快速增加。在此之前,正向导通电流很小。

不同颜色的LED由于所使用的半导体材料不同,导通阈值电压会有所区别。比如下面这支黄色LED的正向导通电压超过了1.7V。

▲ 黄色LED的V-A曲线

如果LED发射光谱中包括更短的光谱成分,则相应的导通会更高。下面的绿色和蓝色LED的正向导通电压的阈值都已经超过了2.5V了。

▲ 绿色LEDV-A特性曲线

▲ 蓝色LED的V-A曲线

将不同LED的V-A特性曲线绘制在一起,可以凸显出不同LED的阈值电压的差异。值得说明的是,当电压小于阈值电压的时候,LED并不是不导电,只是电流极小。比如在2.5V,虽然还没有超过蓝色LED的阈值电压,但在LED灯芯处还是能够隐约看到发光。

一旦电压超过阈值电压,LED正向导通电流便会迅速增加到1mA以上。之后虽然电流增加很快,但看起来,在正向导通电流2 ~ 10mA之内,LED都显示为点亮状态,亮度倒是看起来差不多。

▲ 不同颜色LED的伏安特性

合理的 应用LED的单向导电和导通阈值特性,便可以在一条单片机IO口的四种工作状态下,来控制两个LED的点亮和熄灭了。

比如利用LED管的单向导通特性,将两个LED正反向并联 在一起,分别连接在分压电阻中心和单片机的IO口上,就可以实现单个IO口控制两个LED的目标。在下图中,显示了在一个工作在5V电压下的单片机IO控制两个LED(红色,黄色)的四中状态。

▲ 两个LED正反并联连接在MCU的IO口与分压电阻中点

当IO口为高阻状态,两个LED都熄灭;当IO端口为高电平时,红色LED点亮;当IO端口为低电平的时候,黄色LED点亮;当IO输出方波信号时(通常要求频率大于100Hz),两个LED交替点亮,根据人眼色视觉暂留特性,看起来两个LED都点亮了。

下面动图显示了IO口的四种状态对应两个LED的点亮与熄灭。

▲ 对应两个LED四个状态的IO输出波形

上面的LED并联方案是利用了LED的单向导通特性。如果考虑到LED的阈值特性,这种方案就会受到一定限制。比如,控制的LED绿色或者蓝色时,由于它们的导通阈值电压超过了2.5V,因此绿色和蓝色LED就很难被点亮。

下面动图显示,绿色和蓝色LED只能发出微弱的光线。

▲ 对于两个LED四种状态的IO波形

如果当单片机和LED的供电电压为3.3V时,情况将会更加严重。比如在3.3V供电情况下,使用并联LED方案,对于红色的LED还可以勉强工作,但对于绿色和蓝色LED则无法点亮了。

▲ 对于两个LED四种状态的IO波形

在前面推文中则介绍了另外一种方案,即LED串联方案 ,可以解决蓝色和绿色LED控制问题。

下图显示了LED串联方案电路示意图:

▲ 两个LED串联控制方案

当IO端口为高阻时,由于两个LED的导通阈值电压之和大于电源电压(+5V),它们都不导通;当IO端口为低电平时;上面的绿色LED点亮;当IO端口为高电平时,下面的蓝色LED点亮;当输出高频方波信号时,两个LED都被点亮。

▲ 对应两个LED四种状态IO波形

串联LED控制模式只能应用于两个LED的电压加起来超过电路电源电压的情况。比如蓝色、绿色LED,工作在3.3V,5V电压下都是可以的。

如果将两个LED更换成红色(1.6V)和绿色(2.5V),使用串联模式,则只能应用在电源电压小于4.1V的情况下,比如3.3V的单片机电路中。如果在5V电路中,则会出现两个LED无法同时熄灭的情况。

下面就显示了一个红色,一个绿色LED工作在5V电源电压下,当IO为高阻时,它们实际上无法熄灭。

▲ 对应两个LED四种状态IO波形

在5V电压下,那么对于红色、绿色LED使用前面并联LED方案行不行呢?

通过实验会发现,也出现了问题。由于绿色LED在2.5V下无法点亮,因此并联方案也无法工作。如下图所示:

▲ 对应两个LED四种状态IO波形

那么问题来了,在5V电压下,该使用什么方案,才能够利用单片机一个IO口的四种模式,来分别控制一个绿色LED和一个红色LED的点亮和熄灭呢?就像下面这个动图里所示的那样。

▲ 对于两个LED四种状态的IO波形

如果并联LED和串联LED工作原理已经理解了,我想此时,你的脑子里已经有了答案了。如果你有了想法,就将答案写在后面的留言中吧。

相关问答

一个51 单片机 可以多(2个定时,6个计数)功能能 同时工作 吗?

可以办到。常见的时钟,时分秒,就是三个不同的计时器。常见的4*4键盘,就是16个开关,每个开关就可以输入一路信号,当然可以用来计数。不需要添加很多的外设,...

单片机 怎么样可以 同时 执行两个任务?程序要怎么写?把两个程序一块写就好了嘛?

什么叫“不同模块的主程序”?如果您的意思是,要在单片机内宏观上“同时”执行两个任务的程序,那么,有很多种办法。其一,道理最简单的,是将这两个任务合理...

单片机 可以 同时 进行2个不同的延时吗?

这个很好控制,用定时器来控制就可以了,可以让两个步进电机速度不同,相互工作互不干扰。这个很好控制,用定时器来控制就可以了,可以让两个步进电机速度不同,相...

请问为什么 单片机 只能 同时 运行一个程序,而电脑可以 同时 运行多个命令,原理是什么?

只能运行一个程序说明没有跑操作系统,而电脑跑了操作系统可以跑多个程序的,原理是操作系统会有时间片轮转的调度功能只能运行一个程序说明没有跑操作系统,而...

怎么实现 单片机 多个函数功能 同时 执行?

多个函数功能同时执行是不可能的。由于单片机本身的条件限制。对于你的问题可以采用如下方法解决。1.加锁存器,也就是说你把IO口状态改变后,锁存器会自动锁...

如何实现 单片机 两个数码管之间单独控制且 同时 显示?

先让你的第一个数码管显示要显示的第一个数字,其他数码管关闭;然后关闭第一个数码管显示;然后让你的第二个数码管显示要显示的第二个数字,其他数码管关闭;...

单片机 如何 同时 亮两个灯程序?

""可以通过采用并行控制或者定时轮询的方式来实现单片机同时亮两个灯。1.首先,采用并行控制的方式,可以利用单片机的多个输出引脚,分别连接两个灯。通过控制...

如何实现一块 单片机 (机器人),控制4个以上的伺服电机(单独运行)?

要实现单独的4路舵机控制的话,我建议使用具有至少4路PWM的单片机。比如AVR系列的有Atmega128,可同时产生6路12位的PWM。51系列的有STC12C5410AD带4路PWM。具体...

单片机 的两个灯如何 同时 亮?

用两个灯泡和一个单片机和一个开关的方法如下:1.把单片机一个IO口接到一个三极管(类似开关管)的控制脚(B),把开关管的输入脚接地(E),输出脚(C)接灯的...用两...

51 单片机 如何 同时 点亮2个led?

51单片机(也称为8051单片机)可以通过IO口控制LED的点亮和熄灭。要同时点亮两个LED,您可以按照以下步骤操作:1.连接LED:将两个LED连接到单片机的两个IO口上...

猜你喜欢