Att få mer I/O pins på ATTiny med Skift register (5 / 6 steg)

Steg 5: Exempel #2: kod



Denna kod är mycket mindre och enklare än i föregående exempel, eftersom denna tid vi inte använder ADC. Som ni kan se, SEND_BYTE subrutin är oförändrad och ganska mycket samma sak.

/*
* Skift registrera demo #2
* ATTiny13A löpning
*
* PIN-BELÄGGNING:
* PB0 - SKIFT Register klocka
* PB1 - SKIFT Register seriella Data
* PB2 - SKIFT Register Latch(Store)
* PB3 - Digital ingång (bit match)
* PB4 - LEDDE
* PB5 - RST
*
*/

.include "tn13Adef.inc"

def A = R16; g.p. variabel och/eller funktion argument
.def B = R17; Används i SEND_BYTE och ADC_START som tillfällig lagring
.def LED = R18; lagrar nuvarande LED utdata
.def BCT = R19; Bitars räknare för SEND_BYTE
.def TIM = R20; Lagrar hur många iterationer av TOV0 har gått
.def TMP = R21
.EQU SRCK = 0; PB0 = klocka
.EQU SRDA = 1; PB1 = seriella Data
.EQU SRLC = 2; Pb2 = Latch

/ * AVBRYTA VEKTORER * /
.org 0x0000; Återställa avbrott
rjmp RESET
.org 0x0003
rjmp TC0_OV; Timer0 Overflow avbrott

/*
* BÖRJA!
*/

RESET:
/ * SETUP STACK * /
LDI A, low(RAMEND); Ställ in buntpekaren
reda på SPL, A
/ * SETUP STIFT * /
LDI A, 0b0001_0111; Ställa in utgångsstift PB0... PB2(CLK,DATA,LATCH)
ut DDRB, A; PB4 - LED utgång
/ * SETUP TIMER0 * /
LDI A, 0b0000_0101; Ställa in Timer Prescaler 1/1024
ut TCCR0B, A; Avbryta varje ~ 27ms
LDI A, 0b00000010; Aktivera Timer0 Overflow avbrott
ut TIMSK0, A;
/ * ÅTERSTÄLL REGISTER * /
LDI A, 0x00; Rensa A
LDI LED, 0x10; Standard blink speed(~1Hz)
SEI; Aktivera avbrott

/ * Main loop * /
MAIN:
LDI A, 1. Ange den första biten
LDI TMP, 0; Tillfällig förvaring för nya LED försening
Nästa:
rcall SEND_BYTE; Skicka A att skifta Reg.
sbic PINB, 3. Sök efter matchen
eller TMP, A; Lägga till den för att leda
CLC; Tydligt bär
rol A; Rotera A
breq kontroll. Om A == 0, kontrollera och börja om
rjmp nästa; annat få nästa bit
Kontrollera:; Bara tilldela nollskilda värden
TST TMP; TMP == 0?
breq huvudsakliga; hoppa över
MOV LED, TMP; annars tilldela nya LED dröjsmål
rjmp MAIN

/*
* Skickar 8-bitars data från ett register till SKIFT Register
* (Samma som i föregående exempel)
*/
SEND_BYTE:
LDI BCT, 0b1000_0000; Ställa in bitars räknare
next_bit:
MOV B, A; Flytta databyte till temp-
och B, BCT; Kolla lite
breq noll. Hoppa över om 0
SBI PortB, SRDA; Skicka Data
rjmp SKIFT. flytta höger
Zero:
CBI PortB, SRDA
SKIFT:
SBI PortB, SRCK; CLK upp
NOP
CBI PortB, SRCK; CLK ner
CLC; Rensa bär flaggan
ror BCT; Shift bitars räknare
brne next_bit; Nästa iteration
SBI PortB, SRLC; När gjort, spärr
NOP
CBI PortB, SRLC
ret; Gjort

/ * Timer 0 spill avbrott * /
TC0_OV:
Inc TIM; TIM ++
CP TIM, ledde; TIM > LED?
brlo tidigt; för tidigt
push TMP; Spara gamla TMP värdet
i TIM, PINB; Läs aktuella hamnstatens
LDI TMP, 0x10;
ESO TIM, TMP; Toggle PB4
ut PORTB, TIM;
LDI TIM, 0; Återställ räknaren
pop TMP; Återställa TMP
tidigt:
Reti; returnera

Se Steg
Relaterade Ämnen

RegisterWrite - att utvidga utgångarna av Arduino/mikrokontroller med Skift register

Registrera dig skriva är ett programexempel att förlänga resultaten av Arduino använder en skiftregister.Jag har skrev en enkel skiss som ska använda 3 utgångar för Arduino för att köra skiftregister.Jag skrev detta så jag inte kunde hitta någon likn...

Hur man säljer på Etsy - Etsy SEO Tips för att få mer trafik

I denna tutorial kommer jag att dela min process om hur man kan få mer trafik till din Etsy butik med sökmotoroptimering. Du lär dig hur du får dina objekt till toppen av Etsy Sök som bör leda till ökad försäljning!Under åren har jag gjort många miss...

3 enkla sätt att dricka mer vatten

Vatten. Denna vätska är nödvändigt för liv att existera och för vår hälsa. Enligt WebMD, kan dricka mer vatten hjälpa till med viktminskning, sänka socker, kolesterol, salt och mättat fett konsumtion. Det hjälper också med hydrering, stöd i matsmältn...

Träning för att "skapa" mer tid i din dag

