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

📄 lcd.c

📁 milli amps meter using atmega8
💻 C
字号:
#define F_CPU 8000000UL
#include <avr/io.h>                 
#include <util/delay.h>
/////////////////////////////////////////////////
const char TopMessage[] = "RUPANAGUDI POWER";
const char BotMessage[] = "     SYSTEMS    ";
///////////////////////////////////////////////////
#define  E  PB7                    
#define  RS PB6
//////////////////////////////////////////////////
void LCDWrite(int LCDData, char RSValue)
{PORTD = LCDData  & 0xF0;  
 PORTB |= _BV(RSValue);
 PORTB |= _BV(E);
 PORTB |= ~_BV(E);  
 PORTD = (LCDData<<4) & 0xF0; 
 PORTB |= _BV(RSValue);
 PORTB |= _BV(E);
 PORTB |= ~_BV(E);
 _delay_ms(5); 
 }  //  End LCDWrite
//----------------------------------
void lcd_puts(unsigned char *s)
{  while(*s)
   LCDWrite(*s++,1);
}
//----------------------------------
void LINE1()
{LCDWrite(0X80, 0);
}  
//----------------------------------
void LINE2()
{LCDWrite(0XC0, 0);
}  
//----------------------------------
void LCD_CLEAR()
{LCDWrite(0X01, 0);
}  
//----------------------------------
void lcd_init()
{  char i;
   PORTD = 0;            
   _delay_ms(40);
   PORTD = 0X30;          
   PORTB |= _BV(E);
   PORTB |= ~_BV(E);
   _delay_ms(5);
   PORTB |= _BV(E);
   PORTB |= ~_BV(E);
   _delay_ms(1);
   PORTB |= _BV(E);
   PORTB |= ~_BV(E);        
   _delay_ms(1);
   PORTD = 0X20;         
   PORTB |= _BV(E);
   PORTB |= ~_BV(E);
   _delay_ms(1);
   LCDWrite(0X28, 0);    
   LCDWrite(0X08, 0);    
   LCDWrite(0X01, 0);    
   LCDWrite(0X06, 0);    
   LCDWrite(0X0F, 0);    
   LCDWrite(0X80, 0);    
    for (i = 0; TopMessage[i] != 0; i++)
         LCDWrite(TopMessage[i], 1);
         LCDWrite(0xC0, 0);    
    for (i = 0; BotMessage[i] != 0; i++)
         LCDWrite(BotMessage[i], 1);
} 
//-------------------------------------------

⌨️ 快捷键说明

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