Arduino实验三十:四位串行数码管实验
目录
显示原理
内部构造
数码管是一种可以显示数字和其他信息的电子设备,可以看成是多个发光二极管的组成。数码管有多种分类方式,具体如下:
- 按照数码管的段数可分为七段数码管和八段数码管。a、b、c、d、e、f、g为七段数码管的显示段数,八段数码管比七段数码管多一个发光二极管单元(多一个小数点dp显示)。
- 按照数码管能显示多少个“8”,可分为1位、2位、3位、4位、5位、6位、7位等数码管。
- 按照数码管的发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。其中,共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管;共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。
显示原理
要使数码管显示数字需要满足两个条件:一是要在公共端加合适的电源(一般的每一段二极管还需串上合适的电阻,起限流作用,保护数码管);二是要使(a,b,c,d,e,f,g,dp)端接低电平或高电平。这样才能显示的。因此在实际应用中,共阴数码管与共阳数码管的接线方式会稍有不同,具体如下:
- 共阳数码管:将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。
- 共阴数码管:将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
真值表
驱动方式
LED数码管的驱动方式共有两种:静态驱动方式和动态显示方式. 注:位选指的是选择多位数码管中的某一位数码管;段选指的选择是一个数码管中的某一段。
1.静态驱动方式
静态驱动也称直流驱动。指的每个数码管的段选都需要连接一个8位数据线来保持显示的字形码,这8位数据线可通过单片机的I/O口进行驱动,也可使用如BCD码二-十进位转换器进行驱动。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,当使用单片机控制n位数码管显示时,需要使用的I/O口则为8*n个。故实际应用时常增加驱动器进行驱动,也因此增加了硬体电路的复杂性。
2.动态驱动方式
动态驱动是指将所有数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。例如当单片机输出字形码时,所有数码管都接收到相同的字形码,然后将需要显示的数码管的位选打开,该位数码管就可将字形显示出来,而没有选中的数码管则不会亮。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,只要扫描速度够快,就会使人的感觉好像显示的是稳定的字符,且选中的数码管都在正常显示。与静态驱动相比,动态驱动可节省大量的I/O口,而且功耗更低。但动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
产品说明
引脚说明
实验说明
实验现象
- 数码管上电,4位循环显示0-9
电路连接
主要程序
for(int i=0;i<10;i++) { shiftOut(DO,SCLK,MSBFIRST,num[i]); shiftOut(DO,SCLK,MSBFIRST,0x0F); digitalWrite(PCLK, HIGH); digitalWrite(PCLK,LOW); }