Har loddet sammen LCD og ATmega8 igjen, denne gang 4 bit mode, etter denne tegning http://www.pocketmagic.net/wp-conten...ayout-full.gif
Bruker PORTD, istedenfor PORTC
Prøver meg frem med LCD simulator http://www.dinceraydin.com/djlcdsim/djlcdsim.html
og bygger kode etter den.
Programmet ser ut til å virke til jeg har den blinkende markøre fremme.
Etter "while" linjen skulle det dukke opp bokstaver, nærmere bestemt f.
Men markøren forsvinne, ingen bokstaver dukker opp........
Hva har jeg glemt/feilet med ?
Bruker PORTD, istedenfor PORTC
Prøver meg frem med LCD simulator http://www.dinceraydin.com/djlcdsim/djlcdsim.html
og bygger kode etter den.
Programmet ser ut til å virke til jeg har den blinkende markøre fremme.
Etter "while" linjen skulle det dukke opp bokstaver, nærmere bestemt f.
Men markøren forsvinne, ingen bokstaver dukker opp........
Kode
#define F_CPU 16000000 //Klokkefrekvens #include <math.h> #include <avr/io.h> #include <util/delay.h> //Header for _delay_ms() #include "stdio.h" int main(){ DDRD = 0xFF; PORTD = 0x00; int tell=0; //Sett 4 bit mode PORTD = 2; //Data 0010 _delay_ms(1); PORTD = 34; //Data 0010 + Enable _delay_ms(1); PORTD = 2 ; // Data 0010 _delay_ms(1); PORTD = 0; // Data 0000 _delay_ms(1); PORTD = 32; // Enable _delay_ms(1); PORTD = 0; _delay_ms(1); // Display ON/OFF control: display ON, cursor ON, blink ON, PORTD = 15; //Data 1111 _delay_ms(1); PORTD = 47; //Data 1111 + Enable _delay_ms(1); PORTD = 15; //Data 1111 _delay_ms(1); PORTD = 0; //RS=1 _delay_ms(1); PORTD = 32; // Enable _delay_ms(1); PORTD = 0; _delay_ms(100); tell =0; while(1){ PORTD = 6; //Data 0110 ( 2 ganger gir f ) _delay_ms(1); _delay_ms(1); PORTD = 22; //Data 0110 +RS _delay_ms(1); PORTD = 54; //Data 0110 +RS + Enable _delay_ms(1); PORTD = 22; //RS=1 _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; _delay_ms(1); PORTD = 16; _delay_ms(1); PORTD = 22; _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; //RS=1 _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; _delay_ms(1); PORTD = 16; _delay_ms(1); PORTD = 22; _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; //RS=1 _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; _delay_ms(1); PORTD = 22; //RS=1 _delay_ms(1); PORTD = 54; _delay_ms(1); PORTD = 22; _delay_ms(1000); } }
Sist endret av asmika; 8. februar 2011 kl. 09:35.
Grunn: Glemte tegning