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

Stap 4: Software


Hieronder staan de links 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. Zorg enkel ervoor dat de foto die u een PIN-code waarmee een externe Interrupt invoer heeft (meestal aangeduid als EXT). 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 is in principe dezelfde code die is geschreven voor de 4-bits LCD-interface in aflevering 12. De belangrijkste wijzigingen zijn in hoe de gegevensbytes uitgevoerd voor de seriële interface worden en hoe de PIC omgaat met de I2C-protocol. De I2C-routines waren gemakkelijk te vinden op het internet, maar zoals met vele dingen op het internet, zij moesten worden geïnspecteerd om te garanderen dat zij de specificatie gevolgd. De één fout die ik vond was aan het einde van de routine van de "i2cwaitack" waarbij de SDA pin terug was ingesteld op een uitvoer vóór de SCL-lijn was bracht laag om te voltooien de klokcyclus. Dat kan potentieel hebben zowel de PIC (master) en de slave-apparaat probeert te rijden de SDA lijn op hetzelfde moment. De routine uiteraard heeft gewerkt voor andere mensen, maar dat maakt het juist.

De I2C-module heeft een 8-bit seriële naar parallelle shift register gebouwd in voor aansluiting op het LCD-scherm. De definities van de bits worden weergegeven in het bovenstaande diagram. De bovenste vier bits sluit aan op de bovenste vier data lijnen op het LCD-scherm, net als in een typische 4-bits LCD-interface. De lagere vier bits zijn aangesloten op verschillende controle-pinnen op het LCD-scherm. In een normale LCD-interface deze controle pinnen ofwel zou moeilijk bedraad (zoals R/W) of worden gecontroleerd met een lijn van de GPIO op de PIC. De achtergrondverlichting controle zal effect voor vele LCD-modules niet hebben omdat de achtergrondverlichting meestal moeilijk bedraad is op.

In normale LCD interfaces de inschakelen-regel zou worden van een knevel gevoorzid hoog en dan terug laag als u wilt dat het LCD-scherm om in te haken op de gegevens. In deze toepassing beheren wij die overgang door elke byte tweemaal te sturen. De eerste verzenden heeft de hoge inschakelen bit-set en de tweede verzenden heeft de lage inschakelen bit-set. Voor een normale 4-bits interface die wij moeten doen stuurt twee voor elke byte omdat we de bovenste knabbelen en vervolgens de lagere knabbelen sturen. Het LCD-scherm dan stukken de twee nibbles samen intern. Voor de I2C verzendt toepassing we uiteindelijk doen vier voor elke byte. Soort inefficiënt maar dat is de prijs die we betalen voor een twee-draads interface.

Zoals ik vroeger vermeldde, maakte ik een kleine correctie aan de "i2cwaitack"-routine die ik online gevonden. Ik heb ook een beetje code toegevoegd aan het einde van de routine. Als de slaaf niet erkennen van een overdracht van de meester zal dan de software worden teruggesteld doordat de Watch Dog Timer (WDT). Nieuwere PIC chips hebben een software-reset-opdracht die in plaats daarvan kan worden gebruikt. Een alternatief voor sommige toepassingen I2C zou zijn om gewoon bellen naar "i2cstop" en ga verder waar de code was gebleven.

Nou, dat is het voor aflevering 22 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 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