Rotary dialer PIC gränssnitt (5 / 7 steg)

Steg 5: Montera koden.



För att programmera chip, jag använde MBasic utvecklingsmiljön tillgängliga från Grundläggande Micro. MBasic, helt enkelt, är en variant av Basic utformad för användning med PIC marker. Det kan lätt omvandlas till en mer universell (användbart) språk.

Koden är i huvudsak att fastställa när någon har vänt på ratten och sedan inte kant-upptäckt på signalen (fastställande låg-hög övergångar) fram till ratten recoils till sitt ursprungliga tillstånd. Efter avprickning antalet gånger den mäter en signal övergång, blinkar det sedan LED därmed.

Till exempel, om du ringer 3, räknas PIC tre låg-hög övergångar och sedan blinka en LED 3 gånger.

LED, som du kan ha slutsatsen dras, är onödigt för att detta ska fungera och är bara där för att ge dig synlig feedback. Du kan ersätta någon utdataenhet som du anser vara nödvändiga.

*********************
Här är några kod:
*********************

CPU = 16F877
MHZ = 20
CONFIG 16254

klickern var ordet
startcountin var ordet
countclicks var ordet
repvar var ordet
clacker var ordet
largefig var ordet

viktigaste:

countclicks = 0
repvar = 0
"Anger/återställer värden

hög B2
rctime B2, 1, startcountin
countclicks = 0
om startcountin > 10 sedan goto countmeup
"kontroller för att se om ratten har stängts och går till subrutin, om den har

gå till största

'================

countmeup:

hög B1
rctime B1, 1, clacker
"set jämför värde

gå till countmeuploop

'================

countmeuploop:

hög B1
rctime B1, 1, klickern
"kontroller räknar värde

largefig = clacker + 100
"anger ett värde för den tröskel som kommer att bli större
"än 0 men mindre än pin-höga värden

om largefig < klickern sedan
countclicks = countclicks + 1
endif
"lägger till 1 värde varje gång en låg till hög övergången registreras

hög B2
rctime B2, 1, startcountin

om startcountin < 10 sedan
om countclicks > 0 då
gå till blink
annat
gå till största
endif
endif
"kontroller för att se om ratten har ryggade tillbaka till sitt ursprungliga tillstånd
"om den och flera var rings det går på LED rutin
"annars, om inget nummer var ringt den går till största

clacker = klickern
"återställer jämförelsen värdet till det aktuella pin värdet

gå till countmeuploop
"inte pausar AT alla i denna rutin!

'================

blinker:

repvar = repvar + 1
"räknar varje upprepning av denna rutin

hög B3
Pausa 1000
låga B3
Pausa 1000
"blinkar lysdioden

om repvar = countclicks sedan
repvar = 0
gå till största
endif
"om upprepningar är lika med antalet gånger LED bör blinka
"sedan går tillbaka till den huvudsaklig rutinen

gå till blinker

Se Steg
Relaterade Ämnen

Kul med PIC församling - episod 18

Surr ord och slagord är alltid som genereras, mestadels i teknikområden eller politik. Även Dilbert fick i på trenden med "Buzzword Bingo" tillbaka i "90-tal. En av de för närvarande heta fraserna är "Internet saker (IoT)" så jag...

Intro till PIC-mikrokontroller

ett minimum av vad du behöver för att få igång programmering PIC micros för användning i elektronik projekt (robotics, etc)Steg 1: Vad du behöver för projektet Obs: verkar som om du har windows XP, det finns ingen gratis PIC programmerare programvara...

Fairytale telefon

Fairytale telefonen är en av mina första Raspberry Pi projekt jag har gjort. Jag hade redan publicerat detta på min blogg makerblog.ch, men nu detta kommer att bli en mer ingående instruktion att bygga telefonen.Färdiga telefonen kommer att kunna spe...

RC Simulator med Tx, Arduino & PC

Ny RC flygplan men vill lära sig kontroller utan kraschar och tårar?Då du läser rätt Instructable :DGäller endast om din sändare kommer med en DSC Port (3.5 mm stereo jack kvinna): PKrediterDetta Instructable skulle inte vara möjligt utan hårt arbete...

Ellie nummerskivor

Ellie Rotary telefon leksakJag tog telefonen tillbaka till livet med en spellista med inspelningar av min systerdotter familj och Nalle Puh och andra ljudspår...Ett SD-kort har de ljudfiler som spelas in i ursprungliga hörluren när tre siffriga telef...

TOWA telefon

