16*64点阵程序及滚动效果视频 - 硬件/嵌入开发
来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:45:54
#include
#include //1MS延时
#define uchar unsigned char
#define uint unsigned int
#define hang P1 //行扫描接在P1口
sbit ds=P0^0;
sbit clk=P0^1;
sbit mr=P0^2;
sbit g1=P0^3;
sbit stcp=P0^4;
uint counter;
uchar flag;
uchar code display[][32]={
/*-- 文字: 好 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,
/*-- 文字: 好 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,
/*-- 文字: 学 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,
/*-- 文字: 习 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x3F,0xFC,0x00,0x04,0x08,0x04,0x04,0x04,0x03,0x04,0x01,0x14,0x00,0x64,
0x01,0x84,0x06,0x04,0x38,0x04,0x10,0x04,0x00,0x04,0x00,0x24,0x00,0x14,0x00,0x00,
/*-- 文字: 天 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,
/*-- 文字: 天 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,
/*-- 文字: 向 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0x00,0x04,0x00,0x08,0x04,0x7F,0xFE,0x40,0x04,0x40,0x24,0x4F,0xF4,0x48,0x24,
0x48,0x24,0x48,0x24,0x48,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x40,0x14,0x40,0x08,
/*-- 文字: 上 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x10,0x01,0xF8,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00};
void write_595(uchar shuju) //向595写一个字节的数据
{
uchar i;
for(i=0;i<8;i++)
{
ds=(~shuju)&0x01;
clk=1;
clk=0;
shuju=shuju>>1;
}
}
void main() //主函数
{
uchar i,j,k;
g1=0; //154使能
EA=1; //开总中断
TMOD=0x01; //定时器0工作方式0
ET0=1; //定时器0使能
TH0=(65535-50000)/256; //定时器0设置初值
TL0=(65536-50000)%256;
while(1)
{
for(i=0;i<16;i++) //字从下往上滚动出现
{
k=1;
for(j=i+1;j>0;j--)
{
write_595(display[7][k]);
write_595(display[7][k-1]);
write_595(display[6][k]);
write_595(display[6][k-1]);
write_595(display[5][k]);
write_595(display[5][k-1]);
write_595(display[4][k]);
write_595(display[4][k-1]);
k+=2;
hang=16-j;
stcp=1;stcp=0;
}
delay_ms(20);
}
TR0=1;flag=1;
while(flag) //停留一秒
{
uchar j;
for(j=0;j<16;j++)
{
write_595(display[7][j*2+1]);
write_595(display[7][j*2]);
write_595(display[6][j*2+1]);
write_595(display[6][j*2]);
write_595(display[5][j*2+1]);
write_595(display[5][j*2]);
write_595(display[4][j*2+1]);
write_595(display[4][j*2]);
hang=j;
stcp=1;stcp=0;
}
}
TR0=0;
for(i=16;i>0;i--) //字滚动出显示区
{
k=31;
for(j=i-1;j>0;j--)
{
write_595(display[7][k]);
write_595(display[7][k-1]);
write_595(display[6][k]);
write_595(display[6][k-1]);
write_595(display[5][k]);
write_595(display[5][k-1]);
write_595(display[4][k]);
write_595(display[4][k-1]);
k-=2;
hang=j;
stcp=1;stcp=0;
}
delay_ms(20);
}
for(i=0;i<16;i++) //下四个字滚动出现在显示区
{
k=1;
for(j=i+1;j>0;j--)
{
write_595(display[3][k]);
write_595(display[3][k-1]);
write_595(display[2][k]);
write_595(display[2][k-1]);
write_595(display[1][k]);
write_595(display[1][k-1]);
write_595(display[0][k]);
write_595(display[0][k-1]);
k+=2;
hang=16-j;
stcp=1;stcp=0;
}
delay_ms(20);
}
TR0=1;flag=1;
while(flag) //停留一秒
{
uchar j;
for(j=0;j<16;j++)
{
write_595(display[3][j*2+1]);
write_595(display[3][j*2]);
write_595(display[2][j*2+1]);
write_595(display[2][j*2]);
write_595(display[1][j*2+1]);
write_595(display[1][j*2]);
write_595(display[0][j*2+1]);
write_595(display[0][j*2]);
hang=j;
stcp=1;stcp=0;
}
}
TR0=0;
for(i=16;i>0;i--) //滚出显示区
{
k=31;
for(j=i-1;j>0;j--)
{
write_595(display[3][k]);
write_595(display[3][k-1]);
write_595(display[2][k]);
write_595(display[2][k-1]);
write_595(display[1][k]);
write_595(display[1][k-1]);
write_595(display[0][k]);
write_595(display[0][k-1]);
k-=2;
hang=j;
stcp=1;stcp=0;
}
delay_ms(20);
}
}
}
void timer0() interrupt 1 //中断函数
{
counter++;
if(counter==20) //1秒设置
{
counter=0;
flag=0;
}
TH0=(65535-50000)/256;
TL0=(65536-50000)%256;
}
#include
#define uchar unsigned char
#define uint unsigned int
#define hang P1 //行扫描接在P1口
sbit ds=P0^0;
sbit clk=P0^1;
sbit mr=P0^2;
sbit g1=P0^3;
sbit stcp=P0^4;
uint counter;
uchar flag;
uchar code display[][32]={
/*-- 文字: 好 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,
/*-- 文字: 好 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,
0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,
/*-- 文字: 学 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,
0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,
/*-- 文字: 习 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x00,0x3F,0xFC,0x00,0x04,0x08,0x04,0x04,0x04,0x03,0x04,0x01,0x14,0x00,0x64,
0x01,0x84,0x06,0x04,0x38,0x04,0x10,0x04,0x00,0x04,0x00,0x24,0x00,0x14,0x00,0x00,
/*-- 文字: 天 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,
/*-- 文字: 天 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,
0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,
/*-- 文字: 向 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x02,0x00,0x04,0x00,0x08,0x04,0x7F,0xFE,0x40,0x04,0x40,0x24,0x4F,0xF4,0x48,0x24,
0x48,0x24,0x48,0x24,0x48,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x40,0x14,0x40,0x08,
/*-- 文字: 上 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x10,0x01,0xF8,0x01,0x00,0x01,0x00,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00};
void write_595(uchar shuju) //向595写一个字节的数据
{
uchar i;
for(i=0;i<8;i++)
{
ds=(~shuju)&0x01;
clk=1;
clk=0;
shuju=shuju>>1;
}
}
void main() //主函数
{
uchar i,j,k;
g1=0; //154使能
EA=1; //开总中断
TMOD=0x01; //定时器0工作方式0
ET0=1; //定时器0使能
TH0=(65535-50000)/256; //定时器0设置初值
TL0=(65536-50000)%256;
while(1)
{
for(i=0;i<16;i++) //字从下往上滚动出现
{
k=1;
for(j=i+1;j>0;j--)
{
write_595(display[7][k]);
write_595(display[7][k-1]);
write_595(display[6][k]);
write_595(display[6][k-1]);
write_595(display[5][k]);
write_595(display[5][k-1]);
write_595(display[4][k]);
write_595(display[4][k-1]);
k+=2;
hang=16-j;
stcp=1;stcp=0;
}
delay_ms(20);
}
TR0=1;flag=1;
while(flag) //停留一秒
{
uchar j;
for(j=0;j<16;j++)
{
write_595(display[7][j*2+1]);
write_595(display[7][j*2]);
write_595(display[6][j*2+1]);
write_595(display[6][j*2]);
write_595(display[5][j*2+1]);
write_595(display[5][j*2]);
write_595(display[4][j*2+1]);
write_595(display[4][j*2]);
hang=j;
stcp=1;stcp=0;
}
}
TR0=0;
for(i=16;i>0;i--) //字滚动出显示区
{
k=31;
for(j=i-1;j>0;j--)
{
write_595(display[7][k]);
write_595(display[7][k-1]);
write_595(display[6][k]);
write_595(display[6][k-1]);
write_595(display[5][k]);
write_595(display[5][k-1]);
write_595(display[4][k]);
write_595(display[4][k-1]);
k-=2;
hang=j;
stcp=1;stcp=0;
}
delay_ms(20);
}
for(i=0;i<16;i++) //下四个字滚动出现在显示区
{
k=1;
for(j=i+1;j>0;j--)
{
write_595(display[3][k]);
write_595(display[3][k-1]);
write_595(display[2][k]);
write_595(display[2][k-1]);
write_595(display[1][k]);
write_595(display[1][k-1]);
write_595(display[0][k]);
write_595(display[0][k-1]);
k+=2;
hang=16-j;
stcp=1;stcp=0;
}
delay_ms(20);
}
TR0=1;flag=1;
while(flag) //停留一秒
{
uchar j;
for(j=0;j<16;j++)
{
write_595(display[3][j*2+1]);
write_595(display[3][j*2]);
write_595(display[2][j*2+1]);
write_595(display[2][j*2]);
write_595(display[1][j*2+1]);
write_595(display[1][j*2]);
write_595(display[0][j*2+1]);
write_595(display[0][j*2]);
hang=j;
stcp=1;stcp=0;
}
}
TR0=0;
for(i=16;i>0;i--) //滚出显示区
{
k=31;
for(j=i-1;j>0;j--)
{
write_595(display[3][k]);
write_595(display[3][k-1]);
write_595(display[2][k]);
write_595(display[2][k-1]);
write_595(display[1][k]);
write_595(display[1][k-1]);
write_595(display[0][k]);
write_595(display[0][k-1]);
k-=2;
hang=j;
stcp=1;stcp=0;
}
delay_ms(20);
}
}
}
void timer0() interrupt 1 //中断函数
{
counter++;
if(counter==20) //1秒设置
{
counter=0;
flag=0;
}
TH0=(65535-50000)/256;
TL0=(65536-50000)%256;
}
16*64点阵程序及滚动效果视频 - 硬件/嵌入开发
制作及嵌入视频字幕
制作及嵌入视频字幕
制作及嵌入视频字幕
制作及嵌入视频字幕!
制作及嵌入视频字幕!
急!!!关于利用的问题!! - 硬件/嵌入开发 / 无线
初学嵌入式开发ARM的学习方法 - 硬件/嵌入开发 / 硬件设计
抽丝及点阵效果滤镜DitherBox_PS风图像处理网
请教一下16*64点阵屏的程序问题 - 『 单片机论坛 』 - Tony嵌入式论坛 Ton...
请教各位达人..16*64点阵滚屏程序怎样写? - 新手园地 - 21IC电子工程师社区
利用Photoshop自带滤镜做抽丝及点阵等效果
界面设计、交互设计及程序开发(一)
界面设计、交互设计及程序开发(二)
硬件开发准则
硬件开发准则---swaking
在RCP程序中嵌入Word文档
Photoshop滤镜打造漂亮抽丝和点阵效果
滚动的图片效果&代码
图片滚动效果的制作
滚动的图片效果&代码
关于滚动条的开发
常用硬件驱动及硬件工具下载
开发wap程序必备