万马奔腾
发表于 2013-10-20 21:32:55
shiow1984 发表于 2013-10-20 20:19 static/image/common/back.gif
我已经研究出来了,这个datain 根本就没什么用,我也找不到接在哪里,但是成功了,我买的是一个16*64单 ...
滚动屏你研究出来了没有啊,我一直无解~
shiow1984
发表于 2013-10-20 21:51:34
万马奔腾 发表于 2013-10-20 21:32 static/image/common/back.gif
滚动屏你研究出来了没有啊,我一直无解~
这两天净研究这个东东了 刚点亮,显示静止的汉字了,还没研究滚动的,明天再研究吧
你到哪一步了?
shiow1984
发表于 2013-10-21 13:50:53
万马奔腾 发表于 2013-10-20 21:32 static/image/common/back.gif
滚动屏你研究出来了没有啊,我一直无解~
看看这个帖子,他这个能滚动, http://www.geek-workshop.com/forum.php?mod=viewthread&tid=4787
smartjay
发表于 2013-10-24 20:12:07
万马奔腾 发表于 2013-10-2 00:18 static/image/common/back.gif
01.for(row=0;row
我剛看懂ZZZ 所寫的16*16 單字驅動程式,
也經過測試其實第二段
for(row=0;row<16;row++){
for (int i=0;i<4;i++){//8片595
//硬件SPI发送8字节耗时:22US
spi_transfer(~(zzz));//硬件SPI
spi_transfer(~(zzz));//硬件SPI
}
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0xC0,0x02,0xE0,0x06,0x60,0x04,0x70,
0x0C,0x30,0x0F,0xF8,0x18,0x38,0x10,0x1C,0x30,0x1C,0xFC,0x3F,0x00,0x00,0x00,0x00, //A
這程式是掃描 16*1 及第16*2
把zzz[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0xC0,0x02,0xE0,0x06,0x60,0x04,0x70,
0x0C,0x30,0x0F,0xF8,0x18,0x38,0x10,0x1C,0x30,0x1C,0xFC,0x3F,0x00,0x00,0x00,0x00, //A
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0xC0,0x02,0xE0,0x06,0x60,0x04,0x70,
0x0C,0x30,0x0F,0xF8,0x18,0x38,0x10,0x1C,0x30,0x1C,0xFC,0x3F,0x00,0x00,0x00,0x00, //A
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0xC0,0x02,0xE0,0x06,0x60,0x04,0x70,
0x0C,0x30,0x0F,0xF8,0x18,0x38,0x10,0x1C,0x30,0x1C,0xFC,0x3F,0x00,0x00,0x00,0x00, //A
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x03,0xC0,0x02,0xE0,0x06,0x60,0x04,0x70,
0x0C,0x30,0x0F,0xF8,0x18,0x38,0x10,0x1C,0x30,0x1C,0xFC,0x3F,0x00,0x00,0x00,0x00 //A
}
而原始程式中是直接橫向掃64行,所以會造成錯位。
這樣應該你就懂了。
我最近專題也在做這個,關於滾動的部分還在研究...
共勉之:D
shiow1984
发表于 2013-11-29 21:40:16
smartjay 发表于 2013-10-24 20:12 static/image/common/back.gif
我剛看懂ZZZ 所寫的16*16 單字驅動程式,
也經過測試其實第二段
for(row=0;row
滚动研究的怎么样了?好像得先设置缓存,在缓存里操作移位,循环左移的方法是 temp=(a>>7|a<<1)
iceicon
发表于 2014-1-8 11:37:58
本帖最后由 iceicon 于 2014-1-8 11:39 编辑
问下楼主,用的硬件spi,下面这段代码是多余的吧?
void hc595senddata(byte data){// 高位在前反相(1亮0灭)
for (byte i=0; i<8;i++) {
digitalWrite(CLK,0);
if (data & 0x80) {
digitalWrite(R1, 0);
} else {
digitalWrite(R1, 1);
}
data=data<<1;
digitalWrite(CLK,1);
}
}然后我也把js给的51代码改到了arduino里面。单色左移的程序。digitalWrite(hc138en, 1);//关闭显示
hc138sacn(row); //换行
digitalWrite(STB, 0); //595刷新
digitalWrite(STB, 1);
delayMicroseconds(500) ; //节电用,
digitalWrite(hc138en, 0);//开启显示
delayMicroseconds(500) ;//刷新频率调,差不多60HZ,1/16间隔上面这段代码写的很好用,我也顺便加上去了
iceicon
发表于 2014-1-8 11:39:12
本帖最后由 iceicon 于 2014-1-8 20:28 编辑
int R1=7;
int STR=8;
int CLK=9;
int EN=2;
int dig0=3;
int dig2=4;
int dig4=5;
int dig8=6;
//int i,m;
unsigned char jj,j;
void setup()
{
pinMode(R1,OUTPUT);
pinMode(STR,OUTPUT);
pinMode(CLK,OUTPUT);
pinMode(EN,OUTPUT);
pinMode(dig0,OUTPUT);
pinMode(dig2,OUTPUT);
pinMode(dig4,OUTPUT);
pinMode(dig8,OUTPUT);
}
unsigned char zi[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//以上为空白显示,保证汉字从最右面开始滚出
/*煮 CD6F3 */
0x01,0x01,0x3F,0x01,0xFF,0x03,0x0F,0x38,0xCF,0x08,0x0F,0x00,0x24,0x22,0x42,0x00,
0x00,0x08,0xD8,0x24,0xFE,0x00,0xF0,0x10,0xF0,0x10,0xF0,0x10,0x88,0x44,0x62,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*燃 CC8BC */
0x22,0x22,0x23,0x2C,0xB4,0xAA,0xA5,0xA2,0x22,0x24,0x29,0x52,0x4D,0x45,0x88,0x00,
0x10,0x10,0xD8,0x54,0x90,0xFE,0x10,0x28,0x48,0x84,0x06,0x48,0x24,0xB6,0x92,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*箕 CBBFE */
0x20,0x3F,0x28,0x45,0x8A,0x7F,0x08,0x0F,0x08,0x0F,0x08,0x08,0xFF,0x04,0x18,0x60,
0x40,0x7E,0x90,0x08,0x20,0xFC,0x20,0xE0,0x20,0xE0,0x20,0x20,0xFE,0x40,0x30,0x0C,
/*, CA3AC */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*豆 CB6B9 */
0x00,0x7F,0x00,0x00,0x1F,0x10,0x10,0x10,0x1F,0x00,0x10,0x08,0x04,0xFF,0x00,0x00,
0x00,0xFE,0x00,0x00,0xF0,0x10,0x10,0x10,0xF0,0x20,0x30,0x20,0x40,0xFE,0x00,0x00,
/*在 CD4DA */
0x02,0x02,0x7F,0x04,0x04,0x08,0x18,0x17,0x30,0x50,0x90,0x10,0x10,0x17,0x10,0x00,
0x00,0x00,0xFE,0x00,0x00,0x40,0x40,0xFC,0x40,0x40,0x40,0x40,0x40,0xFE,0x00,0x00,
/*斧 CB8AB */
0x04,0x18,0x66,0x01,0x06,0x78,0x00,0x0F,0x08,0x0F,0x08,0x10,0x10,0x20,0xC0,0x00,
0x20,0x18,0x64,0x80,0x60,0x1E,0x68,0x80,0x00,0xFC,0x40,0x40,0x40,0x40,0x40,0x40,
/*中 CD6D0 */
0x01,0x01,0x21,0x3F,0x21,0x21,0x21,0x21,0x21,0x3F,0x21,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x08,0xFC,0x08,0x08,0x08,0x08,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,
/*泣 CC6FC */
0x20,0x10,0x10,0x07,0x88,0x48,0x50,0x12,0x22,0x21,0xE1,0x21,0x20,0x20,0x3F,0x20,
0x80,0x40,0x40,0xFC,0x00,0x08,0x08,0x10,0x10,0x10,0x20,0x20,0x40,0x40,0xFE,0x00,
/*; CA3BB */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*本 CB1BE */
0x01,0x01,0x01,0xFF,0x03,0x03,0x05,0x05,0x09,0x11,0x2F,0xC1,0x01,0x01,0x01,0x00,
0x00,0x00,0x00,0xFE,0x80,0x40,0x40,0x20,0x10,0x18,0xEE,0x04,0x00,0x00,0x00,0x00,
/*是 CCAC7 */
0x00,0x0F,0x08,0x0F,0x08,0x0F,0x00,0xFF,0x01,0x09,0x09,0x09,0x15,0x23,0x40,0x00,
0x00,0xF0,0x10,0xF0,0x10,0xF0,0x00,0xFE,0x00,0x00,0xF8,0x00,0x00,0x00,0xFE,0x00,
/*同 CCDAC */
0x00,0x7F,0x40,0x40,0x5F,0x40,0x40,0x4F,0x48,0x48,0x48,0x4F,0x48,0x40,0x40,0x40,
0x00,0xFC,0x04,0x04,0xF4,0x04,0x04,0xE4,0x24,0x24,0x24,0xE4,0x24,0x04,0x14,0x08,
/*根 CB8F9 */
0x10,0x11,0x11,0xFD,0x11,0x11,0x39,0x35,0x51,0x51,0x91,0x11,0x11,0x11,0x11,0x10,
0x00,0xF8,0x08,0x08,0xF8,0x08,0x08,0xF8,0x84,0x4C,0x30,0x10,0x48,0x8E,0x04,0x00,
/*生 CC9FA */
0x00,0x10,0x10,0x10,0x1F,0x20,0x20,0x40,0x9F,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,
0x80,0xC0,0x80,0x88,0xFC,0x80,0x80,0x88,0xFC,0x80,0x80,0x80,0x80,0x84,0xFE,0x00,
/*, CA3AC */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x10,0x20,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
/*相 CCFE0 */
0x10,0x10,0x10,0x10,0xFE,0x18,0x34,0x32,0x52,0x50,0x90,0x10,0x10,0x10,0x10,0x10,
0x00,0xFC,0x84,0x84,0x84,0xFC,0x84,0x84,0x84,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,
/*煎 CBCE5 */
0x08,0x04,0xFF,0x00,0x3E,0x22,0x3E,0x22,0x3E,0x22,0x2A,0x24,0x48,0x44,0xC6,0x82,
0x20,0x40,0xFE,0x00,0x08,0x48,0x48,0x48,0x48,0x48,0x28,0x10,0x88,0x44,0x66,0x22,
/*何 CBACE */
0x08,0x0C,0x1B,0x10,0x30,0x27,0x64,0xA4,0x24,0x27,0x24,0x20,0x20,0x20,0x20,0x00,
0x00,0x00,0xFE,0x08,0x08,0xC8,0x48,0x48,0x48,0xC8,0x48,0x08,0x08,0x28,0x10,0x00,
/*太 CCCAB */
0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x02,0x02,0x04,0x05,0x08,0x10,0x20,0x40,
0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x98,0xCC,0x86,0x04,
/*急 CBCB1 */
0x04,0x04,0x0F,0x08,0x10,0x2F,0x00,0x0F,0x00,0x0F,0x01,0x28,0x28,0x68,0x07,0x00,
0x00,0x00,0xE0,0x40,0x80,0xF0,0x10,0xF0,0x10,0xF0,0x00,0x84,0x92,0x12,0xF0,0x00,
/*。 CA1A3 */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x48,0x48,0x30,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
//以下为空白,保证所有汉字滚动到最左边
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void row1(int i)
{
digitalWrite(dig0,(i&0x01));
digitalWrite(dig2,(i&0x02));
digitalWrite(dig4,(i&0x04));
digitalWrite(dig8,(i&0x08));
}
void sendbyte(byte bbyte1)
{
for(byte i=0;i<8;i++)
{
digitalWrite(CLK,LOW);
if (bbyte1&0x80)
{
digitalWrite(R1,0);
}
else
{
digitalWrite(R1,1);
}
digitalWrite(CLK,HIGH);
bbyte1=bbyte1<<1;
}
}
void sendbyte2(byte bbyte1,byte m)
{
for(byte i=0;i<m;i++)
{
digitalWrite(CLK,LOW);
if (bbyte1&0x80)
{
digitalWrite(R1,0);
}
else
{
digitalWrite(R1,1);
}
digitalWrite(CLK,HIGH);
bbyte1=bbyte1<<1;
}
}
void loop()
{
unsigned char row,m,k;
for(row=0;row<16;row++)
{
k=jj;
for(m=0;m<8;m++)
{
sendbyte(zi);
}
sendbyte2(zi,j);
if(j==8)
{
j=0;
jj++;
if(jj>55)
{
jj=0;
}
}
digitalWrite(EN,1);
row1(row);
digitalWrite(STR,0);
digitalWrite(STR,1);
delayMicroseconds(100);
digitalWrite(EN,0);
delayMicroseconds(100);
}
j++;
}
这是我写的,用的软件spi。
iceicon
发表于 2014-1-8 20:22:51
滚屏代码是sendbyte2,是每次多读M个数据传过去,同理可以往右滚屏。翻页的代码51的有,还没转成arduino。同理往下网上也可以,翻页是改数组第二个,滚屏是第一个
shiow1984
发表于 2014-2-11 15:38:24
iceicon 发表于 2014-1-8 20:22 static/image/common/back.gif
滚屏代码是sendbyte2,是每次多读M个数据传过去,同理可以往右滚屏。翻页的代码51的有,还没转成arduino。同 ...
我后来用网上51版的改了一个滚屏的,不过总有问题,哪天传上了大家研究研究,问题是有几行字前面总多几个灯亮
shiow1984
发表于 2014-2-12 15:45:39
本帖最后由 shiow1984 于 2014-2-12 15:48 编辑
iceicon 发表于 2014-1-8 20:22 static/image/common/back.gif
滚屏代码是sendbyte2,是每次多读M个数据传过去,同理可以往右滚屏。翻页的代码51的有,还没转成arduino。同 ...
用你的代码试了下,正常,这是我的代码,有点小问题, 我用的是arduino uno R3的板子,帮忙看下可以吧,
这个问题,我在arduino版块新发表了个帖子,http://www.geek-workshop.com/thread-8598-1-1.html
#define RowA 2
#define RowB 3
#define RowC 4
#define RowD 5
//业界所采用的ABCD 08驱动模式
/*2 ABCD G1 G2 STB CLK 16 1 N N N EN R1 R2 N N 15*/
int hc138en=6; //EN口
//使用了硬件SPI,以下脚不能更改
#define R1 11 //数据出 MOSI
#define CLK 13 //时钟 SCK
#define STB 10 //595 刷新显示SS锁存 STB(LT)为锁存信号,CLK(CK)为时钟信号
#define DATAIN12 //数据入,读FLASH时有用MISO
char yid,h; //YID为移动计数器,H为行段计数器
int zimuo; //字模计数器
byte Zdate;//缓存
byte zzz[] =
{/*------------------------------------------------------------------------------
;源文件 / 文字 : 吉祥如意
;宽×高(像素): 64×16
------------------------------------------------------------------------------*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x08,0x7F,0xFC,0x00,0x00,
0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0,0x10,0x10,0x00,0x00,/*"吉",0*/
0x21,0x04,0x10,0x88,0x10,0x50,0xFD,0xFE,0x04,0x20,0x08,0x20,0x11,0xFC,0x38,0x20,
0x54,0x20,0x94,0x20,0x13,0xFE,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,/*"祥",1*/
0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x7E,0xFE,0x42,0x22,0x42,0x22,0x42,0x22,0x42,
0x22,0x42,0x24,0x42,0x14,0x42,0x08,0x42,0x14,0x7E,0x23,0x42,0x42,0x42,0x80,0x00,/*"如",2*/
0x01,0x00,0x3F,0xFC,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x1F,0xF0,0x12,0x10,
0x11,0x10,0x1F,0xF0,0x00,0x00,0x29,0x08,0x28,0x84,0x68,0x14,0x07,0xF0,0x00,0x00,/*"意",3*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
void spi_transfer(volatile char data)
{
SPDR = data; // Start the transmission
while (!(SPSR & (1<<SPIF))) // Wait the end of the transmission
{
};
//return SPDR; // return the received byte
}
void hc138sacn(byte r){//输出行线状态ABCD (A低,D高)
digitalWrite(RowA,(r & 0x01));
digitalWrite(RowB,(r & 0x02));
digitalWrite(RowC,(r & 0x04));
digitalWrite(RowD,(r & 0x08));
}
/**************************************************************************************
左移显示数据生成模块:(功能相当于有返回值的函数 )
***************************************************************************************/
char two_onebyteL(char h1,char h2)
{
char temp,tempcol; //输出变量;列移动位数变量。
if(yid<8)
tempcol=yid;
else
tempcol=yid-8;
temp=(h1<<tempcol)|(h2>>(8-tempcol)); //左移显示
temp=255-temp;
return temp; //将显示数据返回显示输出函数。
}
/*************************************************************************************
左移待显示数据调取函数
*************************************************************************************/
void loadoneline_L(void)
{
char s; //此处不要用uchar定义s
for(s=4;s>=0;s--) //s值为屏数加1(16*16为一屏)
{
Zdate=zzz;
Zdate=zzz; //左移显示
}
}
/**********************************************************************************
左移显示数据输出函数 : 为显示数据生成模块的h1、h2赋值并且输出合成后的新的h1、h2数据
***********************************************************************************/
void sendoneline_L(void)
{
char s;char inc;
if(yid<8)inc=0;else inc=1;
for(s=0+inc;s<8+inc;s++)
{ //左移显示:单屏s=1+,4屏s=7+,8屏s=15+;
spi_transfer(two_onebyteL(Zdate,Zdate));
}
}
int uiAllData = sizeof(zzz)-128;//定义显示字幕数据的长度 2048/32=64
void setup ()
{
pinMode(RowA, OUTPUT);
pinMode(RowB, OUTPUT);
pinMode(RowC, OUTPUT);
pinMode(RowD, OUTPUT); //138片选
pinMode(hc138en, OUTPUT); //138 使能
pinMode(R1, OUTPUT);//595 数据
pinMode(CLK, OUTPUT); //595 时钟
pinMode(STB, OUTPUT); //595 使能
pinMode(DATAIN, INPUT); //595 使能
//digitalWrite(hc138d, HIGH);
Serial.begin(19200);
SPCR = (1<<SPE)|(1<<MSTR);
delay(10);
}
void loop ()
{
char i,d=10;
yid=0;
h=0;
zimuo=0;
while(1)
{
while(yid<16) //数据移位。
{
for(i=0;i<d;i++) //移动速度
{
for(h=0;h<16;h++)
{
loadoneline_L();
sendoneline_L();
digitalWrite(hc138en, 1);//关闭显示
digitalWrite(STB, 0); //595刷新
digitalWrite(STB, 1);
hc138sacn(h); //换行
delayMicroseconds(50) ; //节电用,
digitalWrite(hc138en, 0);//开启显示
delayMicroseconds(500) ;//刷新频率调,差不多60HZ,1/16间隔
}
}
yid++; //移动一步
}
yid=0;
zimuo=zimuo+32; //后移一个字,
if(zimuo>= uiAllData ) //定义显示字幕数据的长度 2048/32=64 即显示完64个16*16大小的字符后 重新循环
zimuo=0;
}
}
Cupid
发表于 2014-2-12 17:04:45
信息备份。
wetnt
发表于 2014-2-12 21:30:37
高手佩服,保持一下……
非主流@
发表于 2014-4-28 09:22:32
硬件部分是怎样连接的唉 !!!
clumsybird
发表于 2014-7-16 00:02:43
ranqingfa 发表于 2013-6-29 17:21 static/image/common/back.gif
其实我开始时候就是arduino控制的,2560 ,竟然忘了,后来改了stc,stc有点吃力,但是安装方便
http://v.y ...
你的很棒,请问你是怎么实现滚屏的?能否给个滚屏的源代码?或者教教我。谢谢
ranqingfa
发表于 2014-7-16 09:15:09
clumsybird 发表于 2014-7-16 00:02 static/image/common/back.gif
你的很棒,请问你是怎么实现滚屏的?能否给个滚屏的源代码?或者教教我。谢谢
学生 ????