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

📄 lcd.c

📁 使用C8051F实现脉搏及血氧饱和度测量 包括均值滤波
💻 C
字号:
#include <c8051f020.h>

typedef unsigned char uchar; 
typedef unsigned int uint; 

#define LCD_COM P2
sbit RS = P3^0;			 //RS=0:读写指令;RS=1:读写数据
sbit RW = P3^1;			 //RW=1:读
sbit E  = P3^2;
//------忙检查---------------

void del(uint t)
{
   while(t--);
}	
void LCD_Check_Busy()
{
   del(200);
}
//-----写指令----------------
void LCD_Write_REG(uchar ins)
{
    LCD_Check_Busy();
	RS=0;
	RW=0;
	E=1;
	del(30);
	LCD_COM=ins;
    del(30);
	E=0;
}
//-------写数据--------------
void LCD_Write_Dat(uchar dat)
{
    LCD_Check_Busy();
	RS=1;
	RW=0;
	E=1;
	del(30);
	LCD_COM=dat;
    del(30);
	E=0;
}
/***************************************************
           设置显示地址(行、列)
行:0~3
列:0~7
***************************************************/
void Set_Position(uchar row,uchar line)
{
   switch(row)
   {
     case 0: LCD_Write_REG(0x80+line);break;
     case 1: LCD_Write_REG(0x90+line);break;
     case 2: LCD_Write_REG(0x88+line);break;
     case 3: LCD_Write_REG(0x98+line);break;
	 default: break;
	}
}

/************************************************
               清屏(2ms的时间)
*************************************************/
void Clear_LCD()
{
   LCD_Write_REG(0x01);
   del(5000);
}
/*************************************************
				写字符串
**************************************************/
void LCD_Write_String(uchar *p)
{
    while(*p)
	{
	   LCD_Write_Dat(*p);
	   p++;
	}
}
/****************************************************
       液晶初始化
****************************************************/
void Init_LCD()
{
   LCD_Write_REG(0x30);  //功能设置 8位数据,基本指令
   LCD_Write_REG(0x0c);	 //显示状态 ON,游标OFF,反白OFF
   Clear_LCD();	 //清除显示
   LCD_Write_REG(0x06);	   //
   LCD_Write_REG(0x80);	  //设置DDRAM地址为0
}

⌨️ 快捷键说明

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