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

📄 sed1520_duankou.c

📁 单片机接口技术实用子程序配套源代码
💻 C
字号:
//-----------------------函数声明--------------------------------------------------------
#include"stdio.h"
#include"absacc.h"
#include"reg51.h"
//-----------------------LCD接口管脚声明--------------------------------------------------------
sbit A0=P3^0;  //寄存器选择信号
sbit RW=P3^1; //读/ 写选择信号
sbit E1=P3^2;  //使能信号E1
sbit E2=P3^3;  //使能信号E2
#define DATA_IO P1

#define LCD_DISPLAYON 0xaf
#define LCD_DISPLAYOFF 0xae
#define LCD_DRIVERON 0xa5
#define LCD_DRIVEROFF 0xa4
#define LCD_DUTY16 0xa8
#define LCD_DUTY32 0xa9
#define LCD_END 0xee
#define LCD_RESET 0xe2
#define LCD_RWMODE 0xe0
#define LCD_STARTLINE0 0xc0
#define LCD_PAGE0 0xb8
#define LCD_COLUMNADDR0 0x00

#define LCD_ON() LCD_Command(LCD_DISPLAYON)
#define LCD_OFF() LCD_Command(LCD_DISPLAYOFF)
#define LCD_StaticON() LCD_Command(LCD_DRIVERON)
#define LCD_StaticOFF() LCD_Command(LCD_DRIVEROFF)
#define LCD_Select16() LCD_Command(LCD_DUTY16)
#define LCD_Select32() LCD_Command(LCD_DUTY32)
#define LCD_StartRW() LCD_Command(LCD_RWMODE)
#define LCD_EndRW() LCD_Command(LCD_END)
#define LCD_Reset() LCD_Command(LCD_RESET)
#define LCD_SetStartLine(i) LCD_Command(LCD_STARTLINE0+i)
#define LCD_SetPage(i) LCD_Command(LCD_PAGE0+i)
#define LCD_SetColumn(i) LCD_Command(LCD_COLUMNADDR0+i)
//--------------------------------------------------------------------------------------------------
// 函数名称: LCD_Command1
// 入口参数:  nCommand 命令字
// 函数功能: 写指令代码子程序(SED1520-1)
//--------------------------------------------------------------------------------------------------
void LCD_Command1(unsigned char nCommand)
               {
			    unsigned char state_temp;
			    A0=0;
				RW=1;
				while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;  //P1 口置"1"
			    	E1=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E1=0;
				  }
				  RW=0;
			      E1=1;
				  DATA_IO=nCommand;         //写指令代码
			      E1=1;
			      E1=0;
                }
//--------------------------------------------------------------------------------------------------
// 函数名称:  WRITE_showDATA1
// 入口参数:  show_DATA 写入SED1520-1内部显示RAM的数据
// 函数功能: 写显示数据子程序(SED1520-1)
//--------------------------------------------------------------------------------------------------
void WRITE_showDATA1(unsigned char show_DATA)
                {
                  unsigned char state_temp;
	              A0=0;
			      RW=1;
			 	   while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;  //P1 口置"1"
			    	E1=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E1=0;
				  }
				  A0=1;
			      RW=0;
				  E1=1;
				  DATA_IO=show_DATA;         //写指令代码
			      E1=1;
				  E1=0;
                 }
//--------------------------------------------------------------------------------------------------
// 函数名称:  READ_showDATA1
// 入口参数:  show_DATA 读出SED1520-1内部显示RAM的数据
// 函数功能: 读显示数据子程序(SED1520-1)
//--------------------------------------------------------------------------------------------------
unsigned char READ_showDATA1()
               {   
               unsigned char show_DATA;
               unsigned char state_temp;
            	A0=0;
			    RW=1;
			 	   while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;          //P1口置"1"
			    	E1=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E1=0;
				  }
			    A0=1;
			    DATA_IO=0xFF ;                //P1 口置"1"
			    E1=1;
				show_DATA=DATA_IO;         // 读数据
                E1=0;
	            return(show_DATA);        //返回显示区数据 
               }
//--------------------------------------------------------------------------------------------------
// 函数名称: LCD_Command2
// 入口参数:  nCommand 命令字
// 函数功能: 写指令代码子程序(SED1520-2)
//--------------------------------------------------------------------------------------------------
void LCD_Command2(unsigned char nCommand)
               {
			    unsigned char state_temp;
			    A0=0;
				RW=1;
				while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;  //P1 口置"1"
			    	E2=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E2=0;
				  }
				  RW=0;
			      E2=1;
				  DATA_IO=nCommand;         //写指令代码
			      E2=1;
			      E2=0;
                }

//--------------------------------------------------------------------------------------------------
// 函数名称:  WRITE_showDATA2
// 入口参数:  show_DATA 写入SED1520-2内部显示RAM的数据
// 函数功能: 写显示数据子程序(SED1520-2)
//--------------------------------------------------------------------------------------------------
void WRITE_showDATA2(unsigned char show_DATA)
                {
                  unsigned char state_temp;
	              A0=0;
			      RW=1;
			 	   while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;  //P1 口置"1"
			    	E2=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E2=0;
				  }
				  A0=1;
			      RW=0;
				  E2=1;
				  DATA_IO=show_DATA;         //写指令代码
			      E2=1;
				  E2=0;
                 }
//--------------------------------------------------------------------------------------------------
// 函数名称:  READ_showDATA2
// 入口参数:  show_DATA 读出SED1520-2内部显示RAM的数据
// 函数功能: 读显示数据子程序(SED1520-2)
//--------------------------------------------------------------------------------------------------
unsigned char READ_showDATA2()
               {   
               unsigned char show_DATA;
               unsigned char state_temp;
            	A0=0;
			    RW=1;
			 	   while(state_temp&0x80==1) //判"忙"标志为"0"否, 否再读
	              {
			     	DATA_IO=0xFF ;          //P1口置"1"
			    	E2=1;
				    state_temp=DATA_IO;       //设置读状态字地址
			        E2=0;
				  }
			    A0=1;
			    DATA_IO=0xFF ;            // P1 口置"1"
			    E2=1;
				show_DATA=DATA_IO;         // 读数据
                E2=0;
	            return(show_DATA);        //返回显示区数据 
               }

⌨️ 快捷键说明

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