📄 t6963yejingqudong.txt
字号:
#include<reg52.h>
#include<absacc.h>
#define Comport XBYTE[0x0100] //T6963命令口定义
#define Dateport XBYTE[0x0000] //T6963数据口定义
采用P0口及P2.0,P1.1为控制线
/*--------------------------------T6963显示器模块----------------------------------*/
//忙标志位判断
uchar busydec(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((Comport & 0x03)==0x03)
break;
}
return (i); //返回0,说明错误
}
//自动读标志位判断
uchar Autoread(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((Comport & 0x04)==0x04)
break;
}
return(i);
}
//自动写标志位判断
uchar Autowrite(void)
{
uchar i;
for(i=10;i>0;i--)
{
if((Comport & 0x08)==0x08)
break;
}
return(i);
}
//写无参数指令函数
uchar ComdWR(uchar comdbuff)
{
if(busydec()==0)
return(1);
Comport=comdbuff;
return(0); //返回数据0,说明成功
}
//写单参数指令
uchar Comd1WR(uchar comdbuff,uchar datebuff)
{
if(busydec()==0)
return(1);
Dateport=datebuff;
if(busydec()==0)
return(2);
Comport=comdbuff;
return(0);
}
//写双参数指令
uchar Comd2WR(uchar comdbuff,uchar datebuff1,uchar datebuff2)
{
if(busydec()==0)
return(1);
Dateport=datebuff1;
if(busydec()==0)
return(2);
Dateport=datebuff2;
if(busydec()==0)
return(3);
Comport=comdbuff;
return(0);
}
//写数据函数
uchar DateWR(uchar datebuff)
{
if(busydec()==0)
return(1);
Dateport=datebuff;
return(0);
}
// 清屏
void Screencls(void)
{
uint i;
Comd2WR(LC_ADD_POS,0x00,0x00);
ComdWR(LC_AUT_WR);
for(i=0;i<128*30;i++)
{
Autowrite();
DateWR(0x00);
}
ComdWR(LC_AUT_OVR);
Comd2WR(LC_ADD_POS,0x00,0x00);
Comd2WR(LC_LIG_POS,0x00,0x00);
}
//LCM初始化
void Initscreen(void)
{
Comd2WR(LC_ADD_POS,0x00,0x00); //显示地址设置
Comd2WR(LC_TEX_POS,0x00,0x00); //文本区首地址设置
Comd2WR(LC_TEX_WID,0x1E,0x00); //文本区宽度设置
Comd2WR(LC_GRA_POS,0x00,0x00); //图形区首地址设置
Comd2WR(LC_GRA_WID,0x1E,0x00); //图形区宽度设置
ComdWR(LC_MOD_CUR); //光标形状设置
ComdWR(LC_MOD_OR); //显示方式设置
ComdWR(LC_MOD_DIS); //启用图形显示
}
/*-----------------------------------------------------------------------------
* 函数名: HZshow()
*
* 函数功能: 实现指定地址的16×16汉字显示
*
-----------------------------------------------------------------------------*/
void HZshow(uchar *T,uchar line,uchar colun,uchar n)
{
uchar i;
uchar j;
uint staraddress;
uchar address1,address2;
for(j=0;j<n;j++)
{
uchar KSline=line;
for(i=0;i<16;i++)
{
staraddress=KSline*30+colun;
address1=staraddress%256;
address2=staraddress/256;
Comd2WR(0x24,address1,address2);
Comd1WR(0xC0,*T);
T++;
Comd1WR(0xC4,*T);
T++;
KSline=KSline+1;
}
colun=colun+2;
}
}
/*----------------------------------------------------------------------------
* 函数名: Showothers()
*
* 函数功能: 实现在指定地址8*16的数字及字符显示
*
-----------------------------------------------------------------------------*/
void Showothers(uchar *T,uchar line,uchar colun,uchar n)
{
uchar i;
uchar j;
uint staraddress;
uchar address1,address2;
for(j=0;j<n;j++)
{
uchar KSline=line;
for(i=0;i<16;i++)
{
staraddress=KSline*30+colun;
address1=staraddress%256;
address2=staraddress/256;
Comd2WR(0x24,address1,address2);
Comd1WR(0xC0,*T);
T++;
KSline=KSline+1;
}
colun=colun+1;
}
}
void main(void)
{
Initscreen(); //初始化屏
HZshow(TAB1,1,2,2) //TAB1为汉字字库地址,此为汉字显示
Showothers(TAB2,1,2,2) //TAB1为数字及符号字库地址
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -