标题: stc89c52的lcd1602文件 [打印本页]

作者: 12355955    时间: 2019-1-21 20:14
标题: stc89c52的lcd1602文件
#include <reg51.h>
sbit LCD1602_E=P2^7;
sbit LCD1602_RW=P2^5;
sbit LCD1602_RS=P2^6;
#ifndef _LCD_H_
#define _LCD_H_
#define LCD1602_4PINS

#include <reg51.h>
#ifndef uchar
#define uchar unsigned char
        #endif
#ifndef uint
#define uint unsigned int
        #endif
#define LCD1602_DATAPINS P0

void L_D(uint c);//延时函数
void LWC(uchar com);//为读入一个字符de命令
void LWD(uchar dat);//为写入一个字符de数据
void LI();//初始化,在扫描录入之前
#endif

#ifndef   LCD1602_4PINS
void LWC(uchar com){
        LCD1602_E=0;
        LCD1602_RS=0;
        LCD1602_RW=0;
        LCD1602_DATAPINS=com;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;
}
#else
void LWC(uchar com){
        LCD1602_E=0;
        LCD1602_RS=0;
        LCD1602_RW=0;
        LCD1602_DATAPINS=com;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;
        L_D(1);
        LCD1602_DATAPINS=com << 4;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;
}
#endif
#ifndef LCD1602_4PINS
void LWD(uchar dat){
        LCD1602_E=0;
        LCD1602_RS=1;
        LCD1602_RW=0;
        LCD1602_DATAPINS=dat;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;
}
#else
void LWD(uchar dat){
        LCD1602_E=0;
        LCD1602_RS=1;
        LCD1602_RW=0;
        LCD1602_DATAPINS= dat;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;
        LCD1602_DATAPINS=dat << 4;
        L_D(1);
        LCD1602_E=1;
        L_D(5);
        LCD1602_E=0;}
#endif
#ifndef  LCD1602_4PINS
        void LI(){
                LWC(0x38);
                LWC(0x0c);
                LWC(0x06);
                LWC(0x01);
                LWC(0x80);
        }
        #else
        void LI(){
                LWC(0x32);
                LWC(0x28);
                LWC(0x0c);
                LWC(0x06);
                LWC(0x01);
                LWC(0x80);
        }
        #endif
       
               
               
       
//延时函数
void L_D(uint c){
        uchar a,b;
        for(;c>0;c--){
                for (b=199;b>0;b--){
                        for (a=1;a>0;a--);
                }
        }
}






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1