一乐电子

一乐电子百科

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

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 无锡风
收起左侧

【“错位”点阵屏:显示字符成为“斜块”】

  [复制链接]
发表于 2009-11-24 13:06 | 显示全部楼层
沈兄:
    在上面帖子、您上传的源程序【左和右移动程序.rar】里,我好像“只看到”除了p1口(低四位驱动 ...
无锡风 发表于 2009-11-24 07:09 https://www.yleee.com.cn/images/common/back.gif



    P1=(0x10+disrow)^0x60;// 点亮屏幕
   P1=(0x20+disrow)^0x60;


A,B,C,D,就是P10,P11,P12,P13.
P14就是OE。

     P1_7=1;      // 点亮屏幕   
就是STR锁存                     
     P3_1=1;      //(CLK=P3_1)上升沿595输出
就是CLK时钟
P30就是数据R【利用串口发送】
视频已经下载,可以删除。
下午有点事不能详细回复。
发表于 2009-11-24 18:23 | 显示全部楼层
拉拉扯扯的话, 把延时改短点, 或者换更高频率的晶振.

这个我遇到过的.
 楼主| 发表于 2009-11-24 19:14 | 显示全部楼层
拉拉扯扯的话, 把延时改短点, 或者换更高频率的晶振.

这个我遇到过的.
litchiate 发表于 2009-11-24 18:23 https://www.yleee.com.cn/images/common/back.gif


可碰到了又一位高手救星啦! litchi_ate@126.com 邮箱正确否?

      目前,重新取模之后,“镜像”问题、已经解决;
      但是,
      “个体”的“字符”仍然“右移”;
      “整体”的“字符串”、叠加“直条”。则“左移”
      ——见视频文件(稍后再删除)

      我已经把现在的源程序,发到您的邮箱里——先斩后奏——请帮我修改一下?
      谢谢先!

   
 楼主| 发表于 2009-11-24 19:22 | 显示全部楼层
1、换更高频率的晶振,不方便;还是把延时改短——改哪里?
2、如果能够改移动方向,更加好;
3、以上解决了,就要考虑:如何显示32X32的“大字”了。

今天抽空查了一下:
这款PCB印字的“L”/“S”的确和“一般的不一样——“L”=STR/“S”=CLK。
整个3264板上面,只有两块138——3/8译码输出端,是”同时“驱动”上下对应的“两条”1684的各16个MOS管(2X16=32)的。
发表于 2009-11-24 23:34 | 显示全部楼层
刚刚看到取字模软件,也把刚刚下载的发上来给大家共享吧

PCtoLCD2002完美版.rar

313.38 KB, 下载次数: 494, 下载积分: 一乐金币 -1

发表于 2009-11-25 19:48 | 显示全部楼层
        void led_sip()
        {
        uchar i;
        
        while(col<16)        // 原程序为 while(col<16) 循环16次,点亮并移动一个汉字——改32仍然“斜块”,恢复
        {                    //(一次两个字节、一个字,共32/2=16);
                     
            for(i=0;i<8;i++)        //字在屏幕上的停留时间(即移动速度);
            {
                for(disrow=0;disrow<16;disrow++)//显示的行
                {
                    EN=1;EN=1;          //关显示
                    loadoneline();                // 装载一线点阵数据
                    sendoneline();                // 发送一线点阵数据
                    P2&=h[disrow];                 //(原程序P1口低四位输出行选,现改为P2口低四位输出行选)
                    EN=0;EN=0;
                }
            }
            col++;                                 // 列指针递增
        }
        col=0;word=word+32;                // 一个汉字移动之后,指向下一个汉字;
        if(word>=512)word=0;        // 移动N*32个汉字之后,重新开始;
    }


        /**************************** 主函数 ***************************/
    void main(void)
    {
        col=0;word=0;
                EN=1; EN=1;          // 关显示
        while(1)
        {
            led_sip();
        }
    }


几个问题:
1:
P2|=0x0f;                  
P2&=h[disrow];     
其中的    P2|=0x0f;   是做什么用的?
138 四位数据线都为高是点亮最后一行.
要关闭输出防止鬼影的话,把EN置1即可.

视频中,最后一行一直好想有亮大概是这个原因.

2:
循环的顺序好像有问题.
您的程序是先移位,然后重复显示.
我认为应该是重复显示N次以后再移位.
是否抖动是这个引起的?


P2 P0.C11.rar (2.99 KB, 下载次数: 370)

试下我修改的程序.
修改的函数 有 led_sip() 和 main()

 楼主| 发表于 2009-11-25 20:32 | 显示全部楼层
谢谢 草老弟!

      直接使用您修改的C11程序编译——
      结果
      只是在上幅的最低一行(第16行)、显示“右(?)移”的“明暗相间”的“条纹”;
      有时,在幅的中间一行(第9行)、亦可隐约显示几个“点”?

1、上面修改版的显示效果图:
3mm_3264_字符显示( L版)?.jpg
2、另外实验的时钟“镜像”显示图——看来,字模需要重新取码——是字模的问题,还是程序的问题?
3mm_3264_时钟显示?.jpg
 楼主| 发表于 2009-11-25 20:36 | 显示全部楼层
上面“时钟”.......

       上幅显示的是:
          HH:MM:SS=19:05:01


       下幅应该显示“流动”的年月日+温度
          ——现在不正常,仅显示“横线”......
发表于 2009-11-25 21:12 | 显示全部楼层
P2&=h[disrow];

这个改成 P2=disrow; 试试
发表于 2009-11-25 21:51 | 显示全部楼层
本帖最后由 shqi2003 于 2009-11-25 21:53 编辑
上面“时钟”.......

       上幅显示的是:
          HH:MM:SS=19:05:01

       下幅应该显示“ ...
无锡风 发表于 2009-11-25 20:36 https://www.yleee.com.cn/images/common/back.gif




    看“1”显示取字码时需要左右调换,不过根据图显示还有一个问题,就是你的列输出【595】排列好像和一般不一样,从“1”来看,“1”的下面左面2点,其中一点到右面去了【在第8列上】。
一般595排列15脚1,2,--7脚,从图片看上去好像是1,2----15脚,仅仅是根据图片分析。
所以可以先取码时左右调换看看,有没有问题看的就比较清楚。

本版积分规则

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

GMT+8, 2024-4-28 04:24 , Processed in 0.052575 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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