当前位置:网站首页>(18) LCD1602 experiment
(18) LCD1602 experiment
2022-07-06 22:26:00 【I love notes】
In this section, we will complete the programming of another display on the MCU , Use LCD1602 LCD to display the characters we want to output , Output "I LOVE MCU" and “MCU LOVE I” These two short strings . Finish us 51 The last simple experiment of single chip microcomputer , After that, you may directly put several simple projects on it , Deepen for 51 Understanding of SCM .
About LCD1602
1602 Liquid crystal is also called LCD1602 Character LCD , It can show 2 Line character information , Each line can show 16 Characters , It is a kind of special used to display letters 、 Numbers 、 Dot matrix liquid crystal module of symbol , Each of us LCD1602 Modules may be different , But their usage is basically the same , stay LCD1602 Contains 80 Bytes of DDRAM, They are used to display characters . The corresponding relationship between the address and the screen is as follows :
Only one 0x00 To 0x0f and 0x40 To 0x4f It is used to display , The rest can only be used for storage , And about the LCD1602 When we write addresses, each address is added correspondingly 0x80 To reach the corresponding address , For example, you should be in 0x00 This address writes a value , So we need to be in 0x80 Write value , It means that every address has one 0x80 The migration , And about the LCD1602 We have some commonly used instructions to control it ,
among (1) Clear screen instruction :0x01, (2) Mode setting instruction , The instruction format is as follows :
among DB1 The meaning is :
0: After writing data, the cursor moves left 1: After writing data, the cursor moves to the right
among DB0 The meaning is :
0: The display does not move after writing data 1: After writing the data, the whole display screen moves to the right by one unit
(3) Display switch control command , The instruction format is as follows :
among DB2 The meaning is :
0: Display function off 1: Display function on
among DB1 The meaning is :
0: No cursor 1: There are cursors
among DB0 The meaning is :
0: The cursor blinks 1: The cursor does not flash
(4) display mode , Our default setting 16*2 Show ,5*7 Lattice ,8 Bit interface , Then our default instruction is 0x38
About hardware
Among them, there are three control interfaces connected with the single chip microcomputer RS,WR,EN, rest D0 To D7 It's a data port , Used to transmit data , The basic timing is as follows
Read status : Input :RS=L,R/W=H, EN = H Output :D0~D7 Status word
We can't read the corresponding data
Write instructions : Input :RS=L, R/W=L, D0~D7= Instruction code ,E= High pulse Output :D0~D7= data
Writing data : Input :RS=H,R/W=L,D0~D7= data ,E= High pulse Output : nothing
As for each reading and writing, we may delay , In fact, we don't need to be so accurate , Because most liquid crystal displays are nanosecond , And our MCU is not so fast , But in order to stabilize the delay , We will still do a short delay .
About software :
ds1602 The main functions of are as follows :
#include "reg52.h"
sbit lcd_en = P2^7;
sbit lcd_rs = P2^6;
sbit lcd_rw = P2^5;
void delay_us(unsigned int xus){
while(xus--);
}
void lcd1602_write(unsigned char dat, int flag){
lcd_en = 0;
lcd_rs = flag;
lcd_rw = 0;
P0 = dat;
delay_us(500);
lcd_en = 1;
delay_us(100);
lcd_en = 0;
}
void lcd1602_init(){
lcd1602_write(0x38, 0);
lcd1602_write(0x0c, 0);
lcd1602_write(0x06, 0);
lcd1602_write(0x01, 0);
lcd1602_write(0x80, 0);
}
Its header file is as follows :
#ifndef _LCD1602_H_
#define _LCD1602_H_
#include "reg52.h"
void delay_us(unsigned int xus);
void lcd1602_write(unsigned char dat, int flag);
void lcd1602_init();
#endif
Its main function is as follows :
#include <reg52.h>
#include "ds1602.h"
unsigned char table0[] = {"I LOVE MCU"};
unsigned char table1[] = {"MCU LOVE I"};
void main(){
int i;
lcd1602_init();
lcd1602_write(0x80 + 0x03 , 0);
for(i = 0; i < 10;i++){
lcd1602_write(table0[i], 1);
delay_us(100);
}
lcd1602_write(0x80 + 0x40 + 0x03, 0);
for(i = 0;i < 10;i++){
lcd1602_write(table1[i], 1);
delay_us(100);
}
while(1){
}
}
边栏推荐
- 在IPv6中 链路本地地址的优势
- OpenCV VideoCapture. Get() parameter details
- Management background --1 Create classification
- anaconda安装第三方包
- Anaconda installs third-party packages
- Applet system update prompt, and force the applet to restart and use the new version
- 二分图判定
- Management background --4, delete classification
- LeetCode刷题(十一)——顺序刷题51至55
- 第4章:再谈类的加载器
猜你喜欢
Powerful domestic API management tool
在IPv6中 链路本地地址的优势
Web APIs DOM 时间对象
Netxpert xg2 helps you solve the problem of "Cabling installation and maintenance"
图像的spatial domain 和 frequency domain 图像压缩
Management background --3, modify classification
MySQL数据库基本操作-DML
Daily question 1: force deduction: 225: realize stack with queue
Leetcode question brushing (XI) -- sequential questions brushing 51 to 55
LeetCode刷题(十一)——顺序刷题51至55
随机推荐
[linear algebra] determinant of order 1.3 n
Aardio - 利用customPlus库+plus构造一个多按钮组件
case 关键字后面的值有什么要求吗?
第4章:再谈类的加载器
China 1,4-cyclohexanedimethanol (CHDM) industry research and investment decision-making report (2022 Edition)
ResNet-RS:谷歌领衔调优ResNet,性能全面超越EfficientNet系列 | 2021 arxiv
[Digital IC hand tearing code] Verilog burr free clock switching circuit | topic | principle | design | simulation
2500个常用中文字符 + 130常用中英文字符
anaconda安装第三方包
Installation and use of labelimg
微信红包封面小程序源码-后台独立版-带测评积分功能源码
Embedded common computing artifact excel, welcome to recommend skills to keep the document constantly updated and provide convenience for others
labelimg的安装与使用
PVL EDI 项目案例
NPDP certification | how do product managers communicate across functions / teams?
[sciter bug] multi line hiding
[sdx62] wcn685x will bdwlan Bin and bdwlan Txt mutual conversion operation method
Wechat red envelope cover applet source code - background independent version - source code with evaluation points function
MySQL----初识MySQL
Research and investment strategy report of China's VOCs catalyst industry (2022 Edition)