5033|2

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

大家好,有几块32*64的led屏,想点亮测试一下,但是出问题了,现把双色程序08接口... [复制链接]

大家好,有几块三色32*64的led屏,想点亮测试一下,但是出问题了,现把双色程序08接口程序上传,请大神帮忙改改或者给给思路,谢谢!板子如图。




/*
点阵屏管脚定义
SHCP   GND
STCP   GND
R1     R2
G1     G2
VCC  GND
A      GND
B      GND
C      D
*/
/*
控制卡
P0~P3   A B C D
P16 SCK
P17 STR
R1 P04
G1 P05
R2 P06
G2 P07
*/
//#include
#include
#define uchar unsigned char
#define uint unsigned int
                                 //0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
uchar code sw[16]={0X00,0X08,0x04,0x0C,0X02,0X0A,0X06,0X0E,0X01,0X09,0X05,0X0D,0X03,0X0B,0X07,0X0F};/*16行段码*///138驱动数据
                                  

sbit IA  =P4^0;  //行控制线A
sbit IB  =P2^0;  //行控制线B
sbit IC  =P2^1;  //行控制线C
sbit ID  =P2^2;  //行控制线D

#define  scan0    {IA=0;IB=0;IC=0;ID=0;}
#define  scan1    {IA=1;IB=0;IC=0;ID=0;}
#define  scan2    {IA=0;IB=1;IC=0;ID=0;}
#define  scan3    {IA=1;IB=1;IC=0;ID=0;}
#define  scan4    {IA=0;IB=0;IC=1;ID=0;}
#define  scan5    {IA=1;IB=0;IC=1;ID=0;}
#define  scan6    {IA=0;IB=1;IC=1;ID=0;}
#define  scan7    {IA=1;IB=1;IC=1;ID=0;}
#define  scan8    {IA=0;IB=0;IC=0;ID=1;}
#define  scan9    {IA=1;IB=0;IC=0;ID=1;}
#define scan10    {IA=0;IB=1;IC=0;ID=1;}
#define scan11    {IA=1;IB=1;IC=0;ID=1;}
#define scan12    {IA=0;IB=0;IC=1;ID=1;}
#define scan13    {IA=1;IB=0;IC=1;ID=1;}
#define scan14    {IA=0;IB=1;IC=1;ID=1;}
#define scan15    {IA=1;IB=1;IC=1;ID=1;}
sbit STR=P4^1;              //锁存         
sbit SCK=P2^7;                    //时钟         
sbit SERr1= P2^4;            //数据
sbit SERg1= P2^6;



sbit SERr= P2^3;
sbit SERg= P2^5;
uchar line=0;
void   rxd_data();                                   // 串口发送移动数据
uchar time_count=0;
bit reg=1;
/*****不影响其他端口的扫描*************************/
void scan(unsigned char Value)
{switch(Value)
        {case  15: scan0;break;
                  case  0: scan1;break;
                   case  1: scan2;break;
                    case  2: scan3;break;
             case  3: scan4;break;
                      case  4: scan5;break;
                       case  5: scan6;break;
                        case  6: scan7;break;
                 case  7: scan8;break;
                       case  8: scan9;break;
                      case 9:scan10;break;
                     case 10:scan11;break;
            case 11:scan12;break;
                  case 12:scan13;break;
                 case 13:scan14;break;
            case 14:scan15;break;
           default:break;
        }
}
/**************************************/
void Timer0Interrupt(void) interrupt 1 //定时器中断
{
     TH0 = 0x0D8;//定时10MS
     TL0 = 0x0F0;
         
   time_count++;
   if(time_count>100)//2S发送一次数据
   {      
       time_count=0;
           line++;
           if(line>15)
           {
                    line=0;
                 reg=~reg;       
           }
            rxd_data();
       // P0 = sw[line];
             scan(line);                                                                                             
            STR=1;//锁存
            STR=0;
        STR=1;

   }

       
}
/********************************************/

/*主函数*/
void main()
{  
  TMOD=0x01; //定时器0 16位定时定时器1方式2
  TH0=0x4c;  //50ms
  TL0=0x00;

  TR0=1;
  ET0=1;
  EA=1;
   while(1)  
   {
   }
}          
/***********************发送移动的数据****************************/
void rxd_data(void)                            //串行发送数据
{
  uchar s;
  uchar k;

  for(s=0;s<8;s++)                   //发送16字节数据
        {
     for(k=0;k<8;k++)
       {
               SCK=0;
                  if(reg==1)                  
                  {
                    SERr=0;//这里SERr定义成普通IO口就得了               
                    SERr1=0;
                        SERg=1;
                    SERg1=1;               
                   }
                   else
                   {
                   SERg=0;
                   SERg1=0;
                   SERr=1;//这里SERr定义成普通IO口就得了               
                   SERr1=1;
                   }                             
           SCK=1;
                 
       }
          

   }

}


IMG_20160304_204501.jpg (1.48 MB, 下载次数: 0)

IMG_20160304_204501.jpg

IMG_20160304_204522.jpg (2.2 MB, 下载次数: 1)

IMG_20160304_204522.jpg

32 64led屏双色08接口逐行点亮测试程序.rar

21.92 KB, 下载次数: 46

此帖出自51单片机论坛

最新回复

有没有相关的原理图呀   详情 回复 发表于 2020-5-13 11:10
点赞 关注
 

回复
举报

385

帖子

2

TA的资源

一粒金砂(中级)

沙发
 
此帖出自51单片机论坛
 
 
 

回复

189

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

有没有相关的原理图呀

此帖出自51单片机论坛
 
个人签名单片机软件/硬件交流群:127034610
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表