一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 5096|回复: 37

仿制了个3264的时钟没有反应

[复制链接]
发表于 2013-5-2 10:37 | 显示全部楼层 |阅读模式
本帖最后由 benli 于 2013-5-10 23:19 编辑

原帖这里
http://bbs.mydigit.cn/read.php?tid=225761

点阵屏是08接口的32*64屏,245+18+595驱动,改了下程序接口,单片机是STC89c52RC,晶振24.576M,1302暂时没接。通电屏不亮,不知道哪里的问题

32X64点阵屏万历程序1.rar (62.41 KB, 下载次数: 291)

/
发表于 2013-5-2 11:59 | 显示全部楼层
单片机板运行正常么?量下引脚的电压。
回复

使用道具 举报

 楼主| 发表于 2013-5-2 12:12 | 显示全部楼层
litchiate 发表于 2013-5-2 11:59 static/image/common/back.gif
单片机板运行正常么?量下引脚的电压。

准备用示波器看看,谁知道打开电源示波器没有反应了
回复

使用道具 举报

 楼主| 发表于 2013-5-2 12:37 | 显示全部楼层
litchiate 发表于 2013-5-2 11:59 static/image/common/back.gif
单片机板运行正常么?量下引脚的电压。

用一个简单的程序验证了下单片机正常
    while (1)
{

   P0=~P0;
   P1=~P1;
   P2=~P2;
   P3=~P3;
   delay(600);
  }

回复

使用道具 举报

发表于 2013-5-2 12:57 | 显示全部楼层
问桃源客看看.上回他指点了一下.但我还是没弄出来
回复

使用道具 举报

 楼主| 发表于 2013-5-2 13:00 | 显示全部楼层
红塔山 发表于 2013-5-2 12:57 static/image/common/back.gif
问桃源客看看.上回他指点了一下.但我还是没弄出来

换了个别的程序也是不行


回复

使用道具 举报

 楼主| 发表于 2013-5-2 13:10 | 显示全部楼层
将EN接电源正,上下屏各有一行亮。
回复

使用道具 举报

发表于 2013-5-2 14:46 | 显示全部楼层
benli 发表于 2013-5-2 13:10 static/image/common/back.gif
将EN接电源正,上下屏各有一行亮。

那写入程序后,ABCD的对应引脚电压正常么,

量下电压, ABCD 或者 DCBA 应该是 2.5V 1.25V  0.625V 0.3125V 左右
回复

使用道具 举报

 楼主| 发表于 2013-5-2 16:44 | 显示全部楼层

RE: 仿制了个3264的时钟没有反应

litchiate 发表于 2013-5-2 14:46 static/image/common/back.gif
那写入程序后,ABCD的对应引脚电压正常么,

量下电压, ABCD 或者 DCBA 应该是 2.5V 1.25V  0.625V 0 ...

ABCD都是2.5左右。
回复

使用道具 举报

 楼主| 发表于 2013-5-2 17:29 | 显示全部楼层
换了个程序,绿色全亮,并且闪烁的厉害。OE没用
SANY0513.JPG
SANY0515.JPG

SANY0514.JPG




#include<at89x52.h>

#define uchar unsigned char
#define uint unsigned int

sbit R1 = P2^4;
sbit G1 = P3^6;
sbit R2 = P2^2;
sbit G2 = P3^7;
sbit SCK= P2^1;
sbit ST = P2^0;
sbit OE = P2^5;

#define  speed 3    //移动的速度
#define  num   76  //要显示的汉字数目
#define  rgy  0     //颜色定义,定义如下
                    //  0         1  2        3          4            5
                            //        红        绿        黄        红字绿背景        绿字红背景         黑字黄背景
uchar move,word,se;
uchar code tab[][32];

