Display

Vi använder oss av en LCD ( Liquid Crystal Display ) av modell DMC16207[1]. Displayens styrkrets heter HD44780 och det är den som har alla register och funktioner. Displayen består av två rader med vardera 32 tecken. Den har 8 bitars databuss, DB0-DB7, där man kan läsa respektive skriva från/till den. Det finns möjlighet att kommunicera med displayen med antingen alla 8 bitar eller med bara 4 bitar, DB4-DB7. Då skickas 4 bitar i taget, först de 4 lägsta signifikanta bitarna sedan de 4 högsta. Detta passar oss utmärkt för då räcker det om vi använder oss av en PIC med få ben. När insignal Enable är hög läser/skickar displayen det som finns på dataledningarna. I våran konstruktion använder vi oss endast av funktionen skicka, ej av läsfunktionen för att förenkla kommunikationen. Problemet med att enbart skriva till displayen är att man inte kan använda sig utav den funktion displayen har som heter ”wait busy flag”. Det är en bit som nollställs om displayen är klar dvs. den är mottaglig för ytterligare data. Om busy flag inte är nollställd ignoreras data som skickas till den. Men för att kunna använda den funktion krävs att man kan läsa från displayen. Det löses genom att PICen är programmerad[2] så att den väntar tillräckligt länge så att man vet att displayen verkligen är färdig. Detta slöar ned kommunikationen rejält men fördelen med enkel kommunikation överväger. Displayen har två register, instruktions- och dataregister. Instruktionsregistret används till att instruera displayen t.ex. clear screen, display on/off, blinkande cursor, font-size mm. Dataregistret används för att skicka tecken till displayen