📄 display.c
字号:
#include"AO_Display.H"
extern unsigned char KeyBoardInData;
//bit flag = 0;
unsigned char Scale = 1; //1为128*64,2为64*32
unsigned char XOffset =0;
unsigned char YOffset =0;
extern unsigned char CharConter;
unsigned char dx;
unsigned char dy;
//unsigned char RXCount;
unsigned char RXBuffers[3];
unsigned char RXCount = 2;
unsigned char jcount=0;
unsigned char code XAdd [6] ={32,48,64,80,96,112};
unsigned char code YAdd [2] ={128,96};
unsigned char CharBuffer[16]={200,200,200,200,
200,200,200,200};
//unsigned char tabx[]={32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60};
//unsigned char taby[]={32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60};
extern void zuobiao1(void);
/***********************************************************
函数名称:
函数功能:显示字符数组
入口参数:
出口参数:
备 注:
***********************************************************/
/*void DisCharBuffer( void )
{
unsigned i,j;
for(i=0;i<2;i++)
for(j=0;j<4;j++)
{
DisOneLetterInAO(XAdd[j],YAdd[i],CharBuffer[i*4+j]);
}
} */
/******************************************************
函数名称:串口初始化函数
入口参数:void
修改时间:
******************************************************/
void UartInit( void )
{
EA = 0;
TR1 = 0;
RXD = 1;
TXD = 1;
SCON = 0x50; //串口方式1,允许接收
PCON = 0x00;
TMOD = 0x21;
TH1 = 0xfd;
TL1 = 0xfd; //设置波特率9600
TR1 = 1;
ES = 1; //允许串行口中断
EA = 1; //允许中断
}
/***********************************************************
函数名称:串口中断函数
修改时间:
***********************************************************/
void sioproc() interrupt 4 // using 1
{ unsigned char i;
unsigned char m;
unsigned char tabx[2];
unsigned char taby[2];
if (RI) //接收中断
{
RI = 0;
if(RXCount)
{
m = SBUF;
RXCount--;
RXBuffers[1-RXCount] = m;
if(RXCount==0)
{
RXCount = 2; //当接收到的数据为2时给接收次数清零
dx = RXBuffers[0];
dy = RXBuffers[1];
tabx[jcount] = dx;
taby[jcount] = dy;
jcount++;
if(jcount==40)//采集40个点
{
while(1)
{
zuobiao1();
for(i=0;i<100;i++)
{
DisPoint(tabx[i],taby[i]);
}
jcount = 0;
}
}
}
}
}
}
/***********************************************************
函数名称:
函数功能: 显示一个16x16的字符
入口参数:
出口参数:
备 注:
***********************************************************/
void Dis16x16Char(unsigned x,unsigned y,unsigned char *zifu)
{
unsigned char i,j,k;
for(k=0;k<2;k++)
for(i=0;i<8;i++)
for(j=0;j<16;j++)
{
if((zifu[j+16*k]>>i)&0x01)
{
DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset); //
}
else
{
ZLocation = 0;
}
}
}
/***********************************************************
函数名称:
函数功能: 显示一个8x16的字符
入口参数:
出口参数:
备 注:
***********************************************************/
void Dis8x16Char(unsigned x,unsigned y,unsigned char *zifu)
{
unsigned char i,j,k;
for(k=0;k<2;k++)
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
if((zifu[j+8*k]>>i)&0x01)
{
DisPoint(x+(j*Scale)+XOffset,(y+(8*k+i)*Scale)+YOffset);
}
else
{
ZLocation = 1;
}
}
}
}
/***********************************************************
函数名称:
函数功能:绘一个点
入口参数:
出口参数:
备 注:
***********************************************************/
void DisPoint(unsigned char x,unsigned char y)
{
// ZLocation = 0;
XLocation(x);
YLocation(y);
// ZLocation = 1;
}
void shurushow( void )
{
unsigned char i;
for(i=0;i<20;i++)
{
// Dis16x16Char(XAdd[0],YAdd[0],shu);
// Dis16x16Char(XAdd[1],YAdd[0],ru);
// Dis16x16Char(XAdd[3],YAdd[0],qu1);
// Dis16x16Char(XAdd[4],YAdd[0],xian);
// Dis16x16Char(XAdd[5],YAdd[0],xian);
Dis16x16Char(XAdd[0],YAdd[1],qing);
Dis16x16Char(XAdd[1],YAdd[1],shao);
Dis16x16Char(XAdd[2],YAdd[1],hou);
Dis16x16Char(XAdd[3],YAdd[1],slh);
}
}
/***********************************************************
函数名称:
函数功能:显示欢迎画面
入口参数:
出口参数:
备 注:
***********************************************************/
void DisWelcome( void )
{
unsigned char i;
for(i=0;i<20;i++)
{
Dis16x16Char(XAdd[0],YAdd[0],ce);
Dis16x16Char(XAdd[1],YAdd[0],kong);
Dis8x16Char(XAdd[2],YAdd[0],Five);
Dis16x16Char(XAdd[3],YAdd[0],Zu);
}
for(i=0;i<20;i++)
{
Dis16x16Char(XAdd[1],YAdd[0],hu);
Dis16x16Char(XAdd[2],YAdd[0],dong);
Dis16x16Char(XAdd[3],YAdd[0],chun);
}
for(i=0;i<20;i++)
{
Dis16x16Char(XAdd[1],YAdd[0],liu);
Dis16x16Char(XAdd[2],YAdd[0],hong);
Dis16x16Char(XAdd[3],YAdd[0],bin);
}
for(i=0;i<20;i++)
{
Dis16x16Char(XAdd[1],YAdd[0],xu);
Dis16x16Char(XAdd[2],YAdd[0],bin);
Dis16x16Char(XAdd[3],YAdd[0],sheng);
}
}
/***********************************************************
函数名称:
函数功能: 显示128x128的图片
入口参数:
出口参数:
备 注:
***********************************************************
void Dis128x128Imag( unsigned char *imag )
{
unsigned char i,j,k;
for(k=0;k<16;k++)
for(i=0;i<8;i++)
for(j=0;j<128;j++)
{
if((imag[j+128*k]>>i)&0x01)
{
DisPoint(j,(128+8*k+i));
}
}
}
/***********************************************************
函数名称:
函数功能:显示64x64的图片
入口参数:
出口参数:
备 注:
***********************************************************/
/*void Dis64x64Imag( unsigned char *imag )
{
unsigned char i,j,k;
for(k=0;k<8;k++)
for(i=0;i<8;i++)
for(j=0;j<64;j++)
{
if((imag[j+64*k]>>i)&0x01)
{
DisPoint(j+96,(64+8*k+i)+32);
}
}
} */
/*****************************************************************
函数名称:坐标显示
*****************************************************************/
void zuobiao1( void )
{
unsigned char i;
for(i=32;i<160;i=i+1)
{
DisPoint(i,32);
}
for(i=200;i>32;i=i-1)
{
DisPoint(32,i);
}
/* Dis16x16Char(100,144,shu);
Dis16x16Char(116,144,ru);
Dis16x16Char(132,144,qu);
Dis16x16Char(148,144,xian); */
}
/***********************************************************
函数名称:
函数功能:显示一个表格
入口参数:
出口参数:
备 注:
***********************************************************/
/*void DisBiaoGe( void )
{
unsigned char i;
for(i=32;i<160;i=i+4)
{
DisPoint(i,144);
}
for(i=32;i<160;i=i+4)
{
DisPoint(i,128);
}
for(i=32;i<160;i=i+4)
{
DisPoint(i,112);
}
for(i=32;i<160;i=i+4)
{
DisPoint(i,96);
}
//竖线
for(i=144;i>96;i=i-4)
{
DisPoint(160,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(144,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(128,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(112,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(96,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(80,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(64,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(48,i);
}
for(i=144;i>96;i=i-4)
{
DisPoint(32,i);
}
}*/
/***********************************************************
函数名称:
函数功能:
入口参数:
出口参数:
备 注:
***********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -