0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
//改显示内容以下两行别改
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};
/*主函数*/
void
main()
{
uchar i,j;
uint m=0; //m是从字模数组里向后取数据时的计数器,用以改变显示文字的内容,及滚动显示效果
SCON=0;
//初始化串口为工作方式0(同步通信方式,TxD输出同步脉冲)
lie=0x7fff; //列选标志初始化
while(1)
//重复循环显示
{
for(j=0;j<10;j++) //j用来控制屏上1帧显示内容停留的时间,即用来控制滚动速度
{
for(i=1;i<=31;i+=2)
{
P0=0xff; //先关显示,以免164内数据移动过程中在屏上产生不良影响,大家可以把这两句去掉比较下显示效果
P2=0xff;
SBUF=text[i+m]; //从串口发送字模数据(为什么要先发后一个数据,看下电路应该会明白吧:)
while(TI==0); //等待发送完毕
TI=0;
SBUF=text[i+m-1]; //从串口发送数据,补全整一列数据
while(TI==0);
TI=0;
P0=lie%256; //选中要显示的那列,同时等于打开了那列的显示
P2=lie/256;
delay(); //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象,略知生理的人应该都知道吧。
lie=_iror_(lie,1); //列选标志移位,准备用来选中下一列
}
} //返回显示下一列,直到16列都显示完成
m+=2; //显示内容向后移一列
if(m>1024) //这个数据为你的字模数组的大小-32,我的是1056-32=1024
m=0;
}
}
/*延时子程序*/
void delay()
{
uint n;
for(n=0;n<90;n++)
{;}
}
本文关键字:单片机 51单片机,单片机-工控设备 - 51单片机
上一篇:单片机脉搏测量仪的制作