普中开源电子分享网

 找回密码
 立即注册
搜索
楼主: xzf586

关于16*16点阵液晶显示问题

 关闭 [复制链接]

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 17:48:48 | 显示全部楼层
不是一个左值,是没引用对象还是咋的,大佬我是真的菜
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 17:53:17 | 显示全部楼层
xzf586 发表于 2017-9-21 15:54
上面程序留点bug,有兴趣就修改一下,仔细分析就可以找出来,在此卖个关子!找到了,我就将上下移动完整程 ...

有兴趣弄不来是最悲催的
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 19:15:05 | 显示全部楼层
勉强改了动了,显示效果不是很好
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 19:18:19 | 显示全部楼层
准确的说有点乱
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-9-21 19:30:46 | 显示全部楼层
本帖最后由 xzf586 于 2017-9-21 19:48 编辑
wwf 发表于 2017-9-21 19:18
准确的说有点乱

什么地方问题?:lo

#include <REG51.H>

//--重定义函数变量--//
#define uchar unsigned char

//--定义SPI要使用的 IO--//
sbit MOSIO = P3^4;
sbit R_CLK = P3^5;
sbit S_CLK = P3^6;


//点阵显示数组
uchar code tab0[] = {
0x00, 0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80,//1-8行
0x01, 0x00, 0x02, 0x00, 0x04, 0x00, 0x08, 0x00, 0x10, 0x00, 0x20, 0x00, 0x40, 0x00, 0x80, 0x00 //9-16行
                     };

uchar code tab[] =                       
{
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,                 
     0,8,254,31,16,2,16,2,16,2,16,18,255,63,16,2,16,2,16,2,16,2,8,2,4,2,3,2,0,0,0,0,            //开
     32,2,36,4,36,4,34,16,254,63,32,0,224,15,80,8,80,4,136,2,8,1,132,2,98,60,29,16,0,0,0,0,     //发
     4,8,4,30,196,1,95,0,196,15,68,8,78,9,86,9,69,5,69,5,68,2,36,5,164,56,84,16,0,0,0,0,        //板
     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0                 
};


uchar distab[32];         
uchar index=0;               

void HC595MoveData(uchar dat)
{
     uchar i;        
        for(i=0;i<8;i++)
        {
                MOSIO = dat >> 7 ;     
                dat <<= 1;
                S_CLK = 0;
                S_CLK = 1;               
        }
}

void HC595SendData(uchar DuanU17, uchar DuanU16,uchar WeiU5,uchar WeiU4)
{  
        HC595MoveData(DuanU17);   
     HC595MoveData(DuanU16);     
     HC595MoveData(WeiU5);      
     HC595MoveData(WeiU4);      
        
        R_CLK = 0;
        R_CLK = 1; //--输出--//
        R_CLK = 0;
}

void DisplayOneChar(uchar TAB[32])
{
     int k, i, ms;
     i =40;                                                                //显示时间
     for(ms = i; ms > 0; ms--)
     {
          for(k = 0; k < 16; k++)                                                                                
          {         
               HC595SendData(~TAB[2*k +1],~TAB[2*k],tab0[2*k],tab0[2*k + 1];
          }                  
     }
     HC595SendData(0xff,0xff,0,0);        //清屏
}


void MoveUp()
{
     uchar i;
     for(i=0;i<32;i++)
     {
          distab=tab[(i+2*index)];
     }
     DisplayOneChar(distab);
}


void MoveDown()
{
     uchar i;
     for(i=0;i<32;i++)
     {
          distab=tab[(128+i-2*index)];
     }
     DisplayOneChar(distab);
}


                                                                                                                                                                                       
/*************主函数*****************************/        

void main(void)
{
     while(1)
     {
          HC595SendData(0xff,0xff,0,0);        //清屏
          for(index=0;index<64;index++)
          MoveUp();
          for(index=0;index<64;index++)
          MoveDown();
      }
}
            
设计思想还是删除,请自己考虑,适用于开发板HC6800-EM3

回复 支持 1 反对 0

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 21:12:08 | 显示全部楼层
xzf586 发表于 2017-9-21 15:54
上面程序留点bug,有兴趣就修改一下,仔细分析就可以找出来,在此卖个关子!找到了,我就将上下移动完整程 ...

老哥在不在流动显示是有了感觉字显示有点乱
回复 支持 反对

使用道具 举报

15

主题

196

帖子

503

积分

高级会员

Rank: 4

积分
503
 楼主| 发表于 2017-9-21 21:42:25 | 显示全部楼层
wwf 发表于 2017-9-21 21:12
老哥在不在流动显示是有了感觉字显示有点乱

等会我下载到板子上试一试,看看什么问题!
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 21:50:29 | 显示全部楼层
xzf586 发表于 2017-9-21 19:30
什么地方问题?:lo

#include

可以了,谢了
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 21:54:30 | 显示全部楼层
xzf586 发表于 2017-9-21 19:30
什么地方问题?:lo

#include

最后那index==?这个数怎么算的
回复 支持 反对

使用道具 举报

0

主题

16

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2017-9-21 22:03:53 | 显示全部楼层
xzf586 发表于 2017-9-21 19:30
什么地方问题?:lo

#include

可不可以调整字间距,老铁
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-6 05:04 , Processed in 0.093626 second(s), 28 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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