单片机/MCU论坛
直播中

叶的哭泣

10年用户 15经验值
擅长:控制/MCU
私信 关注
[文章]

16X16点阵横向扫描是如何实现左移的?

下面是一个静态现实的,,如何改为左移?附有图片#include
#include
#define uint unsigned int
#define uchar unsigned char
***it SH_CP = P3^0;
***it DS = P3^1;
***it ST_CP = P3^2;
uchar temp;
uchar code hang[]={
       
/*-- 好  --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x10,0x00,0x10,0xFC,0x10,0x04,0x10,0x08,0xFC,0x10,0x24,0x20,0x24,0x20,0x25,0xFE,
0x24,0x20,0x48,0x20,0x28,0x20,0x10,0x20,0x28,0x20,0x44,0x20,0x84,0xA0,0x00,0x40,

/*-- 好--*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x10,0x00,0x10,0xFC,0x10,0x04,0x10,0x08,0xFC,0x10,0x24,0x20,0x24,0x20,0x25,0xFE,
0x24,0x20,0x48,0x20,0x28,0x20,0x10,0x20,0x28,0x20,0x44,0x20,0x84,0xA0,0x00,0x40,

/*--  学 --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,

/*--  习  --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x00,0x00,0x7F,0xF8,0x00,0x08,0x00,0x08,0x08,0x08,0x04,0x08,0x02,0x08,0x02,0x08,
0x00,0x68,0x01,0x88,0x0E,0x08,0x70,0x08,0x20,0x08,0x00,0x08,0x00,0x50,0x00,0x20,

/*--  天 --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x00,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08,0xC0,0x06,

/*-- 天  --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x00,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08,0xC0,0x06,

/*--  向 --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x02,0x00,0x04,0x00,0x08,0x00,0x7F,0xFC,0x40,0x04,0x40,0x04,0x47,0xC4,0x44,0x44,
0x44,0x44,0x44,0x44,0x44,0x44,0x47,0xC4,0x44,0x44,0x40,0x04,0x40,0x14,0x40,0x08,

/*--  上 --*/
/*--  Trebuchet MS12;  ??????????:?x?=16x16   --*/
0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x03,0xF8,0x02,0x00,
0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0xFF,0xFE,0x00,0x00,

};
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void In_595()
{
        uchar i;
        for(i=0;i<8;i++)
        {
                 temp <<= 1;
                DS   = CY;
                SH_CP = 1;
                _nop_();
                _nop_();
                SH_CP = 0;
        }
}

void out_595()
{
        ST_CP = 0;
        _nop_();
        ST_CP = 1;
        _nop_();
        ST_CP = 0;
}

void out_5951()
{
        ST_CP = 0;
        _nop_();
        ST_CP = 0;
        _nop_();
        ST_CP = 0;
}

void main()
{
        uint i;
        while(1)
        {
                for(i=0;i<16;i++)
                        {
                                P2 = (P2+1)%16;
                                temp = hang[i*2];
                                In_595();
                                temp = hang[i*2+1];
                                In_595();
                                out_595();
                                delay(1);
                        }
        }
}

  • ($L$0]R@[I]T~E)}[$X0.png
已退回2积分

回帖(7)

阿信509

2014-10-19 16:33:07
如果能有个显示缓冲区就好了,直接用算法移位
举报

悟Θ岩

2014-10-23 18:33:48
动态扫描,算法位移。。
举报

叶的哭泣

2014-10-26 22:19:51
引用: 阿信509 发表于 2014-10-19 16:33
如果能有个显示缓冲区就好了,直接用算法移位

怎么个移位法? 求指教
举报

叶的哭泣

2014-10-26 22:20:34
引用: 悟Θ岩 发表于 2014-10-23 18:33
动态扫描,算法位移。。

怎么个算法移位? 求指教
举报

悟Θ岩

2014-10-30 23:58:15
位选++就好了。。
举报

苏鹏飞

2016-7-21 16:04:43
具体程序
举报

朱个

2017-1-14 18:11:18

好东西支持!学习学习!楼主给力!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分