I2C Matrix Tastaturcontroller mit PIC16F819
von
am 07.10.2014 um 18:25 (2563 Hits)
Einige der kleinen und billigen PIC Typen z.B. der PIC16F819 haben integrierte I2C Peripherie und lassen sich sehr einfach und kostengünstig als intelligente I2C Porterweiterung nutzen. Ich hatte letztens etwas mit I2C experimentiert und PIC18 mit PIC16 kommunizieren lassen. Um mit einem halbwegs sinnigen I2C Beispiel-Projektchen meine ersten I2C Erfahrungen zu sammeln habe ich eine billige 4x4 Matrix-Tastatur mit einem 16F819 zu einer I2C Tastatur erweitert.
Hier ein Bild mit PIC18F2550 als I2C Master. 6 Bits des PortB steuern ein 1602 LCD (HD44780 kompatibel). Die Pins RB0 und RB1 des 18F2550 haben I2C Funktionalität und werden durch die LCD-Testplatine zur Tastaturplatine weitergeschleift. Durch einfaches Zusammenstecken der beiden Testplatinen erhalte ich ein Ein/Ausgabeblock mit nur einem Portanschluss.
Hier die C-Dateien für den PIC16F819: Auswertung der Matrixtastatur mit Entprellung und I2C-Slave. Per I2C kann der ASCII Code der gedrückten Taste ausgelesen werden. Die Quellcodes können mit MPLAB und XC8 compiliert werden, zum Test wurden MPLAB v2.20 und XC8 v1.33 im Free-Mode verwendet.
main.c
mcu_config.h