51单片机驱动1602液晶显示

1602:每行16个字符,共2行,只能显示数字字符等ascII码

12864: 图形液晶 横着128个点竖着64点

彩色液晶,单片机也可以驱动,控制液晶任意位置显示任意字符

原理图:

代码如下:

cpp 复制代码
#include <reg52.h>

sbit lcden=P3^4;
sbit lcdrs=P3^5;

sbit dula=P2^6;
sbit wela=P2^7;

unsigned int num;

unsigned char code table1[]="HEllO WORLD!!!";
unsigned char code table2[]="I LIKE MCU *0*";

//延时函数
void delay(unsigned int z)
{	
	unsigned int x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

//写命令函数
void write_com(unsigned char com)
{
	lcdrs=0;
	P0=com;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;
	
}

//写数据函数
void write_data(unsigned char data1)
{
	lcdrs=1;
	P0=data1;
	delay(5);
	lcden=1;
	delay(5);
	lcden=0;
}

//初始化函数
void init()
{
	dula=0;//关闭数码管,因数码管和液晶接口一样,防止功率不足关闭数码管
	wela=0;

	lcden=0;
	write_com(0x38);//设置16x2显示,5*7点阵,8位数据接口
	write_com(0x0f);//开显示,显示光标,光标闪烁
	write_com(0x06);//当写一个字符后数据指针加一,光标加一
	write_com(0x01);//清屏
	write_com(0x80);//设置光标指针在第一行第一位
}
void main()
{
	init();
	
	for(num=0;num<14;num++)
	{
		write_data(table1[num]);
		delay(20);
	}

	write_com(0x80+0x40);//设置光标指针在第二行第一位

	for(num=0;num<14;num++)
	{
		write_data(table2[num]);
		delay(20);
	}

	while(1);//程序终止在此处
}
相关推荐
柒月玖.11 分钟前
基于AT89C52单片机的温度检测报警设计
单片机·嵌入式硬件
m0_5557629013 分钟前
GPIO配置详细解析
单片机·嵌入式硬件
盈创力和200715 分钟前
构建未来工业感知层:以太网多参量传感器的融合架构与技术实践
嵌入式硬件·架构·以太网温湿度传感器·多参数传感器
兆龙电子单片机设计43 分钟前
【STM32项目开源】STM32单片机多功能饮水机系统
stm32·单片机·物联网·开源·毕业设计
ShiMetaPi1 小时前
基于M4-R1开发板的OpenHarmony开发实战丨创建第一个应用工程
嵌入式硬件·开放原子·鸿蒙系统·openharmony·开源鸿蒙·北向开发
m0_555762902 小时前
STM32 的“内存划分”
stm32·单片机·嵌入式硬件
RT-Thread物联网操作系统3 小时前
RT-Thread Studio 正式支持GD32H7高性能系列MCU | 技术集结
驱动开发·单片机·嵌入式硬件
蓬荜生灰3 小时前
第6章—手动移植创建STM32工程
stm32·单片机·嵌入式硬件
赋能大师兄4 小时前
单片机跑飞原因及解决方法
单片机·独立看门狗·窗口看门狗·硬件级防护策略·软件级防护策略
GalaxySpaceX4 小时前
STM32-SPI协议
stm32·单片机·嵌入式硬件·1024程序员节