本人打算写一个完整的万年历:这是开始的第一步

完整电路图:

完整代码:

#include <reg51.h>
#include <intrins.h>          //包含_nop_( )空函数指令的头文件#define uchar unsigned char
#define uint unsigned int
#define out P2
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;                   void lcd1602_initial(void);         //lcd1602初始化函数
void lcd1602_write_command(uchar com);  //lcd1602写命令函数
void lcd1602_write_data(uchar dat);     //lcd1602写数据函数
void lcd1602_string(uchar ad ,uchar *s);//lcd1602写字符串
void delay(uint);                       //延时函数uchar code table1[]={"2021-01-24"};
uchar code table2[]={"23:59:50"};/**************************************************************
*函数名        :delay
*函数功能   :延时函数
*函数参数   :需要延时的毫秒数:uint j
*函数返回值  :无
****************************************************************/
void delay(uint j){  //1ms延时子程序uchar i=250;for(;j>0;j--){while(--i);i=249;while(--i);i=250;}
}/**************************************************************
*函数名        :lcd1602_write_command
*函数功能   :lcd1602的写命令函数
*函数参数   :所要设置的命令:uchar command
*函数返回值  :无
****************************************************************/
void lcd1602_write_command(uchar command)   {E=0;RS=0;RW=0;out=command;E=1;_nop_( );E=0;delay(1);
}
/**************************************************************
*函数名        :lcd1602_write_data
*函数功能   :lcd1602的写数据函数
*函数参数   :要写入的数据:uchar dat
*函数返回值  :无
****************************************************************/
void lcd1602_write_data(uchar dat){   E=0;RS=1;RW=0;out=dat;E=1;_nop_();E=0;delay(1);
}/**************************************************************
*函数名        : lcd1602_initial
*函数功能   : lcd1602的初始化
*函数参数   : 无
*函数返回值  : 无
****************************************************************/
void lcd1602_initial(void){lcd1602_write_command(0x38);        //写入命令0x38:8位两行显示,5×7点阵字符lcd1602_write_command(0x0C);         //写入命令0x0C:开整体显示,光标关,无黑块lcd1602_write_command(0x06);           //写入命令0x06:光标右移lcd1602_write_command(0x01);          //写入命令0x01:清屏delay(1);
}/**************************************************************
*函数名        :lcd1602_string
*函数功能   :将字符串写入对应的地址上
*函数参数   :地址:uchar ad 字符串:uchar *s
*函数返回值  :无
****************************************************************/
void lcd1602_string(uchar ad,uchar *s){lcd1602_write_command(ad);while(*s>0) {lcd1602_write_data(*s++);        //输出字符串,且指针增1delay(100);}
}/**************************************************************
*函数名    : 主函数
*函数功能  : 驱动程序
*函数参数  : 无
*函数返回值: 无
****************************************************************/
void main(void){lcd1602_initial( );         //调用对LCD初始化函数  while(1){lcd1602_string(0x80,table1);        //显示的第1行数据lcd1602_string(0x80+0x40,table2);    //显示第2行数据           delay(300);             //延时    }
}

展示效果:

51单片机用lcd1602显示两行字符串相关推荐

  1. 基于51单片机的LCD1602显示温湿度

    51单片机基础难点知识理解后,直接通过下面3个小项目可以更好理解51单片机.中断 定时器 串口甚至是基础的IO输入输出都有结合,再加上一些外设模块的学习(如1602显示屏,L298N电机驱动等) 项目 ...

  2. 【Proteus仿真】51单片机+DS1302+lcd1602显示

    [Proteus仿真]51单片机+DS1302+lcd1602显示 Proteus仿真 工程架构 项目工程 文件结构 主程序代码 #include <reg52.h> #include & ...

  3. 【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。

    LCD1602显示字符和时间是最基本的实验,在综合前面所学知识并结合c语言程序设计,就可以通过独立按键,来对时间进行校准,计时等功能.或者通过矩阵键盘的按键进行输入,进而让LCD屏上显示的出我们想要的 ...

  4. 程序源码分享-51单片机用LCD1602显示MPU6050角度数据

    硬件方面选择的是51单片机,显示屏LCD1602,姿态传感器MPU6050的型号为维特智能的JY60,具体设计思路见笔者的文章基于单片机的云台姿态测量系统设计. STM32将mpu6050的数据DAC ...

  5. 51单片机使用LCD1602显示DS18B20温度传感器温度

      使用LCD1602显示DS18B20温度传感器温度.关于DS18B20和LCD的原理,我就不再叙述了,大家自行查找,网上可以找到好多.   使用Proteus仿真.(需要仿真和Keil工程文件的可 ...

  6. 40、基于51单片机收音机 LCD1602显示系统设计

    摘要 本文在具体分析了STC89C52单片机的技术特点与数字FM收音机的基础上,提出了采用单片机控制收音机实现数字调频的方法,并给出了具体的软硬件设计.该系统利主要由STC89C52单片机.液晶显示器 ...

  7. 51单片机用c语言在液晶1602上显示汉字,lcd1602与单片机连接图,基于51单片机的lcd1602液晶显示屏连接电路图...

    描述 LCD1602是一种工业字符型液晶,能够同时显示16x02即32个字符.LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示, ...

  8. 51单片机 DHT11+LCD1602温湿度显示 + Proteus仿真

    51单片机 DHT11+LCD1602温湿度显示+ Proteus仿真 主程序代码 #include <reg52.h> #include <LCD1602.h> #inclu ...

  9. 51单片机控制LCD1602模块

    51单片机控制LCD1602模块 视频播放:LCD1602视频 (1)LCD1602概述 先来看看LCD1602什么意思?Liquid Crystal Display(LCD)表示液晶显示,1602 ...

最新文章

  1. HaProxy介绍,安装及配置
  2. php第一行空白,网页头部多出一行空白问题的解决方法 (PHP文件头BOM问题)
  3. HDU1283 最简单的计算机【模拟】
  4. 如何将h5网页改成微信网页
  5. Spring集成redis(Spring Data Redis)
  6. 【分享】Android JNI实例​
  7. Java 生成随机数的 N 种方法
  8. tolua打包Android后路径出错,unity+tolua 64位android崩溃排查过程记录
  9. jquery 乱码 传参_jquery ajax传递中文参数乱码问题及解决方法说明
  10. react改变checkbox的文字类型_React Checkbox不发送onChange
  11. js自定义对象 (转)
  12. NOIP2018普及T2暨洛谷P5016 龙虎斗
  13. 怎么注册开通个人微信小程序
  14. 高质量图片缩略图生成(编程笔记)
  15. java文件复制方法_Java复制文件–用Java复制文件的4种方法
  16. 苹果cms V10模板 仿挖片自适应电影模板
  17. 华为IPD你学不会(转)
  18. 一天天学WG--第一天
  19. 一个蹩脚的图形中文验证码自动识别实现
  20. 差异数据的对比和整理

热门文章

  1. 达人评测华为MatePadPro2怎么样
  2. 西安三日游-梦回长安
  3. 采集网易云上面的MV保存方法
  4. UVA 1625—Color Length(ACM/ACPC Daejeon 2011)
  5. 分布式数据库之TiDB
  6. 苹果手机直播显示服务器,搭建流媒体服务器(iOS直播 )
  7. Arduino+nRF24L01接收端(二)
  8. 添加Win10文件夹详细信息------统一显示内容
  9. IE浏览器下载excel文件时不弹出下载保存提示框的解决方法
  10. C/C++刁钻问题各个击破之细说sizeof .