数码管多少位不闪烁,请问用单片机键盘做输入端控制数码管时怎样才不会让数码管有闪
来源:整理 编辑:亚灵电子网 2024-03-27 23:29:00
本文目录一览
1,请问用单片机键盘做输入端控制数码管时怎样才不会让数码管有闪
display()没问题,但是键盘扫描的时候和消抖都是要花时间的,要综合起来考虑问题,动态扫描最好用定时中断方式
2,51单片机二段数码管如何显示数字并且不闪烁
你是想小于10时,只显示个位,十位是灭的,只有超过9时,才显示十位吗?显示时,就不用再检查按键了,if(num>=10)//while(k1==1);//删掉这行P2=0xfe; //这行和下行交换一下P0=Dsy_Code[num/10];下图是仿真的结果,可以正常显示了。但是,在按键的时候,个位会闪一下,这是因为按键后有等待按键的语句if(k1==0)while(k1==0); //因为这行,会闪一下,这是正常的num++;

3,多位数码管怎么让它动态扫描不闪烁并且公共端大串电阻怎么让它显
我写过点亮8位的,一点也不闪烁。你把延时调短点就行了。全部位扫描下来,时间控制在100毫秒以下就行了。人眼反应是0.1秒。数码管8位共用一个公共端,LED的压降是固定的,总电压减去LED压降,就是电阻上的电压,公共端上的电流等于电阻上的电压除以电阻阻值。
4,多位数码管怎么让它动态扫描不闪烁并且公共端大串电阻怎么让它显示两
我写过点亮8位的,一点也不闪烁。你把延时调短点就行了。全部位扫描下来,时间控制在100毫秒以下就行了。人眼反应是0.1秒。数码管8位共用一个公共端,LED的压降是固定的,总电压减去LED压降,就是电阻上的电压,公共端上的电流等于电阻上的电压除以电阻阻值。可以得出,不过点亮多少段,流过公共端的电流基本上是固定的。当然,分到一段上和分到8段上不一样了。你尽量把串的电阻值减小试试吧。再就是,可以增加显示段数多时的扫描时间。你说别人也写过,我不赞同,把电阻接在公共端上我也做过,就是为了调试方便,正常情况下,只点亮一段和同时点亮8段,公共端上的电流相差太大了。
5,数码管动态扫描的延时时间设为多少人眼才不会感觉到闪烁具体的延
人眼的视觉暂留时间大概在二十四分之一秒左右(所以一般电视电影至少是24帧以上,才会看起来是连续的动作),延时的时间设置小于40ms即可。延时太短会加重cpu的负担,所以具体数值要自己权衡。写延时函数有两个方法:1.如果有用到实时操作系统(RTOS),可以用OS的API,比如: sleep(20)2.没有用RTOS时,一般用循环语句来实现延时。具体循环次数需要通过系统的主频来计算。代码例子(循环次数 100x500 = 50000次,延时时间=单次循环的时间 x 50000):int i = 0, j = 0;for(i = 0; i < 100; i++) for(j = 0; j < 500; j++) ; }}你好!每位显示的间隔不超过20 ms希望对你有所帮助,望采纳。
6,数码管显示方式及特点
数码管的显示方式有两种:静态显示和动态显示。1.静态显示方式。所谓静态显示就是指无论是多少位数码管,同时处于显示状态。 当单片机系统中使用静态数码管显示时,需要在每一个数码管上添加一个锁存器,当需要某个数码管显示其他内容时,只需要修改与其相连的锁存器的值即可。 当数码管处于静态显示方式时,所有位选线(数码管的公共端)连接在一起,而各个数码管的段选线(数码管上各笔段的引出线)是相互分离的。静态显示的优点是:数码管显示无闪烁,亮度高,软件控制比较容易;缺点是:需要的硬件电路较多(每一个数码管都需要一个锁存器),如果在全国大学生电子设计竞赛中使用,将造成很大的不便,同时由于所有数码管都处于被点亮状态,所以需要的电流很大,当数码管的数量增多时,对电源的要求也就随之增高。所以,在大部分的硬件电路设计中,很少采用静态显示方式。2.动态显示方式。所谓动态显示,是指无论在任何时刻只有一个数码管处于显示状态,每个数码管轮流显示。 当数码管处于动态显示时,所有位选线分离,而每个数码管的各条段选线相连。当需要显示数字或字符时,需要将所有数码管轮流点亮,这时对每个数码管的点亮周期有了一个较严格的要求:由于发光体从通入电流开始点亮到完全发光需要一定的时间,叫做响应时间,这个时间对于不同的发光材质是不同的,通常情况下为几百微秒,所以数码管的刷新周期(所有数码管被轮流点亮一次的时间)不要过短,这也与数码管的数量有关,一般的数码管的刷新周期应控制在5ms~10ms,即刷新率为200Hz~100Hz,这样既保证了数码管每一次刷新都被完全点亮,同时又不会产生闪烁现象。动态显示的优点是:硬件电路简单(数码管越多,这个优势越明显),由于每个时刻只有一个数码管被点亮,所以所有数码管消耗的电流较小;缺点是:数码管亮度不如静态显示时的亮度高,例如有8个数码管,以1秒为单位,每个数码管点亮的时间只有1/8秒,所以亮度较低;如果刷新率较低,会出现闪烁现象;如果数码管直接与单片机连接,软件控制上会比较麻烦等。在应用数码管进行显示时,首先需要考虑的问题就是驱动电流,与发光二极管相同,数码管的发光段也需要串联限流电阻,以共阳极数码管为例,串联的限流电阻阻值越大,电流越小,亮度越低;电阻值越小,电流越大,亮度越高。在使用限流电阻时需要在每一个段线上都串联限流电阻,而不要在公共端上串联电阻,如果只在公共端上串联一个限流电阻,则在显示不同的数字时,将会造成数码管亮度的不同。 由于在动态显示时,每个数码管的段选线是对应连接在一起的,同时由于数码管不存在同时点亮状态,所以之需要在段选线的引出端上串联限流电阻即可, 1.静态显示驱动电路。数码管的静态显示虽然硬件电路较多,但与单片机之间的连接比较简单,例如可以使用串行转并行芯片74LS164作为数码管的驱动,74LS164之需要与单片机的串行接口相连接即可, 2.在动态显示时,如果将数码管直接与单片机连接,除了硬件电路简单外,似乎并没有太多的优点。但是当我们选用专用的数码管显示驱动芯片时,其优点就显现出来了。目前常见的数码管显示芯片有8279、MAX7219、HD7279、CH451等。这些芯片的主要特点是:数码管的显示全都采用动态扫描的方式,都可以连接8个数码管,控制方式都比较简单。现面对这几个芯片进行简单的介绍。8279为Intel公司生产的较早期的产品,是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8×8=64ByteRAM,键盘控制部分可控制8×8=64个按键或8×8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM容量为16×8,即显示器最大配置可达16位LED数码显示(有关键盘部分内容将在2.4节中详细介绍)。8279与单片机之间采用三总线(数据总线、地址总线和控制总线)结构连接,在用8279与数码管连接时,还需要连接驱动器,同时由于价格较高,所以现在使用的很少。
7,51单片机如何让2位数码管闪烁
“想让他最后3秒闪烁”,我猜应该是像倒计时到快结束时的警报那样的闪烁吧?这需要再添加一个计时变量。比如总共有10秒,想让它在最后3秒闪烁,可以这样:在定时器中断(比如100ms一次) 里令一个计时变量(假设叫T)加1——加到10就是1秒,加到70就是第7秒。在进行数码管驱动的时候判断这个变量T,如果大于70再执行闪烁,小于70则不闪烁。1,你的数组里面的数有问题, xx[1]=z/10000; xx[2]=z%10000/1000; xx[3]=z%1000/100; xx[4]=z%100/10; xx[5]=z%10; 2,全部显示0,也可能是你的段位送的顺序有误,如果是锁存器的话,应该先送位,再送段,你试下,看能不能正常显示。3,数码管的显示,必须的一位一位的来,你想想数码管是动态扫描,不一位一位的送肯定不能正常显示地的。希望能帮到你。
8,在调整8位数码管秒表中怎么使调整部分闪烁其他部分不闪烁
参考:http://hi.baidu.com/do_sermon/item/e799050b28e6b03df3eafc84哎,郁闷,居然有这种问题!可能性太多了1: 动态扫描驱动的时候,时间调整的不对,时间太短,就会闪烁,时间太长,就会出玩不应该亮的位微亮,所以,这是调整延时时间的事2:有可能是程序要求这样闪烁吧,别说不可能,有时候在某些系统中,还故意设有这种功能。3:即使用专用芯片,只要是扫描式的驱动,他也会闪烁,只是我们看起来不太明显。4:如果从程序中讲的话,即使扫描时间合理,也有可能会因为程序的不合理性而出现闪动,这种情况一般为两种失误:a中断时间影响了扫描周期的时间,即中断时间长于扫描周期,就会出现闪烁 b闪烁的常用数据内存被快速更改后又改过来,属于寄存器的重复使用,这两种情况我都碰到过。5:如果还让假设的话,可能的原因还很多。我说这么多,就是想说,提问题的时候,要让我们知道该怎么下手
9,51单片机二段数码管如何显示数字并且不闪烁
1楼你为什么说静态显示方法不行1事情没有绝对,可以加芯片来实现,有38译码器3个1,0口就可以译码出8个10口优点是速度快不像动态扫描那样占用时间长,缺点是成本高1 楼主可以用静态显示,但是不加芯片的话51只有32个IO口只能驱动3只数码管, 你的这个要求很简单的!不要检测按键是否抬起即可,但为了防止连续加得太快,所以程序里还是要加延时,这样造成数码管显示闪烁,且这个延时和闪烁是一个矛盾if(key==0)delay_ms(20);//加大延时,连续加的速度降低,但数码管可能闪烁//如果减小延时,数码管不闪烁,但数字变化太快,人眼根本无法分辨if(key==0)num++;}}display(num);当然也好可以将延时函数换成显示函数,即显示又延时,配合好的话可以两者兼顾f(key==0)display(num);if(key==0)num++;}}display(num);display(num);
10,单片机如何让数码管每一位单独闪烁
什么叫单独闪烁?是每一位显示不同的东西还是只显示一位?如果是显示不同的东西就是用循环依次选择每一位 然后送数据之后选择下一位 送数据 这样循环如果是只显示一位是只选择一位就可以了例如是51系列的单片机的话,由于是八位的,每个I/O口对应着八位数据,如P0 对应着 0xFF。如果LED灯是I/O口高电平亮,P0口每个管教上面接有一个LED灯,那么想让哪个灯亮就让哪个管脚的电平赋值为1.例如,我想让P0.2 P0.4 P0.7管脚上面的灯亮,那么P0=10010100H=0x94!希望能够帮助到你ORG 00HSTART:MOV DPTR,#TABLEMOV R0,#0LOOP:MOV A,R0MOVC A,@A+DPTRMOV P0,AACALL DLY1SINC R0CJNE R0,#10,LOOPJMP STARTDLY1S:MOV R5,#50D1:MOV R6,#100D2:MOV R7,#100DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETTABLE:DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND;这个是数码管显示的汇编程序,希望对你有所帮助。“想让他最后3秒闪烁”,我猜应该是像倒计时到快结束时的警报那样的闪烁吧?这需要再添加一个计时变量。比如总共有10秒,想让它在最后3秒闪烁,可以这样:在定时器中断(比如100ms一次) 里令一个计时变量(假设叫t)加1——加到10就是1秒,加到70就是第7秒。在进行数码管驱动的时候判断这个变量t,如果大于70再执行闪烁,小于70则不闪烁。
文章TAG:
数码管多少位不闪烁数码 数码管 多少
相关文章推荐
- BA6208是什么芯片,BA6247是什么芯片?
- 松下npm贴片机多少钱,买松下贴片机多少钱
- A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样
- 03db是多少,30wt等于多少
- 占空比多少有意义,占空比控制有什么优点
- 电路正负极颠倒危害,锂电池正负极接反
- 电路图中网孔,电路中网格的概念
- 电路板的硬件调试,简述硬件电路的设计流程
- 安桥818音箱设置多少,安桥818音频输入如何设置
- mos管电压等级,关于mos管的导通电压
- 正负极交换芯片,芯片的正负极
- 消除反电动势电压,反电动势消除电路
- 57AY161是什么芯片,A5657N是什么芯片?
- 安全芯片应用原理,什么是安全芯片?
- hx48电路图,xh-m401电路图