Dette er en tellerkrets som viser verdien på en LCD skjerm.
Mål
Målet er å lage en fullstendig krets med en mikrokontroller krets som teller fra 0-99 og viser verdien på en LCD skjerm.
Utstyr
- DE 112-RS-20 (LCD skjerm)
- ICM7211 (LCD driver)
- PIC16F690 (Mikrokontroller)
- Strømforsyning (5V)
- Kodensator (220pF)
- PICKIT3 e.l. (For å programmere mikrokontrolleren)
Krets
Program
Hele koden kan lastes ned her.
Initalisering
/** * Setter frekvens til 125Khz */ OSCCONbits.IRCF = 0b001;
/** * Slå på pullresistor for alle portB utganger. */ WPUB = 0b11111111;
/** * Setter port B4 som utgang. Denne skal brukes for låsing av verdi på ICM7211. */ TRISBbits.TRISB4 = 0;
/** * Port B6 og B7 brukes som utganger for å sette adressen på LCD driveren. */ TRISBbits.TRISB6 = 0; TRISBbits.TRISB7 = 0;
/** * Port C4-C7 brukes som utgang for verdien som skal vises. */ TRISCbits.TRISC4 = 0; TRISCbits.TRISC5 = 0; TRISCbits.TRISC6 = 0; TRISCbits.TRISC7 = 0;
Applikasjon
/* * Verdien som skal kjøres ut på B6 og B7 for å sette adressen på LCD driveren * til første adresse. */ const unsigned char FIRST_ADDRESS = 3; /* * Verdien på B6 og B7 for å sette adressen tilLCD driveren til andre adresse. */ const unsigned char SECOND_ADDRESS = 2;
/** * Setter adressen på port B6 og B7. Holder B4 høy fordi l,atch ikke skal kjøres * enda. */ unsigned char val = addr; val = val << 6; val = val | 0b00010000; PORTB = val; __delay_us(WAIT_TIME);
/** * Setter utgangsverdien på port C4-C7. */ unsigned char output = val; output = output << 4; PORTC = output; __delay_us(WAIT_TIME);
/** * Setter verdien på port C4 lav, men holder B6 og B7 slik de var. Dette setter * verdien i LCD driveren. */ PORTB = PORTB & 0b11101111; __delay_us(WAIT_TIME); /** * Setter verdien på C4 høy, slik at verdien er låst på LCD driveren. */ PORTB = PORTB | 0b00010000; __delay_us(WAIT_TIME);
Video
Du må være logget inn for å legge inn en kommentar.