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

📄 lcd.h

📁 基于ATMEGA16的AD转换的C程序源代码
💻 H
字号:

unsigned char ADtmp,ADbz=0;
#define LCD_DATAL PORTA&=~BIT(1)
#define LCD_DATAH PORTA|=BIT(1) 
#define LCD_CLKL PORTA&=~BIT(3)
#define LCD_CLKH PORTA|=BIT(3)
void delay(unsigned char n)
{	 
	 unsigned char i;
 	 for(i=0;i<n;i++)                //延时
	 {asm("nop");}
}
//*************************************************************************

//***************************************************************************
void lcd_out(unsigned char send_byte)
{    
    unsigned char i,s;
 	for (i=0;i<8;i++)
	{
	 if((send_byte&0x80)==0)
	 {
	     LCD_DATAL;
	 }
	 else
	 {
	     LCD_DATAH;
	 }      //送数据
	 LCD_CLKL;
	 LCD_CLKH;
	 send_byte=send_byte<<1;
	}
	delay(256);
}
//***************************************************************************

void WR_dat(unsigned char dat)
{
     unsigned char s;
	 s=dat&0xf0;
	lcd_out(0xfa);
	 lcd_out(s);
	 s=dat&0x0f;
	 s<<=4;
	 lcd_out(s);
}
//**************************************************************************
void WR_control(unsigned char dat)
{
     unsigned char s;
	 s=dat&0xf0;
	 lcd_out(0xf8);
	 lcd_out(s);
	 s=dat&0x0f;
	 s<<=4;
	 lcd_out(s);
}
//**************************************************************************
void lcd_control()
{
	WR_control(0x30);
	WR_control(0x0c);
}
//**************************************************************************
void lcd_clear()
{
  int i;
  WR_control(0x01);
  for(i=0;i<5000;i++)	//	延时5ms
	{
		asm("nop");
		asm("nop");
	} 
}
/*******************************************************/
/******   函数名称: LCD_set_xy()                  ******/
/******   功    能: 设置LCD显示坐标               ******/
/******   参    数: 显示字符串的位置,X:0-15,Y:0-1*****/
/******   返回值  : 无                            ******/
/*******************************************************/
void LCD_address( unsigned char x, unsigned char y )
{
 	unsigned char address;
	switch(x)
	{
	 	case 0:
			   address = 0x80 + y;		   //计算显示地址
			   break;
		case 1:
			   address = 0x90 + y;		   //计算显示地址
			   break;
		case 2:
			   address = 0x88 + y;		   //计算显示地址
			   break;
		case 3:
			   address = 0x98 + y;		   //计算显示地址
			   break;
		default:address = 0x80 + y;
	}
	WR_control( address);	  	   	   		   //写地址命令
}
//**************************************************************************
/*******************************************************/
/******   函数名称: LCD_write_string()            ******/
/******   功    能: 中英文字符串显示函数          ******/
/******   参    数: *s--英文字符串指针            ******/
/******             X、Y--显示字符串的位置        ******/
/******   返回值  : 无                            ******/
/*******************************************************/
void LCD_Write_string(unsigned char X,unsigned char Y,unsigned char *s)
{
    
 	LCD_address( X, Y );		   				//写显示地址
    while (*s) 	   	 						//是否到字符串尾
    {
     	WR_dat (*s );						//写显示数据
		s ++;								//字符串地址加1
 	}
}


/******************************************************************************/ 
//函数功能:将BCD码转换为ASCII码函数 
//输入数据:BCD
//输出:ASCII
//作者:韩红瑞
//修改时间:2006-08-31
/******************************************************************************/ 
unsigned char BCD_ASCII(unsigned char bcd) 
{ 
    bcd &= 0x0F; 
    if(bcd > 9)  
    bcd +=('7');     // 将A~F转换为ASCII 
    else 
    bcd += '0';         // 将0~9转换为ASCII 0~9 
    return(bcd); 
} 
 

void  LCD_writeasc(unsigned char x, unsigned char y, unsigned char data)
{
    LCD_address(x,y);
	WR_dat(data);
}
  
void Lcd_INT()
{
  
  DDRA|=BIT(1);
  DDRA|=BIT(3);
  lcd_control();
}

void lcd_writechar(unsigned char X,unsigned char Y,unsigned char number)
{
    LCD_address(X,Y);
	WR_dat(BCD_ASCII(number>>4));
	WR_dat(BCD_ASCII(number));
}
/*
void lcd_write2(unsigned char X,unsigned char Y,unsigned char number)
{
    LCD_address(X,Y);
	
	WR_dat(BCD_ASCII(number%100/10));
	WR_dat(BCD_ASCII(number%10));
}
*/
void lcd_write2(unsigned char X,unsigned char Y,unsigned char number)
{
    LCD_address(X,Y);
	WR_dat(BCD_ASCII(number/100));
	WR_dat(BCD_ASCII(number%100/10));
	LCD_address(X,Y+1);
	WR_dat(BCD_ASCII(number%10));
}

⌨️ 快捷键说明

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