找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1103|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)萌新一枚,在調(diào)試雙色點(diǎn)陣的時(shí)候發(fā)現(xiàn)問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
目前的狀態(tài)就是:
1.只能確定顯示在哪一行,但是顯示在哪一行給的數(shù)據(jù)無(wú)論多少那行都會(huì)全部點(diǎn)亮
2.想要顯示圖形的時(shí)候,點(diǎn)陣會(huì)全部點(diǎn)亮

單片機(jī)源程序如下:

  1. #include<reg52.h>   
  2. #include <intrins.h>

  3. unsigned char  Line[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //8行,一到八行
  4. unsigned char code tab[]={0x83,0x43,0x24,0x18,0x18,0x24,0x43,0x83};


  5. /*------------------------------------------------
  6.                 硬件端口定義
  7. ------------------------------------------------*/

  8. /*sbit LATCH = P1^0; //RCLK
  9. sbit SRCLK = P1^1;
  10. sbit SER  = P1^2;


  11. sbit LATCH_B = P2^2;//RCLK
  12. sbit SRCLK_B = P2^1;
  13. sbit SER_B = P2^0;*/


  14. sbit LATCH = P1^3; //RCLK,鎖存端
  15. sbit SRCLK = P1^4;
  16. sbit SER  = P1^5;


  17. sbit LATCH_B = P2^5;//RCLK
  18. sbit SRCLK_B = P2^4;
  19. sbit SER_B = P2^3;



  20. void DelayUs2x(unsigned char t)
  21. {   
  22. while(--t);
  23. }

  24. void DelayMs(unsigned char t)
  25. {

  26. while(t--)
  27. {
  28.      //大致延時(shí)1mS
  29.      DelayUs2x(245);
  30.          DelayUs2x(245);
  31. }
  32. }
  33. /*------------------------------------------------
  34.                 發(fā)送字節(jié)程序
  35. ------------------------------------------------*/
  36. void SendByte(unsigned char dat)
  37. {   
  38.   unsigned char i;

  39.    for(i=0;i<8;i++)
  40.         {
  41.                                  SER=dat&0x80;
  42.          dat<<=1;
  43.          SRCLK=0;
  44.          SRCLK=1;

  45.          }

  46. }
  47. /*------------------------------------------------
  48.                 發(fā)送雙字節(jié)程序
  49. ------------------------------------------------*/
  50. void Send2Byte(unsigned char dat1,unsigned char dat2)
  51. {   
  52.    SendByte(dat1);
  53.    SendByte(dat2);      
  54. }
  55. /*------------------------------------------------
  56.                    595鎖存程序
  57.                   595級(jí)聯(lián)發(fā)送數(shù)據(jù)后,鎖存有效
  58. ------------------------------------------------*/
  59. void Out595(void)
  60. {
  61.         LATCH=0;
  62.         _nop_();
  63.         LATCH=1;
  64. }

  65. /*------------------------------------------------
  66.                 發(fā)送位碼字節(jié)程序
  67.                使用另外一片單獨(dú)595
  68. ------------------------------------------------*/
  69. void SendCol(unsigned char dat)
  70. {   
  71. unsigned char i;

  72.    for(i=0;i<8;i++)  //發(fā)送字節(jié)
  73.         {
  74.          SER_B=dat&0x80;
  75.          dat<<=1;
  76.          SRCLK_B=0;
  77.                                  SRCLK_B=1;
  78.          }
  79.       LATCH_B=0;    //鎖存
  80.       _nop_();
  81.       LATCH_B=1;


  82. }
  83. /*------------------------------------------------
  84.                    主程序
  85. ------------------------------------------------*/
  86. void main()
  87. {
  88.                                         unsigned char i,j;
  89.                                         while(1)
  90.                                                 {
  91.                            for(j=0;j<60;j++)
  92.               for(i=0;i<8;i++) //8列顯示
  93.                   {
  94.                      SendCol(Line[i]);
  95.                                                                                  Send2Byte(tab[i],0xff);
  96.                                                                                  Out595();
  97.                                                                                  DelayMs(1);
  98.                                                                                  Send2Byte(0xff,0xff);//delay(10); //防止重影
  99.                                                                                  Out595();
  100.                   }
  101.                           /*for(j=0;j<60;j++)
  102.               for(i=0;i<8;i++) //8列顯示
  103.                   {
  104.                      SendCol(Line[7-i]); //反向顯示同樣圖形
  105.                                                                                  Send2Byte(0x00,tab[i]);
  106.                                                                                  Out595();
  107.                                                                                  DelayMs(1);
  108.                                                                                  Send2Byte(0xff,0xff);//delay(10); //防止重影
  109.                                                                                  Out595()
  110.                   }*/

  111.                                                         }
  112. }
復(fù)制代碼

0ed6d9e56e8ff628f76afd491e1a4d2.png (380.41 KB, 下載次數(shù): 87)

立創(chuàng)畫(huà)的,我現(xiàn)在手上也沒(méi)有文件了

立創(chuàng)畫(huà)的,我現(xiàn)在手上也沒(méi)有文件了

MVIMG_20230202_175252.jpg (2.35 MB, 下載次數(shù): 86)

只能確定顯示再哪一行

只能確定顯示再哪一行

屏幕截圖 2023-02-02 180752.png (213.05 KB, 下載次數(shù): 96)

想要測(cè)試顯示的圖形

想要測(cè)試顯示的圖形

屏幕截圖 2023-02-02 180714.png (387.63 KB, 下載次數(shù): 91)

用的雙色點(diǎn)陣

用的雙色點(diǎn)陣

MVIMG_20230202_175845.jpg (2.62 MB, 下載次數(shù): 92)

想要顯示圖形時(shí)卻全部點(diǎn)亮

想要顯示圖形時(shí)卻全部點(diǎn)亮

雙色.rar

19.59 KB, 下載次數(shù): 3

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1062015 發(fā)表于 2023-2-2 18:26 | 只看該作者
原理圖那里我放了排母當(dāng)做點(diǎn)陣,然后發(fā)現(xiàn)對(duì)應(yīng)的接線和我買的這塊點(diǎn)陣不匹配,但是對(duì)應(yīng)的實(shí)物我用杜邦線接到實(shí)物點(diǎn)陣上了,排除點(diǎn)陣接線問(wèn)題
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表