当前位置: 首页 > web >正文

51单片机实验六:通用型1602液晶操作方法

目录

 

一、实验环境与实验器材

二、实验内容及实验步骤

1. 目标:用C语言编程,实现在1602液晶的第一行显示“I LOVE MCU!”,在第二行显示WWW.TXMCU.COM。

2.目标:用C语言编程,实现第一行从右侧移入“Hello everyone!”,同时第二行从右侧移入“Welcome to here!”,移入速度自定,然后停留在屏幕上。

3.简易仿真


 

一、实验环境与实验器材

环境:KeliSTC-ISP烧写软件,Proteus.        

器材:TX-1C单片机(STC89C52RC)、电脑。

二、实验内容及实验步骤

1. 目标:用C语言编程,实现在1602液晶的第一行显示“I LOVE MCU!”,在第二行显示WWW.TXMCU.COM

代码:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="I LOVE MCU!";
uchar code table1[]="WWW.TXMCU.COM";
sbit lcden=P3^4;
sbit lcdrs=P3^5;
sbit dula=P2^6;
sbit wela=P2^7;
uchar num;
void delay(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}
void write_com(uchar com)
{lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;
}
void write_data(uchar date)
{lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;
}
void init()
{dula=0;wela=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);
}
void main()
{init();write_com(0x80);for(num=0;num<11;num++){write_data(table[num]);delay(5);}write_com(0x80+0x40);for(num=0;num<13;num++){write_data(table1[num]);delay(5);}while(1);
}

 图2.1.1 硬件显示效果

图2.1.2 proteus仿真图 

Proteus演示视频:

1602液晶显示1

 

2.目标:用C语言编程,实现第一行从右侧移入“Hello everyone!”,同时第二行从右侧移入“Welcome to here!”,移入速度自定,然后停留在屏幕上。

代码:

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]="Hello everyone!";
uchar code table1[]="welcome to here!";
sbit lcden=P3^4;//液晶使能端
sbit lcdrs=P3^5;//液晶数据命令选择端
sbit dula=P2^6;//锁存器
sbit wela=P2^7;//同上
uchar num;
void delay(uint z)
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}
void write_com(uchar com)//这个是写命令函数
{lcdrs=0;//选择数据寄存器P0=com;delay(5);//延时大约5毫秒lcden=1;//打开使能端delay(5);lcden=0;
}
void write_data(uchar date)//这个是写数据函数
{lcdrs=1;P0=date;//所有的字符,都是依照ASCII码送过去的,这就是为什么正好数据端是8位的原因,并且不能送汉字的原因delay(5);lcden=1;delay(5);lcden=0;
}
void init()//这个是最开始设置液晶板的函数
{dula=0;wela=0;lcden=0;write_com(0x38);//这四个是对液晶初始化的设定,由P0口接数据段送入液晶板.设置16x2显示,5x7点阵,8位数据接口write_com(0x0c);//开显示,不显示光标write_com(0x06);//写一个字符后,地址指针自动加1write_com(0x01);//显示清0,数据指针清0
}
void main()
{init();write_com(0x80+0x10);//for(num=0;num<15;num++){write_data(table[num]);delay(5);}write_com(0x80+0x50);//这里是让指针,也就是光标定位到第二行第一个,0x40表示的就是第二行第一个for(num=0;num<16;num++){write_data(table1[num]);delay(5);}for(num=0;num<16;num++){write_com(0x18);delay(200);}while(1);
}

图2.2.1 字母正在移入液晶屏(单片机)

 图2.2.2 字母完全移入液晶屏(单片机)

  图2.2.3 字母正在移入液晶屏(仿真)

 图2.2.4 字母完全移入液晶屏(仿真) 

Proteus仿真视频:

1602液晶显示(2)

3.简易仿真

#include "reg52.h"
sbit RS=P3^0;
sbit RW=P3^1;
sbit E=P3^2;unsigned char str[]={"Hello world!"};
void delay(unsigned int t)
{unsigned int i=0,j=0;for(i=0;i<t;i++){for(j=0;j<120;j++);}
}void writedat(unsigned char dat)
{RS=1;RW=0;E=0;P2=dat;delay(5);E=1;E=0;
}void writecom(unsigned char com)
{RS=0;RW=0;E=0;P2=com;delay(5);E=1;E=0;
}void display()
{unsigned int i=0;writecom(0x80+2+0x40);delay(5);
//	writedat('A');
//	delay(5);
//	writedat(0x32);
//	delay(5);while(str[i]!='\0'){writedat(str[i]);delay(5);i++;}
}
void initlcd()
{writecom(0x38);writecom(0x0c);writecom(0x06);writecom(0x01);		
}void main()
{initlcd();while(1){display();}
}

Proteus仿真图:

图2.3.1 仿真图(简易版)

仿真视频 :

1602液晶(简易版)

 

 

http://www.xdnf.cn/news/186.html

相关文章:

  • java 排序算法-快速排序
  • uCOS3实时操作系统(系统架构和中断管理)
  • 【行测】数量关系
  • 医学教育视频会议系统私有化部署方案
  • 抗辐照设计优化:商业航天高可靠系统设计的关键路径
  • Zookeeper介绍与安装配置
  • webgl入门实例-11WebGL 视图矩阵 (View Matrix)基本概念
  • 项目管理基础---引言
  • 进阶篇|CAN FD 与性能优化
  • C# 单例模式
  • 交叉注意力层的实质作用:连接编码器和解码器
  • 【C++】入门基础【上】
  • 【Pandas】pandas DataFrame isin
  • CentOS7执行yum命令报错 Could not retrieve mirrorlist http://mirrorlist.centos.org
  • 使用Java动态数据生成PDF报告:简化您的报告导出流程
  • 利用大模型实现地理领域文档中英文自动化翻译
  • 计算机网络——网络模型
  • 高频面试题:Android MVP/MVVM/MVI这几种架构在实际生产中,各自的优缺点和适用场景是什么
  • Banana Pi BPI-RV2 RISC-V 路由器开发板发售, 全球首款RISC-V路由器
  • Docker设置环境变量
  • 并发设计模式实战系列(2):领导者/追随者模式
  • 基于Django实现农业生产可视化系统
  • 使用Python设置Excel单元格边框
  • 快手本地生活2024年GMV同增200%,“新线城市+AI”将成增长引擎
  • 【嵌入式八股11】STM32
  • (8)VTK C++开发示例 --- 交互式3D部件
  • 【Reading Notes】(8.3)Favorite Articles from 2025 March
  • “星睿O6” AI PC开发套件评测 - 部署PVE搭建All in One NAS服务器
  • STM32单片机入门学习——第40节: [11-5] 硬件SPI读写W25Q64
  • ASP.NET 中 OAuth 2.0/OpenID Connect 深度集成指南