zoukankan      html  css  js  c++  java
  • 多位数码管动态显示中的虚影消除

    最近刚做好一个站,基于rails 3,教程为主,大家捧场看看,谢谢!www.yo945.com

    书买的郭天祥的《51单片机C语言教程——入门、提高、开发、拓展全攻略》,看了60来页,书是不错,可是书中用的是他自己弄的板子,得卖近400,我买的100来块,功能一点不比他的少,BS一下~

    由于书上的代码和自己的板子不兼容,所以得自己改了,不过也好,更锻炼人~

    在学习动态显示时,发现有一个问题,数字是正常显示了,但是好几个数字上面,某些不应该亮的地方,有一些微微亮,导致数字显示不是很清楚,代码如下(说明:数码管可以显示8个数字,共阳,P3用于选择亮哪一个,P0用于输出数字):

    #include <reg52.h>
    	
    #define uchar unsigned char
    
    //随手抄来的,虽然我只显示0-7
    uchar code table[] = {
    	0xC0,0xF9,0xA4,0xB0,
    	0x99,0x92,0x82,0xf8,
    	0x80,0x90,0x88,0x83,
    	0xC6,0xA1,0x86,0x8E
    };
    
    uchar i;
    void main()
    {		  
    	P3 = 0xFF; 
    	P0 = 0xFF; 
    	while(1)
    	{		  
    		for(i=0;i<8;i++)
    		{ 
    			//共阳,P3用于选择亮哪一个,P0用于输出数字,不同开发板不一样
    			P3 = 0xFF & (~( 1 << (i%8) ));//选择使用哪一个数码管
    			P0 = table[i];//数码管代码
    		}
    	}
    }

    后来仔细看了代码,才发现书上有延时的代码,也就是设置完成后,延时1到2毫秒,本来以为没什么用,没想到 一加上,效果立杆见影啊,修改后如下:

    #include <reg52.h>
    	
    #define uchar unsigned char
    
    void delay1ms()
    {
    	uchar j;
    	for(j=110;j>0;j--)
    		;
    }		
    
    //随手抄来的,虽然我只显示0-7
    uchar code table[] = {
    	0xC0,0xF9,0xA4,0xB0,
    	0x99,0x92,0x82,0xf8,
    	0x80,0x90,0x88,0x83,
    	0xC6,0xA1,0x86,0x8E
    };
    
    uchar i;
    void main()
    {		  
    	P3 = 0xFF; 
    	P0 = 0xFF; 
    	while(1)
    	{		  
    		for(i=0;i<8;i++)
    		{ 
    			//共阳,P3用于选择亮哪一个,P0用于输出数字,不同开发板不一样
    			P3 = 0xFF & (~( 1 << (i%8) ));//选择使用哪一个数码管
    			P0 = table[i];//数码管代码
    			
    			/************加上延时后,数码管马上变清晰了**************/
    			delay1ms();
    			delay1ms();//试了下,2毫秒效果比较好
    		}
    	}
    }

  • 相关阅读:
    洛谷P4315 月下“毛景树”(边权维护)
    Water Tree CodeForces
    P3384 【模板】树链剖分
    Codeforces 161D Distance in Tree(树的点分治)
    git命令及使用方法
    vue下拉刷新,下拉加载更多
    Vue中 v-for 生成样式并默认选中第一个样式
    js面向对象实现分页版轮播图
    js面向对象实现购物车
    js面向对象实现放大镜
  • 原文地址:https://www.cnblogs.com/varlxj/p/1646289.html
Copyright © 2011-2022 走看看