
这是为你量身制作的,希望你能喜欢,光标根据按键在数字下面闪烁,一定符合你的要求,给你截了一张效果图
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar code table[]="1602"
sbit key1=P1^0
sbit key2=P1^1
sbit key3=P1^2
sbit key4=P1^3
sbit rs=P2^0
sbit rw=P2^1
sbit en=P2^2
void delay(uint z)
{
uint x,y
for(x=zx>0x--)
for(y=110y>0y--)
}
void write_com(uchar com)
{
rs=0
rw=0
en=0
P0=com
delay(5)
en=1
delay(5)
en=0
}
void write_dat(uchar dat)
{
rs=1
rw=0
en=0
P0=dat
delay(5)
en=1
delay(5)
en=0
}
void init()
{
uchar i
write_com(0x38)
write_com(0x0c)
write_com(0x06)
write_com(0x01)
write_com(0x86)
for(i=0i<4i++)
{
write_dat(table[i])
delay(5)
}
}
void main()
{
init()
while(1)
{
if(key1==0)
{
delay(10)
if(key1==0)
{
while(key1==0)
write_com(0x86)
write_com(0x0f)
}
}
if(key2==0)
{
delay(10)
if(key2==0)
{
while(key2==0)
write_com(0x87)
write_com(0x0f)
}
}
if(key3==0)
{
delay(10)
if(key3==0)
{
while(key3==0)
write_com(0x88)
write_com(0x0f)
}
}
if(key4==0)
{
delay(10)
if(key4==0)
{
while(key4==0)
write_com(0x89)
write_com(0x0f)
}
}
}
}
这和你的硬件电路有关系,看程序好像P0是数据输入端#include <reg51.h>
#define uchar unsigned char//宏定义
sbit Rs=P2^0 //P2.0引脚接1602的数据/命令选择端
sbit Rw=P2^1 //P2.1引脚接1602的读/写控制端
sbit E=P2^7//P2.7引脚接1602的使能端
uchar table[]="Liu Xiao Ming",buffer //定义两个字符型变量
int k=0
void delay(int t) //延时子程序
{
int i,j
for(i=0i<255i++)
for(j=0j<tj++)
}
void writecom(void) //写命令子程序
{
Rs=0Rw=0E=1
P0=buffer
E=0
delay(5)
}
void writedata(void)//写数据子程序
{
Rs=1Rw=0E=1
P0=buffer
E=0
delay(5)
}
void init(void)//1602初始化子程序
{
buffer=0x08writecom() //显示关闭
buffer=0x3cwritecom() //
buffer=0x14writecom()
buffer=0x06writecom() //显示光标移动设置
buffer=0x01writecom() //显示清屏
buffer=0x0fwritecom()//
}
void main()
{
init()//1602初始化
buffer=0x80//
writecom()
buffer=0xc0
writecom()
for(k=0k<20k++)
{
buffer=table[k]//缓存数据
writedata() //向1602写数据,使其显示Liu Xiao Ming
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)