?? lcd.c
字號:
/************************************************************************
;copyright :shenzhen
;filename :lcd.c
;lcd :TC802B-01
;control mcu :w78e52b
;writeby :dengyih
;describe :LCD control
;notice :
;***********************************************************************/
#include "..\header\lcd.h"
/***********************************************************
name: ini_lcd
input: none
output: none
describe: 初始化LCD
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
void ini_lcd(void)
{
lcd_write_reg(0x38);
lcd_write_reg(0x38);
lcd_write_reg(0x38);
lcd_write_reg(0x08);
lcd_wait();
lcd_write_reg(0x01);
lcd_wait();
delay_2us(50000);
lcd_write_reg(0x14);
lcd_wait();
lcd_write_reg(0x06);
lcd_wait();
lcd_write_reg(0x80);
lcd_wait();
lcd_write_reg(0x0c);
lcd_wait();
}
/***********************************************************
name: lcd_printf_string
input: *disp_str --- 存放顯示字符的頭指針
row_len_col --- 顯示坐標(biāo)參數(shù)及顯示字符數(shù)
row_len_col:
bit[7:6]: 顯示行坐標(biāo)
bit[5:3]: 顯示字符長度
bit[2:0]: 顯示字符的起始列坐標(biāo)
output: none
describe: 在屏幕上顯示多個字符
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
void lcd_printf_string(U8 *disp_str, U8 row_len_col)
{
U8 i = 0;
U8 len = 0;
len = (row_len_col & LEN_MASK) >> 0x03;
lcd_write_reg(row_len_col & ROW_COL);
lcd_wait();
for(i=0; i<=len; i++)
{
lcd_write_data(*disp_str++);
lcd_wait();
}
}
/***********************************************************
name: lcd_printf_char
input: disp_char --- 要顯示的字符
row_col --- 顯示坐標(biāo)
output: none
describe: 在屏幕上顯示一個字符
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
/*
void lcd_printf_char(U8 disp_char, U8 row_col)
{
lcd_write_reg(row_col & ROW_COL);
lcd_wait();
lcd_write_data(disp_char);
lcd_wait();
}
*/
/***********************************************************
name: lcd_write_reg
input: command --- 要寫入的命令
output: none
describe: 寫控制命令到LCD
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
void lcd_write_reg(U8 command)
{
LCD_DATA = command; // 寫控制命令
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 1;
delay_2us(100);
LCD_EN = 0;
}
/***********************************************************
name: lcd_write_data
input: value --- 要寫入的數(shù)據(jù)
output: none
describe: 寫數(shù)據(jù)到LCD
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
void lcd_write_data(U8 value)
{
LCD_DATA = value; //寫數(shù)據(jù)
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 1;
delay_2us(100);
LCD_EN = 0;
}
/***********************************************************
name: lcd_wait
input: none
output: none
describe: 等待LCD內(nèi)部操作完成
notice:
creat date: 2008-7-25
creator: dengyihong
************************************************************/
void lcd_wait(void)
{
U8 value = 0;
do
{
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
value = LCD_DATA;
LCD_EN = 0;
}while(value & 0x80); // 等待內(nèi)部操作完成
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -