?? led1602.h
字號:
#ifndef __led1602_h
#define __led1602_h
#define uchar unsigned char
#define uint unsigned int
//定義接口
#define LCD_dat P0
sbit RS=P2^0;
sbit RW=P2^1;
sbit E=P2^2;
void LcdWriteCommand( uchar CMD,uchar AttribC );
void delay(uchar j)
{
uchar n;
for(j;j>0;j--)
{for(n=248;n>0;n--){} //delay500us
}
}
void delay5ms()
{
unsigned int i;
for (i=0;i<1000;i++)
;
}
/*delay1() //按鍵防止連續顯示
{
int i,j,k;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
for(k=0;k<100;k++);
} */
/*void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i--)
for (j=0;j<1140;j++);
} */
//發送命令
void writecommand(char command)
{
RS=0;//選擇命令寄存器
RW=0;//選擇寫
E=1;//讀寫禁止
delay(2);
P0=command;
delay5ms();
E=0;//讀寫允許
}
//發送數據
void writedata(char dat)
{
RS=1;//擇數據寄存器
RW=0;//選擇寫
E=1;//允許讀寫操作
delay(2);
P0=dat;
delay5ms();
E=0;//不允許讀寫操作
}
//設置顯示的坐標成功
void setXY(char x,char y) //發送一個地址
{
char address;
if(y==0)
address=0x80+x;//選擇第 0 行
if(y==1)
address=0xc0+x;//選擇第 1 行
writecommand(address);
}
//顯示一個數據成功
/*void writechar(char x,char y,char dat)
{
setXY(x,y); ///在某一個地址寫
writedata(dat); //寫一個數
} */
//顯示一個字符串 已成功
void writestring(char x,char y,char *string) //用指針寫一個字符串
{
setXY(x,y);
while(*string)
{
P0=*string;
writedata(*string);
string++;
}
}
//初始化
void init(void)
{
delay(20);
writecommand(0x38);//8位數據,2行顯示
writecommand(0x08);//關閉顯示
writecommand(0x01);//清屏 清屏和光標歸位需要較長的時間
delay5ms();
writecommand(0x06); //光標移動設置既光標右移一格地址計數器AC加1
writecommand(0x0f);//設置光標閃 0x0c是設置光標不閃 0x0f為光標閃
}
/* void LocateXY( char posx,char posy)
{
uchar temp;
temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
LcdWriteCommand(temp,0);
} */
#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -