📄 cmain.c
字号:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit outen = P1^7;
sbit latch = P1^6;
//zero
uchar code zero[12][2]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
//请
uchar code qing[12][2]=
{
0x41,0x00,0x2F,0xE0,0x01,0x00,0x0F,0xE0,
0xC1,0x00,0x4F,0xE0,0x44,0x40,0x47,0xC0,
0x54,0x40,0x67,0xC0,0x44,0x40,0x00,0x00
};
//保
uchar code bao[12][2]=
{
0x2F,0xC0,0x28,0x40,0x48,0x40,0x4F,0xC0,
0xC9,0x40,0x41,0x00,0x5F,0xE0,0x43,0x00,
0x45,0x80,0x49,0x40,0x51,0x20,0x00,0x00
};
//持
uchar code chi[12][2]=
{
0x21,0x00,0x2F,0xE0,0xF1,0x00,0x21,0x00,
0x2F,0xE0,0x30,0x80,0xEF,0xE0,0x28,0x80,
0x24,0x80,0x20,0x80,0xE3,0x80,0x00,0x00
};
//车
uchar code che[12][2]=
{
0x08,0x00,0xFF,0xE0,0x10,0x00,0x14,0x00,
0x24,0x00,0x7F,0xC0,0x04,0x00,0x04,0x00,
0xFF,0xE0,0x04,0x00,0x04,0x00,0x00,0x00
};
//厢
uchar code xiang[12][2]=
{
0x7F,0xE0,0x40,0x00,0x4B,0xC0,0x7E,0x40,
0x4B,0xC0,0x4A,0x40,0x5E,0x40,0x6B,0xC0,
0x4A,0x40,0x8B,0xC0,0x8A,0x40,0x00,0x00
};
//内
uchar code nei[12][2]=
{
0x04,0x00,0x04,0x00,0x7F,0xC0,0x44,0x40,
0x44,0x40,0x4A,0x40,0x49,0x40,0x51,0x40,
0x60,0x40,0x40,0x40,0x41,0xC0,0x00,0x00
};
//整
uchar code zheng[12][2]=
{
0x11,0x00,0xFD,0xE0,0x57,0x40,0x7D,0x40,
0x34,0x80,0x51,0x40,0xBF,0xA0,0x04,0x00,
0x27,0xC0,0x24,0x00,0xFF,0xE0,0x00,0x00
};
//洁
uchar code jie[12][2]=
{
0x41,0x00,0x21,0x00,0x1F,0xE0,0x81,0x00,
0x51,0x00,0x2F,0xE0,0x20,0x00,0x4F,0xC0,
0xC8,0x40,0x48,0x40,0x4F,0xC0,0x00,0x00
};
//,
uchar code dh[12][2]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,
0x0C,0x00,0x18,0x00,0x00,0x00,0x00,0x00
};
//谢
uchar code xie[12][2]=
{
0x84,0x40,0x5E,0x40,0x12,0x40,0xDF,0xE0,
0x52,0x40,0x5F,0x40,0x52,0xC0,0x5E,0x40,
0x6A,0x40,0x52,0x40,0x26,0xC0,0x00,0x00
};
//合
uchar code he[12][2]=
{
0x04,0x00,0x0A,0x00,0x11,0x00,0x20,0x80,
0xDF,0x60,0x00,0x00,0x00,0x00,0x3F,0x80,
0x20,0x80,0x20,0x80,0x3F,0x80,0x00,0x00
};
//作
uchar code zuo[12][2]=
{
0x12,0x00,0x12,0x00,0x27,0xE0,0x6A,0x00,
0xB2,0x00,0x23,0xC0,0x22,0x00,0x22,0x00,
0x23,0xE0,0x22,0x00,0x22,0x00,0x00,0x00
};
//祝
uchar code zhu[12][2]=
{
0x40,0x40,0x27,0xE0,0xF4,0x40,0x14,0x40,
0x24,0x40,0x67,0xC0,0xB2,0x80,0x22,0x80,
0x22,0xA0,0x24,0xA0,0x38,0xE0,0x00,0x00
};
//您
uchar code nin[12][2]=
{
0x24,0x00,0x27,0xE0,0x48,0x40,0xD5,0x80,
0x49,0x40,0x51,0x20,0x47,0x00,0x08,0x00,
0x54,0xC0,0x50,0xA0,0x9F,0x80,0x00,0x00
};
//旅
uchar code lui[12][2]=
{
0x42,0x00,0x22,0x00,0xFB,0xE0,0x44,0x00,
0x70,0xC0,0x57,0x00,0x55,0x40,0x55,0x80,
0x54,0x80,0x95,0x40,0xB6,0x20,0x00,0x00,
};
//途
uchar code tu[12][2]=
{
0x82,0x00,0x45,0x00,0x48,0x80,0x17,0x60,
0xC2,0x00,0x4F,0xC0,0x42,0x00,0x4A,0x80,
0x56,0x40,0xA0,0x00,0x9F,0xE0,0x00,0x00
};
//愉
uchar code yu[12][2]=
{
0x42,0x00,0x45,0x00,0x68,0x80,0xD7,0x60,
0xC0,0x00,0x4E,0xA0,0x4A,0xA0,0x4E,0xA0,
0x4A,0xA0,0x4E,0xA0,0x4A,0x60,0x00,0x00
};
//快
uchar code kuai[12][2]=
{
0x42,0x00,0x42,0x00,0x4F,0xC0,0xE2,0x40,
0xD2,0x40,0x42,0x40,0x5F,0xE0,0x42,0x00,
0x45,0x00,0x48,0x80,0x70,0x60,0x00,0x00
};
//!
uchar code well[12][2]=
{
0x00,0x00,0x30,0x00,0x78,0x00,0x78,0x00,
0x78,0x00,0x30,0x00,0x30,0x00,0x00,0x00,
0x30,0x00,0x30,0x00,0x00,0x00,0x00,0x00
};
//管
uchar code guan[12][2]=
{
0x21,0x00,0x7B,0xE0,0x94,0x80,0xFF,0xE0,
0x80,0x20,0x3F,0x00,0x21,0x00,0x3F,0x80,
0x20,0x80,0x20,0x80,0x3F,0x80,0x00,0x00
};
//好
uchar code hao[12][2]=
{
0x27,0xC0,0x20,0x40,0xF8,0x80,0x49,0x00,
0x49,0x00,0x4F,0xE0,0x91,0x00,0xD1,0x00,
0x31,0x00,0x49,0x00,0x83,0x00,0x00,0x00
};
//自
uchar code zi[12][2]=
{
0x04,0x00,0x3F,0xC0,0x20,0x40,0x20,0x40,
0x3F,0xC0,0x20,0x40,0x20,0x40,0x3F,0xC0,
0x20,0x40,0x20,0x40,0x3F,0xC0,0x00,0x00
};
//已
uchar code ji[12][2]=
{
0x00,0x80,0x7F,0xC0,0x00,0x80,0x40,0x80,
0x7F,0x80,0x40,0x00,0x40,0x00,0x40,0x20,
0x40,0x20,0x40,0x20,0x7F,0xE0,0x00,0x00
};
//的
uchar code de[12][2]=
{
0x11,0x00,0x21,0x00,0xFB,0xE0,0x8A,0x20,
0x8C,0x20,0x8A,0x20,0xF9,0x20,0x89,0x20,
0x88,0x20,0xF8,0x20,0x89,0xC0,0x00,0x00
};
//行
uchar code xing[12][2]={
0x2F,0xC0,0x20,0x00,0x40,0x00,0x9F,0xE0,
0x20,0x80,0x60,0x80,0xA0,0x80,0x20,0x80,
0x20,0x80,0x20,0x80,0x27,0x80,0x00,0x00
};
//李
uchar code li[12][2]={
0x04,0x00,0xFF,0xE0,0x0E,0x00,0x15,0x00,
0x24,0x80,0xDF,0x60,0x02,0x00,0x04,0x00,
0xFF,0xE0,0x04,0x00,0x1C,0x00,0x00,0x00
};
/*no_smoking*/
uchar code no_smoking[16][2]=
{
{0x0f,0xf0},{0x10,0x08},{0x30,0x44},{0x78,0x4a},
{0x9c,0x29},{0x8e,0x15},{0x87,0x0d},{0xbf,0xf5},
{0xbf,0xf5},{0x80,0xe1},{0x80,0x71},{0x80,0x39},
{0x40,0x1e},{0x20,0x0c},{0x10,0x08},{0x0f,0xf0}
};
//勿
uchar code wu4[12][2]={
0x10,0x00,0x10,0x40,0x3F,0xE0,0x49,0x40,
0x89,0x40,0x12,0x40,0x12,0x40,0x24,0x40,
0x48,0x40,0x10,0x40,0x63,0x80,0x00,0x00
};
//在
uchar code zai[12][2]={
0x08,0x00,0xFF,0xE0,0x08,0x00,0x12,0x00,
0x22,0x00,0x22,0x00,0x6F,0xC0,0xA2,0x00,
0x22,0x00,0x22,0x00,0x3F,0xE0,0x00,0x00
};
//吸
uchar code xi1[12][2]={
0x0F,0xC0,0xE4,0x80,0xA4,0x80,0xA5,0x00,
0xA5,0xC0,0xA4,0x40,0xEA,0x80,0xAA,0x80,
0x09,0x00,0x12,0x80,0x2C,0x60,0x00,0x00
};
//烟
uchar code yian[12][2]={
0x2F,0xE0,0x29,0x20,0x29,0x20,0xB9,0x20,
0xAF,0xE0,0x29,0x20,0x29,0x20,0x2A,0xA0,
0x58,0x20,0x4F,0xE0,0x88,0x20,0x00,0x00
};
uchar idata buffer[16][8];
uchar *pc[16];
void display(uint); //显示
void delay(uint); //延时
void move(void);
void carry();
void t_state(void);
void clean(void); //清空显存
void slogan(uchar m);
void LeftMove(uchar *p);
void UpMove(void);
void WordUpMove(void);
void LoadNoSmoking(uchar *p);
/***************************************/
/**************主程序开始***************/
/***************************************/
void main(void)
{
uchar i;
TMOD=0x11;
// TH0=TH1=TL0=TL1=0x00;
SCON=0x00;
EA=1;
ES=0;
while(1)
{
clean();
// carry();
display(20);
for(i=0;i<1;i++){
//禁烟标志
LoadNoSmoking(no_smoking[0]);
pc[0]=&zero[0][0];
slogan(1);
//请勿在车厢内吸烟。
pc[0]=&qing[0][0];pc[1]=&wu4[0][0];pc[2]=&zai[0][0];pc[3]=&che[0][0];pc[4]=&xiang[0][0];
pc[5]=&nei[0][0];pc[6]=&xi1[0][0];pc[7]=&yian[0][0];pc[8]=&zero[0][0];
slogan(9);
}
//谢谢合作。
pc[0]=&xie[0][0];pc[1]=&xie[0][0];pc[2]=&he[0][0];pc[3]=&zuo[0][0];
slogan(4);
//祝您旅途愉快!
pc[0]=&dh[0][0];pc[1]=&zhu[0][0];pc[2]=&nin[0][0];pc[3]=&lui[0][0];pc[4]=&tu[0][0];pc[5]=&yu[0][0];
pc[6]=&kuai[0][0];pc[7]=&well[0][0];
slogan(8);
//slogan(8);
pc[0]=&zero[0][0];
for(i=0;i<5;i++)
slogan(1);
//
}
}
/*###########子函数##########*/
/*
void timer0() interrupt 1 using 2{
ET0=0;
TR0=0;
}
void timer1() interrupt 3 using 3{
ET1=0;
TR1=0;
}
*/
void clean(void){
uchar i,j;
for(i=0;i<16;i++)
for(j=0;j<8;j++)
buffer[i][j]=0x00;
}
void slogan(uchar m){
uchar i;
for(i=0;i<m;i++)
LeftMove(pc[i]);
}
void delay(uint t){
int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
void display(uint t){
uint i;
uchar j,k,a;
uchar *disp;
for(i=0;i<t;i++){
a=0x80;
latch=0;
outen=1;
P0=0;
P2=0;
for(j=0;j<8;j++){
disp=buffer[j]+6;
for(k=0;k<7;k++){
SBUF=*disp--;
while(!TI){;}
TI=0;
}
latch=1;
//delay(1);
latch=0;
//delay(1);
P0=a;
outen=0;
delay(6);
a=a>>1;
//delay(2);
outen=1;
}
P0=0;
a=0x80;
for(j=0;j<8;j++){
disp=buffer[j+8]+6;
for(k=0;k<7;k++){
SBUF=*disp--;
while(!TI){;}
TI=0;
}
latch=1;
//delay(1);
latch=0;
//delay(1);
P2=a;
outen=0;
delay(6);
a=a>>1;
//delay(2);
outen=1;
}
}
}
void move(void){
uchar *m,i,j;
for(i=0;i<16;i++){
for(j=0;j<7;j++){
m=&buffer[i][j];
*m=*m<<1;
*m=*m|*(m+1)>>7;
}
buffer[i][7]=buffer[i][7]<<1;
}
}
/*==============
void carry(){
uchar i,j,*car=wc;
for(i=0;i<16;i++) //16行
for(j=0;j<4;j++) //4 byte
buffer[i][j+3]=*car++;
}
*////////////////////
void LeftMove(uchar *p){
uchar i;
buffer[0][7]=buffer[1][7]=buffer[14][7]=buffer[15][7]=0x00;
for(i=0;i<12;i++)
buffer[i+2][7]=*(p+2*i); //装载高8位
for(i=0;i<8;i++){ //左移8次,并显示
move();
display(1);
}
for(i=0;i<12;i++)
buffer[i+2][7]=*(p+1+2*i); //装载低4位
for(i=0;i<4;i++){ //左移4次,并显示
move();
display(1);
}
}
void LoadNoSmoking(uchar *p){
uchar i;
//buffer[0][7]=buffer[1][7]=buffer[14][7]=buffer[15][7]=0x00;//清除0、1、14、15行
//buffer[0][0]=buffer[1][0]=buffer[14][0]=buffer[15][0]=0x00;//清除号码
for(i=0;i<16;i++)
buffer[i][7]=*(p+2*i); //装载高8位
for(i=0;i<8;i++){ //左移8次,并显示
move();
display(1);
}
for(i=0;i<16;i++)
buffer[i][7]=*(p+1+2*i); //装载低4位
for(i=0;i<8;i++){ //左移8次,并显示
move();
display(1);
}
}
/*
void UpMove(void){
uchar i,j;
for(i=0;i<15;i++){
for(j=0;j<7;j++)
buffer[i][j]=buffer[i+1][j];
}
for(i=0;i<7;i++)
buffer[15][i]=0x00;
}
*/
/*
void WordUpMove(void){
uchar i,j;
buffer[15][0]=*pc[0];
display(3);
UpMove();
buffer[15][0]=*(pc[0]+1);
display(3);
UpMove();
for(i=0;i<12;i++){
buffer[15][0]=*(pc[0]+2+i);
for(j=0;j<2;j++){
buffer[15][1+3*j]=*(pc[1+2*j]+2*i);
buffer[15][2+3*j]=*(pc[1+2*j]+1+2*i)|(*(pc[2+2*j]+2*i)>>4);
buffer[15][3+3*j]=(*(pc[2+2*j]+2*i)<<4)|(*(pc[2+2*j]+1+2*i)>>4);
}
display(3);
UpMove();
}
//UpMove();
buffer[15][0]=*(pc[0]+14);
display(3);
UpMove();
buffer[15][0]=*(pc[0]+15);
display(150);
display(150);
//display(150);
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -