⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display.h

📁 图型点陈液晶显示模块FM12864M-12L 汉字图形点阵液晶显示模块
💻 H
字号:
#define uchar unsigned char
/////液晶显示部分定义
const uchar ds[10]={'0','1','2','3','4','5','6','7','8','9'};
#define setE P1OUT|=BIT7//把E拉高
#define clrE P1OUT&=~BIT7//把E拉低
#define setRW P1OUT|=BIT6//把R/W拉高
#define clrRW P1OUT&=~BIT6//把R/W拉低
#define clrRS P1OUT&=~BIT5//把RS拉低,读写指令
#define setRS P1OUT|=BIT5//把RS拉高,写数据
/***********显示程序开始**********************/
void yjwrite_byte(uchar wdata)//向液晶写一个字节
{P2DIR=0xff;//把P2口作为液晶显示的8位数据口,定义为输出方式
 clrRW;//把R/W拉低
 setE;//把E拉高
 P2OUT=wdata;//输出数据
 clrE;//把E拉低
}
uchar yjread_byte()//从液晶读一字节 
{uchar rdata;
 P2DIR=0x00;//把P2口作为液晶显示的8位数据口,定义为输入方式
 setRW;//把R/W拉高
 setE;//把E拉高
 rdata=P2IN;//把数据读入rdata
 clrE;//把E拉低
 return rdata;
}
void yjwrite_addr(uchar addr)//写命令或地址程序
{uchar busy;
 clrRS;//把RS拉低,读写指令
 busy=yjread_byte();//读忙指令
 while(busy&0x80)//判忙
 {busy=yjread_byte();}
 yjwrite_byte(addr);//写入命令或地址
}
void yjwrite_data(uchar sdata)//写入数据
{uchar busy;
 clrRS;//把RS拉低,读写指令
 busy=yjread_byte();//读忙指令
 while(busy&0x80)//判忙
 {busy=yjread_byte();}
 setRS;//把RS拉高,写数据
 yjwrite_byte(sdata);//写入数据
}
void yjwrite_addrdata(uchar addr,uchar sdata1,uchar sdata2)//向某一地址写数据
{uchar sdata11,sdata12;
 if(sdata1=='/'||sdata1==':'||sdata1==' ')
 {sdata11=sdata1;}
 else
 {sdata11=ds[sdata1];}
 if(sdata2=='/'||sdata2==':'||sdata2==' ')
 {sdata12=sdata2;}
 else
 {sdata12=ds[sdata2];}
 yjwrite_addr(addr);
 yjwrite_data(sdata11);
 yjwrite_data(sdata12);
}
void yjwrite_addrhan(uchar addr,uchar sdata1,uchar sdata2)//向某一地址写汉字或字符
{
 yjwrite_addr(addr);
 yjwrite_data(sdata1);
 yjwrite_data(sdata2);
}
void yjdisplay_init()//液晶显示初始化
{P1DIR|=BIT7+BIT6+BIT5;//把P1口的高三位作为显示的E(7),R/W(6),RS(5),定义为输出
 yjwrite_addr(0x30);//使用基本指令集
 yjwrite_addr(0x01);//向液晶写入清屏指令
 yjwrite_addr(0x02);//写入地址归位指令
 yjwrite_addr(0x0c);//写入整体显示和''关闭''光标显示指令
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -