Presentation laddar. Vänta.

Presentation laddar. Vänta.

Många studenter använder en LCD-display till sin programmeringsuppgift

Liknande presentationer


En presentation över ämnet: "Många studenter använder en LCD-display till sin programmeringsuppgift"— Presentationens avskrift:

1 Många studenter använder en LCD-display till sin programmeringsuppgift
LCD displayer innehåller ofta sk. HD44780 pinkompatibla styrkretsar. Samma kod passar därför till många olika displayer – men inte alla, prova! GTC TS6L0C ELFA GTC-1601-TR6N0C ELFA 18 Tex 28 Tex. Pizza 58:90 Dvs. två rader direkt efter varandra! Lista över provade displayer finns på kurswebben. William Sandqvist

2 William Sandqvist william@kth.se
Kontaktstandard Displayer med enradiga kontakter är enklare att ansluta till kopplingsdäck än de med tvåradiga. William Sandqvist

3 Spara ledningar - nibble-mode
Att mata spädbarn går lättare när man ger smakbitar (nibble). Eftersom två smakbitar blir till en munsbit (byte), kan barnet ändå bli mätt till slut. När det gäller små PIC-processorer har man ofta ont om pinnar. Alla LCD-displayer har en finess som gör att tecken och kommandon kan "matas in" med 2 st 4-bitarstal (nibble) i följd, i stället för med ett 8-bitarstal (byte). Det kommando som "ställer in" om 8 eller 4 dataledningar ska användas måste ges först. Detta kommando har naturligtvis valts så att 4 bitar räcker för att skilja det från de övriga kommandona! William Sandqvist

4 Koppla så här med 6 ledningar
Med felinställd kontrast får Du aldrig se hur bra det fungerar! William Sandqvist

5 William Sandqvist william@kth.se
Definiera portpinnar Man måste ofta ”blanda” lediga pinnar från olika portar … void lcd_putchar( char data ) /* I/O-pin definitions */ /* change if you need a pin for a different use */ #pragma bit PORTB.5 #pragma bit PORTB.3 #pragma bit PORTA.3 #pragma bit PORTA.2 #pragma bit PORTA.1 #pragma bit PORTA.0 William Sandqvist

6 William Sandqvist william@kth.se
lcd_putchar() void lcd_putchar( char data ) { // upper Nybble D7 = data.7; D6 = data.6; D5 = data.5; D4 = data.4; EN = 0; nop(); EN = 1; delay(5); // lower Nybble D7 = data.3; D6 = data.2; D5 = data.1; D4 = data.0; EN = 0; nop(); EN = 1; delay(5); } Välj mode innan anropet: RS = 1 character mode RS = 0 command mode William Sandqvist

7 William Sandqvist william@kth.se
lcd_init() void lcd_init( void ) { delay(40); // give LCD time to settle /* Function set */ RS = 0; // LCD in command-mode // 0010.xxxx 4-bit mode lcd_putchar(0b ); // The display is actual two lines after each other // 4bitmode.two line.display off.xx lcd_putchar(0b ); /* Display ON/OFF Control */ // display on.cursor off.blink off lcd_putchar(0b ); /* Display clear */ // lcd_putchar(0b ); /* Entry mode set */ // increment mode.shift off lcd_putchar(0b ); // initialization is done! } Funktionen måste anropas en gång innan displayen kan användas! William Sandqvist

8 William Sandqvist william@kth.se
Egna tecken! Det finns 8 egendefinierade tecken. När vi definierat ÅåÄäÖö finns det ändå två kvar till dig … // Pixel definitions of up to 8 user defined characters RS = 0; // command-mode lcd_putchar(0b ); // Move Cursor into CGRAM RS =1; // data-mode // Pixel definition of user defined Character 0 (å) lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); lcd_putchar(0b ); Ser Du systemet? Bra att Knudsen har binära konstanter! lcd_putchar( 0 ); // user defined Ch 0 is 'å' William Sandqvist

9


Ladda ner ppt "Många studenter använder en LCD-display till sin programmeringsuppgift"

Liknande presentationer


Google-annonser