📄 lcd.h
字号:
#include<pic.h>
// __CONFIG(0x1832);
#define rs RB1
#define rw RB2
#define e RB3
const char web[]={"Frequency "};
char tel[7];
bank2 unsigned char s[4];
bank2 double RE5;
bank2 int temp[8];
void init();
void lcd_init();
void write_web();
void write_tel(double RE5);
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(double RE5)
{
int i,u0;
u0=(int)RE5;
temp[0]=u0/10000;
temp[1]=u0%10000;
temp[2]=temp[1]/1000;
temp[3]=temp[1]%1000;
temp[4]=temp[3]/100;
temp[5]=temp[3]%100;
temp[6]=temp[5]/10;
temp[7]=temp[5]%10;
tel[0]=temp[0]+48;
tel[1]=temp[2]+48;
tel[2]=temp[4]+48;
tel[3]=temp[6]+48;
tel[4]=temp[7]+48;
tel[5]='H';
tel[6]='z';
for(i=0;i<7;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<5000;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -