七段式LED显示屏的使用

简介
时钟收音机,录像机,微波炉,玩具和许多其他家用物品中经常发现七段led显示屏。它们主要用于显示十进制数字,但也可以显示一些字母和其他字符。该实验描述了将七段式led显示器连接到pic16f688单片机的方法。您将创建一个从0(00h)到15(0fh)的十六进制计数器,并在七段led显示屏上显示该值。
要求的理论
七段式led显示屏是由7个led元件组成的特殊布置,在每侧使用两个垂直段,在顶部,中部和底部使用一个水平段来形成矩形。通过分别打开或关闭分段,可以显示0到9之间的数字和一些字母。有时七段显示也有第八段显示小数点。因此,一个七段显示器将需要微控制器的七个输出来显示一个数字,如果还要显示小数点,则还需要一个输出。
这些段用非大写字母标记: a,b,c,d,e,f,g和dp,其中dp是小数点。显示器内部的8个led可以配置为共阴极或共阳极配置。对于公共阴极显示器,所有分段led的阴极都绑在一起,并且该公共点必须接地。然后,通过向其阳极施加逻辑1来打开所需的led段。在公共阳极显示器中,所有阳极连接在一起,并且公共阳极连接到电源电压vcc。通过将逻辑0施加到其阴极来打开各个段。
当使用七个以上的段显示时,将使用一种多路复用技术来最大限度地减少所需的微控制器引脚数。
在此实验中,将使用lt543模型共阴极七段显示器。分段led指示灯亮起时呈红色。该模块有10个引脚,其配置如下所示。
所有阴极都连接在一起,并且公共阴极点在引脚3和8处可用。阳极通过带有限流电阻器的微控制器的i/o引脚驱动。要显示数字,需要打开和关闭适当的段led。例如,要显示数字7,仅应打开段a,b和c。
电路图
用于连接的电路图pic16f688单片机端口的共阴极七段led显示屏如下所示。微控制器的i/o引脚提供段led所需的电流。串联在微控制器pina和段led之间的限流电阻为330ω。每。段a-f通过rc0-rc5驱动,段g由ra2驱动。不使用小数点。请检查制造商的数据表以标识您的七段显示模块的段引脚。
七段显示接口电路图
电路板上的电路设置
软件
分段led通过portc和porta驱动,因此它们被定义为数字输出。这些引脚上的任何比较器功能也必须禁用。程序从0到15计数,间隔为1秒,然后再次翻转为0。计数值在七段显示器上显示为0、1、2、3、4、5、6、7、8、9,a,b,c,d,e和f。使用以下命令编译以下程序来自mikroelektronika的用于pic编译器的mikroc pro,并将hex文件加载到pic16f688微控制器中。阅读第一个实验会话, 实验1:使led闪烁 ,以了解微控制器的时钟和配置位设置。
/*
lab 6: seven segment display
copyright @ rajendra bhatt
november 13, 2010
*/
// define seven segment connections
sbit seg_a at rc0_bit;
sbit seg_b at rc1_bit;
sbit seg_c at rc2_bit;
sbit seg_d at rc3_bit;
sbit seg_e at rc4_bit;
sbit seg_f at rc5_bit;
sbit seg_g at ra0_bit;
unsigned short count=0;
void main() {
ansel = 0b00000000; //all i/o pins are configured as digital
cmcon0 = 0x07 ; // disbale comparators
trisc = 0b00000000; // portc all outputs
trisa = 0b00001000; // porta all outputs, except ra3
do {
switch (count) {
case 0 : seg_a=1; seg_b=1; seg_c=1;
seg_d=1; seg_e=1; seg_f=1; seg_g=0;
break;
case 1 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 2 : seg_a=1; seg_b=1; seg_c=0; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 3 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=0; seg_f=0; seg_g=1;
break;
case 4 : seg_a=0; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 5 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=0; seg_f=1; seg_g=1;
break;
case 6 : seg_a=1; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 7 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=0; seg_g=0;
break;
case 8 : seg_a=1; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 9 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=0; seg_f=1; seg_g=1;
break;
case 10 : seg_a=1; seg_b=1; seg_c=1; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
case 11 : seg_a=0; seg_b=0; seg_c=1; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 12 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=0;
break;
case 13 : seg_a=0; seg_b=1; seg_c=1; seg_d=1;
seg_e=1; seg_f=0; seg_g=1;
break;
case 14 : seg_a=1; seg_b=0; seg_c=0; seg_d=1;
seg_e=1; seg_f=1; seg_g=1;
break;
case 15 : seg_a=1; seg_b=0; seg_c=0; seg_d=0;
seg_e=1; seg_f=1; seg_g=1;
break;
} //case end
count ++;
if(count ==16) count =0;
delay_ms(1000); // wait for 1 sec before updating the display
} while(1); // infinite loop
}
下载十六进制文件
输出
将程序加载到微控制器后,打开电源并查看十六进制计数器的计数从0到f。


国家宽带网络提供的网速和性能未能达到承诺的指标
直线电机驱动的机器人在物流场景中扮着重要角色
海南初步建立新能源汽车动力蓄电池回收利用体系 将推动海南新能源汽车事业的发展
YouTube电视将删除FOX地区体育网络
高温氧气分析仪-OXY-Flex在高温熔炉中氧浓度检测的必要性
七段式LED显示屏的使用
6大权益5重守护 OPPO Reno 7系列服务权益发布
BMS帮助电动汽车变得更安全、更经济实惠的电动汽车
Intel与Qualcomm的自动驾驶路线对比
美印贸易战又将开打?特朗普宣布终止对印度普惠制待遇
苹果自动驾驶汽车项目最新进展,注册了额外24辆自动驾驶汽车
尼康正开发Z-Noct58mmf/0.95镜头 将带来更锐利的成像
物联网技术如何促进经济的发展
使用HSE时钟源对LSE精度进行测量
筑造行业数智化根基!深开鸿&中软国际亮相华为全联接大会2023
便携式农残快速检测仪的性能及参数
预计TWS真无线耳机全年销量增长2%,入门级需求扩大
Agilent81944A光波万用表
看美光营收与成本对比,存储器价格涨势仍在延续
电感厂家定制作用于电源模块的共模电感