天天看點

數位管的消影

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

}

繼續閱讀