找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 693|回复: 1
打印 上一主题 下一主题
收起左侧

单片机萌新一枚,在调试双色点阵的时候发现问题

[复制链接]
跳转到指定楼层
楼主
目前的状态就是:
1.只能确定显示在哪一行,但是显示在哪一行给的数据无论多少那行都会全部点亮
2.想要显示图形的时候,点阵会全部点亮

单片机源程序如下:

  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.      //大致延时1mS
  29.      DelayUs2x(245);
  30.          DelayUs2x(245);
  31. }
  32. }
  33. /*------------------------------------------------
  34.                 发送字节程序
  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.                 发送双字节程序
  49. ------------------------------------------------*/
  50. void Send2Byte(unsigned char dat1,unsigned char dat2)
  51. {   
  52.    SendByte(dat1);
  53.    SendByte(dat2);      
  54. }
  55. /*------------------------------------------------
  56.                    595锁存程序
  57.                   595级联发送数据后,锁存有效
  58. ------------------------------------------------*/
  59. void Out595(void)
  60. {
  61.         LATCH=0;
  62.         _nop_();
  63.         LATCH=1;
  64. }

  65. /*------------------------------------------------
  66.                 发送位码字节程序
  67.                使用另外一片单独595
  68. ------------------------------------------------*/
  69. void SendCol(unsigned char dat)
  70. {   
  71. unsigned char i;

  72.    for(i=0;i<8;i++)  //发送字节
  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. }
复制代码

0ed6d9e56e8ff628f76afd491e1a4d2.png (380.41 KB, 下载次数: 84)

立创画的,我现在手上也没有文件了

立创画的,我现在手上也没有文件了

MVIMG_20230202_175252.jpg (2.35 MB, 下载次数: 83)

只能确定显示再哪一行

只能确定显示再哪一行

屏幕截图 2023-02-02 180752.png (213.05 KB, 下载次数: 93)

想要测试显示的图形

想要测试显示的图形

屏幕截图 2023-02-02 180714.png (387.63 KB, 下载次数: 88)

用的双色点阵

用的双色点阵

MVIMG_20230202_175845.jpg (2.62 MB, 下载次数: 89)

想要显示图形时却全部点亮

想要显示图形时却全部点亮

双色.rar

19.59 KB, 下载次数: 3

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1062015 发表于 2023-2-2 18:26 | 只看该作者
原理图那里我放了排母当做点阵,然后发现对应的接线和我买的这块点阵不匹配,但是对应的实物我用杜邦线接到实物点阵上了,排除点阵接线问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表