void sendline(uchar line) //数据发送函数
{
    uchar mm, nn, dat1, dat2;  
         
        for(nn=0;nn<10;nn++)
        {
          dat1 = tab[nn+word][line];
          dat2 = tab[nn+word][line+16];
          for(mm=0;mm<8;mm++)
           {
              if((dat1&0x80)==0x80)
                   {
                     switch(se)
                      {
                              case 0:R1 = 1;G1 = 0;break;// 红
                            case 1:R1 = 0;G1 = 1;break;// 绿
                            case 2:R1 = 1;G1 = 1;break;// 黄
                            case 3:R1 = 1;G1 = 0;break;// 红绿
                            case 4:R1 = 0;G1 = 1;break;// 绿红
                            case 5:R1 = 0;G1 = 0;break;// 黑黄
                       }
                  
                    }
                  else
                  {
                     switch(se)
                     {
                              case 0:R1 = 0;G1 = 0;break;// 红
                            case 1:R1 = 0;G1 = 0;break;// 绿
                            case 2:R1 = 0;G1 = 0;break;// 黄
                            case 3:R1 = 0;G1 = 1;break;// 红绿
                            case 4:R1 = 1;G1 = 0;break;// 绿红
                            case 5:R1 = 1;G1 = 1;break;// 黑黄
                      }
                    }
                 if((dat2&0x80)==0x80)
                 {
                    switch(se)
                    {
                             case 0:R2 = 1;G2 = 0;break;// 红
                           case 1:R2 = 0;G2 = 1;break;// 绿
                           case 2:R2 = 1;G2 = 1;break;// 黄
                           case 3:R2 = 1;G2 = 0;break;// 红绿
                           case 4:R2 = 0;G2 = 1;break;// 绿红
                           case 5:R2 = 0;G2 = 0;break;// 黑黄
                    }
                  }
                 else
                 {
                    switch(se)
                    {
                             case 0:R2 = 0;G2 = 0;break;// 红
                           case 1:R2 = 0;G2 = 0;break;// 绿
                           case 2:R2 = 0;G2 = 0;break;// 黄
                           case 3:R2 = 0;G2 = 1;break;// 红绿
                           case 4:R2 = 1;G2 = 0;break;// 绿红
                           case 5:R2 = 1;G2 = 1;break;// 黑黄
                     }
                   }
                  dat1 <<= 1;
                  dat2 <<= 1;
                  SCK =0;
                  SCK =1;
             }
           }
          dat1 = tab[nn+word][line];//移动处理函数
          dat2 = tab[nn+word][line+16];
          for(mm=0;mm<move;mm++)
          {
             if((dat1&0x80)==0x80)
                  {
                switch(se)
                     {
                           case 0:R1 = 1;G1 = 0;break;// 红
                         case 1:R1 = 0;G1 = 1;break;// 绿
                         case 2:R1 = 1;G1 = 1;break;// 黄
                         case 3:R1 = 1;G1 = 0;break;// 红绿
                         case 4:R1 = 0;G1 = 1;break;// 绿红
                         case 5:R1 = 0;G1 = 0;break;// 黑黄
                     }
                   }
                  else
                  {  
                   switch(se)
                    {
                           case 0:R1 = 0;G1 = 0;break;// 红
                         case 1:R1 = 0;G1 = 0;break;// 绿
                         case 2:R1 = 0;G1 = 0;break;// 黄
                         case 3:R1 = 0;G1 = 1;break;// 红绿
                         case 4:R1 = 1;G1 = 0;break;// 绿红
                         case 5:R1 = 1;G1 = 1;break;// 黑黄
                    }
                  }
            if((dat2&0x80)==0x80)
                 {
                   switch(se)
                    {
                           case 0:R2 = 1;G2 = 0;break;// 红
                         case 1:R2 = 0;G2 = 1;break;// 绿
                         case 2:R2 = 1;G2 = 1;break;// 黄
                         case 3:R2 = 1;G2 = 0;break;// 红绿
                         case 4:R2 = 0;G2 = 1;break;// 绿红
                         case 5:R2 = 0;G2 = 0;break;// 黑黄
                    }
                 }
                else
                {
                  switch(se)
                  {
                           case 0:R2 = 0;G2 = 0;break;// 红
                         case 1:R2 = 0;G2 = 0;break;// 绿
                         case 2:R2 = 0;G2 = 0;break;// 黄
                         case 3:R2 = 0;G2 = 1;break;// 红绿
                         case 4:R2 = 1;G2 = 0;break;// 绿红
                         case 5:R2 = 1;G2 = 1;break;// 黑黄
                   }
                 }
                dat1 <<= 1;
                dat2 <<= 1;
                SCK =0;
                SCK =1;
         }                         
        ST = 1;
    ST = 0;
}

void main(void)
{
        uint i, j, t;
        P0 =0;
        se=rgy;
        while(1)
        {
           for(i=0;i<16;i++)  //行扫描 (i=0;i<16;i++)
           {
                 OE = 1;
                 sendline(i);//送行数据          
                 P1 = i;                      // P1 = i+1;
                 OE = 0;           //开显示
                 for(j=0;j<20 ;j++);// (j=0;j<70;j++)
                }
                t++;
                if(t>speed)                //移动的速度
                {
                    t = 0;
                        move++;
                        if(move>8)          
                         {
                            move=1;
                            word++;
                            if(word>num)word =0;//(word/2)是显示的汉字数
                          }
             }         
          }
}


回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-1-12 13:58 , Processed in 0.038876 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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