|
1602A.H文件是lcd1602液晶屏的驱动 大家可以另存为到硬盘下载到电脑
- /*
- 把我一直珍藏的程序全部拿出来,给大家共享,这也让我想起来,我刚学的时候,搜集资料是那么辛苦,而且找不到完整的资料,我将把我整理的和自己制作的H文件共享出来,只要修改定义端口,便可以随意的调用,以后我还会慢慢完善我的C资料,也希望大家给我指出程序的漏洞和缺点,已达到相互学习目地。
- */
- #ifndef __1602a_H__
- #define __1602a_H__
- #define uchar unsigned char
- #define uint unsigned int
- sbit rs=P2^5;//定义三个使能控制端口
- sbit rw=P2^6;
- sbit e=P2^7;
- void delay_1602(uchar z)//延时程序
- {
- uchar x, y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- /***********************************忙检测*******************************/
- void RDBF(void)
- {
- uchar temp;
- RS=0;
- RW=1;
- while(1)
- {
- P0=0xFF;
- E=1;
- temp=P0;
- E=0;
- if ((temp&0x80)==0) break;
- }
- }
- void write_data_1602(uchar LCD_D)//数据写入程序
- {
- RDBF();
- e=0;
- rs=1;
- rw=0;
- delay_1602(5);
- e=1;
- P0=LCD_D;
- e=0;
- }
- void write_command_1602(uchar LCD_C)//指令写如程序
- {
- RDBF();
- e=0;
- rs=0;
- rw=0;
- delay_1602(5);
- e=1;
- P0=LCD_C;
- e=0;
- }
- void init_1602()
- {
- // write_command_1602(0x01);///////清屏,固定的都是0x01
- write_command_1602(0x38);///////工作方式设置,固定0x38
- write_command_1602(0x0f);///////显示开关设置,0x0f开光标开闪,0x0e只开光标,0x0d只开闪,0X0C关
- write_command_1602(0x06);///////输入方式设置,一般都是0x06
- write_command_1602(0x80);///////DDRAM地址设置
-
- // write_command_1602(0x02);///////归HOME位,固定都是0x02
- // write_command_1602(0x10+0x04);//光标画面滚动设置
- // write_command_1602(0x40);///////CGRAM地址设置
- }
- #endif
复制代码
|
|