?? lcd.c.bak
字號:
/***********************************************************
** 文件名: lcd.c **
***********************************************************/
#include "..\header\lcd.h"
/**********************************************************
** 函數: LCD_Initial()
** 參數: 無
** 返回值: 無
** 功能: Lcd初始化
**********************************************************/
/*
void LCD_Initial(void)
{
LCD_RegWrite(0x38);
LCD_RegWrite(0x38);
LCD_RegWrite(0x38);
LCD_RegWrite(0x08);
LCD_Wait();
LCD_RegWrite(0x01);
LCD_Wait();
DelayXms(10);
LCD_RegWrite(0x14);
LCD_Wait();
LCD_RegWrite(0x06);
LCD_Wait();
LCD_RegWrite(0x80);
LCD_Wait();
LCD_RegWrite(0x0C);
LCD_Wait();
}
*/
void lcd_ini(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(5000);
lcd_write_reg(0x14);
lcd_wait();
lcd_write_reg(0x06);
lcd_wait();
lcd_write_reg(0x80);
lcd_wait();
lcd_write_reg(0x0c);
lcd_wait();
}
/**********************************************************
** 函數: LCD_StrDisp()
** 參數: *disp_str, row_len_col
** 返回值: -
** 功能: 最多可以顯示8個字符
**********************************************************/
/*
void LCD_StrDisp(uchar *disp_str, uchar row_len_col)
{
uchar i, len;
EA = 0;
len = (row_len_col & LEN_MASK)>>0x03;
LCD_RegWrite(row_len_col & ROW_COL);
LCD_Wait();
for(i=0; i<=len; i++)
{
LCD_DataWrite(*disp_str++);
LCD_Wait();
}
EA = 1;
}
*/
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();
}
}
/**********************************************************
** 函數: LCD_CharDisp()
** 參數: disp_char, row_col
** 返回值: 無
** 功能: 顯示1個字符
**********************************************************/
/*
void LCD_CharDisp(uchar disp_char, uchar row_col)
{
EA = 0;
LCD_RegWrite(row_col & ROW_COL);
LCD_Wait();
LCD_DataWrite(disp_char);
LCD_Wait();
EA = 1;
}
*/
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();
}
/**********************************************************
** 函數: LCD_RegWrite()
** 參數: cmd
** 返回值: 無
** 功能: 寫lcd寄存器
**********************************************************/
/*
void LCD_RegWrite(uchar cmd)
{
LCD_DATA = cmd;
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 1;
DelayNop(10);
LCD_EN = 0;
}
*/
void lcd_write_reg(U8 command)
{
LCD_DATA = command;
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 1;
delay_2us(10);
LCD_EN = 0;
}
/**********************************************************
** 函數: LCD_DataWrite()
** 參數: value
** 返回值: 無
** 功能: 寫數據到lcd數據口
**********************************************************/
/*
void LCD_DataWrite(uchar value)
{
LCD_DATA = value;
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 1;
DelayNop(10);
LCD_EN = 0;
}
*/
void lcd_write_data(U8 value)
{
LCD_DATA = value;
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 1;
delay_2us(10);
LCD_EN = 0;
}
/**********************************************************
** 函數: LCD_Wait()
** 參數: 無
** 返回值: 無
** 功能:
**********************************************************/
/*
void LCD_Wait(void)
{
uchar value;
do
{
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
value = LCD_DATA;
LCD_EN = 0;
} while (value & 0x80);
}
*/
void lcd_wait(void)
{
U8 value = 0;
LCD_DATA = 0xff; //input
do
{
LCD_RS = 0;
LCD_RW = 1;
LCD_EN = 1;
value = LCD_DATA;
LCD_EN = 0;
}while(value & 0x80);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -