数码管的全称是LED数码管,也就是说它的使用和“点亮LED灯”类似。我们同样需要根据二极管的方向以及电路连线来判断。根据电路连线的差异,数码管又分为共阴和共阳。

b图的左侧,是共阴数码管,这是因为输出端口的另一侧统一接地;相反的,右侧的接法就是共阳了。
如果我们需要控制它输出我们希望的数字(字母),首先我们需要判断我们使用的数码管是共阴还是共阳。其次,我们需要根据二极管的特性来确定数字(字符)对应的16进制表达式。比如,我希望用共阴的数码管输出字符C,那么我需要点亮a,f,e,d,它对应的16进制表达式就为:0011 1001(由dp往上读数);最后就是赋值了,如果控制数码管的8个io口是属于P0的,那我们就直接
P0=0x39;
如果我们使用的开发板有8个数码管,这就意味着我们需要通过3个io口来控制点亮哪一个数码管(2^3=8)。具体怎样控制,就需要你去了解你使用的开发板是哪几个io口进行控制。
到这里,我们以及基本掌握了静态数码管的使用,相对应的就是动态数码管了。所谓动态,从实现层面来说,就是我们通过for循环来不断的控制各个数码管输出不同的数值,而每次循环中,穿插十分短暂的延时函数即可。这里,我附上一部分代码帮助大家理解一下:
void display()
{
u16 j=0; //这里的u16 = unsigned int
for(j=0;j<8;j++)
{
switch(j)
{
case (0):aa=0;ab=0;ac=0;break;
case (1):aa=1;ab=0;ac=0;break;
case (2):aa=0;ab=1;ac=0;break;
case (3):aa=1;ab=1;ac=0;break;
case (4):aa=0;ab=0;ac=1;break;
case (5):aa=1;ab=0;ac=1;break;
case (6):aa=0;ab=1;ac=1;break;
case (7):aa=1;ab=1;ac=1;break;
}
P0=xianshi[j]; //控制某个数码管输出内容
delay(10); //短暂延时
P0=0X00;
}
}
看到这里,如果还有不理解的,千万要留言告诉我哦,非常感谢!
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
led
+关注
关注
244文章
24703浏览量
692371 -
二极管
+关注
关注
149文章
10449浏览量
179431 -
单片机
+关注
关注
6078文章
45569浏览量
673312 -
数码管
+关注
关注
32文章
1894浏览量
94407 -
静态数码管
+关注
关注
0文章
9浏览量
6047
发布评论请先 登录
相关推荐
热点推荐
单片机静态数码管。。新手
,0x71}void main(){LSA=0;LSB=0;LSC=0;P0=smg[0];while(1);}数码管是共阴极的,有一个138译码器,只让第一个数码管亮所以P2.2 2.3 2.4为0,然而编译就是出错。。求指教!谢谢!
发表于 12-24 16:33
51单片机:静态数码管详细教程 精选资料分享
51单片机:静态数码管详细教程一.数码管通电1.原理图单个数码管有8个小LED灯,通过点亮其中若干个可以显示0-9和部分字母,下面是原理图:
发表于 07-16 06:13
51单片机静态数码管和动态数码管原理及实验 精选资料推荐
一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”有了这两个线后,通过单片机及外部驱动电路就可以控制任意
发表于 07-21 07:47
单片机静态数码管显示
题目概述:单片机静态数码管显示。编程:#include #define uchar unsigned char#define uint unsigned intuchar str[5]={0x76
发表于 01-07 06:54
51单片机静态数码管和动态数码管原理及实验
一体中的哪一位数码管点亮,而连接在一起的段线可以控制这个能点亮数码管亮什么数字,通常我们把公共端叫做“位选线”,连接在一起的段线叫做“段选线”有了这两个线后,通过单片机及外部驱动电路就可以控制任意
发表于 11-11 14:36
•14次下载
51单片机:静态数码管详细教程
51单片机:静态数码管详细教程一.数码管通电1.原理图单个数码管有8个小LED灯,通过点亮其中若干个可以显示0-9和部分字母,下面是原理图:
发表于 11-12 10:21
•14次下载
【蓝桥杯】单片机,静态数码管显示(3)
按键控制数码管#include<stc15f2k60s2.h>void delayms(int ms); //延时函数void keyscan
发表于 12-29 19:17
•0次下载
【蓝桥杯】单片机,静态数码管显示(2)
单片机,让所有数码管同时显示1-9#include<stc15f2k60s2.h>void delayms(int ms);void main(){P2=0XA0;P0
发表于 12-29 19:20
•0次下载
【蓝桥杯】单片机,静态数码管显示
数码管0XC0——0000 0011——0;0XF9——1111 1001——1;OXA4——2; 0XB0——3; 0X99——4; 0X92——5;0X82——6; 0XF8——7
发表于 12-29 19:20
•0次下载
单片机静态数码管的使用
评论