/* Main.c file generated by New Project wizard
 *
 * Created:   周日 4月 23 2023
 * Processor: AT89C51
 * Compiler:  Keil for 8051
 */

#include<reg51.h>
#define uchar  unsigned char
#define uint  unsigned int
    
#define LCD_DB P0 // - - P0 = DB0~DB7
sbit LCD_RS=P2^0;        
sbit LCD_RW=P2^1;
sbit LCD_E=P2^2;

uchar code dis1[] = {"  Jia shuheng   "};
uchar code dis2[] = {"  159xxxx5255   "};

void LCDWriteC(uchar cmd);
void LCDwritedat(uchar dat);
void LCD_delayms(uchar ms);

void LCDInit(void)
{  
 LCDWriteC(0x38); //com6  data_bus=8 display 2 lines
 LCD_delayms(2);
 LCDWriteC(0x08); //com4 
 LCD_delayms(2);    
 LCDWriteC(0x01); //com1 clear display
 LCD_delayms(2);
 LCDWriteC(0x06); //com3  right shift
 LCD_delayms(2);
 LCDWriteC(0x0c);  //com4  display function 
}

//DELAY FUNCTION
void LCD_delayms(uchar ms)
{
 uchar  i,j;
 for(i=0;i<ms;i++)
 for(j=0;j<57;j++)
 ;
}

void LCDWriteC(uchar cmd)
{
LCD_E=0; 
LCD_RS=0; // - - 指令
LCD_RW=0; // - - 写入
    
LCD_DB=cmd;
LCD_delayms(2);

LCD_E=1; // - - 允许
LCD_delayms(5);

LCD_E=0;
}

void LCDwritedat(uchar dat)
{

LCD_delayms(5);
LCD_RS=1;// - - 数据
LCD_RW=0;// - - 写入
    
    LCD_DB=dat;
    LCD_delayms(5);
    
    LCD_E=1;  // - - 允许
    LCD_delayms(5);
    LCD_E=0;
    }

void main(void)

{
uchar i;
LCDInit();
while(1)
    {
    LCDWriteC(0x80);// 发送命令,规定显示的位置。
    for(i=0;i<16;i++)
    LCDwritedat(dis1[i]) ;// 发送显示的数据。
        
    LCDWriteC(0x80+0x40);// 发送命令,规定显示的位置。
    for(i=0;i<16;i++)
    LCDwritedat(dis2[i]) ;// 发送显示的数据。
    }

}

21 LCD1602相关推荐

  1. 基于STM8的数字温度计设计

    基于STM8的数字温度计设计 这是在2021年12月初完成的一次课程设计,全程自己设计组装完成,现作为记录存档发布,大家也可以借鉴本文来完成自己的课程设计.(建议使用电脑阅读) 课程设计目录 基于ST ...

  2. 【转】Android4.4 之Bluetooth整理

    原文网址:http://www.cnblogs.com/shed/p/3737016.html Android 4.4上蓝牙协议栈采用的是BRCM和Google共同开发的bluedroid,代替了之前 ...

  3. LCD1602液晶显示模块的单片机驱动深入详解之硬件篇

    (本文以HD44780主控芯片的LCD1602为蓝本进行描述,其中的截图也来自HD44780数据手册,用户可自行搜索其datasheet,有部分整理网上的,但绝对要比你看到的要深入得多) 一.接口 L ...

  4. 【Arduino】利用FDC2214加LCD1602电容计测量A4纸张数量

    /** 名称:2019年全国电赛F题* 功能:极板电容测量A4纸张数量*/ #include <LiquidCrystal.h> const int rs = 7, en = 6, d4 ...

  5. 基于matlab的电子时钟,基于LCD1602电子时钟毕业设计报告.doc

    PAGE PAGE 32 PAGE \* MERGEFORMAT 0 信息与电子工程学院课程设计报告 课 程单片机技术应用设计题目基于LCD1602电子时钟专 业班 级成 员姓 名学 号分工成 绩指导 ...

  6. 如何为编程爱好者设计一款好玩的智能硬件(九)——LCD1602点阵字符型液晶显示模块驱动封装(下)...

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)--初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  7. 51单片机LCD1602液晶显示屏

    一.LCD1602介绍 LCD1602 (Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字 ...

  8. 51单片机学习笔记(清翔版)(25)——LCD1602和指针

    常说的有LCD液晶和LED液晶 通常是背光源不同,LCD液晶的液晶面板是LCD的,背光源是荧光灯做的,LED液晶的面板也是LCD做的,背光源是LED灯做的. 看到的这个暗黄色的就是液晶面板,如果没有背 ...

  9. PCF8574AT驱动LCD1602

    STM32用IIC驱动LCD1602 介绍 PCF8574AT 选址 芯片接线图 LCD1602 显示问题 乱码问题 实现代码 介绍 网上寻遍了资料发现驱动LCD1602液晶屏的程序几乎都是4线或8线 ...

最新文章

  1. 如何保证接口的幂等性?
  2. 如何在JavaScript中实现堆栈和队列?
  3. Native SBS for Android
  4. 中国SaaS死或生之四:卧榻之侧,是谁在捅刀 SaaS?
  5. 一款b站视频下载工具软件mac版
  6. Linux命令:bash脚本编程--脚本
  7. php将数组值用 分开,PHP将数组中的多个值替换为另一个数组
  8. 作业九 二维数组和字符数组的应用
  9. 程序流程图的基本画法大全
  10. 超级高铁(Hyperloop)
  11. 如何批量压缩图片大小?教你3个批量压缩图片的方法
  12. strpos使用不当引发漏洞
  13. 手机QQ和微信打开网址 自动跳转到浏览器打开的代码
  14. 从Docker零基础到懂一点实践教程(四)
  15. 仿大众点评——美食详情
  16. 110配线架打法图解_110配线架打法图解 110配线架图片
  17. P2P: Tuning Pre-trained Image Models for Point Cloud Analysis with Point-to-Pixel Prompting
  18. 重装系统后发现只有系统盘c盘怎么办?
  19. win10的c语言程序闪退,win10内置应用出现闪退怎么回事? win10打开应用总闪退的解决方法...
  20. options请求是什么?

热门文章

  1. 我虽不是人类:且看我如何攻破Google的ReCAPTCHA
  2. LightSwitch登录界面如何设置背景
  3. UE4 AWP狙击镜头切换实现!
  4. 敏捷测试金字塔和持续自动化测试(最详解)
  5. 寻找发帖“水王“(分治法)
  6. 【计算机毕业设计】289房地产销售管理系统
  7. 实现不同符合PCI规范的适配器 需求说明:PCI是一种规范,所有实现了该规范的适配器,必如显卡、声卡、网卡都可以安装到PCI插槽上并工作。模拟实现该功能。
  8. 9 机器学习 支持向量机
  9. 中职计算机教师招聘试题,中职教师招聘考试内容_考试题库
  10. 免费虚拟主机怎么申请?