串口发图片
#include
#define uint unsigned int
#define uchar unsigned char
uchar tu[3]={'^',' ','\n'};
uchar end[]={"10电子1 1000401129"}; //结束语
uchar code
image[648]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x0C,0x00,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x03,0xE0,0x00,0x00, 0x00,0x00,0x00,0x0C,0x40,0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x3C,0xC0,0x01,0x10, 0x00,0x00,0x00,0x00,0x01,0x7D,0x80,0x13,0x98,0x00,0x00,0x00,0x00,0x01,0xEF,0x80, 0x37,0x98,0x00,0x00,0x00,0x00,0x01,0xCF,0x00,0x31,0x18,0x00,0x00,0x00,0x00,0x01, 0x9E,0x00,0x23,0xB8,0x00,0x00,0x00,0x00,0x00,0xFC,0x00,0x27,0xF8,0x00,0x00,0x00, 0x00,0x00,0x0C,0x00,0x23,0x08,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x27,0xC8,0x00, 0x00,0x00,0x00,0x00,0x0C,0x00,0x2F,0x98,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x34, 0x18,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x04, 0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,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,0xC0,0x00,0x00,0x00, 0x00,0x00,0x01,0x00,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x0F,0xA0,0x00, 0x00,0x00,0x00,0x00,0xE1,0x00,0x05,0x20,0x00,0x00,0x00,0x00,0x00,0x61,0x00,0x04, 0xC0,0x00,0x00,0x00,0x00,0x01,0x81,0xE0,0x07,0x3C,0x00,0x00,0x00,0x00,0x02,0x87, 0xF0,0x0F,0xE0,0x00,0x00,0x00,0x00,0x03,0xDF,0x00,0x71,0xE0,0x00,0x00,0x00,0x00, 0x0F,0x9D,0x00,0xCF,0x30,0x00,0x00,0x00,0x00,0x07,0x81,0x00,0x09,0xA0,0x00,0x00, 0x00,0x00,0x00,0xA1,0x00,0x07,0x40,0x00,0x00,0x00,0x00,0x00,0xC1,0x00,0x07,0x80, 0x00,0x00,0x00,0x00,0x00,0xC1,0x00,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0xC1,0x00, 0x07,0x80,0x00,0x00,0x00,0x00,0x00,0x41,0x00,0x03,0xE0,0x00,0x00,0x00,0x00,0x00, 0x01,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
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 hang=1;//显示(72*72)
uchar mydata;
uint i=0;
uchar j=0;
uchar h=0;
char k=0;
//定时器中断函数
void timer(void) interrupt 1 using 1
{
TH0=(65536-50000)/256; //重装初值
TL0=(65536-50000)%256;
if( j==2) //延时1s(调试时不明显,改成了10s,j=10是为1s)
{
j=0;
if(i<648)
{
mydata=image[i++];
for(k=7;k>=0;k--)
{
if(((mydata>>k)&0x1)==0x1)
{
SBUF=tu[0]; //发送点
while(TI==0);
TI=0;
}
else
{
SBUF=tu[1]; //发送空格
while(TI==0);
TI=0;
}
}
if(hang==9) //换行
{
SBUF=tu[2];
while(TI==0);
TI=0;
hang=0;
}
hang++;
}
else
{
for(h=0;h<18;h++)//发送结束语 (h值与end长度对应)
{SBUF=end[h];while(TI==0);TI=0;}
while(1); //程序停止
}
}
j++;
}
//主函数
void main()
{
TMOD=0x20|0x01; //定时器1的方式2 波特率:9600 定时器0为方式1
TL1=0xfd;TH1=0xfd; //初始值
SCON=0xd8;PCON=0x00; //设置串口方式3
TR1=1; //启动计数
TH0=(65536-50000)/256; //初始值
TL0=(65536-50000)%256;
EA=1; //cpu开中断
ET0=1; //定时器0开中断
TR0=1; //启动计数
while(1);
}