怎么让1602光标不显示
时间:10-02
整理:3721RD
点击:
/*********************************************************************/
/*设备:YL-236单片机设备
/*实验:05LCD1602
/*时间:
/*要求:1602显示
/* 单片机P0口(8位)接显示模块-LCD1602 DB0-DB7
rs=P2^0 rw=P2^1 e =P2^2
/*********************************************************************/
#include <REGX52.H> // AT89S52标准头文件
#include<intrins.h> // 包含_nop_(); // 大约1us
sbit rs=P2^0;
sbit rw=P2^1;
sbit e =P2^2;
unsigned char code zifu1[]={" long.cn "};//这里共有16个数值,但在数组里有17个最后一个是'\0'
unsigned char code zifu2[]={"0"};
void delay(unsigned char ij)//一个不精确的时间延时
{
while(ij--);
}
bit mang() //判断是否忙 每次送完数据或命令 都要判断这个数据是否处理完毕,如果这条数据或命令没有处理完毕,那么就不能送下一条数据或命令
{
bit mang1;
rs=0;
rw=1;
e=1;
mang1=(bit)(P0&0x80);
e=0;
return mang1;
}
void xiezhiling(unsigned char cmd) //写指令
{
while(mang());
rs=0;
rw=0;
e=0;
P0=cmd;
e=1;
e=0;
}
void weizhi(unsigned char pos) //位置
{
xiezhiling(pos | 0x80);
}
void xieshuju(unsigned char dat) //写数据
{
while(mang());
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
e=0;
}
void qingchu1(void) //清屏
{
xiezhiling(0x38);
delay(250);
xiezhiling(0x0f);
delay(250);
xiezhiling(0x06);
delay(250);
}
void main(void) //主函数
{
unsigned char i;
delay(255);
delay(255);
delay(255);
qingchu1();
delay(255);
delay(255);
i=0;
weizhi(0x00);//第一行的起始地址
while(zifu1[i] != '\0')//判断是否为数组的最后一个,见数组说明
{
xieshuju(zifu1[i]);
i++;
delay(50);
}
i=0;
weizhi(0x40);//第二行的起始地址
while(zifu2[i] != '\0')
{
xieshuju(zifu2[i]);
i++;
delay(50);
}
while(1);
}
怎么让光标不显示?是那个函数?
求神仙指点
/*设备:YL-236单片机设备
/*实验:05LCD1602
/*时间:
/*要求:1602显示
/* 单片机P0口(8位)接显示模块-LCD1602 DB0-DB7
rs=P2^0 rw=P2^1 e =P2^2
/*********************************************************************/
#include <REGX52.H> // AT89S52标准头文件
#include<intrins.h> // 包含_nop_(); // 大约1us
sbit rs=P2^0;
sbit rw=P2^1;
sbit e =P2^2;
unsigned char code zifu1[]={" long.cn "};//这里共有16个数值,但在数组里有17个最后一个是'\0'
unsigned char code zifu2[]={"0"};
void delay(unsigned char ij)//一个不精确的时间延时
{
while(ij--);
}
bit mang() //判断是否忙 每次送完数据或命令 都要判断这个数据是否处理完毕,如果这条数据或命令没有处理完毕,那么就不能送下一条数据或命令
{
bit mang1;
rs=0;
rw=1;
e=1;
mang1=(bit)(P0&0x80);
e=0;
return mang1;
}
void xiezhiling(unsigned char cmd) //写指令
{
while(mang());
rs=0;
rw=0;
e=0;
P0=cmd;
e=1;
e=0;
}
void weizhi(unsigned char pos) //位置
{
xiezhiling(pos | 0x80);
}
void xieshuju(unsigned char dat) //写数据
{
while(mang());
rs=1;
rw=0;
e=0;
P0=dat;
e=1;
e=0;
}
void qingchu1(void) //清屏
{
xiezhiling(0x38);
delay(250);
xiezhiling(0x0f);
delay(250);
xiezhiling(0x06);
delay(250);
}
void main(void) //主函数
{
unsigned char i;
delay(255);
delay(255);
delay(255);
qingchu1();
delay(255);
delay(255);
i=0;
weizhi(0x00);//第一行的起始地址
while(zifu1[i] != '\0')//判断是否为数组的最后一个,见数组说明
{
xieshuju(zifu1[i]);
i++;
delay(50);
}
i=0;
weizhi(0x40);//第二行的起始地址
while(zifu2[i] != '\0')
{
xieshuju(zifu2[i]);
i++;
delay(50);
}
while(1);
}
怎么让光标不显示?是那个函数?
求神仙指点
没人懂吗?
easy,如下:
void qingchu1(void) //清屏
{
xiezhiling(0x38);
delay(250);
xiezhiling(0x0f);////////////////这里改成 xiezhiling(0x0c);
delay(250);
xiezhiling(0x06);
delay(250);
}
564564561261‘了空间ikjkmhuog以后或背后