找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机16*16点阵led显示汉字为什么显示只有一条直线,各位大佬求帮助

查看数: 2484 | 评论数: 4 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-3-16 16:41

正文摘要:

文件见附件这是我的代码   #include<reg51.h> #include<intrins.h> #define uchar unsigned char         #define uint  unsigned int uchar co ...

回复

ID:890771 发表于 2021-3-17 15:58
这个你可以试着先用一个16*16的点阵试验一下,缩小你要检查的范围,之前做过一个,现在忘得差不多了,我把源码发出来,你参考下
#include<reg51.h>
#include<intrins.h>
sbit DS=P1^0;
sbit ST_CP=P1^1;
sbit SH_CP=P1^2;
sbit A=P1^3;
sbit E=P1^4;
sbit C=P1^5;
sbit D=P1^6;
int u,n;
unsigned char display_1[]={
0xbf,0x7f,0xb7,0x9f,0xb7,0xe0,0xb7,0xdf,
0x00,0x80,0xb7,0xbb,0xb7,0xbb,0xff,0xff,
0x3b,0xb0,0xbb,0xaf,0xbb,0xaf,0xbb,0xaf,
0x03,0xaf,0xff,0xa3,0xff,0xbf,0xff, 0xff,


};

void delay()
{
      for(u=0;u<100;u++)
         for(n=0;n<1;n++);
}
void  hc595_senddat(unsigned char dat)
{
        unsigned char k;
        for(k=0;k<8;k++)
        {
            DS=dat&0x80;
            SH_CP=0;
            SH_CP=1;
            dat<<=1;
        }       
}
main()
{
        unsigned char i;

        SH_CP=0;
        ST_CP=0;
        while(1)
        {
                for(i=0;i<16;i++)
                {       
                       
                        {
                                hc595_senddat(display_1[2*i+1]);
                                hc595_senddat(display_1[2*i]);                        
                        }
                       
                        switch(i)
                          {
                            case 0:A=0;E=0;C=0;D=0; break;  //负0000
                            case 1:A=1;E=0;C=0;D=0; break; //1000
                            case 2:A=0;E=1;C=0;D=0; break;  //0100
                            case 3:A=1;E=1;C=0;D=0; break; //1100
                            case 4:A=0;E=0;C=1;D=0; break; //0010
                            case 5:A=1;E=0;C=1;D=0; break; //1010
                            case 6:A=0;E=1;C=1;D=0; break; //0110
                            case 7:A=1;E=1;C=1;D=0; break; //1110
                            case 8:A=0;E=0;C=0;D=1; break;  //0001
                            case 9:A=1;E=0;C=0;D=1; break; //1001
                            case 10:A=0;E=1;C=0;D=1; break; //0101
                            case 11:A=1;E=1;C=0;D=1; break; //1101
                            case 12:A=0;E=0;C=1;D=1; break; //0011
                            case 13:A=1;E=0;C=1;D=1; break; //1011
                            case 14:A=0;E=1;C=1;D=1; break; //0111
                            case 15:A=1;E=1;C=1;D=1; break; //1111
                          }
                       
                        ST_CP=1;
                        ST_CP=0;
            delay();
                }
        }
}
ID:332444 发表于 2021-3-17 15:02
ID:332444 发表于 2021-3-17 14:02
ID:390416 发表于 2021-3-16 22:37
LED16x16点阵 89单片机+四个74HC595的 程序源码原理图 http://www.51hei.com/bbs/dpj-200961-1.html

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

Powered by 单片机教程网

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