1月12日 LCD1602
初始化
图
图1
图2

图3
void init() //³õʼ»¯
{
dula = 0;
wela = 0; //¹Ø±ÕÊýÂë¹Ü
lcden = 0; //ʹÄܶËÖÃ0
write_mingling(0x38); //ÏÔʾģʽÉèÖà ÉèÖÃ16¡Á2ÏÔʾ ¿´Í¼2
write_mingling(0x0f); //ÉèÖÿªÏÔʾ ÏÔʾ¹â±ê ¹â±êÉÁ˸
write_mingling(0x06); //дһ¸ö×Ö·ûºóµØÖ·Ö¸Õë+1 ²»×óÒÆ
write_mingling(0x80); //ÉèÖÃÊý¾ÝµØÖ·Ö¸Õë 80+
write_mingling(0x01); //ÇåÆÁ
}
注释乱码了,暂时不知道如何解决
写一个1B的简答例程
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;
sbit wela = P2^7;
sbit lcden = P3^4;
sbit rs = P3^5;
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void write_mingling(uchar com) //Ñ¡ÔñÃüÁîģʽ RS = 0
{
rs = 0; //Ñ¡ÔñÃüÁîģʽ ¸øRSµÍµçƽ
P0 = com; //½«ÒªÐ´µÄÃüÁî·¢Ë͵½×ÜÏßÉÏ
delay(5); //ÑÓʱ ¿´²Ù×÷ʱÐòͼ
lcden = 1; //ʹÄܶ˸ßÂö³å E = 1
delay(5);
lcden = 0; //ʹÄܶËÖÃ0
}
void write_shuju(uchar date) //Ñ¡ÔñÊý¾Ýģʽ RS = 1
{
rs = 1; //Ñ¡ÔñÃüÁîģʽ ¸øRS¸ßµçƽ
P0 = date; //½«ÒªÐ´µÄÃüÁî·¢Ë͵½×ÜÏßÉÏ
delay(5); //ÑÓʱ ¿´²Ù×÷ʱÐòͼ1
lcden = 1; //ʹÄܶ˸ßÂö³å E = 1
delay(5);
lcden = 0; //ʹÄܶËÖÃ0
}
void init() //³õʼ»¯
{
dula = 0;
wela = 0; //¹Ø±ÕÊýÂë¹Ü
lcden = 0; //ʹÄܶËÖÃ0
write_mingling(0x38); //ÏÔʾģʽÉèÖà ÉèÖÃ16¡Á2ÏÔʾ ¿´Í¼2
write_mingling(0x0f); //ÉèÖÿªÏÔʾ ÏÔʾ¹â±ê ¹â±êÉÁ˸
write_mingling(0x06); //дһ¸ö×Ö·ûºóµØÖ·Ö¸Õë+1 ²»×óÒÆ
write_mingling(0x80); //ÉèÖÃÊý¾ÝµØÖ·Ö¸Õë 80+
write_mingling(0x01); //ÇåÆÁ
}
void main()
{
init();
write_shuju('1'); //ASCLLÂëΪ '1' »ò0x31
delay(10);
write_shuju('B');
while(1);
}
本文档详细介绍了LCD1602显示模块的初始化过程,包括设置显示模式、光标样式和地址指针等。此外,提供了一个简单的C语言例程,展示如何在LCD1602上显示字符'1'和'B',通过P2和P3口进行数据和指令传输,并使用延时函数确保正确操作。

8108

被折叠的 条评论
为什么被折叠?



