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

Stap 3: Software

Hieronder vindt u de link van de software. Terwijl het wordt gericht voor de 16F688, is het gemakkelijk ported aan andere versies van de PIC. U zult moeten veranderen de regel waarmee de PIC-versie (lijst =) en het INCLUDE-bestand, maar die zijn intuïtieve veranderingen. 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.

Van de meeste software heeft betrekking op de LCD-behandeling en de routines van de vertraging dus die delen moet kennen als je enkele van de vorige afleveringen gekeken. Een ding om op te merken aan de voorkant is dat de variabele verklaring sectie (UDATA) een beetje anders is. Omdat de EEPROM control registers allen in Bank 1 geheugen zijn, besloten heb ik om ook de variabelen EE_Addr en EE_Data in Bank 1. Dat vereist het gebruik van labels als onderdeel van de verklaringen van de UDATA start adres. Bankgegevens 0 begint bij adres 20 hex terwijl Bank 1 gegevens bij adres A0 hex begint. We moeten ook niet vergeten in het hele programma over wat geheugenbank we zijn in bij het lezen en schrijven. Mijn algemene regel, is zoals in de kop om af te sluiten altijd een subroutine in Bank 0.

Omdat we zijn met behulp van registers die specifiek zijn voor de EEPROM voor leest en schrijft, er is geen noodzaak voor ons te maken over waar het adres kaart de EEPROM bevindt. Dat maakt het leven een beetje makkelijker omdat we in feite gewoon een index van 00 tot FF hex. Veel van de foto's hebben 256 bytes van de EEPROM, maar sommige hebben alleen 128 bytes (bijvoorbeeld de 16F627/8) dus zich bewust zijn van die voor uw toepassingen.

De code voor het lezen en schrijven van de EEPROM is afgeleid van wat wordt weergegeven in het gegevensblad, maar er zijn een paar belangrijke verschillen, met name in de sectie schrijven. Voor een lezen, we gewoon het gewenste adres in EEADR instellen, wijs datageheugen (in tegenstelling tot programmageheugen in flash), opdracht een lezen, en vervolgens de gegevens lezen uit register EEDAT. Het proces van schrijven volgt enkele van dezelfde stappen uit, maar met enkele opvallende verschillen in het midden van de reeks. Nogmaals, we beginnen door het gewenste adres instellen in EEADR en vervolgens EEDAT te vullen met de gegevensbyte die we willen schrijven. Vervolgens hebben we een "schrijven inschakelen" markering instellen. Je kunt bedenken dat als de R/W pen met geheugenchips of de LCD-beeldscherm. Zoals eerder vermeld, mogen wij het schrijven proces te voltooien zonder onderbreking, dus dit is het punt waartegen we de GIE markering wilt wissen. Als je in het gegevensblad kijkt, is er code er die eigenlijk wist GIE en vervolgens lussen totdat GIE duidelijk is. Dat komt er vanwege de mogelijkheid dat een interrupt treedt op voordat de duidelijke van GIE daadwerkelijk van kracht (vier klok cycli of één instructiecyclus). Omdat de terugkeer van de interrupt handler wordt opnieuw ingeschakeld GIE automatisch, kan onze clear commando te krijgen vervangen. Dus is wat is aanbevolen om gewoon een lus op het clear commando totdat we eigenlijk gelezen van GIE voltooien en controleer of het duidelijk.

Nu komt de code voor het uitvoeren van de geheime handdruk nodig voor schrijft. Echt, alles wat we doen is het eerst schrijven 55 hex en schrijven vervolgens AA hex naar EECON2. Ik laat het als een oefening voor de student voor het berekenen van de kans die volgorde per ongeluk gebeurt. Na de geheime handdruk, wij stellen de werkelijke schrijven opdracht vlag en dan wachten op de PIC aan de markering wissen. Zij zal dat doen wanneer de schrijfbewerking is voltooid. Aangezien wij niet iets anders tijdens de tijd van schrijven doen, is polling van deze vlag echt de makkelijkste manier om deze taak te volbrengen. Het gegevensblad voorbeeld toont een slaap commando met de veronderstelling dat we wakker worden en blijven wanneer we een interrupt (EEIR) bij de voltooiing van het schrijven krijgen. Wat het niet toont, is echter de instelling voor die onderbreken en de behandeling van de interrupt vóór voortzetting van de uitvoering. Nogmaals, de luie manier triomfen.

De Test_EEPROM-routine stuurt slechts drie gegevensbytes aan EEPROM en dan leest ze terug. Elke byte die wordt geschreven of gelezen wordt verzonden naar het LCD-scherm voor weergave. Niets ook handig op dit punt, maar het toont hoe we de EEPROM voor toekomstige projecten kunnen benaderen.

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