数码管的消影

51单片机控制数码管时,出现以下问题:

1、不用的位隐约显示数据

2、不用的段隐约有亮度

3、本位显示上一位数据


 经验证,增加以下注释处代码可明显改进


void display(uchar g, uchar s)

{

    P1 = 0xff;//送位选数据前关闭所有显示,防止打开位选锁存时原来段数据通过位选锁存器造成混乱

   wela = 1;

   P1 = 0xfe;

   wela = 0;

   P1 = 0x00;//送段选数据前关闭数码管各段,防止打开段选锁存时原来位数据通过段选锁存器

   dula = 1;

   P1 = table[s];

   dula = 0;

   delay1(11);


   P1 = 0x00;//在下一位显示前给段选锁存器存入0x00,防止下一位数码

   dula = 1;//管打开段选时上一位段数据给下一位造成影响

   dula = 0;//同上


   P1 = 0xff;

   wela = 1;

   P1 = 0xfd;

   wela = 0;

   P1 = 0x00;

   dula = 1;

   P1 = table[g];

   dula = 0;

   delay1(11);


   P1 = 0x00;//在下一位显示前给段选锁存器存入0x00,防止下一位数码

   dula = 1;//管打开段选时上一位段数据给下一位造成影响

   dula = 0;//同上

}

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值