1 / 9

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

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-08011-TS6L0C ELFA 75-511-20. GTC-1601-TR6N0C ELFA 75-511-53.

monique
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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-08011-TS6L0CELFA 75-511-20 GTC-1601-TR6N0CELFA 75-511-53 18 Tex. 09-02-25 28Tex. Pizza 58:90 Dvs. två rader direkt efter varandra! Lista över provade displayer finns på kurswebben. William Sandqvist william@kth.se

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

  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 william@kth.se

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

  5. 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 RS @ PORTB.5#pragma bit EN @ PORTB.3#pragma bit D7 @ PORTA.3#pragma bit D6 @ PORTA.2#pragma bit D5 @ PORTA.1#pragma bit D4 @ PORTA.0 William Sandqvist william@kth.se

  6. 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 = 1character mode RS = 0command mode William Sandqvist william@kth.se

  7. 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(0b0010.0010); // The display is actual two lines after each other // 4bitmode.two line.display off.xx lcd_putchar(0b0010.1.0.00); /* Display ON/OFF Control */ // 0000.1.display on.cursor off.blink off lcd_putchar(0b0000.1.1.0.0); /* Display clear */ // 0000.0001 lcd_putchar(0b0000.0001); /* Entry mode set */ // 0000.01.increment mode.shift off lcd_putchar(0b0000.01.1.0); // initialization is done! } Funktionen måste anropas en gång innan displayen kan användas! William Sandqvist william@kth.se

  8. 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-modelcd_putchar(0b01.000000); // Move Cursor into CGRAMRS =1; // data-mode// Pixel definition of user defined Character 0 (å) lcd_putchar(0b000.00100); lcd_putchar(0b000.00000); lcd_putchar(0b000.01110); lcd_putchar(0b000.00001); lcd_putchar(0b000.01111); lcd_putchar(0b000.10001); lcd_putchar(0b000.01110); lcd_putchar(0b000.00000); Ser Du systemet? Bra att Knudsen harbinära konstanter! lcd_putchar( 0 ); // user defined Ch 0 is 'å' William Sandqvist william@kth.se

More Related