Några dagar sedan, när jag scrounging genom garderoben har jag hittat en gammal rotary dialer telefon.Denna typ av telefon kan inte vara används nu för tiden på grund av inkompatibilitet mellan puls och tonval.Innan papperskorgen det jag frågar mig s...

Hur man ska tolka riktningen av rotation från en digital rotary switch med en PIC

målet för detta Instructable är att illustrera hur gränssnittet digital (quadrature kodade) rotary switch med en mikrokontroller. Oroa dig inte, jag ska förklara vad kvadratur kodade betyder för oss. Detta gränssnitt och den medföljande programvaran...

Rotary telefon uppringning till en Arduino-gränssnitt

en gammal rotary telefon kan användas för flera olika syften i din Arduino projekt - använda den som en ny enhet, eller använda Arduino gränssnittet en rotary telefon till din dator.Detta är en mycket grundläggande guide som beskriver hur gränssnitte...

MATLAB till PIC seriellt gränssnitt

några kod att låta MATLAB prata med en PIC16f877 via serieporten. Detta är inte så svårt det är inte heller mycket kod, men jag spenderade en anständig mängd tid att räkna ut allt (från noll), så jag tänkte att det skulle vara bra. Njuta av.Steg 1: K...

PIC 16F917 gyroskop gränssnitt

i detta inlägg kommer vi att studera modulen ADC (Analog till Digital) av Microcontroller PIC16F917. Vi kommer att studera en riktig krets av PIC16F917 gränssnitt till en halvledare gyroskop.Gyroskopet är en rörelsesensor som känner av lutning i en v...

Låga tech Rotary telefon gjorde trådlöst.

Roterande telefoner är cool, de bör bo cool även trådlöst!Jag måste säga att jag gillar vintage objekt. En av min favorit är ju gamla roterande telefoner. Jag brukade ha en hemma tills jag var 10 år gammal. Vid denna tid var mitt nummer bara 6 siffro...

Kul med PIC församling - episod 24

När jag var stationerad utomlands tillbaka i början av 1970's fanns två saker billigt finns det mest militära killar gillade: stereoutrustning och sprit. Nej, detta Instructable handlar inte om en PIC-driv hem distillery. Förlåt. Stereoutrustning var...

Bluetooth trådlös spänning Meter med Wiimote + Pic Chip + AutoIt

i denna tutorial jag ska visa dig hur du kan skicka spänningsvärden till datorn med en Pic chip, Wiimote, och Autoit3 skriptspråk. Processen fungerar genom att binda en pic chip till knappen kuddar av en wiimote. Sedan använda pic marker Analog till...

PIC 12F675 programmerare/OscCal återställning/testare

En av mina kretsar att jag bygga ganska ofta (20-40 i taget), använder en PIC 12F675. Jag hade följande frågor:De brädor som jag gör, har inte i-krets programmering funktioner. Detta är att möjliggöra en liten PC board layout. Bilder måste således pr...

RotaryX: Hur till hacka en Rotary telefon

Liksom en hel del analog teknik fungerar roterande telefoner med en serie av hög/låg växlar som enkelt kan kopplas till en Arduino för programmering äventyr. Denna ska tutorial går dig genom processen att öppna och ny ledning dras en vanlig roterande...

Rotary Vending prototyp

Denna handbok förklarar hur att bygga och programmera en online drivs rotary dispensering maskin som skulle kunna användas i en mängd olika tillämpningar, inklusive vending produkter. Detta är nästa steg i utvecklingen mot en öppen källkod automat se...

En LED Tärning med en PIC 16F84 (eller 16F88)

Detta är ett nytt skriva ut ett projekt att jag gjort ett antal år sedan - jag trålning webben, och upptäckte att andra hade varit att göra det, så jag bestämde mig att sätta i detalj här på instructables.com - så att andra kan gynnas.Många Led tärni...

Gränsyta 16 X 2 LCD med PIC mikrokontroller

här, du lär dig hur gränssnittet 16 × 2 LCD till PIC18F4550 mikrokontroller som är familjen PIC18F. PIC18F4550 är en 8 bitars mikrokontroller och använder RISC-arkitektur. PIC18F4550 har 40 stiften i PDIP (dubbel i rad paketet) och 44 pin i TQFP (Qua...

Enkel manuell kontroll av stepper motors utan en PIC eller PC

/ * formatmallsdefinitioner * / bord. MsoNormalTable {mso-stil-namn: "Tabell Normal"; mso-tstyle-rowband-storlek: 0; mso-tstyle-colband-storlek: 0; mso-stil-noshow:yes; mso-stil-förälder: ""; MSO-stoppning-alt: 0 i 5.4pt 0 i 5.4pt; MSO...