Difference between revisions of "Lcd text"

From Electriki
Jump to navigationJump to search
Line 325: Line 325:
 
return 0;
 
return 0;
 
}
 
}
<nowiki><nowiki>Insert non-formatted text here</nowiki></nowiki></nowiki>
+
<nowiki><nowiki>Insert non-formatted text here</nowiki></nowiki></nowiki><nowiki>Insert non-formatted text here</nowiki>

Revision as of 08:52, 1 April 2009

'''2 row lcd''' Hello fellows, i've finally decided to write little bit on this wiki page. So, what i'll be writing about ? For last few days i was playing with little lcd display and i finally managed to write some text with it ;) Here is video how does it look like: http://www.youtube.com/watch?v=i1tZwHCo_g4 and here is source code: #define F_CPU 1000000UL #include <util/delay.h> #include <avr/io.h> void bf(); void in_d() { DDRD = 0x00; } void out_d() { DDRD = 0xff; } void in_c() { DDRC = 0x00; } void out_c() { DDRC = 0xff; } write_i() { PORTC = 4; PORTC = 0; } read_bf() { // PORTC = 4; PORTC = 6; } write_d() { PORTC = 5; PORTC = 1; } read_d() { // PORTC = 4; PORTC = 7; } clear() { PORTD = 1; // clear display write_i(); bf(); PORTD = 0b00000110; // entry mode write_d(); bf(); _delay_ms(100); } void init(void) { out_d(); out_c(); _delay_ms(15); PORTD = 0b00110000; // function set ( DL, N, F ) write_i(); _delay_ms(4.1); PORTD = 0b00110000; // function set ( DL,N,F ) write_i(); _delay_us(100); PORTD = 0b00110000; // function set ( DL,N,F ) write_i(); _delay_ms(4.1); PORTD = 0b00111000; // set N and F write_i(); _delay_ms(4.1); PORTD = 0b00001000; // display off write_i(); _delay_ms(4.1); PORTD = 0b00001100; // display on write_i(); _delay_ms(4.1); PORTD = 0b00000110; // entry mode write_i(); } void bf() { unsigned int bf; DDRB=0xff; in_d(); read_bf(); bf = PORTD; bf &= 0b10000000; while(bf) { read_bf(); bf = PORTD; bf &= 0b10000000; PORTB=0xff; _delay_ms(100); PORTB=0x0; _delay_ms(50); } out_d(); } void left() { PORTD = 0x18; write_i(); bf(); } int main() { unsigned int i; init(); _delay_ms(11); clear(); bf(); while(1) { PORTD = 0x23; // # write_d(); bf(); _delay_ms(500); PORTD = 101; // e write_d(); bf(); _delay_ms(500); PORTD = 108; // l write_d(); bf(); _delay_ms(500); PORTD = 101; // e write_d(); bf(); _delay_ms(500); PORTD = 99; // c write_d(); bf(); _delay_ms(500); PORTD = 116; // t write_d(); bf(); _delay_ms(500); PORTD = 114; // r write_d(); bf(); _delay_ms(500); PORTD = 111; // o write_d(); bf(); _delay_ms(500); PORTD = 110; // n write_d(); bf(); _delay_ms(500); PORTD = 105; // i write_d(); bf(); _delay_ms(500); PORTD = 99; // c write_d(); bf(); _delay_ms(500); PORTD = 115; // s write_d(); bf(); _delay_ms(500); PORTD = 0x20; // " " write_d(); bf(); _delay_ms(500); PORTD = 0x28; // ( write_d(); bf(); _delay_ms(500); PORTD = 97; // a write_d(); bf(); _delay_ms(500); PORTD = 116; // t write_d(); bf(); _delay_ms(500); left(); PORTD = 0x29; // ) write_d(); bf(); _delay_ms(500); left(); PORTD = 0x20; // " " write_d(); bf(); _delay_ms(500); left(); PORTD = 0x49; // I write_d(); bf(); _delay_ms(500); left(); PORTD = 82; // R write_d(); bf(); _delay_ms(500); left(); PORTD = 67; // C write_d(); bf(); _delay_ms(500); left(); PORTD = 78; // N write_d(); bf(); _delay_ms(500); left(); PORTD = 101; // e write_d(); bf(); _delay_ms(500); left(); PORTD = 116; // t write_d(); bf(); _delay_ms(500); left(); PORTD = 0x20; // " " write_d(); bf(); _delay_ms(500); left(); PORTD = 114; // r write_d(); bf(); _delay_ms(500); left(); PORTD = 117; // u write_d(); bf(); _delay_ms(500); left(); PORTD = 108; // l write_d(); bf(); _delay_ms(500); left(); PORTD = 101; // e write_d(); bf(); _delay_ms(1000); clear(); _delay_ms(500); } return 0; } <nowiki><nowiki>Insert non-formatted text here</nowiki></nowiki>Insert non-formatted text here