本文最后更新于 2173 天前,其中的信息可能已经有所发展或是发生改变。
LCD1602
#include <reg51.h>
sbit RS = P0^7;//RS拉低为命令,拉高为数据
sbit RW = P0^6;//低为写,高为读
sbit EN = P0^5;//高脉冲操作
//定义输出脚
unsigned char num[]= "1234567890";
unsigned char numm[]= "0987654321";
//显示内容
//延时n毫秒
void delay(unsigned int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<123;j++);
}
//写命令模式
void com(unsigned int c)
{
RS = 0;
P2 = c;//P2为8位数据输出
delay(5);
EN = 1;
delay(5);
EN = 0;//高脉冲
}
//写数据模式
void dat(unsigned int d)
{
RS = 1;
P2 = d;
delay(5);
EN = 1;
delay(5);
EN = 0;
}
void init()
{
RW = 0;//始终为写模式
EN = 0;//初始拉低EN
com(0x38);//初始化屏幕
com(0x0e);//开显示,显示光标
com(0x06);//当写一个数据时地址指针加一
com(0x80);//显示指针初始化
com(0x01);//清屏
}
void main()
{
unsigned int q=0;
unsigned int z=0;
init();
for (q=0;q<10;q++)
{
dat(num[q]);
delay(100);
}
com(0x80+0x40);
for (z=0;z<10;z++)
{
dat(numm[z]);
delay(100);
}
while(1);
}