一乐电子

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

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 4019|回复: 17

求教:16点阵右移问题

[复制链接]
发表于 2012-6-15 09:09 | 显示全部楼层 |阅读模式
16点阵右移问题,速度可调整,但是右移效果不正常。请各路高手指教。 16点阵右移.rar (53.22 KB, 下载次数: 371)
 楼主| 发表于 2012-6-15 15:30 | 显示全部楼层
有没有高手帮忙看下,
回复

使用道具 举报

 楼主| 发表于 2012-6-15 18:25 | 显示全部楼层
#include <reg51.H>
#define uchar unsigned char
#define uint unsigned int
uchar yid,h;
uint zimuo;
uchar code hanzi[];
uchar i,d=10;
uchar BUFF[4];
void in_data(void);
void rxd_data(void);
void scan();
void sbuf_out();
sbit key=P1^7;
sbit key1=P3^7;
sbit key2=P3^6;
uchar code table[]={
0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,
0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x40,0x80,0x40,0x00,0x7F,0x00,0x00,/*"电",0*/
0x10,0x00,0x10,0x00,0xF8,0x7F,0x08,0x00,0x04,0x00,0xF2,0x1F,0x00,0x00,0xF8,0x0F,
0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x08,0x00,0x50,0x00,0x50,0x00,0x60,0x00,0x40,/*"气",1*/
0x00,0x00,0xFC,0x3F,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFF,0x7F,0x00,0x00,0x00,0x00,/*"工",2*/
0xB0,0x1F,0x8E,0x10,0x88,0x10,0x88,0x10,0xBF,0x10,0x88,0x1F,0x0C,0x00,0xDC,0x3F,
0x2A,0x02,0x0A,0x02,0xC9,0x3F,0x08,0x02,0x08,0x02,0x08,0x02,0xE8,0x7F,0x08,0x00,/*"程",3*/};
void delay1s(unsigned int count)  //软件延时
{
for(;count>0;count--){;}
}
void main(void)
{
yid=0;
zimuo=0;
while(1)
{
while(yid<16)
    {
scan();
   for(i=0;i<d;i++)
     {
      sbuf_out();
      }
     yid++;
}
  yid=0;
     zimuo=zimuo+32;
     if(zimuo>=96)
     zimuo=0;
}
}
void sbuf_out()
{
   for(h=0;h<16;h++)
{
    in_data();
    rxd_data();
    P1=0x7f;
    key=1;
    P1=h;
}
}
void in_data(void)
{
   char s;
   for(s=1;s>=0;s--)
{
    BUFF[2*s+1]=table[zimuo+1+32*s+2*h];
    BUFF[2*s]=table[zimuo+32*s+2*h];
}
}
void rxd_data(void)
{
   char s;
   uchar inc,tempyid,temp;
   if(yid<8)
   inc=0;
   else
   inc=1;
for(s=0+inc;s<2+inc;s++)
{
   if(yid<8)
   tempyid=yid;
   else
   tempyid=yid-8;
   temp=(BUFF<<tempyid)|(BUFF[s+1]>>(8-tempyid));//右移算法。如果改成temp=(BUFF>>tempyid)|(BUFF[s+1]<<(8-tempyid));//    左移一切显示正常。
SBUF=temp;while(!TI);
TI=0;
}
}
void scan()
{
    if(key1==0)
  {delay1s(20);
  if(key1==0)d--;
  while(!key1);
}
   if(key2==0)
  {delay1s(20);
  if(key2==0)d++;
  while(!key2);
}
}
回复

使用道具 举报

发表于 2012-6-15 18:56 | 显示全部楼层
上个图片
是什么现象
回复

使用道具 举报

发表于 2012-6-15 19:17 | 显示全部楼层
16点阵右移问题,速度可调整,但是右移效果不正常。请各路高手指教。
xzp0209 发表于 2012-6-15 09:09 https://www.yleee.com.cn/images/common/back.gif



    提问题的会员最好是把具体情况介绍详细一点,方便知道的朋友给你参考意见。
回复

使用道具 举报

 楼主| 发表于 2012-6-15 19:49 | 显示全部楼层
回复 5# shqi2003

出现的问题是:字在右移时,错位了,见下图。
    [img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/28741867/QQ/WinTemp/RichOle/]UJQRYPQR60Z[HMWSS(O](Q.jpg[/img]
http://file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/28741867/QQ/WinTemp/RichOle/QH1GKM4FB9TC)%7BR(S7)0WB4.jpg
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/28741867/QQ/WinTemp/RichOle/_6I$(O0G3WSFIL0D@K(V[NX.jpg[/img]
回复

使用道具 举报

 楼主| 发表于 2012-6-15 19:56 | 显示全部楼层
问题见图,请高手帮忙看看
回复

使用道具 举报

 楼主| 发表于 2012-6-15 20:01 | 显示全部楼层
]]Y7){A6O~[K`(5V4D6NW.jpg ]}_W25CA)SQNU}2Z2ZCBD(5.jpg AH2N9TWRTMX`4{U9W`60389.jpg H}REFN`W9~$`)@77X{YV(79.jpg
I`2ERP557K[9$0R[6J53$AC.jpg
回复

使用道具 举报

发表于 2012-6-15 20:59 | 显示全部楼层
我以前有一个右移程序,我电脑里面找找看,找到后发上来。
回复

使用道具 举报

 楼主| 发表于 2012-6-15 21:26 | 显示全部楼层
谢谢
回复

使用道具 举报

本版积分规则

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

GMT+8, 2026-3-13 22:40 , Processed in 0.035489 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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