找回密码
 立即注册

QQ登录

只需一步,快速开始

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

8*8点阵的显示问题

[复制链接]
跳转到指定楼层
楼主
这是我写的代码:
#include<reg52.h>
unsigned char lie[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};                 //从高位到低位流水
unsigned char hang1[]={0x00,0x18,0x24,0x24,0x24,0x24,0x18,0x00}; //数字3
unsigned char hang2[]={0x00,0x3c,0x20,0x38,0x04,0x24,0x38,0x00}; //数字5
unsigned char hang3[]={0x18,0x24,0x24,0x18,0x24,0x24,0x18,0x00}; //数字8
void delay_50us(int t)               //延时程序
  {
     int j;
          for(;t>0;t--)
            for(j=19;j>0;j--);
  }
void main()                            //主函数
{
  int i;
  while(1)
  {
        for(i=0;i<8;i++)
      {
          P2=hang2[i];           //行扫描
            P3=lie[i];                  //列流水
          delay_50us(40);
     }
  }
}
为什么8是好的,5是不好的???这是我用仿真软件后的结果希望各位看看


58.JPG (99.45 KB, 下载次数: 17)

58.JPG

59.JPG (76.78 KB, 下载次数: 11)

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

使用道具 举报

沙发
ID:96682 发表于 2018-2-7 23:41 | 只看该作者
显示得好不好跟编码有关系
回复

使用道具 举报

板凳
ID:239318 发表于 2018-2-9 16:42 | 只看该作者
加个消影语句就行了
回复

使用道具 举报

地板
ID:284230 发表于 2018-2-16 21:23 | 只看该作者
void main()                            //主函数
{
  int i;
  while(1)
  {
        for(i=0;i<8;i++)
      {
           P3=0xff;                  //关输出
          P2=hang2[i];           //行扫描
            P3=lie[i];                  //列流水
          delay_50us(40);
     }
  }
}
回复

使用道具 举报

5#
ID:272269 发表于 2018-2-17 01:22 | 只看该作者
把延时拉长点看看
不是太多逻辑ic做的点阵是不会闪的
就尽情的拉长吧

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:498464 发表于 2019-11-28 22:47 | 只看该作者
你P3定义的是段码,P2定义的是位码,需要先将位码语句执行,才可执行段码语句,将你 P2=hang2[i];           
            P3=lie[i];   这两句调换顺序就不会出现乱码的情况了
回复

使用道具 举报

7#
ID:966186 发表于 2021-9-15 13:32 来自手机 | 只看该作者
我做出来的跳的很快,是编码问题吗
回复

使用道具 举报

8#
ID:332444 发表于 2021-9-15 17:09 | 只看该作者
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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