第11集
一、数码管作业原理
数码管显现亮度高,呼应速度快,能够在一些比较差的环境中运用。有1位、2位、4位、8位连体等。。。也有专用于显现时刻的数码管。
如图,一位数码管由8个二极管构成,7个构成“日”字型,1个是小圆点。分共阴和共阳。共阴:一切二极管的负极衔接在一起,接到电源负极。共阳:一切二极管的正极衔接在一起,接到电源正极。(图(a)引脚画错了。)
驱动的原理都很简略,如共阳型数码管的驱动。图(b)右边的电路图能够看出,一切的二极管正极都接在电源正极,a、b、c、d、e、f、g、dp都接在单片机的IO口上,在《51单片机温习笔记1》:http://www.51hei.com/mcu/2111.html中介绍过驱动二极管的原理,所以这儿只需求在相应的二极管负极给低电平即可让相应的二极管发光。
这儿弥补一下,为什么给高电平二极管就不亮,给低电平就亮呢。因为单片机是TTL电平,也便是说高电平即输出5V,低电平就不输出电压0V,二极管的正极接在电源的正极那便是5V,那么二极管的负极假设也给高电平的话,那么就相当于在二极管的负极也接到了5V,二极管两头都是5V没有电势差,就相当于没有通电相同,天然不会发光。给低电平即0V,那么二极管就有一个5V的电势差且是正向偏置,二极管天然就发光了,共阴型恰好相反。
看下图(设共阳型),假设咱们要让数码管显现‘1’,那么只需求给b、c段的二极管低电平,其他为高电平即可让数码管显现‘1’。假设咱们要让数码管显现‘2’,那么只给a、b、g、e、d低电平即可让数码管显现‘2’。要显现什么,只给相应的发光二极管低电平即可。
那么在实践编程中应该怎样写程序呢。
咱们将a、b、c、d、e、f、g、dp八个引脚接到单片机的P1口,P1^0←a、P1^1←b…..P1^7←dp。画红框的是低四位。那么假设要显现2。
P1^0=a=0、P1^1=b=0、P1^6=g=0、P1^4=e=0、P1^3=d=0
剩下的为1那么便是:10100100=0xA4
程序代码中将0xA4赋值给P1即可,如P1=0xA4;看图。
因为数码管需求占用单片机的IO口许多,所以一般会调配74HC573芯片来扩展IO口。《51单片机温习笔记1》有介绍该芯片的运用方法。驱动原理相同。
数码管显现方法有两种:
静态显现:其实和上面相同,如P1=0xA4;那么P1一向坚持0xA4那么数码管的每一段二极管的状况都会坚持字形不变。变化P1的电平状况才会改动新字形。长处是占用CPU时刻少。缺陷是占用IO口多硬件规划杂乱,特别是操控多位数码管时尤为占用IO口,本钱较高。
动态显现:动态其实便是使用发光二极管的余晖和人眼视觉暂留效果。操控多位数码管时,将一切数码管的段选并联在一起,由位选线操控是哪位数码管承受段选编码。如下图相同。
例如:
P0组是并联一切数码管的段选。P2^6、P2^7挑选哪位数码管。我要显现520,那么首要选中榜首位数码管,然后送数字5的段编码操控段选的P0口。
然后再选中第二位数码管,再送数字2的段选编码给P0,这时候榜首位数码管尽管断电,可是二极管并没有瞬间平息,所以还有余晖坚持字形。
持续再选中第三位数码管送数字0的段选编码给P0,这时候榜首、第二位数码管尽管都断电,但因为切换速度太快,余晖仍没有彻底平息就形成三位数码管一起显现不同的数字字型的假象。