1602 c语言驱动程序,51单片机驱动LCD1602程序设计(C语言)很详细的教程

本文详细介绍了如何使用C语言为51单片机编写1602 LCD1602的驱动程序,包括写指令、写数据、显示字符等功能。文中提供了一套完整的C语言代码实现,并且分享了实际操作中关于LCD1602的延时设置、忙标志检查的经验。此外,还展示了如何自定义字符,以及如何在LCD1602上显示自定义字符的心形图案。
摘要由CSDN通过智能技术生成

//********写指令函数************

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次就能完成普通写指令。

}

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

//********写数据函数*************

void LCD_write_data(uchar dat)

{

LCD_DB=dat;

LCD_RS=1;//数据

LCD_RW=0;//写入

LCD_E=1;//允许

LCD_E=0;

delay_n40us(1);

}

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

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

void LCD_disp_char(uchar x,uchar y,uchar dat)

{

uchar address;

if(y==1)

address=0x80+x;

else

address=0xc0+x;

LCD_write_command(address);

LCD_write_data(dat);

}

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

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

void LCD_check_busy()      //实践证明,在我的LCD1602上,检查忙指令通过率极低,以

{                                          //至于不能正常使用LCD。因此我没有再用检查忙函数。而使

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

{ LCD_E=0;                   //for循环作延时,普通指令只要1次循就可完成。清屏指令

LCD_RS=0;                 //要用200次循环便能完成。

LCD_RW=1;

LCD_DB=0xff;

LCD_E=1;

}while(LCD_DB^7==1);

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

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

void delay_n40us(uint n)

{ uint i;

uchar j;

for(i=n;i>0;i--)

for(j=0;j<2;j++);          //在这个延时循环函数中我只做了2次循环,

}                                         //实践证明我的LCD1602上普通的指令只需1次循环就能可靠完成。

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

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

void main(void)

{

LCD_init();

LCD_disp_char(0,1,’A’);

while(1);

}

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

具体电路的制作是很简单的,就接了两个电阻,一个是10欧姆的背光限流电阻,另一个是2K的LCD极板电压调节电阻。这两个电阻的阻值怎么定呢?背光比较简单,它就相当于在后面接了几个发光二极管,任何时候你只要在15、16脚串上个100欧的电位器接上电源&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值