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);//程序终止在此处
}
相关推荐
Freak嵌入式9 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
wuyk5559 小时前
77.嵌入式 C 语言中 enum 枚举的工程化实践:告别魔法数字,提升代码可维护性
c语言·开发语言·stm32·单片机·嵌入式硬件
义嘉泰9 小时前
XT25F128F-W Flash芯片全面解析
人工智能·嵌入式硬件·芯片
QH1392923188010 小时前
Keysight N9917B N9918B手持式综合微波分析仪
网络·科技·嵌入式硬件·集成测试·信息与通信
longxingiot10 小时前
轻量化单片机数传终端降低物联网开发门槛
单片机·嵌入式硬件·物联网
亿道电子Emdoor11 小时前
【Arm】MSP和PSP的区别简介
c语言·arm开发·单片机·mcu
BUG研究员_11 小时前
51单片机UART串口通信波特率产生过程
单片机·嵌入式硬件·51单片机
总结所学11 小时前
labview官网离线下载
嵌入式硬件
zcmodeltech11 小时前
智能矿井沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的感知-传输-控制一体化方案
服务器·数据库·分布式·stm32·单片机·嵌入式硬件