Rikta behandlingen av LCD med generell IO (8 / 12 steg)
Steg 8: LCD-läsaren kretsdesign
Med ett mönster (förhoppningsvis) finns, kan vi skapa en krets för att läsa LCD stiften och göra något nyttigt med dessa data.
Denna krets kommer att byggas runt på ATmega328p microcontroller med alla fuse standardinställningarna och ingen extern klocka källa. Eftersom COM linjerna är analoga ingångar, kunde vi läsa varje en individuellt med hjälp av ADC, men detta är onödigt. Samma effekt kan uppnås genom behandlingen bara en COM linje med den analoga motsvarigheten, och sedan simulera de andra tre COM raderna i programvara. Du kan också notera att jag inte har anslutningar för stift 5 och 6. Anledningen är enkel - jag bryr mig inte om någon av de data som representeras av de stift.
Den analoga motsvarigheten är egentligen enkel. Vi använder R5 och R6 skapa en bias spänning på AIN1. Produktionen av denna spänningsavdelare är ca 2.7V - liknande den 2.5V trigger tröskel jag använde för logik analyzer ingångar! COM1 linjen matas in i AIN0. När spänningen på AIN0 stiger högre än AIN1 eller understiger det, utlöser motsvarigheten. Vi kommer att använda detta som en avbrott för att utlösa i början av en LCD Läs cykeln. Detta kommer också användas för att synkronisera våra simulerade COM linjer.
Det sista jag vill påpeka är anslutningarna till JP2 - jag tänker faktiskt ta full kontroll över digital skala. Min krets kommer att kunna inaktivera power skala och köra läge knapparna. Jag har valt för att lämna alla PORTC öppen. Detta frigör I2C stiften för kommunikation med andra marker samt en handfull analoga ingångar som kan användas senare. Implementeringen kommer att sannolikt varierar!