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

📄 lcd.c

📁 使用51单片机进行超声波测距
💻 C
字号:
#include <reg52.h>
#include <intrins.h>

#define  uchar  unsigned char
#define  uint   unsigned int

sbit  CS = P2^5 ;
sbit  SID = P2^6 ;
sbit  CLK = P2^7;

 


/*****************************延时子程序***************************/
void delay( uint t )
{
	while( t-- );      
}

/*****************************写液晶子程序******************************/
/************************************************************************
说明:word:要写的内容 dat:1为数据 0为指令
*************************************************************************/
void Writelcd(uchar word,uchar dat)
{
	uchar lcddat[3];
	uchar i,j,k;
	lcddat[0] = ( 0xf8+(dat<<1) );//第一个字节
	lcddat[1] = ( word&0xf0 ) ;     //第二个字节 内容的高四位+0000
	lcddat[2] = ( (word<<4)&0xf0 ) ;//第三个字节 内容的第四位+0000
	CS = 0;
	CS = 1;
	CLK = 0;
	for(i=0;i<3;i++)
	{
		j = lcddat[i];
		for(k=0;k<8;k++)
		{
			if( (j<<k)&0x80 )
				SID = 1;		
	        else 			
				SID = 0;			
			CLK = 1;		  //时钟下降沿写入数据
			CLK = 0; 
		}
	}	
}


/*****************************初始化子程序******************************/
void Serial_int(void)
{	
	CS = 1;
	SID = 0;
    CLK = 0; 
    Writelcd( 0x30,0 );//功能设置,一次送8位数据,基本指令集
    delay( 1 );
	Writelcd( 0x30,0 );//功能设置,一次送8位数据,基本指令集
    delay( 1 );
    Writelcd( 0x0c,0 );//0000,1100  整体显示,游标off,游标位置off
    delay( 1 );
    Writelcd( 0x01,0 );//0000,0001 清DDRAM
    delay( 1 );
    Writelcd( 0x02,0 );//0000,0010 DDRAM地址归位
 	delay( 1 );

    delay( 1 );
    Writelcd( 0x80,0 );//1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC//   	 
    delay( 1 );
	Writelcd( 0x06,0 );	
}

void DispNum ( uchar Add1,uint Data1,uint Data2 ,uchar Add2)
{ 
	uchar DisN ;
 
	Writelcd( Add1,0 );
		DisN = Data1/10000%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data1/1000%10 ;	
		Writelcd( 0x30+DisN  ,1 );
   	 	DisN = Data1/100%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data1/10%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data1%10 ;	
		Writelcd( 0x30+DisN  ,1 );
 
	Writelcd( Add2,0 );
		DisN = Data2/10000%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data2/1000%10 ;	
		Writelcd( 0x30+DisN  ,1 );
   	 	DisN = Data2/100%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data2/10%10 ;	
		Writelcd( 0x30+DisN  ,1 );
		DisN = Data2%10 ;	
		Writelcd( 0x30+DisN  ,1 );	 
}





⌨️ 快捷键说明

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