久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機驅動1602液晶的C程序

51單片機驅動1602液晶的C程序

作者: 時間:2016-11-30 來源:網絡 收藏
# include

本文引用地址:http://cqxgywz.com/article/201611/323955.htm

/*****************************************
電路連接

P1------DB0~DB7
P2.0------RS

P2.1------RW

P2.2------E

*****************************************/

# define LCD_DB P1

sbit LCD_RS=P2^0;

sbit LCD_RW=P2^1;

sbit LCD_E=P2^2;

/******定義函數****************/

# define ucharunsigned char

# define uint unsigned int

void LCD_init(void);//聲明初始化函數

void LCD_write_command(uchar command);//寫指令函數

void LCD_write_data(uchar dat);//寫數據函數

void LCD_disp_char(uchar x,uchar y,uchar dat);//在某個屏幕位置上顯示一

個字符,X(0-16),y(1-2)

//void LCD_check_busy(void);//檢查忙函數。我沒用到此函數,因為通過率極

低。

void delay_n40us(uint n);//延時函數

//********************************

//*******初始化函數***************

void LCD_init(void)

{

LCD_write_command(0x38);//設置8位格式,2行,5x7

LCD_write_command(0x0c);//整體顯示,關光標,不閃爍

//LCD_write_command(0x06);//設定輸入方式,增量不移位

//LCD_write_command(0x01);//清除屏幕顯示

delay_n40us(100);//實踐證明,我的LCD1602上,用for循環200次就能可靠

完成清屏指令。

}

//********************************

//********寫指令函數***********設置先向1602寫入的數據為地址*

void LCD_write_command(uchar dat)

{

LCD_DB=dat;

LCD_RS=0;//指令

LCD_RW=0;//寫入

LCD_E=1;//允許

LCD_E=0;//產生下降沿

delay_n40us(1);//實踐證明,我的LCD1602上,用for循環1次就能完成普通

寫指令。

}

//*******************************

//********再寫數據函數*****向1602中寫入數據********

void LCD_write_data(uchar dat)

{

LCD_DB=dat;

LCD_RS=1;//數據

LCD_RW=0;//寫入

LCD_E=1;//允許

LCD_E=0;//產生下降沿

delay_n40us(1);

}


上一頁 1 2 下一頁

評論


技術專區

關閉