Binär till 7 segmentsavkodare för DTMF med PLD.
Om man skall bygga en DTMF dekoder där resultatet
skall visas på en LED display kan man inte använda en vanligt
binärkod till sju segmentsavkodare så som 74HC4511. Dessa drivkretsar
klarar nämligen inte att visa *,#,A,B,C och D vilka kan vara intressanta
när man använder DTMF toner.
För att kunna presentera DTMF tonerna på en display har jag använt en PLD (programmerbar logik) som jag programmerat för att visa DTMF tonerna enligt tabellen nedan. Dessa PLD är mycket enkla att programmera om man har tillgång till en speciell programmerare till datorn. Den PLD som jag använt är den billigaste, PALCE16V8 från AMD som har artikelnummer 73-892-08 i ELFA och kostar 15,15 kronor. Den DTMF avkodare som ger binärkoderna in nedanstående tabell är MT8870. Ton Visas Frekv1 Frekv2 Binär In LED (Hz) (Hz) MT8870 0 0 941 1336 1010 1 1 697 1209 0001 2 2 697 1336 0010 3 3 697 1477 0011 4 4 770 1209 0100 5 5 770 1336 0101 6 6 770 1477 0110 7 7 852 1209 0111 8 8 852 1336 1000 9 9 852 1477 1001 A A 697 1633 1101 B b 770 1633 1110 C C 852 1633 1111 D d 941 1633 0000 * E 941 1209 1011 # F 941 1477 1100
Deklarationerna och funktionstabellen för PLD kretsen.Filnamn: hex7seg.dcb *IDENTIFICATION 4 bit binär till 7 segment 0-9,A-F Daniel Stenvall - SM2VEC *X-NAMES In[1..4]; 4 bitars insignalen från DTMF kretsen Reset; Resetingång, 1=Reset *Y-NAMES Seg[1..7]; Utsignalerna till LED displayen, Gemensam katod *FUNCTION-TABLE $HEADER: X In[1..4],Reset : Y Seg[1..7]; X 0000 ,0 : Y 0111101; D X 0001 ,0 : Y 0110000; 1 X 0010 ,0 : Y 1101110; 2 X 0011 ,0 : Y 1111010; 3 X 0100 ,0 : Y 0110011; 4 X 0101 ,0 : Y 1011011; 5 X 0110 ,0 : Y 1011111; 6 X 0111 ,0 : Y 1110000; 7 X 1000 ,0 : Y 1111111; 8 X 1001 ,0 : Y 1111011; 9 X 1010 ,0 : Y 1111101; 0 X 1011 ,0 : Y 1001111; * (E) X 1100 ,0 : Y 1000111; # (F) X 1101 ,0 : Y 1110111; A X 1110 ,0 : Y 0011111; B X 1111 ,0 : Y 1001101; C X ---- ,1 : Y 0000000; RESET *END --- Deklarationerna av ben och krets.Filnamn: hex7seg.ddv *IDENTIFICATION 4 bit binär till 7 segment 0-9,A-F Daniel Stenvall - SM2VEC *PLD TYPE =PALCE16V8 ; Väljer kretsen PALCE16V8 *PINS In1=2; Väljer ben på insignaler In2=3; In3=4; In4=5; Reset=9; Seg1=12; Väljer ben på utsignaler Seg2=13; Seg3=14; Seg4=15; Seg5=16; Seg6=17; Seg7=18; *END --- Utfil för programmeringFöljande fil är resultatet av de två ovan och används för programmering av PLD kretsen. PRODUCED BY LOG/iC-PLD OUTPUT (PLD) Rel. 4.0-13a (4156-1713) . USING LOG/iC PAL/PLA Library (Version 28.03 , 03-Feb-1994) . ;Design. hex7seg Date. 01-May-97 23.20.24 ;4 bit binär till 7 segment 0-9,A-F ;Daniel Stenvall - SM2VEC ;---------------------------------------------------------------------------- ;Device. hex7seg Type. PALCE16V8 Date. 01-May-97 23.20.43 ;4 bit binär till 7 segment 0-9,A-F ;Daniel Stenvall - SM2VEC ;---------------------------------------------------------------------------- $DEVICE PALCE16V8 ; $PIN 2 = IN1 ; 3 = IN2 ; 4 = IN3 ; 5 = IN4 ; 9 = RESET ; 12 = SEG1 ; 13 = SEG2 ; 14 = SEG3 ; 15 = SEG4 ; 16 = SEG5 ; 17 = SEG6 ; 18 = SEG7 ; $END * D0000* G0* QP020* QF02194* F0* L00256 11111111111111111111111111111111* L00288 11110111101111111111111111111011* L00320 11110111111110111111111111111011* L00352 01111111111111111111111111111011* L00384 11111111101110111111111111111011* L00512 11111111111111111111111111111111* L00544 10111011101111111111111111111111* L00576 11110111011101111111111111111111* L00608 01111011011110111111111111111111* L00640 11111111111111111111111111110111* L00768 11111111111111111111111111111111* L00800 01111111011111111111111111111011* L00832 01110111111111111111111111111011* L00864 11111011111110111111111111111011* L00896 11111111011110111111111111111011* L01024 11111111111111111111111111111111* L01056 10111011101101111111111111111111* L01088 11110111101110111111111111111111* L01120 10110111011101111111111111111111* L01152 01110111101111111111111111111111* L01184 11111111111111111111111111110111* L01280 11111111111111111111111111111111* L01312 10111011011110111111111111111111* L01344 01111111011101111111111111111111* L01376 01110111101110111111111111111111* L01408 11111111111111111111111111110111* L01536 11111111111111111111111111111111* L01568 10111111101110111111111111111011* L01600 10111111011101111111111111111011* L01632 11111011111110111111111111111011* L01664 01111111101101111111111111111011* L01696 10111011111111111111111111111011* L01792 11111111111111111111111111111111* L01824 10111111011111111111111111111011* L01856 11110111111101111111111111111011* L01888 01111111101111111111111111111011* L01920 01111011111111111111111111111011* L02048 01010011* L02056 00000000000000000000000000000000* L02088 00000000000000000000000000000000* L02120 11111111* L02128 00000000111110001111100011111000* L02160 11111100111110001111110011111000* L02192 01* C9089* 0000
|
. |
©
1997 - Daniel
Stenvall, SM2VEC