📄 text2.c
字号:
#include <AT89x51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code hanzi[18][32];
uchar code hanzi2[];
uchar code timer[12][16];
uchar code sw[];
void DelayMs(void);
void Send_data(unsigned char *d); /*串口发送一行*/
/******************************************/
sbit resget=P1^3; //时钟复位
sbit key_moda=P1^0; //模式转换
sbit key_up=P1^1; //时钟加
sbit key_Down=P1^2; //时钟减
sbit T_CLK=P1^7; //DS1302引脚连接
sbit T_IO =P1^6;
sbit T_RST=P1^5;
sbit ACC0=ACC^0; //1bit数据存储位
sbit ACC7=ACC^7;
uchar starts_time[7]={0x00,0x10,0x22,0x13,0x01,0x05,0x06}; //初始化后设置
uchar Move,Speed,line,f,id; //时间变量
uint zimuo,ss;
uchar BUFF[10]; // 缓存
void in_data(); // 调整移动数据
void rxd_data(); // 串口发送移动数据
/*主函数*/
void main()
{
Move=0;
zimuo=0;
SCON=0; //初始化串口为工作方式0(同步通信方式,TxD输出同步脉冲)
while(zimuo<1088)
{
while(Move<16) //数据移位。
{
for(Speed=0;Speed<5;Speed++) //移动速度
{
for(line=0;line<16;line++)
{
in_data(); //调整移动数据
rxd_data();
P2_7=1; //锁存为高,595锁存信号
P2=sw[line]; //输出行信号
DelayMs(); //延时,等待一段时间,让这列显示的内容在人眼内产生“视觉暂留”现象。*/
P2=0x7f; //关闭显示。
}
}
Move++; //移动一步
}
Move=0;
zimuo=zimuo+32;
}
zimuo=0;
}
/**********************************************************/
void in_data(void) //调整数据
{
char s;
for(s=4;s>=0;s--) //i为向后先择字节计数器,zimuoo为向后先字计数器
{
BUFF[2*s+1]=hanzi2[zimuo+32*s+2*line]; //把第一个字模的第一个字节放入BUFF0中,第二个字模和第一个字节放入BUFF2中
BUFF[2*s]=hanzi2[zimuo+1+32*s+2*line]; //把第一个字模的第二个字节放入BUFF1中,第二个字模的第二个字节放入BUFF3中
}
}
/***********************发送移动的数据****************************/
void rxd_data(void) //串行发送数据
{
uchar s;
uchar inc,tempyid,temp;
if(Move<8)
inc=0;
else
inc=1;
for(s=0+inc;s<8+inc;s++) //发送8字节数据
{
if(Move<8)
tempyid=Move;
else
tempyid=Move-8;
temp=(BUFF[s]>>tempyid)|(BUFF[s+1]<<(8-tempyid)); //h1左移tempyid位后和h2右移8-tempyid相或,取出移位后的数据。
SBUF=temp; //把BUFF中的字节从大到小移位相或后发送输出。
while(TI==0); //等待发送完毕
TI=0;
}
}
/**************************延时***********************/
void DelayMs(void)
{
uchar TempCyc;
for(TempCyc=100;TempCyc>1;TempCyc--)
{;}
}
uchar code sw[16]={0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,
0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e}; /*16行段码*/
uchar code hanzi2[]={/*移动显示汉字字模,*/
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,
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,
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,
/*-- 文字: 欢 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFE,0xFF,0xFE,0xFF,0xFE,0xC0,0x80,0x5F,0xDF,0x5E,0xED,0xAD,0xFD,0xEB,0xFD,0xF7,
0xFD,0xE7,0xF9,0xE7,0xFA,0xDB,0xF6,0xDB,0xE7,0x7D,0x8F,0x9E,0xDF,0xE3,0xFF,0xFF,
/*-- 文字: 迎 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFD,0xFE,0x7B,0xC1,0x93,0xDD,0xDB,0xDD,0xDF,0xDD,0xDF,0xDD,0xD8,0xDD,0xDB,
0xDD,0x5B,0xD5,0x9B,0xED,0xDB,0xFD,0xFB,0xFD,0xFB,0xFF,0xF5,0x80,0x0E,0xFF,0xFF,
/*-- 文字: 您 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xEF,0xFF,0x6F,0x80,0x77,0xDF,0xB7,0xFD,0xD3,0xF5,0xB3,0xED,0xB5,0xDD,0xD6,
0xDD,0x77,0xFE,0xF7,0xFF,0xFF,0xDF,0x6B,0xB6,0xEB,0xB7,0xE9,0xF0,0x1F,0xFF,0xFF,
/*-- 文字: 关 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFB,0xEF,0xF3,0xDF,0xFB,0x9F,0xED,0xDF,0xC0,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
0x80,0x00,0xFF,0x7F,0xFE,0xBF,0xFD,0xDF,0xFB,0xEF,0xF3,0xF7,0xC7,0xFB,0xEF,0xFD,
/*-- 文字: 临 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0x7F,0xFE,0x6F,0xFF,0x6F,0x80,0x6D,0xFB,0xAD,0xF7,0xAD,0xF7,0xCD,0xDF,0x6D,
0x80,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xDB,0x6D,0xC0,0x6F,0xDF,0x6F,0xFF,0xFF,
/*-- 文字: 单 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFB,0xEF,0xF3,0x9F,0xFD,0xDF,0xE0,0x03,0xEF,0x7B,0xE0,0x03,0xEF,0x7B,0xEF,0x7B,
0xE0,0x03,0xEF,0x7B,0xFF,0x7F,0x80,0x00,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,
/*-- 文字: 片 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFD,0xFF,0xFD,0xF7,0xFD,0xF7,0xDD,0xF7,0x80,0x07,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,
0xF0,0x07,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xFB,0xF7,0xFB,0xF7,0xFD,0xF7,0xFE,
/*-- 文字: 机 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xF7,0xE0,0xF7,0xEE,0xF7,0xEE,0x80,0xEE,0xF7,0xEE,0xF7,0xEE,0xE3,0xEE,0xD3,
0xEE,0xD5,0xEE,0xF5,0xEF,0x76,0xAF,0x77,0xAF,0xB7,0xAF,0xB7,0x9F,0xD7,0xFF,0xF7,
/*-- 文字: D --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE0,0xFF,0xDD,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,
0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xDD,0xFF,0xE0,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: I --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC1,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xC1,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: Y --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x88,0xFF,0xDD,0xFF,0xDD,0xFF,0xEB,0xFF,0xEB,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xE3,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: 网 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xC0,0x01,0xDF,0xFD,0xDF,0x7D,0xD7,0x75,0xC6,0xAD,0xD5,0xDD,0xDB,0xDD,
0xDB,0xAD,0xD5,0xAD,0xD6,0x75,0xDF,0x79,0xDF,0xFD,0xC7,0xFD,0xEF,0xFD,0xFF,0xFF,
/*-- 文字: 站 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFB,0xFF,0xFB,0xFB,0xFB,0xF7,0xFB,0xF7,0x83,0x80,0xFB,0xDF,0xFB,0xDD,0xFB,0xDB,
0xC0,0x6B,0xDF,0x6B,0xDF,0x77,0xDF,0x43,0xDF,0x7C,0xC0,0x7F,0xDF,0x7F,0xFF,0xFF,
/*-- 文字: , --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFF,0xF3,0xFF,0xF7,0xFF,0xFB,0xFF,0xFF,
/*-- 文字: w --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x14,
0xFF,0xB6,0xFF,0xB6,0xFF,0xAA,0xFF,0xAA,0xFF,0xDD,0xFF,0xDD,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: w --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x14,
0xFF,0xB6,0xFF,0xB6,0xFF,0xAA,0xFF,0xAA,0xFF,0xDD,0xFF,0xDD,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: w --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x14,
0xFF,0xB6,0xFF,0xB6,0xFF,0xAA,0xFF,0xAA,0xFF,0xDD,0xFF,0xDD,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: . --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
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,0xF9,0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: 8 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xDB,
0xFF,0xE7,0xFF,0xDB,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: 9 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE7,0xFF,0xDB,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,
0xFF,0x9B,0xFF,0xA7,0xFF,0xBF,0xFF,0xBF,0xFF,0xDB,0xFF,0xE3,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: s --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x83,
0xFF,0xBD,0xFF,0xFD,0xFF,0xC3,0xFF,0xBF,0xFF,0xBD,0xFF,0xC1,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: 5 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xE5,
0xFF,0xD9,0xFF,0xBF,0xFF,0xBF,0xFF,0xBD,0xFF,0xDD,0xFF,0xE3,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: 1 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xFF,0xF1,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xC1,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: d --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x9F,0xFF,0xBF,0xFF,0xBF,0xFF,0xBF,0xFF,0x87,
0xFF,0xBB,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0x9B,0xFF,0x27,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: i --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF3,0xFF,0xF3,0xFF,0xFF,0xFF,0xFF,0xFF,0xF1,
0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF7,0xFF,0xC1,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: y --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,
0xFF,0xBD,0xFF,0xDB,0xFF,0xDB,0xFF,0xEB,0xFF,0xE7,0xFF,0xF7,0xFF,0xF7,0xFF,0xF8,
/*-- 文字: . --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
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,0xF9,0xFF,0xF9,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: c --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC7,
0xFF,0xBB,0xFF,0xFD,0xFF,0xFD,0xFF,0xFD,0xFF,0xBB,0xFF,0xC7,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: o --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,
0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xBD,0xFF,0xC3,0xFF,0xFF,0xFF,0xFF,
/*-- 文字: m --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x80,
0xFF,0x6D,0xFF,0x6D,0xFF,0x6D,0xFF,0x6D,0xFF,0x6D,0xFF,0x48,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,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,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
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -