新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)驅(qū)動(dòng)LCD1602的電路圖+程序

51單片機(jī)驅(qū)動(dòng)LCD1602的電路圖+程序

作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏


如網(wǎng)頁上出現(xiàn)格式錯(cuò)亂可從此處本例的完整源碼:http://www.51hei.com/f/1602430.rar上圖是仿真效果 顯示2行字符.

本文引用地址:http://butianyuan.cn/article/201611/323943.htm

#include
#define uchar unsigned char
/*****************************************
電路連接

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;
uchar code ttt[]="ShanXi Dianzi Kejixueyuan";//25
uchar code kkk[]="Dianzi GonGcheng Xueyun";//23
/******定義函數(shù)****************/

#define uchar unsigned char
#define uint unsigned int
void LCD_init(void);//聲明初始化函數(shù)
void LCD_write_command(uchar command);//寫指令函數(shù)
void LCD_write_data(uchar dat);//寫數(shù)據(jù)函數(shù)
void LCD_disp_char(uchar x,uchar y,uchar dat);//在某個(gè)屏幕位置上顯示一

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

//void LCD_check_busy(void);//檢查忙函數(shù)。我沒用到此函數(shù),因?yàn)橥ㄟ^率極低。

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

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

//*******初始化函數(shù)***************

void LCD_init(void)

{

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

LCD_write_command(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍

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

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

delay_n40us(100);//實(shí)踐證明,我的LCD1602上,用for 循環(huán)200 次就能可靠完成清屏指令。

}

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

//********寫指令函數(shù)***********設(shè)置先向1602寫入的數(shù)據(jù)為地址*

void LCD_write_command(uchar dat)

{

LCD_DB=dat;

LCD_RS=0;//指令

LCD_RW=0;//寫入

LCD_E=1;//允許

LCD_E=0;//產(chǎn)生下降沿

delay_n40us(1);//實(shí)踐證明,我的LCD1602 上,用for 循環(huán)1 次就能完成普通寫指令。

}


上一頁 1 2 下一頁

關(guān)鍵詞: 51單片機(jī)LCD160

評(píng)論


技術(shù)專區(qū)

關(guān)閉