51学习笔记之以总线方式实现1602与8051连接

//以总线方式实现8051与1602的通信
//这个程序主要实现功能是向1602发送一串字符串,并显示出来



#include<reg52.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int 


#define LCDDDATA XBYTE[0xffff] //读数据地址
#define LCDXDATA XBYTE[0xfdff] //写数据地址
#define LCDDCOM XBYTE[0xfeff]  //读命令
#define LCDXCOM XBYTE[0xfcff]  //写命令
uchar idata s_GOOD[5]={'W','D','J','X',0x00};
uchar idata s_GOOD1[]={'2','0','1','6','-','0','7','-','2','2',0x00};
sbit bflag=ACC^7;
void wait(void)
{
    do{ACC=LCDDCOM;}while(bflag==1);
}
void init_lcd(void)
{

    LCDXCOM=0x38; //设置模式
    wait();
    LCDXCOM=0x0f;  //显示开关及光标设置
    wait();
    LCDXCOM=0x06;   //显示开关及光标设置
    wait();
    LCDXCOM=0x01;    //清屏
    wait();

}
void d_char(uchar a)  //写入数据函数
{
    LCDXDATA=a;
    wait();
}
void display(uchar x ,uchar idata *s)    //显示函数 第一个变量是地址比如 0x80或0x80+0x40 第二个是数据
{

    uchar i=0;
    LCDXCOM=x;
    wait();
    while(s[i]!=0x00)
    {
        d_char(s[i]);
        i++;
    }
}
    void main(void)
    {
        init_lcd();
        display(0x80+0x01,s_GOOD);
        display(0x80+0x40,s_GOOD1);
        while(1);
    }
//转载请注明出处

相关仿真程序地址:

http://pan.baidu.com/s/1bGuyaa

原文地址:https://www.cnblogs.com/dafang/p/5695954.html