⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 display_1602.c

📁 C语言的模块移植通用很好
💻 C
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define IO P1
sbit rs=P3^6;
sbit en=P3^7;

void write_cmd(uchar cmd);	 //写命令
void write_data(uchar data1);  //写数据
void initial_1602();	 			  //初始化
void delay(uint z);		  //延时
void display_1602(uchar num_char,uchar line,uchar address,uchar data1);
//说明:display_1602(num_char=1显示数字,line=1在第一行显示,address显示地址偏移量,data1显示数字或字符)
//					 num_char=0显示字符, line=2在第二行显示,

void main()
{
	initial_1602();
	display_1602(1,1,7,156);
	while(1);
}

void initial_1602()
{
	en=0;
	write_cmd(0x38);	// 16X2	5X8显示
	write_cmd(0x0c);	//开显示 NO光标 NO闪烁
	write_cmd(0x06);	//地址指针自动加一,不移动
	write_cmd(0x01);	//清屏
	write_cmd(0x90);    //数据指针设置
}

void write_cmd(uchar cmd_data)
{
	rs=0;
	IO=cmd_data;	delay(1);	   //P2为数据口
	en=1;	delay(1);
	en=0;
}

void write_data(uchar data1)
{
	rs=1;
	IO=data1;	delay(1);	  //P2为数据口
	en=1;	delay(1);
	en=0;
}
void display_1602(uchar num_char,uchar line,uchar address,uchar data1)
{
    uchar shi,ge,bai;
	if(line==1)	write_cmd(0x80+address);
	if(line==2)write_cmd(0x80+0x40+address);   
	if(num_char==1)		   //显示数据
	{
		bai=data1/100;
		shi=data1%100/10;
		ge=data1%10;
		write_data(0x30+bai);
		write_data(0x30+shi);		
		write_data(0x30+ge);
	}
	if(num_char==0)	write_data(data1);	
}
void delay(uint z)
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=50;y>0;y--);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -