|
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
復制代碼
|
|