当前位置:网站首页>(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){
}
}
边栏推荐
- 二叉(搜索)树的最近公共祖先 ●●
- Mysql database basic operations DML
- Heavyweight news | softing fg-200 has obtained China 3C explosion-proof certification to provide safety assurance for customers' on-site testing
- 中国1,4-环己烷二甲醇(CHDM)行业调研与投资决策报告(2022版)
- Should novice programmers memorize code?
- Common sense: what is "preservation" in insurance?
- Chapter 3: detailed explanation of class loading process (class life cycle)
- LeetCode刷题(十一)——顺序刷题51至55
- NPDP认证|产品经理如何跨职能/跨团队沟通?
- 3DMax指定面贴图
猜你喜欢
Notes de développement du matériel (10): flux de base du développement du matériel, fabrication d'un module USB à RS232 (9): création de la Bibliothèque d'emballage ch340g / max232 SOP - 16 et Associa
Unity3d minigame unity webgl transform plug-in converts wechat games to use dlopen, you need to use embedded 's problem
pytorch_YOLOX剪枝【附代码】
图像的spatial domain 和 frequency domain 图像压缩
2021 geometry deep learning master Michael Bronstein long article analysis
Mysql database basic operations DML
Management background --4, delete classification
AI enterprise multi cloud storage architecture practice | Shenzhen potential technology sharing
基於 QEMUv8 搭建 OP-TEE 開發環境
Memorabilia of domestic database in June 2022 - ink Sky Wheel
随机推荐
Should novice programmers memorize code?
QT | UDP broadcast communication, simple use case
新手程序员该不该背代码?
C # realizes crystal report binding data and printing 4-bar code
Shortcut keys in the terminal
HDR image reconstruction from a single exposure using deep CNNs阅读札记
空结构体多大?
2500 common Chinese characters + 130 common Chinese and English characters
The SQL response is slow. What are your troubleshooting ideas?
What a new company needs to practice and pay attention to
Hardware development notes (10): basic process of hardware development, making a USB to RS232 module (9): create ch340g/max232 package library sop-16 and associate principle primitive devices
在IPv6中 链路本地地址的优势
每日一题:力扣:225:用队列实现栈
Lora sync word settings
Wechat red envelope cover applet source code - background independent version - source code with evaluation points function
Unity3d Learning Notes 6 - GPU instantiation (1)
[MySQL] online DDL details
手写ABA遇到的坑
Solve project cross domain problems
Senior soft test (Information System Project Manager) high frequency test site: project quality management