?? 1602test.txt
字號:
#include <REG52.h>
#define uchar unsigned char
#define uint unsigned int
#define LCM_Data P2 //數(shù)據(jù)口
sbit LCM_RW = P1^1;
sbit LCM_RS = P1^2;
sbit LCM_E = P1^0;
void delay(uint del) //延時,晶振12M,延時因單片機型號不同會有些不同
{
while(del--);
}
void lcd_e_toggle(void)
{
LCM_E = 1;
delay(1);
LCM_E = 0;
}
void check_busy(void)
{
bit result;
do{
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 1;
LCM_Data=0xff;
result = (bit)(LCM_Data&0x80);
LCM_E = 0;
}while (result == 1);
delay(1);
}
// 循環(huán)檢測LCD忙標志(BF),直到其值為0,方可執(zhí)行下一指令
void lcd_wait_until_finish(void)
{
LCM_RW = 1; // RW置1,狀態(tài)為讀
LCM_RS = 0; // RS置0,讀狀態(tài)時RS需置低電平
LCM_E = 1; // E 置1,讀取信息
check_busy();
LCM_E = 0; // E重置為0
}
// 公共函數(shù)
// 向LCD寫命令字
void lcd_command(uchar cmd)
{
LCM_RW = 0; // RW置0,狀態(tài)為寫
LCM_RS = 0; // RS置0,寫入命令字
LCM_Data = cmd; // 將命令字cmd送入LCD的數(shù)據(jù)端口
lcd_e_toggle(); // 產(chǎn)生使能脈沖,在下降沿開始執(zhí)行,將命令字讀入
lcd_wait_until_finish(); // 等待執(zhí)行完畢
}
// 設置顯示位置( 即寫入顯示地址),x,y均從0開始
void lcd_goto_xy(uchar x, uchar y)
{
uchar p; // p為字符顯示位置,即DDRAM中的地址
if (y==0)
{
p = 0x00 + x; // (0,0)顯示位置為0x00
}
else
{
p = 0x40 + x; // (0,1)顯示位置為0x40
}
lcd_command(p + 0x80); // 寫入顯示地址時DB7須為高電平,加0x80
}
// 寫字符(傳入的參數(shù)實際為所需顯示字符的地址,即液晶字符產(chǎn)生器中字符的地址)
void lcd_putc(uchar c)
{
LCM_RW = 0; // RW置0,狀態(tài)為寫
LCM_RS = 1; // RS置1,寫入數(shù)據(jù)
LCM_Data = c; // 將字符c(實際上是字符的地址)送入LCD數(shù)據(jù)端口
lcd_e_toggle(); // 使能脈沖
lcd_wait_until_finish(); // 等待完成
}
// 指定位置寫字符
/*
void lcd_xy_putc(uchar x, uchar y, uchar c)
{
lcd_goto_xy(x,y);
lcd_putc(c);
}
*/
// 寫字符串
void lcd_puts(uchar *s)
{
while(*s)
{
lcd_putc(*s);
s++;
}
}
// 指定位置寫字符串
/*
void lcd_xy_puts(uchar x, uchar y, uchar *s)
{
lcd_goto_xy(x, y);
lcd_puts(s);
}
*/
// LCD初始化
void lcd_init(void)
{
lcd_command(0x38); // 設為8位接口模式,顯示2行字符
lcd_command(0x06); // 寫入新數(shù)據(jù)后光標右移
lcd_command(0x0c); // 顯示功能開,不顯示光標
lcd_command(0x01); // 清屏
}
main()
{ lcd_init();
lcd_goto_xy(0,0);
lcd_puts("Welcome!") ;
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -