⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd4.c

📁 LCD-7279的经过调试多次已经能够实现在指定的位置显示特定的数据。 程序lcd1.c实现基本的功能
💻 C
字号:
#include<reg52.h>
#define uchar unsigned char
#define START 0xf8           //数据传输起始位

sbit sid=P2^6;               //定义串行数据位为P2.6
sbit sclk=P2^5;              //定义串行时钟位为P2.5
sbit rs=P2^7;                //定义RS位为p2.7

uchar com,hdata,ldata;       //命令和数据
uchar idata s_1234[]={0x31,0x32,0x33,0x34,0x00};  //待显示字符
uchar t1=1;         //延时1ms
uchar t2=40;        //延时40ms

//函数说明
void init_lcd(void);       //初始化液晶
void write(uchar a);       //写入命令或数据
void disp_1234(uchar x,uchar idata *s);     //显示1234
void send(uchar b);        //串行数据发送
void wait(uchar t);        //延时程序

//主函数
void main()
{ rs=1;
  init_lcd();
  disp_1234(0x80,s_1234);
}

void init_lcd(void)
{ wait(t2);     //延时等待内部复位
  com=0x30;  write(com);   //使用8位控制界面
  com=0x30;  write(com);   //使用基本指令集
  com=0x0c;  write(com);   //整体显示开
  wait(t1);
  com=0x01;  write(com);   //清屏
  wait(t2);
  com=0x06;  write(com);   //显示右移
  wait(t1);
}

void write(a)
uchar a;
{ hdata=a&0xf0;         //将高四位送至hdata单元
  ldata=(a&0x0f)<<4;    //将低四位送至ldata单元
  send(START);          //发送启始字节
  wait(t1);
  send(hdata);          //发送高四位
  wait(t1);
  send(ldata);          //发送低四位
  wait(t1);
}

void disp_1234(x,s)
uchar x;                //显示位置
uchar idata *s;         //显示的字符串
{ uchar i=0;
  write(START);
  write(x);
  while(s[i]!=0x00)
  { write(s[i]);
    i++;
   }
}

void send(b)
uchar b;
{ uchar j;
  for(j=0;j<8;j++)   //发送8位
  { sid=b>=0x80;     //从高到低逐位发送
    b<<=1;
    sclk=0;          //产生同步时钟
    sclk=1;
   }
}

void wait(t)
uchar t;         //延时t毫秒
{ uchar k;
  while(t--)
  { for(k=0;k<125;k++)   //延时约1秒
    {;}
   }
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -