找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1183|回复: 0
打印 上一主题 下一主题
收起左侧

stc89c52的lcd1602文件

[复制链接]
跳转到指定楼层
楼主
ID:471403 发表于 2019-1-21 20:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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--);
                }
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表