?? pc鍵盤.c
字號(hào):
#include<ASC2.h>
#include<LCD.h>
#define disp_on 0x3f
#define disp_off 0x3e
#define col_add 0x40
#define page_add 0xb8
#define start_line 0xc0
unsigned char x=0,y=0,sscs=0;
#define cs XBYTE[0X8000]
#define wc XBYTE[0XA000]
#define wd XBYTE[0XA001]
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
void write_command(unsigned char cmdcode)
{
wc=cmdcode;
}
void write_data(unsigned char dispdata)
{
wd=dispdata;
}
void clr_scr()
{
unsigned char j,k;
cs=0x10;
for(j=0;j<8;j++)
{
write_command(page_add+j);
write_command(col_add+0);
for(k=0;k<64;k++)
write_data(0x00);
}
cs=0x20;
for(j=0;j<8;j++)
{
write_command(page_add+j);
write_command(col_add+0);
for(k=0;k<64;k++)
write_data(0x00);
}
x=0;y=0;
}
void sz_disp16(unsigned char pag,unsigned char col,unsigned char code *szk)
{
unsigned char j,k;
for(j=0;j<2;j++)
{
write_command(page_add+pag+j);
write_command(col_add+col);
for(k=0;k<8;k++)
write_data(szk[8*j+k]);
}
}
void init_lcd()
{
cs=0x30;
delay(100);
write_command(disp_off);
write_command(page_add+0);
write_command(start_line);
write_command(col_add+0);
write_command(disp_on);
}
void putgb()
{
sscs++;
if(sscs==300)
sscs=0;
if(y<8)
{
cs=0x10;
if(sscs<150)
sz_disp16(x*2,y*8,guangbiao);
else
sz_disp16(x*2,y*8,kongbai);
}
if(y>=8)
{
cs=0x20;
if(sscs<150)
sz_disp16(x*2,(y-8)*8,guangbiao);
else
sz_disp16(x*2,(y-8)*8,kongbai);
}
}
void putkongbai()
{
if(y<8)
{
cs=0x10;
sz_disp16(x*2,y*8,kongbai);
}
if(y>=8)
{
cs=0x20;
sz_disp16(x*2,(y-8)*8,kongbai);
}
}
void putchar(unsigned char p)
{
bit bs_flag=0;
unsigned char code *c;
unsigned char j,k;
if(p<' ')
{
if(p=='\n')
{
if(x==3)
return;
x++;
y=0;
}
else if(p=='\b')
{
putkongbai();
if(y==0)
{
if(x==0)
return;
x--;
y=15;
p=' ';
bs_flag=1;
goto start;
}
else
{
y--;
p=' ';
bs_flag=1;
goto start;
}
}
return;
}
start: c=ASCII_TAB+(p-' ')*16;
if(y<8)
{
cs=0x10;
for(j=0;j<2;j++)
{
write_command(page_add+x*2+j);
write_command(col_add+y*8);
for(k=0;k<8;k++)
write_data(*c++);
}
}
if(y>=8)
{
cs=0x20;
for(j=0;j<2;j++)
{
write_command(page_add+x*2+j);
write_command(col_add+(y-8)*8);
for(k=0;k<8;k++)
write_data(*c++);
}
}
if(bs_flag) return;
y++;
if(y==16)
{
if(x==3)
{
y=15;
return;
}
else
{
y=0;
x++;
}
}
putgb();
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -