Stap 6: Uitgang voor seriële modus
Als hulp bij foutopsporing, heb ik een uitgang voor seriële modus waarin sommige nuttige informatie voor de experimentator toegevoegd.Er waren geen extra pinnen beschikbaar om te gebruiken als een speciale uitgang voor seriële, dus het moet een pin delen met de LED-indicator. Seriële modus fungeert de LED niet langer als een indicator van een geldige DTMF-Toon. De LED zal verschijnen verlichte hele tijd, met opvallende flikkeren als seriële data wordt verzonden. De LED geeft nog voorwaarden zoals succesvolle power up (2 of 3slow knippert, afhankelijk van de modus), succesfullprogramming (2 snel knippert, eindeloos herhaald), en geen geldig programma (4 snel knippert, eindeloos herhaald)
Voor het aanroepen van de uitgang voor seriële-modus, moet u kort de input A/D-pin van de microprocessor gebruikt voor geluidsinvoer (pin 7 van U1 in het schema) op grond. Vervolgens fietsen macht naar het circuit. Wanneer de microprocessor opnieuw instelt, zal het de status van de lijn voor geluidsinvoer controleren en zien dat het zit dicht bij 0 volt, terwijl het normaal dicht bij +2.5 volt zitten zal. Natuurlijk moet u Verwijder de korte op grond op de audio-ingang, anders audio-ingang op grond zal worden kortgesloten. Het is alleen nodig dat de audio-ingang op grond worden kortgesloten tijdens het resetten van de microprocessor. Het kan worden verwijderd zodra de LED twee keer na macht omhoog knippert.
U weet dat de uitgang voor seriële actief is als u ziet dat de LED flikkeren en u de seriële stream op uw computer vindt.
Als u wilt controleren de seriële uitgang met een PC, moet u de 5 volt uitgang van de microprocessor omzetten in RS-232 niveaus die kunnen worden gelezen door een seriële poort van de computer. Een circuit met behulp van de MAX232-chip kan worden gebruikt voor dit doel.
Een regel van de output wordt verzonden telkens wanneer die de frequenties zijn geveegd. De velden met gegevens worden gescheiden door komma's. Deze uitgang kan worden gemakkelijk opgenomen door een terminalprogramma zoals Hyperterminal en vervolgens geïmporteerd naar Microsoft Excel voor verdere verwerking indien gewenst.
Bij het configureren van een terminal om te bekijken van de uitvoer, zijn de instellingen te gebruiken 9600 baud, 8N1, geen pariteit en geen datatransportbesturing.
De debug output bevat de volgende informatie, van links naar rechts:
* De uitvoer waarde voor elk van de 8 frequenties, uitgedrukt in decimale notatie. De waarden zijn van 5 cijfers lang, en omvatten voorloopnullen.
* De uitvoer van de logica. Dit zal ofwel 0-9, #, *, A, B, C, D voor geldige Toon paren, "S" als geen tonen worden gedetecteerd, of "?" als er een ongeldige combinatie van tinten worden gedetecteerd.
Een steekproef van de uitgang voor seriële is hieronder opgenomen:
03767,00041,00081,00054,03763,00054,00084,00028,1
In dit voorbeeld wordt werd het cijfer "1" ontdekt. Merk op dat het filter output waarden voor de eerste rij-frequentie en de eerste kolom frequentie veel groter dan de andere 6 frequenties zijn, zoals zou worden verwacht voor DTMF cijfer "1".
De code ziet er voor het hetzelfde cijfer worden gedetecteerd in twee opeenvolgende veegt alvorens die Toon wordt waargenomen, voor zowel programmeren en decoderen. De uitgang voor seriële maakt een nieuwe lijn toont alleen het cijfer gedetecteerd, zodat die aan de gebruiker, opvalt zoals wordt weergegeven in de seriële voorbeelduitvoer hieronder:
03883,00032,00043,00116,03465,00033,00064,00069,1
03705,00078,00044,00084,03996,00066,00061,00050,1
1
03767,00041,00081,00054,03763,00054,00084,00028,1
Als de microprocessor resets in Toon modus gedetecteerd terwijl de seriële modus ook is ingeschakeld, is het eerste ding dat zal worden toegezonden de volgorde van de Toon te detecteren die momenteel in de microprocessor is geprogrammeerd. Dit ziet er als 'PROGXXX... X". Als er geen geldig programma bestaat, zal het "Nee PROG" doorgeven. Als de microprocessor wordt opnieuw ingesteld in programmeermodus te activeren met de seriële modus ingeschakeld, zal het de geprogrammeerde volgorde een de programmering modus pin is bracht van hoge naar lage doorgeven. Nogmaals, dit ziet er als 'PROGXXX... X". Deze bepalingen zijn handig voor het controleren dat de volgorde die u probeert te programmeren in de micro correct was geprogrammeerd.