?? lcd1602.h
字號(hào):
/*------------------------------------------------------------------------------*/
//File: LCD1602_8.H
//Date: 08-7-29
//Time: 16:09
//Note: LCD1602 Mini Driver.
/*------------------------------------------------------------------------------*/
#ifndef __LCD1602_8_H__
#define __LCD1602_8_H__
/*------------------------------------------------------------------------------*/
//LCD接口定義
sfr io = 0x80; //P0-0x80,P1-0x90,P2-0xA0,P3-0xB0;
sbit rs = P2^0; //LCD數(shù)據(jù)/命令選擇端(H/L)
sbit rw = P2^1; //LCD讀/寫(xiě)選擇端(H/L)
sbit ep = P2^2; //LCD使能控制
sbit bz = io^7; //LCD忙標(biāo)志位
/*------------------------------------------------------------------------------*/
//函數(shù)聲明
void lcd_busy(void); //測(cè)試LCD忙碌狀態(tài)程序
void lcd_wcmd(unsigned char cmd); //寫(xiě)入指令到LCD程序
void lcd_wdat(unsigned char dat); //寫(xiě)入數(shù)據(jù)到LCD程序
void lcd_pos (unsigned char x, bit y); //LCD數(shù)據(jù)指針位置程序
void printc(unsigned char CHAR); //顯示字符
//void prints(unsigned char *string); //顯示字符串
void lcd_init(void); //LCD初始化設(shè)定程序
/*------------------------------------------------------------------------------*/
//測(cè)試LCD忙碌狀態(tài)
void lcd_busy(void)
{
do{
ep = 0;
rs = 0; //指令
rw = 1; //讀出
io = 0xff;
ep = 1;
_nop_(); //高電平讀出 1us
}while(bz); //bz=1表示忙,bz=0表示空閑
ep = 0;
}
/*------------------------------------------------------------------------------*/
//寫(xiě)入指令到LCD
void lcd_wcmd(unsigned char cmd)
{
lcd_busy(); //檢測(cè)忙
rs = 0; //指令
rw = 0; //寫(xiě)入
ep = 1;
io = cmd; //指令
ep = 0; //下降沿有效
}
/*------------------------------------------------------------------------------*/
//寫(xiě)入數(shù)據(jù)函數(shù)
void lcd_wdat(unsigned char Data)
{
lcd_busy(); //檢測(cè)忙
rs = 1; //數(shù)據(jù)
rw = 0; //寫(xiě)入
ep = 1;
io = Data; //數(shù)據(jù)
ep = 0; //下降沿有效
}
/*------------------------------------------------------------------------------*/
//LCD數(shù)據(jù)指針位置程序
void lcd_pos(unsigned char x, bit y)
{
if(y)lcd_wcmd(x|0xc0); //y=1,第二行顯示;y=0,第一行顯示 0<=x<16
else lcd_wcmd(x|0x80); //數(shù)據(jù)指針=80+地址碼(00H~27H,40H~67H)
}
/*------------------------------------------------------------------------------*/
//顯示字符
void printc(unsigned char CHAR)
{
lcd_wdat(CHAR);
}
/*------------------------------------------------------------------------------*/
//顯示字符串
/*
void prints(unsigned char *string)
{
unsigned char i;
//do{lcd_wdat(string[i]);i++;}while(string[i]!='\0');//生成代碼比f(wàn)or循環(huán)大
for(i=0;string[i]!='\0';i++)lcd_wdat(string[i]); //有時(shí)用for循環(huán)也好哈
}
*/
/*------------------------------------------------------------------------------*/
//LCD初始化設(shè)定
void lcd_init()
{
lcd_wcmd(0x38); //設(shè)置LCD為16X2顯示,5X7點(diǎn)陣,八位數(shù)據(jù)接口
lcd_wcmd(0x06); //LCD顯示光標(biāo)移動(dòng)設(shè)置(光標(biāo)地址指針加1,整屏顯示不移動(dòng))
lcd_wcmd(0x0c); //LCD開(kāi)顯示及光標(biāo)設(shè)置(光標(biāo)不閃爍,不顯示"_")
lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容
}
#endif
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -