一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 7690|回复: 26
收起左侧

沈老师请进,1664屏,可能是08接口,用了您的程序,只单行全亮。。。

[复制链接]
发表于 2012-8-27 21:13 | 显示全部楼层 |阅读模式
 楼主| 发表于 2012-8-27 21:39 | 显示全部楼层
/*   VC-3.0 32x64 LED 双色显示板     */   
/*  MCU: STC12C2052AD, */     

//#include <STC12C2052AD.h>

#include <AT89x52.H>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int
#define _Nop() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
sbit HC138_A=P1^0;        
sbit HC138_B=P1^1;   
sbit HC138_C=P1^2;   
sbit HC138_D=P1^3;           //138, 4, 5
sbit HC138_OE=P1^4;         //138 6
sbit HC595_LAT=P1^7;    //595 12
sbit HC595_CLK=P3^1;    //595 11
sbit HC595_GD=P3^0;    //595 14
sbit HC595_RD=P3^0;    //595 14


/*
sbit HC138_A=P3^7;        
sbit HC138_B=P3^2;   
sbit HC138_C=P1^0;   
sbit HC138_D=P3^3;           //138, 4, 5
sbit HC138_OE=P1^5;         //138 6
sbit HC595_LAT=P1^1;    //595 12
sbit HC595_CLK=P3^4;    //595 11
sbit HC595_GD=P1^2;     //595 14
sbit HC595_RD=P3^5;     //595 14
*/
unsigned char r_data[8], g_data[8];
unsigned char k, t, m, n, p, state;

unsigned char code hanzi[17][32]={                 //二维数据

/*--  文字0:  零  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x1F,0xF8,0x01,0x00,0x7F,0xFE,0x41,0x04,0x1D,0x70,0x01,0x00,0x1D,0x70,0x02,0x80,
0x04,0x60,0x1A,0x1E,0xE1,0x08,0x1F,0xE0,0x00,0x40,0x02,0x80,0x01,0x00,0x01,0x00,
/*--  文字1:  一  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x00, 0x00,0x04, 0x7F,0xFE,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字2:  二  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x10,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,
/*--  文字3:  三  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,
/*--  文字4:  四  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x7F,0xFC,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,0x44,0x84,
0x48,0x84,0x48,0x7C,0x50,0x04,0x60,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,0x00,0x00,
/*--  文字5:  五  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x7F,0xF8,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,0x3F,0xF0,
0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x24,0xFF,0xFE,0x00,0x00,0x00,0x00,
/*--  文字6:  六  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x04,0x00,0x03,0x00,0x01,0x80,0x01,0x00,0xFF,0xFE,0x00,0x00,0x00,0x00,0x04,0x80,
0x06,0x40,0x04,0x20,0x08,0x10,0x08,0x18,0x10,0x0C,0x20,0x0C,0x40,0x08,0x00,0x00,
/*--  文字7:  七  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xFE,0x7F,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x01,0x04,0x01,0x04,0x00,0xF8,0x00,0x00,
/*--  文字8:  八  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x00,0x00,0x40,0x04,0x60,0x06,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x20,
0x08,0x20,0x10,0x10,0x10,0x10,0x20,0x08,0x40,0x0E,0x80,0x04,0x00,0x00,0x00,0x00,
/*--  文字9:  九  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x20,0x7F,0xF0,0x02,0x20,0x02,0x20,0x04,0x20,
0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x24,0x10,0x24,0x20,0x26,0x40,0x3C,0x00,0x00,
/*--  文字10:  十  --*/
/*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
/*--  文字11:  测  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x44,0xC4,0x8C,0x98,0xF8,0xFC,0xE4,0xF4,0xFC,0xFC,0xF8,0xFC,0xFC,0xFC,0xFC,0x00,
0x80,0xE0,0x79,0xBD,0xCF,0xFF,0x7F,0x1F,0x3F,0xFF,0xCF,0x9F,0x9F,0xFF,0xFF,0x00,

/*--  文字12:  试  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x80,0x84,0x9C,0x9C,0x10,0x10,0x10,0x10,0x10,0x10,0xFC,0xFC,0x1C,0x1C,0x38,0x00,
0x00,0x00,0x7F,0x7F,0x60,0x71,0x51,0x7F,0x3F,0x21,0x23,0x3F,0xFF,0xE0,0xF8,0x00,

/*--  文字13:  开  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x00,0x04,0x04,0xFC,0xFC,0xFC,0x04,0x04,0x04,0x04,0xFC,0xFC,0xFC,0x04,0x04,0x00,
0x01,0x81,0xC1,0xFD,0x7F,0x0F,0x01,0x01,0x01,0x01,0xFF,0xFF,0xFF,0x01,0x01,0x00,

/*--  文字14:  始  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x10,0xD0,0xFE,0x7E,0x10,0xF0,0xF0,0xE0,0xF8,0xBC,0x8C,0x80,0x98,0xF8,0xE0,0x00,
0x80,0xC7,0xFF,0x78,0x7E,0xEF,0xC3,0xFC,0xFC,0x84,0x84,0x84,0x84,0xFC,0xFD,0x00,

/*--  文字15:  结  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0xC0,0xF0,0xFC,0x9C,0xF4,0x70,0x90,0x90,0x90,0xFC,0xFC,0xFC,0x90,0x90,0x90,0x00,
0xC0,0xCC,0x4F,0x4F,0x6D,0x24,0xFC,0xFC,0x84,0x84,0x84,0x84,0x84,0xFC,0xFC,0x00,

/*--  文字16:  束  --*/
/*--  幼圆12;  此字体下对应的点阵为:宽x高=16x16   --*/
0x08,0xC8,0xC8,0xE8,0x28,0x28,0x28,0xFE,0xFE,0x28,0x28,0x28,0xE8,0xC8,0xC8,0x08,
0x80,0x83,0xC3,0x67,0x62,0x3A,0x1E,0xFF,0xFF,0x1E,0x32,0x72,0x67,0xC7,0x83,0x80,

};


