1602的使用方法及3个代码Word下载.docx
《1602的使用方法及3个代码Word下载.docx》由会员分享,可在线阅读,更多相关《1602的使用方法及3个代码Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
(1)通过RS确定是写数据还是写命令,写命令包括使液晶的光标显示/不显示、光标闪烁/不闪烁、需/不需要移屏、在液晶的什么位置显示,等等。
写数据是指要显示什么内容。
(2)读/写控制设置为写模式,即低电平。
(3)将数据或命令送达数据线上。
(4)将E一个高脉冲将数据送入液晶控制器,完成写操作。
1602显示数字程序(显示1,2,3,4,5)
/*程序功能:
在1602液晶上显示12345*/
#include<
reg52.h>
typedefunsignedcharuchar;
typedefunsignedintuint;
sbitbeep=P1^5;
//定义蜂鸣器端口
sbitLCD_RS=P2^6;
sbitLCD_RW=P2^5;
sbitLCD_EP=P2^7;
ucharcodetable[]={"
12345"
};
voiddelay(uintxms)
{//延时函数
uinti,j;
for(i=xms;
i>
0;
i--)
for(j=110;
j>
j--);
}
voidlcd_wcmd(ucharcmd)
{//写入指令数据到LCD
LCD_RS=0;
LCD_RW=0;
LCD_EP=0;
P0=cmd;
delay(10);
LCD_EP=1;
voidlcd_wdata(uchardat)
{//写入字符显示数据到LCD
LCD_RS=1;
P0=dat;
voidlcd_init()//LCD初始化设定初始化函数
{
lcd_wcmd(0x38);
//16*2显示,5*7点阵,8位数据
delay
(1);
lcd_wcmd(0x0c);
//设置开显示,不显示光标
lcd_wcmd(0x06);
//写一个字符后地址指针加1
lcd_wcmd(0x01);
//显示清0,数据指针清0
voidmain()
{
uchari;
beep=0;
//蜂鸣器默认处于开启状态,所以关闭它
lcd_init();
//LCD初始化
lcd_wcmd(0x80);
//设置显示位置为第一行的第1个字符
while(table[i]!
='
\0'
)
{//显示字符"
lcd_wdata(table[i]);
i++;
delay(200);
//控制两字之间显示速度
}
while
(1);
字样滚动显示程序
在1602液晶上滚动显示字样*/
//定义蜂鸣器端口
//数据/命令选择端(H/L)
//读写选择端(1/0)
//使能信号
ucharcodetable1[]={"
Hellotoworld"
ucharcodetable2[]={"
Hellotolife"
/*******************************************************************/
/*
/*写指令数据到LCD
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。
//while(lcd_bz());
/*写显示数据到LCD
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。
while
(1)
{
lcd_wcmd(0x01);
//清屏
i=0;
lcd_wcmd(0x80+0x10);
//第1行第17列(屏幕之外,不显示)
while(table1[i]!
)//写入Hellotoworld
{
lcd_wdata(table1[i]);
i++;
}
lcd_wcmd(0x80+0x50);
while(table2[i]!
)//写入Hellotolife
lcd_wdata(table2[i]);
for(i=0;
i<
30;
i++)//向左移动30格
{
lcd_wcmd(0x18);
//全屏字符同时左移一格,写在屏幕外的字符慢慢显示出来
delay(800);
//控制移动时间
综合实验三:
按键控制1602显示
/*此程序功能:
按下4个按键可在1602液晶上显示不同字样*/
//52系列单片机头文件
sbitkey1=P3^2;
//定义按键端口
sbitkey2=P3^3;
sbitkey3=P3^4;
sbitkey4=P3^5;
YouPressKey1"
YouPressKey2"
ucharcodetable3[]={"
YouPressKey3"
ucharcodetable4[]={"
YouPressKey4"
uchari;
voidkeyscan()//按键扫描,根据扫描到的不同按键在1602上显示不同字样
if(key1==0)
delay(10);
//利用软件延时坚决按键过程中的抖动问题
//清屏
if(key1==0)
{
while(!
key1);
//等待按键释放
i=0;
lcd_wcmd(0x80);
//第1行第1列
while(table1[i]!
)//按键1对应的字样
{
lcd_wdata(table1[i]);
i++;
}
if(key2==0)
//延时消抖
if(key2==0)
key2);
lcd_wcmd(0x80+0x40);
//第2行第1列
while(table2[i]!
lcd_wdata(table2[i]);
}
if(key3==0)
if(key3==0)
key3);
while(table3[i]!
lcd_wdata(table3[i]);
if(key4==0)
if(key4==0)
key4);
while(table4[i]!
lcd_wdata(table4[i]);
//LCD初始化
//蜂鸣器默认是开启的,所以先关闭蜂鸣器
while
(1)
keyscan();
//调用键盘扫描函数