📄 lcd.h
字号:
#include<pic.h>
__CONFIG(0x1832);
#define rs RB1
#define rw RB2
#define e RB3
const char web[]={"ADconver result:"};
char tel[4];
//unsigned char table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36};
void init();
void lcd_init();
void write_web();
void write_tel(char adresult);
void write(char x);
void lcd_enable();
void delay();
void longdelay();
//---------------------------------------
//主函数
//---------------------------------------
//I/O口初始化函数
void init()
{
TRISB=0X00; //设置B口为输出
TRISD=0X00; //设置D口为输出
}
//---------------------------------------
//LCD初始化函数
void lcd_init()
{
PORTD=0X1; //清除显示
lcd_enable();
PORTD=0X38; //8位2行5*7点阵
lcd_enable();
PORTD=0X0C; //显示开,光标开,闪烁
lcd_enable();
PORTD=0X06; //文字不动,光标右移
lcd_enable();
PORTD=0X80;
lcd_enable();
}
//--------------------------------------
//显web地址
void write_web()
{
int i;
for(i=0;i<0x10;i++) //一共16字节数据
{
write(web[i]); //查表获取数据并调用写一个字节数据函数送LCD显示
}
}
//--------------------------------------
//显tel函数
void write_tel(char adresult)
{ char a,b;
int i;
a=(adresult&0xf0)>>4;
tel[0]=a+48;
tel[1]='.';
a=adresult&0x0f;
tel[2]=a+48;
tel[3]='v';
for(i=0;i<4;i++) //一共显示16字节数据
{
write(tel[i]); //查表获取数据并调用写一个字节数据函数送LCD显示
}
}
//--------------------------------------
//写一个字节数据函数
void write(char x)
{
PORTD=x; //待显示数据送PORTD口
rs=1; //该字节数据为数据,而不是命令
rw=0; //此次操作为写,而不是读
e=0; //拉低使能信号
delay() ; //保持使能信号为低一段时间
e=1; //拉高使能信号,建立LCD操作所需要的上升沿
}
//--------------------------------------
//LCD显示设置函数
void lcd_enable()
{
rs=0; //该字节数据为命令,而不是数据
rw=0; //此次操作为写,而不是读
e=0; //拉低使能信号
delay();
//保持使能信号为低一段时间
e=1; //拉高使能信号,建立LCD操作所需要的上升沿
}
//--------------------------------------
//延时函数
void delay()
{
int i;
for(i=0;i<50;i++);
}
void longdelay()
{
long int c;
for(c=0;c<50000;c++);
delay();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -