51单片机之LCD1602

51单片机之LCD1602

描述:利用KEIL5编程,使AT89C52单片机控制LCD1602显示。

硬件:

电路仿真图(未运行)

电路仿真图(运行)

程序:

LCD1602一些基本指令

https://blog.csdn.net/m0_46916361/article/details/106199122?spm=1011.2415.3001.5331

#include <REGX52.H>

#define uchar unsigned char

#define uint unsigned int

sbit RS = P2^0;

sbit RW = P2^1;

sbit E = P2^2;

sbit D7 = P3^7;

void write_code(uchar row, uchar col, uchar *p);

void LCD_init();

void main()

{

LCD_init();

while(1)

{

write_code(0, 0, "0123456789");

write_code(1, 0, "ABCDEFGHIJK");

}

}

void delay(uint n)

{

while(n--);

}

void write_dat(uchar dc, uchar dat)

{

delay(10);

E = 0;

delay(10);

RW = 0;

delay(10);

RS = dc;

delay(10);

P3 = dat;

delay(10);

E = 1;

delay(10);

E = 0;

}

void write_code(uchar row, uchar col, uchar *p)

{

row %= 2; col %= 16;

write_dat(0, 0x80+0x40*row+col);

while(*p != '\0')

write_dat(1, *p++);

}

void LCD_init()

{

write_dat(0, 0x38);

write_dat(0, 0x0c);

write_dat(0, 0x06);

write_dat(0, 0x01);

}

相关推荐
Yiran_G7 分钟前
ZigBee通信正常,数据却是错的?嵌入式开发中的数据链路排查
网络·嵌入式硬件·物联网·智能家居
深圳老胡28 分钟前
STM32C5A3ZG开发板:基于STM32CubeMX与VSCode的按键检测与LED闪烁实战
笔记·stm32·单片机·代码规范
像枫一样38 分钟前
STM32串口轮询收发实战教程
arm开发·c++·stm32·单片机·嵌入式硬件·fpga开发·51单片机
糖糖单片机设计40 分钟前
基于 STM32 的智能书桌控制系统
stm32·单片机·嵌入式硬件
逐步前行1 小时前
嵌入式图形库-LVGL v9.6-环境搭建(Windows+VSCode模拟)
单片机·嵌入式硬件
lhbweilai1 小时前
分析FreeRTOS内核对象API的源码实现(六)
c语言·stm32·单片机
HQB20261 小时前
# EG1190|屹晶微电子 115V 外置 MOS 异步降压 DC‑DC 控制器(零功耗使能) ## 一、产品概述
嵌入式硬件·硬件工程
comyccccc1 小时前
PID扩展板布局布线全解析:高效设计六大优势学习笔记
单片机·嵌入式硬件
服务器硬件项目经理1 小时前
第5章消费级vs专业级vs数据中心:显卡的门派
服务器·嵌入式硬件·gru·硬件工程·硬件
SuperByteMaster1 小时前
TTL电路
嵌入式硬件