/* * * Anschlussschema: * SER -> A1 //Serieller Eingang aus A1 * SRCLK -> A4 //Pos. Flanke nach jedem Bit aus A4 * RLCK -> A5 //Pos. Flanke für Speicherung Byte aus A5 * * SRCLR -> Vcc //Clear Pin über Widerstand auf HI, Aktivierung mit active LO * OE -> GND //Durchschaltung auf PINS dauernt aktiviert * * Die Fuktion erwartet als Eingabewert einen Integer zwischen 0 und 15, entsprechend * einer Ausgabe auf dem Display zwischen 0 und F * * A -> QH (7) * B -> QG (6) * C -> QF (5) * D -> QE (4) * E -> QD (3) * F -> QC (2) * G -> QB (1) * DP-> QA (15) */ #include "Schieberegister.h" #include "16F18446_Init.h" #include "16F18446_Konfiguration.h" //Variable zur Speicherung der Segmentcodierung für die übergene Ziffer int displayZiffer; void digDisplay (int dezZiffer){ displayZiffer=dispCode[dezZiffer]; for (int i=0; i<8;i++) { serPin=(displayZiffer>> i) & (0x01); serTakt(); } schreibTakt (); return; } // Erzeugung einer positiven Flanke am Pin SRCLK void serTakt (void) { srclkPin=0; __delay_us(1); srclkPin=1; __delay_us(1); srclkPin=0; __delay_us(1); return; } // Erzeugung einer positiven Flanke am Pin RCLK void schreibTakt (void) { rclkPin=0; __delay_us(1); rclkPin=1; __delay_us(1); rclkPin=0; __delay_us(1); return; }