P10单元板显示异常

2020-01-25 15:37发布

本帖最后由 飞剑 于 2013-11-22 18:08 编辑

硬件:STCC5A60S2+P10户外单元板
问题:在被点亮的LED周围的LED也会微微有点亮。
IMG_0143.JPG (1.87 MB, 下载次数: 0) 下载附件 2013-11-22 17:33 上传
比如上面的图片,显示0000,在0的周围,有几个不该亮的LED也微微发光,请高手帮忙分析一下。
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define NOP     _nop_()

  6. sbit OE     = P1^2;
  7. sbit A1     = P1^3;
  8. sbit B1     = P1^4;
  9. sbit SHCP=P1^5;   //ÒÆλʱÖÓ
  10. sbit STCP=P1^6;   //Ëø´æʱÖÓ
  11. sbit DATA=P1^7;

  12. uchar code NUMBER[160]=
  13. {0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF, //显示0
  14. 0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,  //1
  15. 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF,  //2
  16. 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,  //3
  17. 0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF,  //4
  18. 0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,  //5
  19. 0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,  //6
  20. 0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,  //7
  21. 0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,  //8
  22. 0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF}; //9

  23. uchar table[2][32];

  24. uchar xianshi[4]={1,2,3,4};

  25. void serial_input(uchar dat)   
  26. {
  27.         uint m;
  28.         for(m=0;m<8;m++)
  29.         {
  30.                 if(dat & 0x80)
  31.                 DATA=1;
  32.                 else
  33.                 DATA=0;
  34.                 SHCP=0;        
  35.                 NOP;
  36.                 NOP;               
  37.                 SHCP=1;
  38.                 NOP;
  39.                 NOP;               
  40.                 SHCP=0;                                                                                               
  41.                 dat=dat<<1;
  42.         }
  43. }

  44. void serial_output()
  45. {
  46.         STCP=1;
  47.         NOP;
  48.         NOP;                       
  49.         STCP=0;        
  50. }  

  51. void HC138_scan(uchar temp)
  52. {
  53.         OE=1;
  54.         A1=0x01 & temp;
  55.         B1=0x01 &(temp>>1);
  56. }

  57. void display()
  58. {
  59.         uint i,j,k;
  60.         for(k=0;k<4;k++)         //ÏÔʾµÄ4ÐР       
  61.         {        
  62.         for(j=0;j<2;j++)     //ÏÔʾ3¡¢4ÁР  
  63.         {
  64.         for(i=0;i<2;i++)   //ÏÔʾ1¡¢2ÁР  
  65.         {
  66.         serial_input(table[j][3*8+2*k+i]);         
  67.         serial_input(table[j][2*8+2*k+i]);                        
  68.         serial_input(table[j][1*8+2*k+i]);               
  69.         serial_input(table[j][0*8+2*k+i]);
  70.         }
  71.         }
  72.         serial_output();
  73.         HC138_scan(k);
  74.         }
  75. }

  76. void xianshi_set()
  77. {
  78.         int abc=0,abcd;
  79.         abcd=0;
  80.         for (abc=0;abc<16;abc++)
  81.         {
  82.                 table[0][abcd]=NUMBER[abc+xianshi[0]*16];
  83.                 abcd=abcd+2;
  84.         }
  85.         abcd=1;       
  86.         for (abc=0;abc<16;abc++)
  87.         {
  88.                 table[0][abcd]=NUMBER[abc+xianshi[1]*16];
  89.                 abcd=abcd+2;
  90.         }
  91.         abcd=0;       
  92.         for (abc=0;abc<16;abc++)
  93.         {
  94.                 table[1][abcd]=NUMBER[abc+xianshi[2]*16];
  95.                 abcd=abcd+2;
  96.         }
  97.         abcd=1;       
  98.         for (abc=0;abc<16;abc++)
  99.         {
  100.                 table[1][abcd]=NUMBER[abc+xianshi[3]*16];
  101.                 abcd=abcd+2;
  102.         }
  103. }


  104. void main()
  105. {       
  106. xianshi_set();
  107. while(1)
  108. {
  109. display();  
  110. }
  111. }
复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
menglogic
1楼-- · 2020-01-25 15:51
上下有暗亮,意思就是行消影没处理好,即换行时OE的处理。
飞剑
2楼-- · 2020-01-25 19:36
本帖最后由 飞剑 于 2013-11-22 19:17 编辑
menglogic 发表于 2013-11-22 17:48
上下有暗亮,意思就是行消影没处理好,即换行时OE的处理。


请问一下,换行时,OE要怎么处理?我是让OE一直是高电平的。代码已经贴上。
饭桶
3楼-- · 2020-01-25 20:50
时序好好理解理解的
飞剑
4楼-- · 2020-01-26 02:46
 精彩回答 2  元偷偷看……

一周热门 更多>