?? 剛寫的1602字符液晶模塊驅動程序.txt
字號:
液晶顯示器以其微功耗、體積小、顯示內容豐富、超薄輕巧的諸多優點,在袖珍式儀表和低功耗應用系統中得到越來越廣泛的應用。本人以常用的2行16列液晶模塊為例,編寫了一個驅動程序,在應用時只需要根據硬件連接方式作適當修改,在主程序中包含其頭文件即可以用幾個簡單的函數實現功能,實現了簡化編程。
//#pragma src // 產生匯編文件
#ifndef _LCD1602_H_
#define _LCD1602_H_
#include<reg52.h>
//========= 變量類型標識的宏定義,通常做法 ==============
#define Uchar unsigned char
#define Uint unsigned int
//======== 定義LCD與MCU的接口,LCD數據線接P1 =============
#define LCD_DATA P1
sbit LCD_EN=P3^5;
sbit LCD_RS=P3^6;
sbit LCD_RW=P3^7;
#endif
/*------------------------------------------------
Public function prototypes 函數原型
-------------------------------------------------*/
void LCD_init(void);/*初始化*/
void LCD_cmd(Uchar cmd);/*寫入控制命令*/
void LCD_string(char *s);/*寫入要顯示的字符串*/
void LCD_char(char str);/*寫入要顯示的字符*/
void setxy(char x,char y);/*設定顯示位置,行x=1/2,列y=1~16的任意整數*/
void wait_until_ready(void);/*檢測忙標志,忙則等待*/
void delay(void);
函數實現:
#include"LCD1602.H"
sbit bflag=ACC^7;
void delay(void) //延時函數
{
#pragma asm
nop
#pragma endasm
}
/*產生一個使能脈沖*/
void En_Toggle(void)
{
LCD_EN=1;
delay();
LCD_EN=0;
delay();
}
void LCD_init(void)
{
LCD_cmd(0x38);/*8位數據,2行顯示*/
LCD_cmd(0x08);/*顯示關閉*/
LCD_cmd(0x01);/*清屏*/
/*清屏和光標歸位需要較長的時間*/
LCD_cmd(0x06);/*寫入數據后光標右移*/
LCD_cmd(0x0c);/*顯示開,不顯示光標*/
}
void LCD_cmd(Uchar cmd)/*寫入控制命令*/
{
LCD_RS=0;
LCD_RW=0;
LCD_DATA=cmd;
En_Toggle();
wait_until_ready();
}
void LCD_char(char str)/*寫入要顯示的字符*/
{
LCD_RS=1;
LCD_RW=0;
LCD_DATA=str;
En_Toggle();
wait_until_ready();
}
void setxy(char x,char y) /*設定顯示位置,行x=1/2,列y=1~16的任意整數*/
{
char temp;
if(x==1)
{temp=0x80+y-1;
LCD_cmd(temp);
}
else
{temp=0xC0+y-1;
LCD_cmd(temp);
}
}
void LCD_string(char *s)
{
for(;*s!='\0';s++)LCD_char(*s);
}
void wait_until_ready(void) /*檢測忙標志,忙則等待*/
{
LCD_RS=0;
LCD_RW=1;
LCD_DATA=0x0ff;
LCD_EN=1;
delay();
do{ACC=LCD_DATA;}while(bflag==1);
LCD_EN=0;
}
應用實例:
#include<reg52.h>
#include"LCD1602.H"
void main(void)
{
LCD_init();
setxy(1,1);
LCD_char('V');
LCD_string("My Blog");
setxy(2,1);
LCD_string("newsword.cublog.cn");
for(;;){}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -