我的数码管一个都不亮(Arduino 让数码管显示数字)
Posted
篇首语:当你毫无保留地信任一个人,最终只会有这两种结果,不是生命中的那个人,就是生命中的一堂课。本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的数码管一个都不亮(Arduino 让数码管显示数字)相关的知识,希望对你有一定的参考价值。
我的数码管一个都不亮(Arduino 让数码管显示数字)
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。本实验用的是共阴极的数码管,共阴数码管在应用时应将公共极接到GND,当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。当某一字段的阳极为高电平时,相应字段就点亮。介绍完原理,
我们开始准备实验用元器件。
八段共阴极的数码管*1、220Ω直插电阻*8、面包板*1、面包板跳线*1扎。
我们参考实物连接图按原理图连接好电路。
数码管共有七段显示数字的段,还有一个显示小数点的段。当让数码管显示数字时,只要将相应的段点亮即可。例如:让数码管显示数字1,则将b、c 段点亮即可。将每个数字写成一个子程序。在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。
参考程序源代码:
int a=7;//定义数字接口7 连接a 段数码管int b=6;// 定义数字接口6 连接b 段数码管int c=5;// 定义数字接口5 连接c 段数码管int d=11;// 定义数字接口11 连接d 段数码管int e=10;// 定义数字接口10 连接e 段数码管int f=8;// 定义数字接口8 连接f 段数码管int g=9;// 定义数字接口9 连接g 段数码管int dp=4;// 定义数字接口4 连接dp 段数码管void digital_1(void) //显示数字1unsigned char j;digitalWrite(c,HIGH);//给数字接口5 引脚高电平,点亮c 段digitalWrite(b,HIGH);//点亮b 段for(j=7;j<=11;j++)//熄灭其余段digitalWrite(j,LOW);digitalWrite(dp,LOW);//熄灭小数点DP 段void digital_2(void) //显示数字2unsigned char j;digitalWrite(b,HIGH);digitalWrite(a,HIGH);for(j=9;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(c,LOW);digitalWrite(f,LOW);void digital_3(void) //显示数字3unsigned char j;digitalWrite(g,HIGH);digitalWrite(d,HIGH);for(j=5;j<=7;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(f,LOW);digitalWrite(e,LOW);void digital_4(void) //显示数字4digitalWrite(c,HIGH);digitalWrite(b,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(dp,LOW);digitalWrite(a,LOW);digitalWrite(e,LOW);digitalWrite(d,LOW);void digital_5(void) //显示数字5unsigned char j;for(j=7;j<=9;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(d,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);digitalWrite(e,LOW);void digital_6(void) //显示数字6unsigned char j;for(j=7;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);void digital_7(void) //显示数字7unsigned char j;for(j=5;j<=7;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);for(j=8;j<=11;j++)digitalWrite(j,LOW);void digital_8(void) //显示数字8unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);void setup()int i;//定义变量for(i=4;i<=11;i++)pinMode(i,OUTPUT);//设置4~11 引脚为输出模式void loop()while(1)digital_1();//显示数字1delay(2000);//延时2sdigital_2();//显示数字2delay(1000); //延时1sdigital_3();//显示数字3delay(1000); //延时1sdigital_4();//显示数字4delay(1000); //延时1sdigital_5();//显示数字5delay(1000); //延时1sdigital_6();//显示数字6delay(1000); //延时1sdigital_7();//显示数字7delay(1000); //延时1sdigital_8();//显示数字8delay(1000); //延时1s
在setup()前面定义了一系列的数字显示子程序,这些子程序的定义可以方便在
loop()中使用,使用时只需将子程序的名写上即可。
显示1-9-0-.
如下:
int a=7;//定义数字接口7 连接a 段数码管int b=6;// 定义数字接口6 连接b 段数码管int c=5;// 定义数字接口5 连接c 段数码管int d=11;// 定义数字接口11 连接d 段数码管int e=10;// 定义数字接口10 连接e 段数码管int f=8;// 定义数字接口8 连接f 段数码管int g=9;// 定义数字接口9 连接g 段数码管int dp=4;// 定义数字接口4 连接dp 段数码管void digital_1(void) //显示数字1unsigned char j;digitalWrite(c,HIGH);//给数字接口5 引脚高电平,点亮c 段digitalWrite(b,HIGH);//点亮b 段for(j=7;j<=11;j++)//熄灭其余段digitalWrite(j,LOW);digitalWrite(dp,LOW);//熄灭小数点DP 段void digital_2(void) //显示数字2unsigned char j;digitalWrite(b,HIGH);digitalWrite(a,HIGH);for(j=9;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(c,LOW);digitalWrite(f,LOW);void digital_3(void) //显示数字3unsigned char j;digitalWrite(g,HIGH);digitalWrite(d,HIGH);for(j=5;j<=7;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);digitalWrite(f,LOW);digitalWrite(e,LOW);void digital_4(void) //显示数字4digitalWrite(c,HIGH);digitalWrite(b,HIGH);digitalWrite(f,HIGH);digitalWrite(g,HIGH);digitalWrite(dp,LOW);digitalWrite(a,LOW);digitalWrite(e,LOW);digitalWrite(d,LOW);void digital_5(void) //显示数字5unsigned char j;for(j=7;j<=9;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(d,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);digitalWrite(e,LOW);void digital_6(void) //显示数字6unsigned char j;for(j=7;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(c,HIGH);digitalWrite(dp,LOW);digitalWrite(b,LOW);void digital_7(void) //显示数字7unsigned char j;for(j=5;j<=7;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);for(j=8;j<=11;j++)digitalWrite(j,LOW);void digital_8(void) //显示数字8unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(dp,LOW);void digital_9(void) //显示数字9unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(e,LOW);digitalWrite(dp,LOW);void digital_0(void) //显示数字0unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,HIGH);digitalWrite(g,LOW);digitalWrite(dp,LOW);void digital_00(void) //显示数字.unsigned char j;for(j=5;j<=11;j++)digitalWrite(j,LOW);digitalWrite(dp,HIGH);void setup()int i;//定义变量for(i=4;i<=11;i++)pinMode(i,OUTPUT);//设置4~11 引脚为输出模式void loop()while(1)digital_1();//显示数字1delay(2000);//延时2sdigital_2();//显示数字2delay(1000); //延时1sdigital_3();//显示数字3delay(1000); //延时1sdigital_4();//显示数字4delay(1000); //延时1sdigital_5();//显示数字5delay(1000); //延时1sdigital_6();//显示数字6delay(1000); //延时1sdigital_7();//显示数字7delay(1000); //延时1sdigital_8();//显示数字8delay(1000); //延时1sdigital_9();//显示数字9delay(1000); //延时1sdigital_0();//显示数字0delay(1000); //延时1sdigital_00();//显示数字.delay(1000); //延时1s
相关参考
时控开关工作灯不亮(80%的人出错了 你的数码相机用对了吗?)
...一一解惑。先对焦还是先构图?我们摄影的时候,很多人都不知道应该先对焦还是先构图。在以前,比如单反相机时代,相机的对焦
...新品故障维修代码表(定速/变频,挂机/柜机全适用)1、数码管、液晶显示方式:2、变频空调检测仪故障代码表3、变频室外售后通用板拨码开关选择对照表1)无源分体室外通用电控盒(编码:2033372SH002)拨码开关选择对照表2)...
数码管某一部分不亮(海尔喷雾手搓式全自动洗衣机不通电检修分享)
...式全自动洗衣机,插上电源,按下电源开/关键,洗衣机数码管和指示灯均不亮,不通电。分析检修:拆机检查。拆开上盖,将电源板显示板的固定螺栓拧下,然后将洗衣机接上。电控板上插座CN1(棕色线和浅蓝色线)为220V电压输...
数码管 一半亮 一边不亮(明基 E582 投影仪体验:打破创作的「第四堵墙」)
本文作者为体验师@杜斯,首发于糖纸众测。投影仪在大多数人的印象里只是一个内容浏览设备,但是随着越来越多的细分市场被各大投影仪厂商开拓和探索,投影仪逐渐变成了一种可以互动的设备,甚至它们成为了许多创作者...
海尔滚筒洗衣机维修(海尔喷雾手搓式全自动洗衣机不通电检修分享)
...式全自动洗衣机,插上电源,按下电源开/关键,洗衣机数码管和指示灯均不亮,不通电。分析检修:拆机检查。拆开上盖,将电源板显示板的固定螺栓拧下,然后将洗衣机接上。电控板上插座CN1(棕色线和浅蓝色线)为220V电压输...
海尔滚筒洗衣机维修(海尔喷雾手搓式全自动洗衣机不通电检修分享)
...式全自动洗衣机,插上电源,按下电源开/关键,洗衣机数码管和指示灯均不亮,不通电。分析检修:拆机检查。拆开上盖,将电源板显示板的固定螺栓拧下,然后将洗衣机接上。电控板上插座CN1(棕色线和浅蓝色线)为220V电压输...
数码管位驱动(筋膜枪语音芯片,可驱动4位数码管显示的语音IC,WT2003H)
...有语音操作导航提示,让用户在操作上更加简单,再加入数码管显示功能,不仅能让产品与用户语音交互,还能更直观的在视觉上了解当前的工作状态;深圳唯创知音研发了一款,单芯片可以驱动4位数码管显示+350秒语音播放的...
液晶电视背光亮屏不亮(在双 11 之前,我从 10 名编辑那里问到了 10 款数码好物)
最近的我,晚上总是翻来覆去睡不着,一拿起手机,手指就不由自主的打开淘宝:双十一越来越近,我就是想买点什么。不过,想买归想买,但「好用」是剁手的前提。在跑遍整个编辑部后,我终于整理好了一份来自爱范儿编辑...
液晶电视背光亮屏不亮(在双 11 之前,我从 10 名编辑那里问到了 10 款数码好物)
最近的我,晚上总是翻来覆去睡不着,一拿起手机,手指就不由自主的打开淘宝:双十一越来越近,我就是想买点什么。不过,想买归想买,但「好用」是剁手的前提。在跑遍整个编辑部后,我终于整理好了一份来自爱范儿编辑...
数码管显示实验实验结果分析(数码管内部构造是什么样的,怎么检测数码管好坏?)
提到“数码管”我想大家对这个名字应该不会感到陌生吧,他是一种可以显示数字和其他信息的电子设备。外形如下,用的比较多的就是显示一下数字,使用方法也很简单,让人感觉不太好的就是管脚太多了,直接手动控制肯定...