//delay us
void Delay(uchar us)  //5,7,9
{
while(--us);  
}


//delay ms
void DelayMS(uint iMs)
{
uint i,j;
   for(i=0;i<iMs;i++)
    for(j=0;j<65;j++) Delay(1);
      
}

void write595(unsigned char rdd, gdd)
{
        unsigned char i;
        for (i=0;i<8;i++)
        {
                HC595_RD=rdd&0x80;
                rdd=rdd<<1;
                HC595_GD=gdd&0x80;
                gdd=gdd<<1;
                HC595_CLK=1;
                HC595_CLK=0;
        }
}


void main (void)
{
        n=0;
        state=0;
//        HC595_RD=CY;

        while(1)
        {
            for (p=0;p<64;p++)
                {
                for (t=0;t<16;t++)
                {
                        HC595_LAT=0;
                        HC595_CLK=0;       
                        HC138_OE=1;
            //             HC138_OE=0;//by he
                if (state==0)
                {
                for (k=0;k<4;k++)
                        {
                        g_data[2*k]=0xff-hanzi[0+k][t*2];
                        g_data[2*k+1]=0xff-hanzi[0+k][t*2+1];
                        r_data[2*k]=0xff-hanzi[0+k][t*2];
                        r_data[2*k+1]=0xff-hanzi[0+k][t*2+1];
                        }
                }
                else if (state==1)
                {
                for (k=0;k<8;k++)
                        {
                        g_data[k]=0x00;
                        r_data[k]=0xff;
                        }
                }
                else if (state==2)
                {
                for (k=0;k<8;k++)
                        {
                        g_data[k]=0xff;
                        r_data[k]=0x00;
                        }
                }
                else if (state==3)
                {
                for (k=0;k<2;k++)
                {
                        g_data[2*k]=0xff-hanzi[4+k][t*2];
                        g_data[2*k+1]=0xff-hanzi[4+k][t*2+1];
                        r_data[2*k]=0xff-hanzi[4+k][t*2];
                        r_data[2*k+1]=0xff-hanzi[4+k][t*2+1];
                }
                for (k=2;k<4;k++)
                {
                        g_data[2*k]=0xff-hanzi[6+k][t*2];
                        g_data[2*k+1]=0xff-hanzi[6+k][t*2+1];
                        r_data[2*k]=0xff-hanzi[6+k][t*2];
                        r_data[2*k+1]=0xff-hanzi[6+k][t*2+1];
                }
                }
                for (k=0;k<8;k++)
                {
                        write595(r_data[k], g_data[k]);  
                }
                        //HC138_OE=1;          //by he
              HC138_OE=0;
                        HC595_LAT=1;
                        HC595_LAT=0;
                        HC595_CLK=0;

                        HC138_A=t&0x01;
                        HC138_B=t&0x02;
                        HC138_C=t&0x04;
                        HC138_D=t&0x08;
                        Delay(200);
                        //HC138_OE=1;

        }        //end for t
        }  //end for p
        state=state+1;
        if (state>3) state=0;
        }        //end while
}
发表于 2012-8-27 22:14 | 显示全部楼层
老沈16X64,32X64点阵屏参考程序.rar (817.25 KB, 下载次数: 724)
发表于 2012-8-27 22:15 | 显示全部楼层
确认一下HC138_OE的脚是接到哪里的?
发表于 2012-8-27 22:16 | 显示全部楼层
直通的吗?
 楼主| 发表于 2012-8-27 23:09 | 显示全部楼层
回答楼上的,OE接1.4啊。
 楼主| 发表于 2012-8-28 00:12 | 显示全部楼层
这个现象受不了,屏和51板间不接电源的话,偶可以全亮,一接地线就不亮了,接正电源更不亮。。。。
发表于 2012-8-28 08:29 | 显示全部楼层
直接接到屏的电源接了么。
 楼主| 发表于 2012-8-28 13:14 | 显示全部楼层
回复 8# litchiate


    我已经说得很清楚了,屏正负不接的话,奇数行点阵全亮,接地后,一个不亮,接正电源,也不亮。
 楼主| 发表于 2012-9-6 12:37 | 显示全部楼层
沈老师,我一直在等您。。。。。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-4 17:28 , Processed in 0.055235 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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