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

📄 lcd1602.c

📁 LCD1602程序例子,学习适用显示屏例子
💻 C
字号:
#include <iom16v.h>
#include <macros.h>
#include "LCD1602.H"

/*******************************
LCD_CheckBusy	:查看忙碌子程序:
输入参数	:无
编写日期	:2007/6/14	
;*******************************/
void LCD_CheckBusy(void)
{
	int temp = 0x80;
	while(temp&0x80)
	{
		LCD_DATA_IN;
		LCD_DATA_PORT |=  LCD_DATA;
		LCD_RS_L;	//选择指令暂存器。
		asm("nop");
		asm("nop");
		LCD_RW_H;   //选择读模式。
		asm("nop");
		asm("nop");
		LCD_EN_L;   //禁能LCD。
		asm("nop");
		asm("nop");
		LCD_EN_H;   //使能LCD。
		asm("nop");
		asm("nop");
		temp=LCD_DATA_PIN&0xf0;    //读LCD IR寄存器高4位。
		LCD_EN_L;   //禁能LCD。
		asm("nop");
		asm("nop");
		//temp <<=4;
		LCD_EN_H;   //使能LCD。
		asm("nop");
		asm("nop");
		//temp|=(LCD_DATA_PIN&0xf0);    //读LCD IR寄存器低4位。
		LCD_EN_L;   //禁能LCD。
		//temp >>=4;
		LCD_DATA_CLR;
		LCD_DATA_OU;
	}
		delay_nus(20);    //调用延时程序。
}
/******************************
LCD_INIT	: LCD初始化
输入参数	:无
编写日期	:2007/6/14	
******************************/
void LCD_INIT(void)
{
		LCD_DATA_DDR |=	LCD_DATA | LCD_RS | LCD_RW | LCD_EN;
   		LCD_Write(0,0x28);		//使用4Bits汇流排,显示两行,使用5*7的字型。
		LCD_Write(0,0x0c);		//显示器开,光标关,无光标闪烁。
		LCD_Write(0,0x06);		//字符不动,光标自动右移一格。
		LCD_clear();			//清除LCD显示器
}
/*-----------------------------------------------------------------------
LCD_clear	: 清除屏幕的函数
输入参数	: 无
编写日期	: 2007/6/14	
-----------------------------------------------------------------------*/
void LCD_clear(void)
  {  
  LCD_Write(0,0x01);       //清除LCD显示器
  }
/******************************
LCD_Write	: 写一个字节
输入参数	: command, data
			command = 0	    
					写指令到IR寄存器
			command != 0	
					写指令到DR寄存器
			data 	待写数据    
编写日期	:2007/6/14	
******************************/
void LCD_Write(unsigned char command,unsigned char data)
	{
		LCD_CheckBusy();   // 检查忙碌。
		if(command)
		LCD_RS_H;     	   //选择资料寄存器。
		else
		LCD_RS_L;     	   //选择指令暂存器。
		asm("nop");
		asm("nop");
		LCD_EN_L;		   //禁能LCD。
		asm("nop");
		asm("nop");
		LCD_RW_L;     	   //选择写模式。
		LCD_DATA_CLR;
		LCD_DATA_PORT |= (data&LCD_DATA);// 输出到期LCD。
		asm("nop");
		LCD_EN_H;     	   //使能LCD。
		asm("nop");
		asm("nop");
		asm("nop");
		LCD_EN_L;		   //禁能LCD。
		LCD_DATA_CLR;
		asm("nop");
		LCD_DATA_PORT |= ((data<<4)&LCD_DATA);// 输出到期LCD。
		LCD_EN_H;     	   //使能LCD。
		asm("nop");
		asm("nop");
		asm("nop");
		LCD_EN_L;		   //禁能LCD。
	}

⌨️ 快捷键说明

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