har du någonsin befunnit dig säga "Vart tog tiden vägen?" "det finns inte tillräckligt många timmar i dag" "Jag önskar jag hade tid att ___" eller "dess som sent redan!?"Vi tenderar att tänka på orden "time man...

Enkelt sätt att dricka mer vatten varje dag.

Enkelt sätt att dricka mer vatten varje dag.Hur mycket vatten dricker du per dagDu kommer att vara medveten om vikten av vanan att dricksvatten utan att nämna.Vi måste dricka mer vatten. Så, jag ville veta hur mycket vatten.När jag dricker vatten, ka...

Att få mer spänning på Power Supply

i detta instructable vi kommer att få mer sedan 12v från atx eller en wallwart med hjälp av wallwarts och/eller atx psuGÖRA DET UR EGEN RISK JAG INTE ANSVARA FÖR ATT BRYTA SAKER.För chatt och mbjornSteg 1: Binda den upp Tråd varje strömförsörjning so...

BANANA GALGE (ett sätt att bevara mer tid färska bananer)

Banans håller längre när du hänga dem istället för att låta dem om över en yta, med denna banan hängare och med hjälp av en fridgem du kan utöka friskhet av bananer flera dagar mer.Steg 1: material Du behöverBananerWireClampSteg 2: tråd och klämmor T...

Att göra en ordentlig schweizisk armé kniv med Popsicle pinnar (normal storlek.)

Detta är v1.0 som har 1 kniv. Detta är en enkel steg för steg-handledning och detta görs av väldigt billiga material. Redigera det och ladda upp bilder. Du kan även använda märket som i bild 6. Thats bäst märke men färga den mörka. Märket kommer se u...

Hur att jorda sköld gitarren (ta bort buzz med en Faradays bur)

som många gitarrister, jag har upplevt mycket irriterande surr du får, speciellt med ett förvrängt ljud, när gitarren inte är ordentligt skyddad.Faktiskt, de flesta gitarr är inte skyddad alls!Så hur till göra din gitarr helt ljudlösa, du frågar? Enk...

Med hjälp av Cerberus för att aktivera ADB Android felsökning på telefon med sprucken skärm

Jag tappade min Nexus 4 på nyårsafton och skärmen knäckt. Jag fortfarande kunde se bilderna men digitizer slutade fungera, så det enda jag kunde göra var att ansluta den till datorn och säkerhetskopian mappar jag hade tillgång till. Jag var intresser...

Hur för att reparera hörlurarnas brutna band hölje med en kemtvätt tråd klädhängare

jag hade en uppsättning av Pioneer SE-M290 hörlurar med ett brutet band hölje och jag ville reparera den utan att spendera pengar så jag använde ett tråd-klädhängare som jag hade från när jag torka rengöras mina skjortor. Det fungerade perfekt och de...

Ett bättre sätt att hålla sömnad Pins mitten av projektet (eller närhelst, verkligen)

jag har aldrig mycket vårdas med pin kuddar. De vill alltid glider ifrån mig när jag försökte infoga en PIN-kod när mitt i sömmar, eller jag skulle behöva göra några obekväma en hand hastigt för att få en PIN-kod medan du håller bitar av mitt projekt...

Hacking Ikea Rationell tå kick lådor för att passa mer

i standarden setup från Ikea Rationell tå kick lådorna höjden på lådan framsidan är begränsad till 13,8 cm och användbar höjd inuti lådan är ca 10 cm. helt enkelt bara för lite för att passa din pints Guinness i upprätt läge. Vad göra när din sockel...

Hur man Restyle gummiklädda Hand vikter att titta mer Retro/Manly/snygg/bättre

okej, visst, detta Instructable kommer inte att ändra något liv eller något, men jag är allergisk mot detta gummi beläggning hur som helst, och jag var så nöjd med hur dessa visade sig att jag beslutat att dela idén.Steg 1: Köpa demRetro, 1930-talet...

Att få mer pappershandduk från den automatisk dispensern pappershandduk

lära sig få mer än bara en liten bit av pappershandduk från en automatisk dispenser pappershandduk.Jag vet att detta fungerar på Georgia Pacific enMotion, men det kan fungera på andra också.Steg 1: Saker som behövs Måste du vara i ett badrum som har...

Hur till utsträcka din Fönstren sammanhangen menyerna för att vara mer produktiva

Om du gör en aktivitet på datorn mer än en gång, hittade du några optimering potential. I mitt fall, jag var tvungen att lägga till året, månad och dag på jag fått den bestämd arkivera i filnamnet alldeles för ofta. Detta instructable kommer att lära...

Enkla sätt att ta mer professionella Ebay foton

detta Instructable är att berätta för alla några av de tips som jag har lärt mig genom åren att ta professionell snygga bilder. Jag använder dessa bilder mestadels för Ebay eller något som jag vill se bra ut. Dessa tips är både lätt att göra och myck...

Ännu ett sätt att äta mer bacon

Bacon lindade gröna bönor. Mycket lätt att göra och super enkelt. Detta gör färska gröna bönor divine, även de ivrigaste Köttätaren kommer att njuta av.Steg 1: Här är vad du behöver Färska gröna bönor, jag fick alldeles för många och vi åt gröna böno...

Ändra en RGB LED-kit för att driva mer lysdioder

Svaret är: "Ja" och "Nej".Det är faktiskt möjligt att ändra en RGB LED-kit för att rymma en längre längd av RGB remsan. Det finns dock två typer av begränsningar:en a begränsning av strömförsörjningen ligger inne i den befintliga RGB d...