数码管的动态显示与静态显示
所有数码管的段选全部连接在一起,如何 能显示不同的内容呢?动态显示是多个数 码管,交替显示,利用人的视觉暂留作用 使人看到多个数码管同时显示。
在编程时,需要输出段选和位选信号,位选 信号选中其中一个数码管,然后输出段码, 使该数码管显示所需要的内容,延时一段时 间后,再选中另一个数码管,再输出对应 的段码,高速交替。
动态显示的特点是将所有位数码管的段选线 并联在一起,由位选线控制是哪一位数码管有效。 选亮数码管采用动态扫描显示。所谓动态扫描显 示即轮流向各位数码管送出字形码和相应的位选, 利用发光管的余辉和人眼视觉暂留作用,使人的 感觉好像各位数码管同时都在显示。动态显示的 亮度比静态显示要差一些,所以在选择限流电阻 时应略小于静态显示电路中的。
例题:两位数码管动态显示0-99
void main() { unsigned char k; while(1) {
for(k=0;k<100;k++) { P3=0XFF; P2=dispcode[num%10]; P3=0XFe;
delaynms(2);
P3=0XFF; P2=dispcode[num/10]; P3=0XFd; } 东莞理工学校电子科组
6 7 8 9 AB
0xc6 , 0xa1 , 0x86 , 0x8e
CDE F
东莞理工学校电子科组
数码管常用码表
• 共阴极:
0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d , 0 12 3 4 5
0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c , 6 7 8 9 AB
例如需要显示数字“12”时,先输出位选信号, 选中第一个数码管,输出1 的段码,延时一 段时间后选中第二个数码管,输出2 的段码。 把上面的流程以一定的速度循环执行就可以 显示出“12”,由于交替的速度非常快,人眼 看到的就是连续的“12”
在动态显示程序中,各个位的延时时间长 短是非常重要的,如果延时时间长,则会出 现闪烁现象;如果延时时间太短,则会出现 显示暗且有重影。
一、数码管介绍
• 数码管是一种半导体发光器件,其基本单元 是发光二极管。
东莞理工学校电子科组
2、数码管的分类
• 数码管按段数分为七段数码管和八段数码管 ,八段数码管比七段数码管多一个发光二极 管单元(多一个小数点显示);
• 按能显示多少个“8”可分为1位、2位、4位 等等数码管;
• 按发光二极管单元连接方式分为共阳极数码 管和共阴极数码管。
uchar k; for(k=0;k<10;k++) {
P2=dispcode[k]; delaynms(1000);//延时1s }
}
东莞理工学校电子科组
数码管动态显示
在实际的单片机系统中,往往需要多位 显示。动态显示是一种最常见的多位显示方 法,应用非常广泛。
1.动态显示概念 用数码管显示信息时,由于每个数码管至 少需要8 个I/O 口,如果需要多个数码管, 则需要太多I/O 口,而单片机的I/O 口是有 限的。在实际应用中,一般采用动态显示 的方式解决此问题。
东莞理工学校电子科组
共阴极
共阳极
共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳 极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,
当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
共阴极数码管则与之相反
我们平时所看到的0-9这样的数字,通过控制不同的LED的亮灭 来显示出这些字形的。为了显示数字或字符,必须对数字或字 符进行编码。因此为LED显示器提供的编码正好是一个字节。
数码管显示方式
• 数码管有两种显示方式:静态显示、动态显 示。
• 静态显示:静态驱动是指每个数码管的每一 个段码都由一个单片机的I/O口进行驱动
• 当送入一次字形码后,显示字形可一直保持 ,直到送入新字形码为止。静态驱动的优点 是编程简单,显示亮度高,缺点是占用I/O 口多,如驱动5个数码管静态显示则需要 5×8=40根I/O口来驱动
东莞理工学校电子科组
静态显示__一位数码管显示0-9
硬件连接:数码管 的7段连接到P2口 的P2.0-P2.6,公共 端(共阳极)接高 电平(5V)。 软件设计:要显示 0-9,则将共阳极 0-9的相应码型通 过P2口输出到数码 管各段。
东莞理工学校电子科组
void main() {
uchar dispcode[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90}; //共阳极0-9码型
0x39 , 0x5e , 0x79 , 0x71 , 0x00 CDE F
东莞理工学校电子科组
单片机驱动数码管显示方法
• 通常将数码管的各段连接到单片机的8位I/O 口,如P2口,P2口的8位分别连接数码管的 abcdefg各段,通过控制P2口各位的电平, 控制数码管各段的亮灭。
东莞理工学校电子科组
delaynms(2); }
num++; if(num>99) num=0;
}
比如对于共阳极数码管,显示“0”。则abcdef各段led灯亮, 其余灭。对于共阳极,则在相应的阴极部分加低电平0即可。
东莞理工学校电子科组
数码管常用码表(段码)
• 共阳极
0xc0 , 0xf9 , 0xa4 , 0xb0 , 0x99 , 0x92 ,
0 12
345
0x82 , 0xf8 , 0x80 , 0x90 , 0x88 , 0x83 ,