今日首要介绍一下数码管,实际上在学完发光二极管的基础上,数码管一点都不难理解,因为这二者原本便是一脉相通的。首要,咱们看一下实物图,根本人人都很了解:
它的内部结构便是由8个发光二极管组成的,仅仅要区别共阳极与共阴极,这个跟之前的二极管原理相同。当然,在摆放时要注意次序,一般都是a到h。
那么什么是动态显现与静态显现呢?看一下官方的回答。所谓静态显现,便是每一个数码管的段码都要独占具有锁存功用的输出口,CPU把要显现的字码送到输出口上,就可以使数码管显现对应的字符, 直到下一次送出别的一个字码之前,显现的内容一向不会消失;动态扫描是把一切显现器的8个段码中的A-dp的各个相同段衔接在一起,接到一个公共的输出口上,而数码管的位端别离接在别的的输出口上,经过这两个输出口的两组信号相互作用来发生显现作用。即让各位数码管依照必定次序轮番显现,只需扫描频率足够高,因为人眼的“ 视觉暂留”现象,就能接连安稳的显现。
接下来,写几个程序让它亮一下:
1、一个数码管亮
#include
sbitduan=P2^2;
sbitwei=P2^3;
voidmain()
{
wei=1;
P0=0x00;
wei=0xbf;(此条句子成果为第7位数码管亮,显现4)
duan=1;
P0=0x66;
duan=1;
while(1);
}
2、多个数码管静态显现
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitduan=P2^2;
sbitwei=P2^3;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
voiddelay(uintz);
voidmain()
{wei=1;
P0=0xea;
wei=0;
while(1)
{uintnum;
for(num=0;num<16;num )
{
duan=1;
P0=table[num];
duan=0;
delay(1000);
}
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x–)
for(y=110;y>0;y–);
}
以上便是对数码管静态显现的简略剖析,动态的稍后介绍,在数码管这块,首要处理一点,便是位锁存与段锁存,把这个理解了,剩余的便是简略地c言语编程了,其实真的不难!
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/257453.html