1、动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
1 #include
2 #define uint unsigned int
3 #define uchar unsigned char
4 uchar code shu[]={0x3f,0x06,0x5b,0x4f,0x66,
5 0x6d,0x7d,0x07,0x7f,0x6f};//段码值0123456789
6 uint code wei[]={0,1,2,3,4,5,6,7};//位选值01234567
7 void delay(unsigned int i) //延时函数
8 {
9 while(--i);
10 }
11 void main()
12 {
13 unsigned int j,i;
14 j=0;i=0;
15 //P2=2;
16 while(1)
17 {
18 P0=shu[j];//取段
19 for(i=0;i<8;i+=2)
20 P2=wei[i];//取位
21 delay(30000);
22 j++;
23 if(8==j) j=0;
24 }
25 }
关键字:数码管 动态扫描显示
引用地址:
lesson4 数码管动态扫描显示
推荐阅读最新更新时间:2024-11-02 16:49
51单片机之数码管显示原理
一个数码管有八段:A,B,C,D,E,F ,G,H即由八个发光二极管组成;发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管) 共阳极: 位选为高电平(即1)选中数码管, 各段选为低电平(即0接地时)选中各数码段, 共阴极: 位选为低电平(即0)选中数码管, 各段选为高电平(即1接+5V时)选中各数码段。 1位数码显示数字其实就是这8个发光二极管,哪个亮哪个不亮,从而达到显示数字的效果,亮和不亮无非就是0或1。以共阴极为例。 数码管的段依次从低到高如图中的a,b,c,d,e,f,g,h(h是小数点),如果要显示数字1,即b,
[单片机]
51单片机C编程(三、4位数码管飞入效果)
4位数码管飞入效果,PROTEUS仿真电路图如下: #include reg51.h #define uchar unsigned char #define LED P0 uchar code tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//共阳数码管数字码 uchar disp1 ={{8,10,10,10},{0,8,10,10},{5,0,8,10},{1,5,0,8},{10,1,5,0},{10,10,1,5},{10,10,10,1},{10,10,10,10}}; //数码管的8个显示状态 uchar scan;
[单片机]
单片机驱动数码管电路的制做
把七或八只发光二极管组合在一个模件上组成了个8字和小数点,用以显示数字。为了减少管脚,把各个发光管的其中同一个极接在一起作为共用点,因此就产生了共阳极和共阴极数码之说。共阳管就是把各个发光管的正极接在一起,而共阴管就刚好相反。见下图: 大部分的逻辑IC的吸收电流要强于输出电流。因此,大家都爱使用共阴极的数码管,因为可选的IC多些。很可惜,我的这组数码管是共阳的,因此公共端我打算用三级管来驱动。最常用的S9012,首先我得计划好电路方式,就采用最常用的动态扫描显示。先搭建最简电路,调试出需采用元件的参数。 先不接上图的R2和74HC244,将数码管一个段直接接地。调节R1,测得S9012基极电流为0.21mA时集电极也
[单片机]
max7219控制8段数码管 spi接口
#include iom16v.h #define uint unsigned int #define uchar unsigned char #define CS_H PORTB|=(1 4) #define CS_L PORTB&=~(1 4) void SPI_MasterInit(void) { /* 设置MOSI 和SCK 为输出,其他为输入 */ DDRB = (1 4)|(1 5)|(1 7); /* 使能SPI 主机模式,设置时钟速率为fck/16 */ SPCR = (1 SPE)|(1 MSTR)|(1 SPR1)|(1 SPR0); } void SPI_MasterTran
[单片机]
时钟+温度计的数码管显示
功能:时钟显示,温度显示,可调时间,按键发声。 说明: 1 功能选择键:按下功能选择键,时间停止,秒钟指示灯长灭,选择千位,百位,十位,个位,相对应的每位数码管的小数点亮。 2 “加”:按一下“加”按键,对应的数字会加一。 3 “减”:按一下“减”按键,对应的数字会减一。 4 继续按功能选择键到第五次,退出时间设置,秒钟指示灯闪烁,时钟继续运行。 5 初始化时间为早上6点30分,时间为24小时制。 6 其他功能:添加指示灯。正常运行时,绿色指示灯亮,当进入调整时间时,红色指示灯亮。 限于篇幅以下是部分源代码,完整版本请到http://www.51hei.com/f/shiz5.rar 去下载 #include"
[单片机]
单片机数码管显示消隐
不知道同学们是否发现了,我们的这两个数码管动态显示程序的运行效果似乎并不是那么完美,第一个小问题,大家仔细看,数码管的不应该亮的段,似乎有微微的发亮,这种现象叫做“鬼影”,这个“鬼影”严重影响了我们的视觉效果,我们该如何解决呢? 同学们在今后可能会遇到各种各样的实际问题,可能很多都是我们没有讲过的,遇到问题怎么办呢?大家要相信,你作为初学者,遇到的问题肯定不是第一个遇到的,肯定有前辈已经遇到过相同的或类似的问题,他们一般都会在网上发表各种帖子,各种讨论,所以大家遇到问题,首先就应该形成一个到网上搜索的条件反射,这个问题大家可以到网上搜:“数码管消隐”或者“数码管鬼影解决”,多找相关关键词搜索试试,会搜索也是一种能力。 大家在网上搜
[单片机]
秒计时器程序
;************************************************** ;带键盘设置的秒计时器 ;功能:倒计时的秒计时器,从59倒计到0,然后又从59开始倒计到0; ;各个键的功能 ;S1:开始运行 ;S2:停止运行 ;S3:高位加1,按一次,数码管的十位加1,从0-5循环变化 ;S4:低位加1,按一次,数码管的个位加1,从0-9循环变化 ;************************************************** KEYOK BIT 00H STARTRUN BIT 01H VALUE EQU 21H SETVAL EQU 22H ;设置值 COUNTER EQU 23
[单片机]
51单片机控制8位LED数码管做9999累加的程序
采用stc89c52单片机芯片,四位数码管的接法:P1位选 P0段选 程序: #include reg51.h void delay(unsigned int d); char t; unsigned char code duan = {0x3f,0x06, 0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned char code wei ={0xfe,0xfd,0xfb ,0xf7,0xef,0xdF,0xbF,0x7F}; main() { unsigned int f=1 ,n=0; unsigned char i,out ;
[单片机]