微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎么让1602光标不显示

怎么让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);
}

怎么让光标不显示?是那个函数?
求神仙指点



没人懂吗?

easy,如下:
void qingchu1(void)          //清屏
{
        xiezhiling(0x38);
        delay(250);
        xiezhiling(0x0f);////////////////这里改成 xiezhiling(0x0c);
        delay(250);
        xiezhiling(0x06);
        delay(250);
}







564564561261‘了空间ikjkmhuog以后或背后





Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top