数码管无关位置会微微亮,是排线干扰引起的吗?

2019-12-20 21:41发布

本帖最后由 金 {MOD}大元宝 于 2018-3-17 13:43 编辑

数码管无关位置会微微亮,是排线干扰引起的吗?

HC595_New.png (20.01 KB, 下载次数: 0) 下载附件 2018-3-17 13:42 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
42条回答
金色大元宝
2019-12-23 15:15
main.c

  1. while (1)
  2. {         
  3.         bsp_Lcd_HC595_Display();
  4.       
  5. }
复制代码


bsp_lcd_hc595.c

  1. /*------------------------------------------------
  2. 发送字节程序
  3. ------------------------------------------------*/
  4. void SendByte(Uint8 dat)
  5. {   
  6.     Uint8 i;
  7.    
  8.     for(i=0;i<8;i++)
  9.     {
  10.         LCD_HC595_CLK_LOW();
  11.         if (dat&0x80)
  12.         {
  13.             LCD_HC595_SER_HIGH();
  14.         }else{
  15.             LCD_HC595_SER_LOW();
  16.         }
  17.         dat<<=1;
  18.         LCD_HC595_CLK_HIGH();
  19.     }
  20.    
  21. }

  22. /*------------------------------------------------
  23. 发送双字节程序
  24. 595级联,n个595,就需要发送n字节后锁存
  25. ------------------------------------------------*/
  26. void Send2Byte(Uint8 dat1,Uint8 dat2)
  27. {   
  28.     SendByte(dat1);
  29.     SendByte(dat2);      
  30. }

  31. /*------------------------------------------------
  32. 595锁存程序
  33. 595级联发送数据后,锁存有效
  34. ------------------------------------------------*/
  35. void Out595(void)
  36. {
  37.     LCD_HC595_ST_HIGH();   
  38.     bsp_DelayUS(20); //_nop_();
  39.     LCD_HC595_ST_LOW();
  40. }

  41. void bsp_Lcd_HC595_Display(void)
  42. {

  43.         Send2Byte(WeiMa[3],0x00);
  44.         Out595();
  45.         Send2Byte(WeiMa[2],0x00);
  46.         Out595();
  47.         Send2Byte(WeiMa[1],DuanMa[0]);  //O
  48.         Out595();
  49.         Send2Byte(WeiMa[0],DuanMa[22]); //N
  50.         Out595();
  51. }
复制代码


只是简单的显示  ON 字样。

一周热门 更多>