数码管的消影

本文针对51单片机控制数码管时出现的显示问题,如位选和段选干扰等现象,提出了一种有效的解决方法。通过在显示函数中加入特定的代码段,能够有效避免位间数据串扰,提高显示清晰度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;//同上

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值