Leuk met de vergadering van de PIC - aflevering 23 (3 / 3 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 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. Zoals we hebben gezien voordat, de 16F688 (14-pins PIC) kan worden gebruikt met de dezelfde fysieke pin-verbindingen als de 12F683 als u meer I/O pinnen wilt.

De software wordt gestart met de I2C-code geschreven voor de LCD-interface in aflevering 22. In dit voorbeeld was allen wij bezorgd over te schrijven naar de seriële I2C-bus. Met de toevoeging van de RTC en EEPROM hebben we nu te nemen van de mogelijkheden voor het lezen van de seriële I2C-bus. Een I2C lezen operatie begint met het schrijven van de I2C apparaatadres (we hebben nu drie apparaten op de bus). Die wordt gevolgd door het schrijven van het geheugen of locatie voor de RTC of de EEPROM te registreren. Op dat moment de PIC schakelt de SDA-lijn om een input en gebruikt de SCL-regel klok databits uit het RTC of EEPROM. Aan het einde van elke byte ontvangen, stuurt de PIC een acknowledge naar de slave-apparaat.

Naast de nieuwe I2C routines lezen, zijn er een heleboel routines voor aansluiting op de RTC en de EEPROM. RTC mogelijkheden omvatten schrijven voor initialisatie data, lezing van de registers van de tijd, en het lezen van de registers van de temperatuur. De temperatuur lijkt een bonus-vermogen, maar het mist in nauwkeurigheid in vergelijking met speciale temperatuursensoren. Ook al we toegang tot zowel de integer en fractionele gedeelten van de temperatuur hebben krijgen we nog steeds alleen nauwkeurigheid tot +/-3 graden. Bovendien, is de temperatuur niet van de omringende lucht. Het is de interne temperatuur van de chip die wordt gebruikt voor het compenseren van de klok-oscillator. De RTC omvat een paar registers dan de tijd en datum informatie hier gebruikt. Zij omvatten een paar alarm en ook een register te controleren van de frequentie van de blokgolf-uitgang (SQW) van de module. Er is ook een register van de controle die u toelaat om het wijzigen van 24-uurs tijdweergave in 12-uurs.

De routines voor de EEPROM in principe enkel controle Lees- en schrijfbewerkingen. Grootte van het geheugen is 32 k bytes en wordt georganiseerd als 128 pagina's, met elke pagina met 256 bytes. Dat betekent dat het adres verzonden naar de EEPROM is twee bytes, met de eerste byte wordt van de pagina en de tweede byte wordt de locatie in de pagina. In de voorbeeldcode wordt de geheelwaarde van de temperatuur eenmaal een minuut naar de EEPROM geschreven. De temperatuur omvat een teken-bit dus elke opslag maakt gebruik van twee geheugenlocaties omdat op dat moment, de temperatuur en de teken zijn omgezet in ASCII-tekens. Dat maakt voor een maximum van 16384 gegevenspunten, maar omwille van de eenvoud, dat nummer is beperkt tot 9999. De manier waarop die de software is momenteel het schrijven adres geschreven wordt opnieuw ingesteld op elke power on van de PIC. Die kunnen worden gewijzigd zodat het laatste bekende schrijven-adres wordt ook in de EEPROM opgeslagen en lees vervolgens terug op power on.

Zoals vermeld in de sectie hardware, heeft elk van de twee schakelaars dubbele plicht. Als schakelaar 1 is ingedrukt wordt de software initialisatie tijdweergave. Eenmaal in de initialisatie modus schakelen 2 stappen door de waarden voor elk gedeelte van de tijd en datum. Bijvoorbeeld, kunt u schakelen door middel van 0-23 voor de uren. Nadat de gewenste waarde voor een optie is ingesteld, zullen te drukken van schakelaar 1 doorgaan naar de volgende tijd/datum optie. Wanneer is voldaan aan alle opties (dag van de week is de laatste optie) een andere druk van schakelaar 1 zorgt ervoor dat een afrit van de initialisatie-modus.

Tijdens normale tijd/datum weer te geven, een druk van switch 2 zorgt ervoor dat de software in te voeren van de EEPROM lezen modus. Het display verschijnt een teller op lijn 1, waarin wordt aangegeven welke vermelding (1-9999) gelezen wordt en hoeveel totale vermeldingen zijn opgeslagen sinds inschakelen. Lijn 2 van het scherm zal de temperatuur waarde voor die opslaglocatie tonen. Elke druk op de schakelaar 1 zullen doorgaan naar de volgende waarde opgeslagen in de EEPROM. Als alle opgeslagen waarden hebben gelezen, vervolgens verschijnt het LCD-scherm "DONE". Een druk op de schakelaar 2 zal leiden tot een uitgang uit de EEPROM modus op elk gewenst moment tijdens het lezen.

Nou, dat is het voor aflevering 23 van "Fun met PIC vergadering". Stay tuned voor meer afleveringen.

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