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

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
William Sandqvist Simulera med ModelSim ModelSim kan användas till att simulera VHDL-kod, för att avgöra om den är "rätt" tänkt. Man kan.
Anders Sjögren Lagringsklasser •en variabel i C har två attribut –type( int, float, char..... ) –lagringsklass( auto, extern, register, static ) •lagringsklassens.
William Sandqvist Internet består till största delen av kabelanslutna datakommunikationsutrustningar Att bygga ett stabilt globalt täckande.
William Sandqvist Störskydd William Sandqvist
Föreläsning 10 Kurvanpassning som en del av problemlösning med datorer
Minnesteknologier Teknologi Accesstid Kostnad $/GB SRAM 1 ns 1000 DRAM
William Sandqvist Maurice Karnaugh Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist
En dator av rep, block och taljor
Komplexa tal inför Laborationerna
PICKit2 programmer-to-go
PC-teknik Repetition enligt önskemål som inkommit via mail. (täcker alltså inte alla moment i kursen)
William Sandqvist Programmet onoffred.c.
IE1206 Inbyggd Elektronik F1 F2
SmartCard laborationen
William Sandqvist Varför använda en liten 8-bitars processor när det finns billiga kraftfulla 32-bitars? William Sandqvist
Komparatorn en 1 bits AD-omvandlare
Kretselement på grafisk form
Kommunikation Först några nya PIC-instruktioner
William Sandqvist PSpice – hemma Som simuleringsprogramvara använder vi Orcad PSpice, samma program kommer sedan att användas I elektronikkurserna.
Realtidsprog. - Anders Arvidsson1 Realtidsprogrammering En introduktion – Implementering (med exempel från PIC)
i olika programmeringsspråk
Ali Ghodsi Variabler En variabel är en sorts behållare som man kan placera data i Man måste ange typ och namn för alla variabler.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Från binära till hexadecimala
William Sandqvist Digitalt oscilloskop William Sandqvist
Styrteknik: Programmering med MELSEC IL PLC2A:1
William Sandqvist C:s minnesmodell.
1 Föreläsning 3 programmeringsteknik och Matlab 2D1312/ 2D1305 Matlab fortsättning Funkioner, styrstrukturer, manipulering av matriser.
För att uppdatera sidfotstexten, gå till menyfliken: Infoga | Sidhuvud och sidfot Fondbolagsträff 2015.
William Sandqvist Kodlåsmall lockmall.vhd William Sandqvist
Namnrum, räckvidd och rekursion Linda Mannila
William Sandqvist Databuffer Omvandlar mellan olika storlekar på dataobjekt Anpassar mellan olika dataöverföringshastigheter Databuffer.
William Sandqvist PIC PIC (Peripheral Interface Computer) är en datorkrets med ”allt i ett”. Prog Mem. Programminnet är 2048 instruktioner.
William Sandqvist Lab 1 Några slides att repetera inför Lab 1 William Sandqvist
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
F14_B_be1 Telekommunikation, Kiruna Källkodning F14_B /BE /BE.
William Sandqvist C-programmering ID120V Stack och Kö William Sandqvist
Superpositionsprincipen
William Sandqvist PIC-programmeringsmiljön i skolan Datorerna i skolans labsalar är centralt underhållna. Du har inte rättigheter att installera.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
William Sandqvist Sluten strömkrets? Man har två glödlampor för 220 V och två strömbrytare. Nu vill man ansluta de båda lamporna till 220.
Exponentialfunktionen
Anders Sjögren Filer - långtidslagring. Anders Sjögren Filtyper i DOS talet ett ( intx=1; ) lagrat i en –textfil, (en sekvens av tecken ( bytes )) enligt.
William Sandqvist Melodispelaren Denna demonstrationslaboration visar, steg för steg, hur man skriver ett kort program i programspråket.
William Sandqvist ReadModifyWrite-problemet PORTB = 0; PORTB.0 = 1; PORTB = PORTB; Vilket värde har portpinnen RB1 nu ? Förmodligen ”1”,
William Sandqvist IS1500 Datorteknik William Sandqvist
William Sandqvist Lab 2 Några slides att repetera inför Lab 2 William Sandqvist
William Sandqvist Många spännande komponenter passar inte 2,54 mm modulen? Därför finns det ”Breakoutboard” som anpassning, för den som.
William Sandqvist Flera saker samtidigt? /* Blink1: 1s ON - 1s OFF */ /* Blink2: 0,2s ON - 0,2s OFF - 1s ON - 1s OFF */
William Sandqvist DA-omvandling, oftast PWM.
William Sandqvist Binärkod och Graykod 7 Bitars Kodskiva för avkodning av vridningsvinkel. Skivans vridnings-vinkel finns tryckt som binära.
William Sandqvist Funktionsbibliotek När man utvecklat en funktion så långt att den är "färdigutvecklad" kan man lika gärna spara den på.
1 Matlab, föreläsning 1 Oktober MATLAB Perspektiv på materialdesign Lina Kjellqvist Rum: K324 Telefon:
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( ) Innehåll: -Exekveringstrådar.
William Sandqvist PWM Sinusoidal Hur tillverkar man en sinusformad spänning? En PWM-signal kan ge en sinusapproximation. Efter filtrering.
Kronljusströmställaren 0, 1, 2, 3
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
Styrteknik 7.5 hp distans: Tidskretsar, räknare PLC4B:1 Bilder Olika exempel med Timers och Counters En Enkel Timer med MELSEC IL Om BTN_DGVG.
1 Föreläsning 13 programmeringsteknik och Matlab Funktioner, styrstrukturer, mer om matriser.
Shannon dekomposition
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
William Sandqvist Några experiment med XPortPro.
Lab Contact 1  Lab Assistants:  Meng Liu, Group B  Sara Abbaspour, Group A
Microprocessor / Microcontroller
Algoritmer och datastrukturer Föreläsning 8 Tidskomplexitet (Weiss kap
Course info.
Figure Types of analog-to-analog modulation
Presentationens avskrift:

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

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

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

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

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 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

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

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(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

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(0b01.000000); // Move Cursor into CGRAM RS =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 har binära konstanter! lcd_putchar( 0 ); // user defined Ch 0 is 'å' William Sandqvist william@kth.se