网站大量收购独家精品文档,联系QQ:2885784924

数码管鬼影产生原因和消除方法.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
十进制数码管显示小模块---解决动态扫描中的消隐问题 //*=============================== //接线要求:P0口分时复用输出,P2.6,P2.7做74ls573片选 //入口参数:0000--9999范围内的二进制或十进制数 //出口参数:无 //函数功能:数码管实现小于9999数的十进制显 //by Oliver 21/03,21:59 //================================== #include AT89X52.H #define uchar unsigned char sbit WEI=P2^7; sbit DUAN=P2^6; sbit LED=P1^4; uchar wei[]={0xfe,0xfd,0xfb,0xf7}; uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(void) //误差 0us { unsigned char a,b,c; for(c=1;c0;c--) for(b=222;b0;b--) for(a=12;a0;a--); } //--------------6ms延时 void undo(void) { WEI=1; P0=0xff; WEI=0; }//使位选失效 void wei_cs(uchar a) { P0=wei[a];//=====关键之处---------------------------------------------------消隐------ WEI=1; WEI=0; } //-------------------位选--------- void duan_cs(uchar a) { P0=duan[a]; DUAN=1; DUAN=0; } //-------------------段选--------- void show(int DATA) { uchar qian,bai,shi,ge; uchar duan_flag=0; if(DATA9999) { LED=0; P0=0xfe; }//判断是否超出显示范围 else { qian=DATA/1000; bai=DATA%1000/100; shi=DATA%100/10; ge=DATA%10; //-------------各位分离 if(qian!=0) { duan_cs(qian); wei_cs(duan_flag++); } delay(); if((bai|qian)!=0) { duan_cs(bai); wei_cs(duan_flag++); } delay(); if((shi|bai|qian)!=0) { duan_cs(shi); wei_cs(duan_flag++); } delay(); if(1) { duan_cs(ge); wei_cs(duan_flag); } } } void main(void) { while(1) show(1545); } 消隐的研究:隐红的出现:1 ,段码改变时,位码未变,在位码变化之前,会在前一个位码处产生残影; 2 ,位码改变时,如先使P2^7有效,则段码在位码写入之前会在新的位码处产生残影。 消除方法:1, 段码改变之前将位码全部置成无效,此时间间隔仍能满足视觉暂留的要求; 2, 位码改变时,先将下一个位码写入P0口,再使P2^7有效,则可消除此种残影。 另外,如P0口时序要求更为严格,为保证数据安全性,可将连接图中的OC端统一接一控制引脚,使两片573同时输出使能,即可更好消除残影。 LED数码管动态扫描显示出现鬼影的解决方法之一 LED数码管显示数据通常都是采用动态扫描方式,但有时候会出现鬼影现象,所谓鬼影就是不该点亮的笔段出现余辉,通常编程的时候都会加入消除鬼影的语句,可有时也会出现莫名其妙的现象,明明已经能够正常显示的程序,将其中的扫描显示程序段移植到另一个程序中使用时却出现了鬼影现象,这说明原来那个显示正常的程序中消除鬼影的语句只适合原来那个程序,而换到另一个程序中使用时并没有达到完全消除鬼影的作用。 通常LED数码管扫描显示的语句顺序是: 。。。。。。 送段码; 送位码; 延时; 关位码; 。。。。。。 采用这样的编程方式在以前实际制作的一些电路中未出现鬼影现象,但在最近做的一个电路中却出现了鬼影现象,改变延时时间也不能消除鬼影现象。后来在这段扫描显示语句后面加了三行语句,鬼影现象彻底消除。 。。。。。。

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档