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

}

相关推荐
Lugas Luo2 小时前
Kernel 5.10 针对 eMMC 的 Detect、Power、Add 及深度优化解析
linux·嵌入式硬件
charlie1145141912 小时前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(4)从零构建 STM32 构建系统
linux·开发语言·c++·stm32·单片机·学习·嵌入式
欢乐熊嵌入式编程2 小时前
用 ESP32 + WiFi 做远程控制插座(从原理到实战)
单片机·wifi·智能路由器·esp32·远程控制插座
Lugas Luo3 小时前
Kernel 5.10 SD卡专属探测、上电与注册流程分析 (Detect -> Power Up -> Add)
linux·嵌入式硬件
weixin_462901973 小时前
esp32测试DH11模块
单片机
蓝凌y3 小时前
51单片机之按键扫描
单片机·嵌入式硬件·51单片机
果果燕3 小时前
ARM嵌入式学习(三)---汇编应用:LED点亮
arm开发·单片机·嵌入式硬件
Hello_Embed3 小时前
嵌入式上位机开发入门(五):UDP 编程 —— Server 端实现
笔记·单片机·网络协议·udp·嵌入式
凌盛羽4 小时前
在MDK-ARM编译后用python解析map文件在编译窗口输出Flash和RAM使用及剩余情况
arm开发·python·stm32·单片机·mysql·链表·esp32