📄 lcm1601_hi_4bit.c
字号:
/*
说明 用单片机高四位驱动LCM1601显示模块显示指定字符串(4bit模式)
文件 LCM1601_HI_4BIT.C
作者 TEGEST
修改 修改建议可发到21ICBBS讨论. 或 photar@126.com
版本 V1.00A Build 0811
*/
#include<reg52.h>//采用51单片机P0口高四位07-04输出数据
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="0123456789ABCDEF";
sbit lcdrs=P2^2;
sbit lcdrw=P2^3;
sbit lcden=P2^4;
uchar num;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P0=com;
delay(1);
lcden=1;
delay(1);
lcden=0;
}
void write_data(uchar date)
{
uchar temp;
temp=date<<4; //低四位数据
lcdrs=1;
delay(1);
P0=date;
delay(1);
lcden=1;
delay(1);
lcden=0;
delay(1);
lcdrs=1; //写低四位数据
P0=temp;
delay(1);
lcden=1;
delay(1);
lcden=0;
delay(1);
}
void init()
{
delay(100);
lcden=0;
lcdrw=0;
write_com(0x0f);
write_com(0x2f);//地址计数器清零
delay(1);
write_com(0x0f);
write_com(0x2f);
delay(1);
write_com(0x2f);//2line display on 4bits
write_com(0x8f);//2line display on 4bits
delay(1);
write_com(0x0f);
write_com(0x6f);//display on/off control
delay(1);
write_com(0x0f);
write_com(0xcf);//entry mode set c0光标关 e0光标开 f0光标闪烁开
delay(1);
write_com(0x0f);
write_com(0x1f);//display clear
delay(1);
}
void main()
{
init();
for(num=0;num<8;num++)
{
write_data(table[num]);
delay(1);
}
write_com(0xcf);//指定第二行的地址 0xc0=0x80+0x40
write_com(0x0f);//指定第二行的地址
for(num=8;num<16;num++)
{
write_data(table[num]);
delay(1);
}
delay(5);
write_com(0x0f);
write_com(0x6f);
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -