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

📄 lcd1602.c

📁 数字频率合成器DDS9851控制系统的单片机源代码
💻 C
字号:
////////////////////////////////////////////////////////////////////
#include <reg52.h>

#define 	lcd_io	 P0
sbit	rs		=	P2^7;
sbit	rw		=	P2^6;
sbit	en		=	P2^5;

#define     command		0
#define		lcd_data	1

extern	void	delay_ms(unsigned char time);

unsigned char	disp_buf0[16] = {"Out:     1000 Hz"};
unsigned char	disp_buf1[16] = {"In:           Hz"};
unsigned char code	disp_error[16] = {"out of max range"};
unsigned char code  disp_init [16] = {"input a frequent"};
unsigned char code  disp_max  [16] = {"WARN: max 70 MHz"};

void	check_busy(void)		   //忙检查
{
	lcd_io = 0xff;
	rs = 0;
	rw = 1;
	en = 1;
	while(lcd_io & 0x80);
	en = 0;
}


void	write_lcd(unsigned char select,unsigned char dat)	   //写LCD
{	
	check_busy();
	if (select)			   // 写数据
		{
			rs = 1;
			rw = 0;
		}
	else				   // 写指令
		{
			rs = 0;		  
			rw = 0;
		}
	lcd_io = dat;
	en = 1;
	en = 0;
}


void	display_line(unsigned char y, unsigned char *dat)	   //显示行数据,y=0(第一行)  y=1(第二行)
{
	unsigned char cnt;

	if(y)	y = (y | 0x40) - 1;
	y = y | 0x80;
	write_lcd(command,y);

	for (cnt=0;cnt<16;cnt++)
		{
			write_lcd(lcd_data,dat[cnt]);
		}
		
}


void	lcd_init(void)				 //液晶初始化
{
	en	=  0;
	delay_ms(50);
	write_lcd(command,0x38);
	write_lcd(command,0x08);
	write_lcd(command,0x01);
	write_lcd(command,0x06);
	write_lcd(command,0x0c);
}

	

⌨️ 快捷键说明

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