找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2363|回复: 38
打印 上一主题 下一主题
收起左侧

这是我模仿别人写的程序,有一点小变动,但是显示不了我想要的文字,求大佬帮忙

[复制链接]
跳转到指定楼层
楼主
我现在学习的还是理论知识,单片机是提前学习的,所以单片机比较菜。所以希望大佬们能给点51单片机的学习资料,让我更加系统的学习。还有就是,我这程序应该怎么改?

#include<reg51.h>
unsigned int code zimo[]={/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xFD,0xFD,0x0D,0xED,0xED,0xED,0x0D,0xFD,0x0D,0xED,0xED,0xED,0x0D,0xFD,0xFD,0xFF,
0xFF,0xFF,0x00,0xFE,0xB9,0x7F,0x80,0xFF,0x00,0xFE,0xB9,0x7F,0x80,0xFF,0xFF,0xFF,

/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xEF,0xEF,0x0F,0xE0,0xEF,0x0F,0xFF,0x01,0xDD,0xDD,0xDD,0xDD,0x01,0xFF,0xFF,0xFF,
0xBF,0xDD,0xEA,0xF7,0xE9,0x9E,0xBF,0x80,0xBD,0xBD,0xBD,0xBD,0x80,0xBF,0xBF,0xFF,

/*--  ??:  ,  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,

/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0x7F,0xBF,0xCF,0xE1,0xEF,0xEF,0xEF,0x00,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,
0xBF,0xBF,0xBD,0xBD,0xBD,0xBD,0xBD,0x80,0xBD,0xBD,0xBD,0xBD,0xBD,0xBF,0xBF,0xFF,

/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xFF,0xFF,0xFF,0x01,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x7D,0x01,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0x00,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x00,0xFF,0xFF,0xFF,0xFF,

/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xFF,0x1F,0xFF,0x00,0xEF,0xDF,0xF7,0xF7,0xF7,0x00,0xF7,0xF7,0x07,0xFF,0xFF,0xFF,
0xFE,0xFF,0xFF,0x00,0xFF,0x7E,0xBE,0xCE,0xF2,0xFC,0xF2,0xCE,0xBE,0x7E,0x7E,0xFF,

/*--  ??:  ?  --*/
/*--  Fixedsys12;  ??????????:?x?=16x16   --*/
0xFF,0xFF,0x1F,0x63,0x7B,0x7B,0x7B,0x0B,0x7D,0x7D,0x7C,0x7D,0x7F,0x7F,0xFF,0xFF,
0xFF,0xDF,0xEF,0xF7,0xF9,0xBF,0x7F,0x80,0xFF,0xFF,0xFD,0xFB,0xF7,0xCF,0xFF,0xFF,


        };
int time = 0;
int flag = 0;
int num = 0;
int v = 9;
int clear_counter = 112;
void delay(unsigned int i)
{
while(i--);
}
void display(unsigned char rowsbehind,unsigned char rowsfollow,int col)
{
  if(col==1)
  {
   P3=0x7f;
   P1=0xff;
  }
  else if(col==2)
  {
   P3=0xbf;
   P1=0xff;
  }
  else if(col==3)
  {
   P3=0xdf;
   P1=0xff;
  }
   else if(col==4)
  {
   P3=0xef;
   P1=0xff;
  }
  else if(col==5)
  {
   P3=0xf7;
   P1=0xff;
  }
  else if(col==6)
  {
   P3=0xfb;
   P1=0xff;
  }
  else if(col==7)
  {
   P3=0xfd;
   P1=0xff;
  }
  else if(col==8)
  {
   P3=0xfe;
   P1=0xff;
  }
  else if(col==9)
  {
   P3=0xff;
   P1=0x7f;
  }
  else if(col==10)
  {
   P3=0xff;
   P1=0xbf;
  }
  else if(col==11)
  {
   P3=0xff;
   P1=0xdf;
  }
  else if(col==12)
  {
   P3=0xff;
   P1=0xef;
  }
  else if(col==13)
  {
   P3=0xff;
   P1=0xf7;
  }
  else if(col==14)
  {
   P3=0xff;
   P1=0xfb;
  }
  else if(col==15)
  {
   P3=0xff;
   P1=0xfd;
  }
  else if(col==16)
  {
   P3=0xff;
   P1=0xfe;
  }
  P2=rowsbehind;
  P0=rowsfollow;
}
void main()
{
   while(1)
   {   
    int t = 0;
    for(t=0;t<16;t++)//zimo[(0+0)*2]=zimo[0]
       {  
      display(zimo[(t+flag)*2],zimo[(t+flag)*2+1],t+1);
      delay(5000);
      }
   }
}
void timer0_init()
{
        TMOD=0x01;
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        TR0=1;
        ET0=1;
        EA=1;
}
void zd() interrupt 1
{
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        time++;
        if(time==v)
        {
                num++;
                flag=flag+1;
                 if(num>clear_counter)
                 {
                         num=0;
                         flag=0;
                 }
                 time=0;
         }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:332444 发表于 2020-7-2 13:07 | 只看该作者
其他暂且不管,说说修改的地方:
{
   P3=0x7f;
   P1=0xff;这是共有的,直接提出来写一句足矣
  }
就会变成这样
if(col==1)   P3=0x7f;
  else if(col==2)   P3=0xbf;




   P1=0xff;
用了中断就不需要计数延时,直接用中断延时就好了。
回复

使用道具 举报

板凳
ID:332444 发表于 2020-7-2 13:21 | 只看该作者
另外这个函数最后一个参数未超过255不需要用int用char足够
同样P3=0xff;是共同的也可提出来。
最后显示的数据提取,确定这样写的算式提到正确的使用数据了? display(zimo[(t+flag)*2],zimo[(t+flag)*2+1],t+1);
回复

使用道具 举报

地板
ID:332444 发表于 2020-7-2 13:23 | 只看该作者
这里有个8*8的例子,或许可参考点虾米。


回复

使用道具 举报

5#
ID:792340 发表于 2020-7-2 14:55 | 只看该作者
xianfajushi 发表于 2020-7-2 13:21
另外这个函数最后一个参数未超过255不需要用int用char足够
同样P3=0xff;是共同的也可提出来。
最后显示的 ...

那应该怎样做,不会改啊。
回复

使用道具 举报

6#
ID:332444 发表于 2020-7-2 15:11 | 只看该作者
改你的程序?看那一堆代码就眼花,提不起兴趣,你看我的代码,怕你消化不良,呵呵。
回复

使用道具 举报

7#
ID:792340 发表于 2020-7-2 15:57 | 只看该作者
xianfajushi 发表于 2020-7-2 15:11
改你的程序?看那一堆代码就眼花,提不起兴趣,你看我的代码,怕你消化不良,呵呵。

唉,那有没有那些点良16*16点阵的资料啊?我慢慢研究。最好有列子的
回复

使用道具 举报

8#
ID:332444 发表于 2020-7-2 16:46 | 只看该作者
道理是一样的,你说说你那些数据是怎么用的?
回复

使用道具 举报

9#
ID:332444 发表于 2020-7-2 16:48 | 只看该作者
我例子中的数组每8个数据就是一个字。
回复

使用道具 举报

10#
ID:792340 发表于 2020-7-2 22:47 | 只看该作者
xianfajushi 发表于 2020-7-2 16:48
我例子中的数组每8个数据就是一个字。

我数组中每16个数据一个字啊
回复

使用道具 举报

11#
ID:332444 发表于 2020-7-3 07:10 | 只看该作者
点阵也没虾米,就是行对列地扫描而已,8和16一样道理,直接用IO的8口联系2各IO口就是16,要处理的逻辑就是对2各IO口的控制而已。
回复

使用道具 举报

12#
ID:332444 发表于 2020-7-3 07:11 | 只看该作者
你这数据是行的还是列的?
回复

使用道具 举报

13#
ID:332444 发表于 2020-7-3 07:42 | 只看该作者
不管虾米数据,都是可以调整过来的很容易,明白了点阵的扫描道理,就可以写自己的代码了,不比生搬硬套。
回复

使用道具 举报

14#
ID:332444 发表于 2020-7-3 15:20 | 只看该作者
按你这样4个io写驱动只能驱动红16*8点阵,使用第二行数据,看不出是虾米字符。
回复

使用道具 举报

15#
ID:796509 发表于 2020-7-3 15:41 | 只看该作者
可以多在论坛找找相似的
回复

使用道具 举报

16#
ID:332444 发表于 2020-7-3 15:54 | 只看该作者
本帖最后由 xianfajushi 于 2020-7-3 16:03 编辑

为了演示如何写驱动,就按你代码中这样使用4个IO写个16*8的例子,使用8*8字符0和7略作演示。

代码

回复

使用道具 举报

17#
ID:332444 发表于 2020-7-3 16:44 | 只看该作者
修改了一下程序


回复

使用道具 举报

18#
ID:332444 发表于 2020-7-3 18:32 | 只看该作者
0xEF,0xEF,0x0F,0xE0,0xEF,0x0F,0xFF,0x01,0xDD,0xDD,0xDD,0xDD,0x01,0xFF,0xFF,0xFF, 0xBF,0xDD,0xEA,0xF7,0xE9,0x9E,0xBF,0x80,0xBD,0xBD,0xBD,0xBD,0x80,0xBF,0xBF,0xFF,这数据是虾米汉字?显示被转向看不出来。
回复

使用道具 举报

19#
ID:332444 发表于 2020-7-3 18:49 | 只看该作者

这是用8*8的4和7的字符显示的,电路图没调整方向,显示你的数据,被转向了,看不出来数据是虾米字。

回复

使用道具 举报

20#
ID:332444 发表于 2020-7-3 18:54 | 只看该作者
我学蛋骗鸡也不长时间,弄完我的机器改造就没去玩那板子,点阵也是看了你的贴子,才试写的,所以,连电路图怎么正确接都不知道,反正就是接上了电路了。
买板子倒是有很多例子,没去看,因为用不到。
回复

使用道具 举报

21#
ID:332444 发表于 2020-7-4 04:05 | 只看该作者
由于没提供仿照虾米电路,也没去查资料,因此,就循着普通的思路写了之上的演示,当我查资料后发现有一种电路接法可实现16*16,稍后得闲写个驱动演示。
回复

使用道具 举报

22#
ID:332444 发表于 2020-7-4 04:48 | 只看该作者
驱动不是随意写的,需配合具体电路图去写,由于没提供电路图,单从代码上去推测写出之上示例,让人去猜测属于不善问,结果欲速而不达。
回复

使用道具 举报

23#
ID:332444 发表于 2020-7-4 21:40 | 只看该作者


回复

使用道具 举报

24#
ID:332444 发表于 2020-7-4 22:08 | 只看该作者


回复

使用道具 举报

25#
ID:332444 发表于 2020-7-5 04:08 | 只看该作者


回复

使用道具 举报

26#
ID:332444 发表于 2020-7-5 04:15 | 只看该作者


回复

使用道具 举报

27#
ID:332444 发表于 2020-7-5 05:54 | 只看该作者
本帖最后由 xianfajushi 于 2020-7-5 11:04 编辑

你的正题就不回复了,留给你自己去对比去悟。
回复

使用道具 举报

28#
ID:797392 发表于 2020-7-5 08:36 | 只看该作者
你写的程序和你的硬件不匹配
回复

使用道具 举报

29#
ID:332444 发表于 2020-7-5 11:08 | 只看该作者
zzjz 发表于 2020-7-5 08:36
你写的程序和你的硬件不匹配

哦,提出证据来说话
回复

使用道具 举报

30#
ID:332444 发表于 2020-7-7 10:11 | 只看该作者
原来是这几个汉字

回复

使用道具 举报

31#
ID:792340 发表于 2020-7-7 22:42 | 只看该作者
xianfajushi 发表于 2020-7-7 10:11
原来是这几个汉字

。。。。,你怎么做出来的啊?
我。。。。不会啊,最近太忙了,没有上来看
回复

使用道具 举报

32#
ID:792340 发表于 2020-7-7 22:50 | 只看该作者
电ac 发表于 2020-7-7 22:42
。。。。,你怎么做出来的啊?
我。。。。不会啊,最近太忙了,没有上来看

这是我的电路图

无标题.png (427.78 KB, 下载次数: 88)

无标题.png
回复

使用道具 举报

33#
ID:332444 发表于 2020-7-8 06:12 | 只看该作者
你的电路图让人看不清,我的电路图让人看得清清楚楚的,有人说代码和硬件不匹配,叫拿出证据,结果这么长时间也不见拿出虾米证据来证明其言论,各种都能见到这种歪曲事实胡说八道的人物!我的代码与硬件不匹配的话,怎么能正确显示你的数据字符?
回复

使用道具 举报

34#
ID:792340 发表于 2020-7-8 06:45 | 只看该作者
你说的虾米指的是?
回复

使用道具 举报

35#
ID:792340 发表于 2020-7-8 07:04 | 只看该作者
这个就是我的电路图,你是怎么做出来的?还有就是你是在哪里学习的?教教我呗!

无标题.png (366 KB, 下载次数: 89)

无标题.png
回复

使用道具 举报

36#
ID:332444 发表于 2020-7-8 09:11 | 只看该作者
其实你也可提升你的代码演化成像我这样简洁的形式,51蛋骗鸡像你这样的代码到处都是,而提升演化则需要了解其原理及自己归纳的习惯,我是看不惯那一堆代码,看得眼花缭乱的,因此下功夫提升演化后就一直沿用,像你这样的也就是学习时一直沿用而已,这种现象常见,就如本论坛,蛋骗鸡一个IO引脚驱动后面电路常提问的都是只会应用放大器的形式,而不知道使用射随器,难道他们没学过?未必就没学过射随器电路的,那因何不用?缘其不加思考而已,射随器电路本论坛我曾回复过,因此也不想反复了,射随器输入高阻抗输出低阻抗,意味着虾米?意味着对前级影响极小对后级驱动能力增强,当影响到前级时就该考虑使用射随器,而不是一味地使用放大器形式,而这些都源于对基础原理的理解,看似简单的背后是知识的有力支持,就像电脑容易使用,其背后是强大的知识支持。
回复

使用道具 举报

37#
ID:332444 发表于 2020-7-8 09:50 | 只看该作者
说你电路图让人看不清,以为是8*8点阵4个合并的,你这种点阵只有32个引脚的我没有;
哪里学?没哪里学,都自学的,我写的点阵从8*8到16*8到16*16全部在这里了,也算是都教了。
回复

使用道具 举报

38#
ID:608600 发表于 2020-7-8 21:15 | 只看该作者
你这种代码有点重了,可以去论坛搜索。挺多挺好有易懂的代码
回复

使用道具 举报

39#
ID:854405 发表于 2020-12-5 17:22 | 只看该作者
xianfajushi 发表于 2020-7-7 10:11
原来是这几个汉字

有滚动显示的吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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