?? 1602.txt
字號:
#include <reg51.h>
sbit LCD_DB0= P1^0;
sbit LCD_DB1= P1^1;
sbit LCD_DB2= P1^2;
sbit LCD_DB3= P1^3;
sbit LCD_DB4= P1^4;
sbit LCD_DB5= P1^5;
sbit LCD_DB6= P1^6;
sbit LCD_DB7= P1^7;
sbit LCD1602_RS=P3^0;
sbit LCD1602_RW=P3^2;
sbit LCD1602_EN=P3^1;
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);//在指定位置顯示字符串
void LCD_cls(void);
void LCD_en_command(unsigned char command);
void LCD_en_dat(unsigned char temp);
void LCD_set_xy( unsigned char x, unsigned char y );
void LCD_init(void);
void SET_LCD(unsigned char IO_temp);
void delayms(unsigned char ms);
void detectbusy(void);
unsigned char LCDIO;
void main()
{
LCD_init();
LCD_write_string(0,0,"AAAfgre454554AA");
while(1);
}
void LCD_cls(void)
{
LCD_en_command(0x01);
delayms(2);
}
void LCD_en_command(unsigned char command)
{
LCD1602_RS=0;
LCD1602_RW=0;
LCD1602_EN=0;
SET_LCD(command);
LCD1602_EN=1;
LCD1602_EN=0;
}
void SET_LCD(unsigned char IO_temp)
{
LCD_DB7=IO_temp&0x80;
LCD_DB6=IO_temp&0x40;
LCD_DB5=IO_temp&0x20;
LCD_DB4=IO_temp&0x10;
LCD_DB3=IO_temp&0x08;
LCD_DB2=IO_temp&0x04;
LCD_DB1=IO_temp&0x02;
LCD_DB0=IO_temp&0x01;
}
void LCD_en_dat(unsigned char dat)
{
detectbusy();
LCD1602_RS=1;
LCD1602_RW=0;
LCD1602_EN=0;
SET_LCD(dat);
LCD1602_EN=1;
LCD1602_EN=0;
}
void LCD_set_xy( unsigned char x, unsigned char y )
{
unsigned char address;
if (y==0)
address=0x80+x;
else
address=0xC0+x;
LCD_en_command(address);
}
void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
{
LCD_set_xy(X,Y); //set address
while (*s) // write character
{
LCDIO=*s;
SET_LCD(LCDIO);
LCD_en_dat(*s);
s++;
}
}
void LCD_init(void)
{
LCD_en_command(0x38);
delayms(20);
LCD_en_command(0x38);
delayms(20);
LCD_en_command(0x38);
delayms(20);
LCD_en_command(0x38);
delayms(20);
LCD_en_command(0x08);
delayms(5);
LCD_en_command(0x01);
delayms(5);
LCD_en_command(0x06);
delayms(5);
LCD_en_command(0x0c);
delayms(5);
}
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i=0;i<115;i++);
}
}
void detectbusy(void)
{
bit BUSY;
LCD1602_RS=0;
LCD1602_RW=1;
LCD_DB7=1;
BUSY=1;
LCD1602_EN=1;
while(BUSY)
{
BUSY=LCD_DB7;
}
LCD1602_EN=0;
LCD1602_RW=0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -