📄 lcddisp.c
字号:
dwadd3 = com;
}
//-----------------------------------------//
//---读右屏显示数据--------------------------//
//-----------------------------------------//
uchar lcd_rddata_r()
{
uchar lcddata;
ACC = cradd3;
while(0x80==ACC&0X80)
{
ACC = cradd3;
}
lcddata = dradd3;
return lcddata;
}
//----------------------------------------//
//----void wrlcd(uint,uchar,bit)----------//
//---------------(addr,data,code or data-0:code,1:data--)//
//--write lcd code &data------------------//
//----------------------------------------//
/*void wrlcd(uint addr, uchar com, bit b_ca)
{
uint craddr;
if(b_ca)
{
craddr = addr + 0x100 ;
}
else
{
craddr = addr + 0x200 ;
}
do
{
ACC = craddr;
}
while(0x80==(ACC&0x80));
addr = com;
}
//------------------------------------------//
//---uchar rdlcd(uint,bit);------------------//
//--------------(addr,code or data-0:code,1:data)--//
//--read from lcd---------------------------------//
uchar rdlcd(uint addr,bit b_ca)
{
uchar dat;
uint craddr;
if(b_ca)
{
craddr = addr - 0x100;
}
else
{
craddr = addr ;
}
do
{
ACC = craddr;
}
while(0x80==(ACC&0x80));
dat = addr;
return dat;
}
*/
//-------------------------------------------------//
//--char busy();-----------------------------------//
//---if lcd busy return 1,else 0;------------------//
//-------------------------------------------------//
/*char busy()
{
}
*/
//-------------------------------------------------//
//-----void initilcd();-----------------------------//
//-----initi lcd------------------------------------//
//--------------------------------------------------//
void initilcd()
{
lcd_wrcode_m(0xc0);
lcd_wrcode_r(0xc0); //
lcd_wrcode_m(0x3f);
lcd_wrcode_r(0x3f); //THE START DISPLAY LINE ,HERE IS "0" LINE 1100 0000B
//SET DISPLAY ON 0011 1111B
}
//-------------------------------------------------//
//-----void clrlcd();------------------------------//
//---------clear lcd ------------------------------//
//-------------------------------------------------//
void clrlcd()
{
uchar n_byte;
uchar uc_com;
for(n_page = 0; n_page < 8; n_page ++ ) //SET REGISTOR OF PAGE ADDRESS
{
uc_com = n_page|0xb8; //"OR" THE SET CODE OF PAGE ADDRESS 1011 1000B
//SET PAGE ADDRESS //
lcd_wrcode_m(uc_com);
lcd_wrcode_r(uc_com);
//COLUM ADDRESS = 0 0100 0000B
lcd_wrcode_m(0x40);
lcd_wrcode_r(0x40);
//CLEAR 64 BYTE/PAGE
for(n_byte = 0; n_byte < 0x40; n_byte++ )
{
lcd_wrdata_m(0x0);
lcd_wrdata_r(0x0);
}
}
}
//------------------------------------------//
//----void disp_full();---------------------//
//------------------------------------------//
void disp_full()
{
uchar n_byte;
uchar uc_com;
for(n_page = 0; n_page < 8; n_page ++ ) //SET REGISTOR OF PAGE ADDRESS
{
uc_com = n_page|0xb8; //"OR" THE SET CODE OF PAGE ADDRESS 1011 1000B
//SET PAGE ADDRESS //
lcd_wrcode_m(uc_com);
lcd_wrcode_r(uc_com);
//COLUM ADDRESS = 0 0100 0000B
lcd_wrcode_m(0x40);
lcd_wrcode_r(0x40);
//CLEAR 64 BYTE/PAGE
for(n_byte = 0; n_byte < 0x40; n_byte++ )
{
lcd_wrdata_m(0xff);
lcd_wrdata_r(0xff);
}
}
}
//-------------------------------------------//
//---------void wr_letter();-----------------//
//---WRITE THE LETTER 写入字母符号--------//
//---if n_page.7==0:6*8; if n_page.7==1:8*8;--//
//-------------------------------------------//
void wr_letter(uchar n_page,uint column,uchar dat)
{
uchar com,count=6,i=0,datcom;
if(0x80==n_page&0x80)count = 8; //如果为1则是8*8,OR 6*8
com = (n_page+ column/128) & 0x07;
com = com | 0xb8;
lcd_wrcode_m(com); //l
lcd_wrcode_r(com); //r
column = column%128;
do
{
datcom = CTAB[dat*8+i];
if(column<64) //left
{
com = column | 0x40;
lcd_wrcode_m(com);
lcd_wrdata_m(datcom);
}
else
{
com = (column - 64) | 0x40;
lcd_wrcode_r(com);
lcd_wrdata_r(datcom);
}
i++;
column ++;
//com = CTAB[dat+i];
}
while(i<count);
}
//-------------------------------------------------------//
//---void wr_text_arr(uchar pager,uchar column, uchar * p,uchar n );--//
//-写一字符数组,pager:页(0-7),column:列(0-65535)----------//
//-------------------------------------------------------//
void wr_text_arr(uchar pager,uint column, uchar *p,uchar n)
{
uchar i;
for (i=0; i<n; i++)
{
wr_letter(pager,column+i*8,p[i]);
}
}
//------------------------------------------------------------//
//---void wr_numwithp(ulong num,uchar numbit,uchar pointbit)--//
//------(页,列,要显示的数,位数,小数点后的位数)----------------//
//-----------------------------------------------------------//
void wr_numwithp(uchar pager,uint column,ulong num, uchar numbit, uchar pointbit)
{
uchar i=1,uc_num;
uint ui_column;
ui_column = column;
do //for(i=1; i<numbit; i++)
{
if(0 != pointbit)
{
ui_column = ui_column + 8;
}
uc_num = num%10;
num = num/10;
wr_letter(pager,ui_column+(numbit-i)*8,uc_num+0x10);
i++;
if(pointbit == i-1 && 0 != pointbit)
{
wr_letter(pager,ui_column+(numbit-i)*8,0x0e);
ui_column = ui_column - 8;
}
}
while(i<=numbit);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -