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

📄 lcd.c

📁 LCD initialisation code
💻 C
字号:
#define F_CPU 4000000UL    						// Extern 4 Mhz Kristal
#define lcdcommand(a)				(lcdwrite((a), PORTB&0xFE)); 		//RS laag - commando instructie
#define lcdverzend(a)				(lcdwrite((a), PORTB|0x01));			//RS hoog - schrijf instructie
#define lcdverzendslow(a)			(lcdwrite((a), PORTB|0x01));			//RS hoog - verzend op lagere snelheid
#define clearlcd					lcdcommand(0x01);						// Maak display leeg

#include <avr/interrupt.h>
#include <stdlib.h>
#include <avr/io.h>
#include <util/delay.h>

void lcdwrite(char a, char type)	
{
	PORTB = type;					// RS signaal hoog of laag
	PORTB |= 0x02;				// maak enable hoog
	PORTD = a;						// wijs data aan poort d toe
	_delay_us(0.5);					// voor de zekerheid: Enable moet voor 500nS hoog zijn
	PORTB &= 0xFD;				// maak enable laag
	_delay_ms(1.64);				// worst case delay 1,64 ms
}

void lcd_init(void)
{	
	DDRB = DDRB|0x03;					// Enable en RS zijn uitgangen, INT2 is ingang
	DDRD = 0xFF;					// 8 bit uitgangen
	_delay_ms(15);
	lcdcommand(0x38)
	lcdcommand(0x38)
	lcdcommand(0x38);
	lcdcommand(0x38);			//8 data bits, 2 lijnen, 5x8 Font
	lcdcommand(0x0C);			// Display aan, cursor uit, blink uit
	lcdcommand(0x02);			// Beweeg cursor naar home
	lcdcommand(0x01);			// maak display leeg
	_delay_ms(1.64);
}

void lcdstring(char *s)				// Geef woord mee als parameter
{	
	while(*s != '\0' ){				// zolang pointer S ongelijk is aan end of string
	lcdverzend(*s);					// verzend pointer s
	s++;									// verhoog pointer
	}
}

void lcdstringslow(char *s)
{	
	while(*s != '\0' ){
	lcdverzendslow(*s);
	_delay_ms(100);
	s++;
	}
}


	

⌨️ 快捷键说明

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