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);

}

相关推荐
charlie1145141919 小时前
嵌入式C++工程实践第16篇:第四次重构 —— LED模板,从通用GPIO到专用抽象
c语言·开发语言·c++·驱动开发·嵌入式硬件·重构
深圳市九鼎创展科技11 小时前
MT8883 vs RK3588 开发板全面对比:选型与场景落地指南
大数据·linux·人工智能·嵌入式硬件·ubuntu
三品吉他手会点灯14 小时前
STM32 VSCode 开发-C/C++的环境配置中,找不到C/C++: Edit Configurations选项
c语言·c++·vscode·stm32·单片机·嵌入式硬件·编辑器
yu859395816 小时前
STM32 智能红外循迹小车(含码盘测速 + 避障)
stm32·单片机·嵌入式硬件
三品吉他手会点灯16 小时前
STM32 DAP 烧录报错-最终解决方法的原理和操作逻辑
stm32·单片机·嵌入式硬件
fengfuyao98516 小时前
TFT 彩屏 GUI 开发
stm32·嵌入式硬件
长安第一美人17 小时前
算能 BM1688 低延迟推流:Qt+WebSocket 直出 H5/HDMI
开发语言·网络·嵌入式硬件·websocket·交互
yongui4783417 小时前
STM32 三相电机FOC驱动方案(三电阻单电阻双模式)
stm32·单片机·嵌入式硬件
WeeJot嵌入式18 小时前
【串口】初始串口-轮询模式
stm32·单片机·嵌入式
yong999019 小时前
基于 51 单片机配合霍尔传感器实现计数 + 转速测量
单片机·嵌入式硬件