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

📄 5 1602lcd.c

📁 一些驱动程序和显示程序及传感器的简单应用,再软件和硬件上全部调试通过,可以直接使用
💻 C
字号:

 //8位液晶显示器1602显示数组//


#include <reg51.h>
#define  uchar unsigned char
#define Data_Bus P2

sbit RS=P0^5;
sbit RW=P0^6;
sbit E=P0^7;
sbit busy=Data_Bus^7;

void delay(void);
void init(void);
void wc51r(uchar i);
void wc51ddr(uchar i);
void chk_busy(void);

void init()   //初始化函数
{
  wc51r(0x01);   //清屏
  wc51r(0x38);   //使用8位数据显示2行,5*7字符
  wc51r(0x0f);   //显示器开,光标开,字符不闪烁
  wc51r(0x06);   //字符不动,光标自动右移一格
 }

void chk_busy(void)
{
 while(1)
 {
    Data_Bus=0xff;
    RS=0;
    RW=1;
    E=1;
    
    if(!busy)
      break;
    E=0;
 }
}


void  wc51r(uchar j)  //写地址
{
   chk_busy();
   E=0;
   RS=0;
   RW=0;
   E=1;
   Data_Bus=j;
   E=0;
   delay();
 }

void  wc51ddr(uchar j)   //写数据
{
   chk_busy();
   E=0;
   RS=1;   //选择数据寄存器
   RW=0;
   E=1;
   Data_Bus=j;
   E=0;
   delay();
 }


 void delay()
 {
   uchar y;
   for(y=0;y<0xff;y++);
  }


void main()
{
    unsigned char code tab1[]={'2','0','0','7',' ','0','7',' ','1','8', };
    unsigned char count,*p;
    init(); 
 
    p=tab1;
    wc51r(0x80);     //从第2行第6个位置开始写
    for(count=0;count<4;count++)
    wc51ddr(*p++);

    wc51r(0xc0);     //从第2行第6个位置开始写
    for(count=0;count<6;count++)
    wc51ddr(*p++);
    while(1);
}








⌨️ 快捷键说明

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