Leuk met de vergadering van de PIC - aflevering 2 (3 / 4 stap)

Stap 3: Software

Hieronder vindt u de link van de software. Terwijl het wordt gericht voor de 12F683, is het eenvoudig geport naar grotere versies van de PIC. Meestal vereist het te wijzigen in namen, zoals TRISIO TRISA, en GPIO naar PORTA. U zult ook moeten veranderen de regel waarmee de PIC-versie (lijst =) en het INCLUDE-bestand, maar die zijn
intuïtieve wijzigingen. De __CONFIG lijn wellicht ook tweaken alleen maar omdat een of twee van de gebruikte etiketten zijn anders gespeld in sommige van de INCLUDE-bestanden. Zorg enkel ervoor dat de foto die u een PIN-code waarmee een externe Interrupt invoer heeft (meestal aangeduid als EXT).

Andere dan de LCD controle pin verandert, heeft dit programma een aantal fundamentele verschillen van de eenvoudige in aflevering 1. In het bijzonder, gebruikt het een interrupt handler zodat de gedefinieerde geheugenlocaties voor het resetten van het programma en de start van de interrupt handler bijgekomen. De reset-vector (adres 0) heeft een eenvoudige GOTO instructie om te springen naar het echte begin van het programma. Dat is nodig omdat de interrupt handler begint altijd op adres 4. Een gril die ik vond is dat de maximaal toelaatbare fout X IDE-programma dat de code compileert niet graag een GOTO springen direct naar de verklaring van een BANKSEL. Dat is waarom de eerste instructie in "MAIN" is een NOP. De routine "Init" bevat ook instructies voor het gebruik van de interne klok van de 8-MHz in plaats van de standaard 4-MHz klok. Dat betekent ook dat de vertraging routines verschillende waarden dan die in de Episode 1-routines moeten.

De LCD_Init-routine voldoet vrijwel aan de opgegeven initialisatie sequentie voor de 1602-chip. De LCD_Line1-routine wordt "Adres/opdracht" op lijn 1 weergegeven. De LCD_Line2-routine die zijn ingesteld voor het schrijven van de ontvangen IR-codes aan lijn 2 van het LCD-scherm. Lijn 2 krijgt overschreven telkens die een nieuwe IR-bericht wordt ontvangen.

Het hart van de IR-bericht capture-code is de binnenkant van de interrupt handler. Herinneren van het bedradingsschema dat we de output seriële data van de IR ontvanger hebt aangesloten op de ingang van externe onderbreken van de PIC. Daardoor kunnen we aan sync met het begin van het bericht te decoderen van elke bit van de gegevens door het eenvoudig meten van puls breedte. De ingang voor externe Interrupt wordt ingesteld op onderbreken op de dalende rand waarin altijd een beetje start. De interrupt routine controleert Timer1 om te zien hoe lang het is sinds de laatste interrupt en vervolgens wordt de timer opnieuw ingesteld. We kunnen de verschillende pulsen precies meten maar de lui aanpak werkt heel goed. Zoals we in het voorgaande gedeelte zagen, de start-pols is gemakkelijk herkenbaar maar de gegevensbits onderscheiden zich door de ruimte-tijd na de data-bit. Door het meten van dalende rand vallende rand, omvatten wij zowel de bits en de ruimte-tijd. Op die manier dat we ook om precies te zijn bij het testen van puls breedte niet hebben. Gezien het feit dat de PIC klokfrequentie is ingesteld op 8-MHz, zal Timer1 elke 500ns verhoogd. Ter vereenvoudiging van de software kunnen we voorbijgaan aan de lagere 8 bits van Timer1 (maximale 127us) en alleen het testen van de hogere 8 bits. Elke tellen in de hogere 8 bits is gelijk aan 128us. Een "0" data-bit zal hebben een aantal meer is dan 5 maar minder dan 9 en een "1" data-bit dubbele dat bereik zal hebben. Dat is waarom de graven gecontroleerd in de software zijn ingesteld op 6 voor een data-bit "0" en 12 voor een data-bit "1". De start bit controle is voor een aantal meer is dan 24 (over 3ms). Niet te precies maar zeer effectief.

De routine Main_Lp1 is waar de gegevensbits gedecodeerd door de interrupt routine zijn verpakt in de verwachte vier bytes. De aanroep Make_ASCII één knabbelen op een moment van elke byte is verzonden en de numerieke waarde van 0-15 omgezet in een leesbare teken van 0-F. Het maakt gebruik van een gladde proces waarmee een programmeur om te bouwen van een opzoektabel en stel vervolgens het programma-item te springen in de juiste locatie in de tabel. Elke tabel-locatie is een speciale subroutine instructie return (RETLW) die een opgegeven letterlijke waarde in het register van de W terug naar de aanroepende routine draagt. Nadat alle vier bytes zijn ontvangen en verzonden naar het display is er een oproep aan LCD_Line2 om het opnieuw instellen van de aanwijzer weergeven in afwachting van het volgende bericht van IR. Het omvat niet een opdracht om het omdat het volgende bericht gewoon de huidige display-locaties overschrijven zal.

Gerelateerde Artikelen

Leuk met de vergadering van de PIC - aflevering 4

Leuk met de vergadering van de PIC - aflevering 4

Zoals ik in aflevering 3, kocht ik een kleine verscheidenheid van modules voor interfacing naar foto's. Een daarvan is een Bluetooth-Module. In al die jaren dat ik over Bluetooth had geweten, had ik nooit echt het verhaal achter de naam uitgecheckt.
Leuk met de vergadering van de PIC - aflevering 13

Leuk met de vergadering van de PIC - aflevering 13

Een paar maanden geleden overwoog ik maken een capaciteit meter met behulp van de PIC. Ik deed wat onderzoek op het web en verschillende ontwerpen uitgecheckt. Dan maakte ik de fout van het controleren van eBay om te zien hoe veel zou kosten. De vers
Leuk met de vergadering van de PIC - aflevering 22

Leuk met de vergadering van de PIC - aflevering 22

De gemeenschappelijke zeggen is dat "noodzaak de moeder van uitvinding is". In werkelijkheid zijn er echter veel "mothers" van uitvinding. Mijn favoriet is "luiheid" maar soms dingen uitgevonden krijgt, alleen omdat het een l
Leuk met de vergadering van de PIC - aflevering 21

Leuk met de vergadering van de PIC - aflevering 21

Ik ben niet een wereldreiziger, maar ik heb al een aantal plaatsen die radicaal in temperatuur en vochtigheid verschillen. Me niet schelen wat iemand zegt, "droge hitte" betekent niets als de thermometer is boven de 110 graden. Evenzo is-40 grad
Leuk met de vergadering van de PIC - aflevering 18

Leuk met de vergadering van de PIC - aflevering 18

Buzz woorden en zinnen van de vangst worden altijd gegenereerd, vooral in de technologiegebieden of de politiek. Zelfs Dilbert kreeg in op de trend met "Buzzword Bingo" terug in de ' 90's. Een van de momenteel hot zinnen is "Internet van di
Leuk met de vergadering van de PIC - aflevering 1

Leuk met de vergadering van de PIC - aflevering 1

Terug in de olden dagen, wanneer mannen waren mannen en diskettes waren enorm, we geprogrammeerd de eerste microprocessor in assembler - en wij graag gezien dat die manier. Nu dat ik met pensioen ben besloten heb ik om opnieuw die dagen van yore en s
Leuk met de vergadering van de PIC - aflevering 16

Leuk met de vergadering van de PIC - aflevering 16

Tot nu toe heb ik verzette toe te voegen aan de miljoenen van "Een LED knipperen" projecten die op het web. Dat wil niet zeggen dat ik eigenlijk niet maken een project "Knipperen van een LED" toen ik voor het eerst begonnen te rommelen
Leuk met de vergadering van de PIC - aflevering 17

Leuk met de vergadering van de PIC - aflevering 17

Terug in de slechte oude dagen had ieder telefoonbedrijf een eigen interface en vaak verschillende interfaces voor verschillende telefoons in hun productlijn. Deze dagen, maar bijna elke telefoon een USB-interface gebruikt, net als veel andere appara
Leuk met de vergadering van de PIC - aflevering 8

Leuk met de vergadering van de PIC - aflevering 8

Ik heb enkele interessante temperatuurveranderingen meegemaakt in mijn leven met inbegrip van slechts een paar jaar geleden waar wij Stel een recordhoogte eendaagse en stel vervolgens een recordminimum de volgende dag. De meest interessante ervoer ik
Leuk met de vergadering van de PIC - aflevering 12

Leuk met de vergadering van de PIC - aflevering 12

OK, dus ik ben een van die mensen die blij zijn als ik eindelijk iets werken, maar het gnaws bij me als ik niet volledig van de details begrijpen van waarom het werkt. Dit is het geval met deze aflevering. De achtergrond is dat ik ben bezig met een k
Leuk met de vergadering van de PIC - aflevering 14

Leuk met de vergadering van de PIC - aflevering 14

Zoals ik in een vorige aflevering, ik vrijwilliger bij een non-profit recyclingcentrum. Meestal we repareren computers en LCD-monitoren maar de laatste tijd ik heb genomen voor de taak op het krijgen van sommige oudere Dell 5650 subwoofer systemen ui
Leuk met de vergadering van de PIC - aflevering 15

Leuk met de vergadering van de PIC - aflevering 15

Een van mijn recente projecten betrokken de bouw van een kleine 2.1 versterker met behulp van wat TDA power versterker chips die ik scrounged van een afgekante elektronica bestuur. Aangezien ik was in staat om te beslissen hoe ik wilde dingen bepalen
Leuk met de vergadering van de PIC - aflevering 3

Leuk met de vergadering van de PIC - aflevering 3

Nadat ik had been playing rond met de foto's voor een tijdje toevallig ik te merken dat het web was vol met kleine interface boards dat allerlei interessante taken kon doen. Sterker nog, ze waren goedkoper dan proberen op te bouwen uw eigen kleine pl
Leuk met de vergadering van de PIC - aflevering 19

Leuk met de vergadering van de PIC - aflevering 19

Een van mijn favoriete zinnen is "het is gemakkelijk als je weet hoe." Ik ben niet zeker als ik pakte die ergens lang geleden of het zelf bedacht, maar er heel wat waarheid daarin is. Dat is soort van wat er gebeurde toen ik ging op zoek naar ee
Leuk met de vergadering van de PIC - aflevering 23

Leuk met de vergadering van de PIC - aflevering 23

Zoals ik in vorige afleveringen ik vrijwilliger bij het lokale non-profit recyclingcentrum. Sommigen van de elektronica-dingen die wordt afgezet soort maakt me voelen als een archeoloog technologie en ik heb een fantasie die the History Channel zal v