51单片机驱动1602液晶的C程序文档格式.docx

上传人:b****6 文档编号:16550524 上传时间:2022-11-24 格式:DOCX 页数:5 大小:15.04KB
下载 相关 举报
51单片机驱动1602液晶的C程序文档格式.docx_第1页
第1页 / 共5页
51单片机驱动1602液晶的C程序文档格式.docx_第2页
第2页 / 共5页
51单片机驱动1602液晶的C程序文档格式.docx_第3页
第3页 / 共5页
51单片机驱动1602液晶的C程序文档格式.docx_第4页
第4页 / 共5页
51单片机驱动1602液晶的C程序文档格式.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

51单片机驱动1602液晶的C程序文档格式.docx

《51单片机驱动1602液晶的C程序文档格式.docx》由会员分享,可在线阅读,更多相关《51单片机驱动1602液晶的C程序文档格式.docx(5页珍藏版)》请在冰豆网上搜索。

51单片机驱动1602液晶的C程序文档格式.docx

P1

sbitLCD_RS=P2^0;

sbitLCD_RW=P2^1;

sbitLCD_E=P2^2;

/******定义函数****************/

#defineucharunsignedchar

#defineuintunsignedint

voidLCD_init(void);

//声明初始化函数

voidLCD_write_command(ucharcommand);

//写指令函数

voidLCD_write_data(uchardat);

//写数据函数

voidLCD_disp_char(ucharx,uchary,uchardat);

//在某个屏幕位置上显示一

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

//voidLCD_check_busy(void);

//检查忙函数。

我没用到此函数,因为通过率极

低。

voiddelay_n40us(uintn);

//延时函数

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

//*******初始化函数***************

voidLCD_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(uchardat)

LCD_DB=dat;

LCD_RS=0;

//指令

LCD_RW=0;

//写入

LCD_E=1;

//允许

LCD_E=0;

//产生下降沿

delay_n40us

(1);

//实践证明,我的LCD1602上,用for循环1次就能完成普通

写指令。

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

//********再写数据函数*****向1602中写入数据********

LCD_write_data(uchardat)

LCD_RS=1;

//数据

//*******显示一个字符函数*********

voidLCD_disp_char(ucharx,uchary,uchardat)

ucharaddress;

if(y==1)

address=0x80+x;

else

address=0xc0+x;

LCD_write_command(address);

LCD_write_data(dat);

/*******检查忙函数*************

voidLCD_check_busy()

//实践证明,在我的LCD1602上,检查忙指令通

{LCD_E=0;

//for循环作延时,普通指令只要1次循就可完成。

清屏指令

//要用200次循环便能完成。

LCD_RW=1;

LCD_DB=0xff;

while(LCD_DB^7==1);

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

//********延时函数***************

voiddelay_n40us(uintn)

{uinti;

ucharj;

for(i=n;

i>

;

0;

i--)

for(j=0;

j<

2;

j++);

//在这个延时循环函数中我只做了

2次循环,

}//实践证明我的LCD1602上普

通的指令只需1次循环就能可靠完成。

//*********主函数*****************

voidmain(void)

LCD_init();

LCD_disp_char(0,1,&

quot;

A&

);

while

(1);

过率极低,以至于不能正常使用LCD。

因此我没有再用检查忙函数。

而使

do//用了延时的方法,延时还是非常好用的。

我试了一下,用//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1