Bei der Größe würde ich auch Siebensegment LED Anzeigen verwenden.
Guck mal bei Reichelt unter SA 40-19 RT...
Die Ansteuerung kannst Du mit dem Microcontroller über entsprechende Treiber Bausteine machen.
Ich hab mal eine DCF 77 Uhr mit 10cm hohen Ziffern gemacht.
Ein ATMEGA 16 steuert dabei über einen ULN2803 die Segmente der Displays an.
Ein N- und nachgeschalteter P- Kanal Fet steuern nacheinander die Anoden der Displays an.
Die Multiplexfunktion läuft bei mir im Interrupt des Timers 0.
Also einfach die Werte der einzelnen Stellen in einem Array ablegen.
Die Interruptfunktion liest dann nacheinander diese Werte aus.
Die einzelnen Werte werden dann über eine Look Up Tabelle für die Aktivierung der entsprechenden Segmente umgewandelt.
Anbei der Code in C für den Timer0 Overflow Interrupt.....
und die dazugehörige Look Up Tabelle....Code:// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { #asm("SEI"); /* Interrupts für Stoppuhr freigeben !*/ switch (uc_segmentcounter) { case 0: PORTC=0; PORTA.5=0; delay_us(20); PORTA.0=1; PORTC=uc_segment[uc_segmentcounter]; if(PINB.2>0) { PORTC.7=1; }; break; case 1: PORTC=0; PORTA.0=0; delay_us(20); PORTA.1=1; PORTC=uc_segment[uc_segmentcounter]; break; case 2: PORTC=0; PORTA.1=0; delay_us(20); PORTA.2=1; PORTC=uc_segment[uc_segmentcounter]; break; case 3: PORTC=0; PORTA.2=0; delay_us(20); PORTA.3=1; PORTC=uc_segment[uc_segmentcounter]; break; case 4: PORTC=0; PORTA.3=0; delay_us(20); PORTA.4=1; PORTC=uc_segment[uc_segmentcounter]; break; case 5: PORTC=0; PORTA.4=0; delay_us(20); PORTA.5=1; PORTC=uc_segment[uc_segmentcounter]; break; }; uc_segmentcounter++; if(uc_segmentcounter>5){uc_segmentcounter=0;}; }
Ist zwar in C, da aber alles sehr Hardwarenah passiert sollte das auch für Bascom umsetzbar sein.Code:// Zeichentabelle für 7 Segment Display //0,1,2,3,4,5,6,7,8,9,A,b,c,d,E,F,h,J,L,n,o,P,r,u,[] volatile unsigned char uc_chartable[25]={ 0b00111111,/*0*/ 0b00001100, 0b01011011, 0b01011110, 0b01101100, 0b01110110, 0b01110111, 0b00011100, 0b01111111, 0b01111110,/*9*/ 0b01111101,/*A*/ 0b01100111,/*b*/ 0b01000011,/*c*/ 0b01001111,/*d*/ 0b01110011,/*E*/ 0b01110001,/*F*/ 0b01101101,/*H*/ 0b00011110,/*J*/ 0b00100011,/*L*/ 0b01000101,/*n*/ 0b01000111,/*o*/ 0b01111001,/*p*/ 0b01000001,/*r*/ 0b00000111,/*u*/ 0b00000000};/*Leerzeichen*/
Lesezeichen