
ohjelmia 16f84:jään
Täältä löytyy minun tekemiäni ohjelmia Microchipin mikrokontrolleri 16f84:jään .Ja koekytkentäalustan. Jossa voit kokeilla ohjelmieni toimivuutta käytännössä.
Linkkejä muiden tekemille sivuille joista saa tietoa kyseisestä piceistä löytyy täältä. Yritän myös parhaani mukaan kasvattaa tätä ohjelma "kirjastoa". Mutta se on paljolti ajan, säätilan ja muun sellaisen varassa.
Ohjelmista vielä sen verran että kun poltat ne 16f84:jään jollain poltto-ohjelmalla. Niin oskillaattori on XT eli kide. Ja Watchdog ,Power-up timeri ja Code protect pitää olla laitettuna pois päältä.
Ohjelmat saa toimiin 16f628:ssa todennäköisesti. Muuttamalla asembly koodissa kohdat include p16f84.inc ja LIST P=16f84 . include p16f628.inc ja LIST P=16f628 :si. Ja kääntämällä asemblykoodit uudestaan hex-koodiksi kääntäjällä. Tätä en ole vielä kokeillut jotenka en ole aivan varma asian toimivuudesta.
HUOM. Jokainen ottaa sitten itse vastuun tämän sivun avulla rakentamistaan laitteista eli sanoudun irti kaikesta vastuusta jos onnistutte saamaan mitä tahansa tuhoa/vahinkoa tai muuta sellaista näillä laitteilla kautta ohjelmilla.
HUOM!!! Jos aijot käyttää tältä sivulta löytyviä ohjelmia kaupallisiin tarkoituksiin. Ota sivun tekijään yhteyttä kiitos.
Copyright © .
OHJELMAT
· Noppa koodi arpoo luvun kun nappia painetaan. Luvun osoitus 6 ledillä.
Tämä koodi arpoo silmäluvun kun 16F84:sen pinniin 18 vastuksen kautta tuleva
nolla potentiaali kytketään +5V suoraan esim. Napilla. Ja tuo arvotun
silmäluvun näyttöön kun samaan nastaan tulee takaisin nolla potentiaali eli
otetaan sormi pois napilta. Nappi jolla saadaan tämä aikaiseksi on jo valmiina koekytkentäalustassa .Eli se yksittäinen nappi 16f84:jän
vieressä. Ei siis nuo alhaalla rivissä kuvassa olevat 9 painonappia.
Kyseisessä koekytkentäalustan kytkennässä olevassa napissa on kyllä ledi. Mutta
tuo kytkentä toimisi ilman tuota lediäkin. Jos et jaksa tehdä kyseistä alustaa
vaan haluat päästä mahdollisimman helpolla. Toivottavasti sait äskeisestä
selostuksesta jotain tolkkua :o)
Kokeillaksesi koodia tuossa koekytkentäalustassa. Sinun tarvitsee laittaa
hyppylangat vain ledien ja 16f84 pinnien 6,7,8,9,10 ja 11 välille. HUOM! Tätä
ohjelmaa voi tietenkin myös "viilata" antamaan useammin jotain
tiettyä lukua.
Noppa.hex käännetty koodi pic:iin
· 16F84:sen TLC549 a/d muuntimen lukukoodi.
Tämä koodi lukee TLC549 a/d muuntimen muunnoksen sen 7,8 ja 9 pinneistä. Jonka
TLC549:än on saanut TR potentiometriltä pinneistä 1,2 ja 4 .Katso koekytkentä alusta. Niin asia selviää varmastikin
paremmin.
TLC549.hex käännetty koodi pic:iin
· RC-auton servon ohjauskoodi.
Tämä koodi on kehitetty ylempänä olevasta 16F84:sen TLC549 a/d muuntimen lukukoodista. Tämä koodi ohjaa Futaba 148 servoa. Katso tarkempia tietoja Servo.asm lähdekoodi linkkiä klikkaamalla.
Servo.hex käännetty koodi pic:iin
· Pulssin lukukoodi 16F84:seen.Käyttää hyväksi 16f84:jän laskuri sisääntuloa.
Koodi laskee pulsseja A portin RA4/T0CKI pinnistä. Katso koekytkentäalustan
kuva. Ohjelma lukee muutaman sekunnin (10-15 sek) pulsseja tuolta nastalta ja
siirtää sen sitten 16f84:sen B portin kautta luettavaksi esimerkiksi ledeillä. Tätä
ohjelmaa voisi käyttää vaikka kierroslukumittarin ohjelman runkona.
Pulssi.hex käännetty koodi pic:iin
· Numerolukko koodi 16F84:seen.
Tuo koekytkentäalustan kuva on tehty alunperin tätä
koodia varten. Siinä on nyt siis ohjelmassa tarvittavat napit. Eli valintanappi
on 16f84:sen pinnissä numero 18 ja rele pinnissä numero 1 jo valmiiksi
kytkettynä. Kytkeä pitää ainoastaan hyppylangat napeille 1-9 ja ledille, joka
ilmoittaa missä mennään tunnusluvun syötössä.
Eli 16f84:jän pinnit 6,7,8,9,10,11,12,13 ja 17 napeille 1-9. Ja ledin ohjaus
pinni 2 täytyy kytkeä johdoilla piikkirimoihin. Ohjelman toiminnasta löytyy
kuvaus Lukko.asm lähdekoodi linkin takaa.
Lukko.hex käännetty koodi pic:iin
· Paranneltu versio numerolukko koodista 16F84:seen.
Sisältää muutaman uudistuksen kuten, EEPROM muistiin kirjoituksen/lukemisen. Tästä on kiittäminen Pekka Ritamäkeä Probytestä. Joka antoi ystävällisesti tuohon EEPROM:iin kirjoittamiseen ja lukemiseen tarvittavan koodin. Joka löytyy tämmöiseltä PIC CD-levyltä. Itse kun en saanut tuota EEPROM kirjoitus/lukukoodia toimimaan millään aikani testailtuani. Mutta nyt tämä kirjoituskoodi löytyy tästä numerolukon parannetusta versiosta. Kuten myös pari muuta ominaisuutta. Niistä voit lukea lisää tuon lukko.asm lähdekoodi linkin takaa.
Uusin versio lukko.asm lähdekoodista pic:iin. Lisätty 19.5.2002 .
Uusin versio lukko.hex koodista pic:iin. Lisätty 19.5.2002 .
· Infrapunalinkki 8 bittinen.
Nämä koodit mahdollistaa tiedon siirtämisen infrapuna teitse. Eli tämä systeemi tarvitsee erillisen infrapunalähetin osan. Tämän voi kyllä integroida koekytkentäalustaankin. Eli sisään rakentaa jos haluaa. Vastaanotin taas tarvitsee infrapunamoduulin (SFH 506 itse käytän tätä)havaitsemaan infrapunavalo ja tekemään se 16f84:lle luettavaan muotoon. SFH 506 löysin kautta tilasin Probyten sivulta. Josta löytyi myös kytkentäohje.
Eli yhteen vetona tarvitset kaksi koekytkentäalustaa, mutta ne voi olla kyllä riisuttuja malleja. Eli lähettimessä ei ole kuin infrapunalähetin ja 16f84 + napit lähetettävän tiedon syöttämiseksi ja muu tarpeellinen.
Ja vastaanottimessa tietenkin vastaanotinmoduuli vaikka tuo SFH 506(muukin käy) ja myös 16f84 + ja ledit 8kpl 16f84:jän B portille ulostulo tiedon lukemiseksi ja muu tarpeellinen. Lisää tietoa saat kun luet lähdekoodien kommentteja.
Näitä ohjelmia voi käyttää myös niin että bitit kulkee
johtoa pitkin tai radioteitse, mutta ohjelmia pitää hiukan muuttaa. Itse olen
kehittänyt tämän infrapunalinkin pohjalta. Tuon numerolukon toimimaan infrapuna
teitse. Ja myös tuon TLC549 a/d muuntimen datan olen onnistunut saamaan
siirtymään infrapuna teitse. Tästä taasen voisi kehitellä esim. Vaikka
kassakaappi(pyörivä numerolevy) periaatteella toimivan numerolukon. Pyörivä
numerolevy laitetaan sitten taskuun kun kassakaappi on avattu tai lukittu.
Tai voisi laittaa lähetinosan lähettämään tietoa RC-auton tai lentokoneen
akkujen tiloista vastaanottimelle, josta ne voisi siirtää vaikka tietokoneelle
käyrien piirtelyä varten. Toisin sanoen vain mielikuvitus on rajana.
Lahetin.asm lähdekoodi pic:iin
Lahetin.hex käännetty koodi pic:iin
Vastaanotin.asm lähdekoodi pic:iin
Vastaanotin.hex käännetty koodi pic:iin
· Yksinkertainen ledin vilkutus ohjelma. Saa ledin vilkkuun 16f84:jän 17 pinnissä.
Ledi.hex käännetty koodi pic:iin
· Auton keskuslukon ohjaus
Ohjaus tapahtuu 4*8 bittisellä koodilla. Eli jos pikaisesti oikein laskin mahdollisia koodeja on yli 4 miljardia kpl. Korjatkaa jos olen väärässä. Tämä auton keskuslukon ohjausjärjestelmän tekeminen infrapunalla sai alkunsa erään henkilön pyynnöstä sähköpostitse joskus kevät talvella 2001.
Kyseinen henkilö teki minulle piirilevyt ja piirsi puhtaaksi sähkökuvat, että piirilevykuvat. Jotenka ajattelin julkaista myös tämän projektin tällä sivulla. Tosin pienin varauksin. En anna lähdekoodeja. Ne saa ehkä mailitse hyvää syytä vasten. Miksen anna sitten suoraan lähdekoodeja. On se että ne on "parsittu" kasaan tältä sivuilta jo löytyvistä lähdekoodeista. Jotenka joku varmaan saattaa onnistua itsekin väsäämään kyseiset koodit tämän sivun avulla ehkä paremmatkin tai sitten ei :o)
Tälle sovellutukselle keksii myös muita käyttö tarkoituksia. Yksi voisi olla pienoisrautatien ohjausjärjestelmä. Jota voisi ohjata vaikka tietokoneella haluttaessa. Tai sitten jokin isompi systeemi. Kuten esim. Valaistus/kodinkoneohjaus äänikomennoilla tietokoneen avulla. Myöskään internetin kautta tapahtuva ohjaus ei varmastikaan olisi kovin vaikea toteuttaa. Jos omistaa oman palvelimen, jolla sijaitsisi Php-kielellä tehdyt sivut. Joiden kautta ohjaus sitten tapahtuisi.
Valmiiksi kasatusta systeemistä löytyy myös digitaalikameralla otettu kuva (n.200kt).
Muutama sana kuinka käytät systeemiä. Polta lähettimeen jokin avainkoodeista. Ja vastaanottimeen tuo Vastaanotin hex koodi. Kun olet tämän tehnyt. Tässä systeemin käyttöohjeet .
Vastaanottimen opetus:
1)Kytke jännite vastaanottimeen. Nyt pitäisi vastaanottimen liedin vilkahtaa.
2)Ota nyt lähetin ja vastaanotin niin että ne varmasti saa toisiinsa yhteyden. Mutta älä vielä kytke lähettimeen jännitettä.
3)Paina nyt vastaanottimen nappia. Niin että se on koko ajan pohjassa.
4)Nyt kun pidät vastaanottimen nappia pohjassa kytke lähettimeen jännite.
5)Nyt pitäisi lähettimen lähettää avain vastaanottimeen. Jos tämä meni oikein vastaanottimen rele vetää ja Ledi syttyy.
6)Nyt katkaise lähettimeltä jännite. Ja päästä vastaanottimessa oleva nappi pohjasta.
7)Jos kaikki meni nyt oikein vastaanottimessa on nyt valitsemasi avainkoodi.
Vastaanottimen toimivuuden kokeilu opettamisen jälkeen:
1)Aseta vastaanotin ja lähetin jälleen niin että ne saa varmasti yhteyden toisiinsa.
2)Nyt vain kytket lähettimeen jännitteen. Ja katsot päästääkö rele ja jää siihen tilaan ja syttyykö ledi vastaanottimessa ja sammuu pienen hetken kuluttua kun olet katkaissut lähettimestä jännitteen. Huom. Rele voi myös vetää jos se ei jäänyt vetämään kun opetit avaimen vastaanottimelle. Koska olet opetus vaiheessa opettanut avaimen kaksi kertaa. Mutta tämä ei haittaa mitään. Koska opettaminen ja keskuslukon käyttö on käytännössä sama asia. Mutta kun painat vastaanottimen napin pohjaan niin se opettelee avaimen uudestaan.
Tässä koko asia on kaikessa yksinkertaisuudessaan. HUOM opetettu koodi katoaa välittömästi vastaanottimesta. Kun katkaiset siltä jännitteen. Jonka jälkeen vastaanottimelle pitää uudestaan opettaa avain. Ja jos käy niin että avaimen opetus ei onnistunutkaan. Niin käy uudestaan opetusohjeet läpi.
Tähänkin avaimen hukkumiseen jännite katkoksen aikana on ratkaisu. Sillä tältä sivulta löytyy nyt EEPROM:iin kirjoitus/luku koodi kohdasta: Paranneltu versio numerolukko koodiin 16F84:seen.Jonka avulla olen itse saanut opetetun avaimen pysymään muistissa jännitekatkoksen aikanakin. Että ei muuta kuin kokeilemaan saatteko saman aikaiseksi. Laitan tästäkin varmaan tulevaisuudessa ainakin tuon vastaanottimen käännetyn hex koodin. Jolla sitten voitte kokeilla toimiiko tuo avaimen muistissa pysyminen jännite katkoksen aikana. Avain hex koodejahan ei tämän muutoksen takia ole tarvinnut muuttaa.
Muita ominaisuuksista vielä. Vastaanottimen koodiin on sisään rakennettu suojaus. Joka estää tausta infrapunasäteilyn(auringo,tv-kaukosäätimet ja muut infrapunalähteet) vaikutuksen lukkoon. Tämän takia jos yrität esimerkiksi liian nopeasti lähettää koodia pitämättä riittävää taukoa. Ei lukko välttämättä toimi kunnolla. Tämän vältät laskemalla hitaasti vaikka viiteen. Suojauksen huomaa toimivan kun vastaanoton merkkiledi vastaanottimessa palaa koko ajan mutta mitään ei tapahdu. Sen pitää antaa sammua hetkeksi aikaa. Eli suojaus aktivoituu myös kun pidät infrapuna lähetintä koko ajan päällä. Tämä ominaisuus saattaa ensi alkuun sotkea lukon käyttöä. Mutta toimii myös tehokkaana suojana. Jos joku yrittää saada lukkoa auki kokeilemalla koko ajan jollain toisella infrapunalähteellä sen aukaisua.
Tässä muutama avain hex koodina:
Ja tässä hex koodi vastaanottimeen:
Otan myös postia vastaan. Olisi myös
mukava tietää, jos sinulle on ollut hyötyä/iloa tms. tästä sivusta. Ja pyrin vastaamaankin
aina jos mikään ei sitä estä.
Tältä sivulta löytyy varmasti myös kaiken näköisiä kirutus virheitä. Mutta pyydän
ymmärrystä niitä kohtaan. Niitä innostun karsiin kun kerkeän sillä nämä sivut
on vain harrastus. Kuin myös mahdollisiin asia virheisiin kuten vaikka esim. Auton
akussa on 12A jännite ja 60ah virta. Noita virheitä on syntynyt kun olen
väsännyt sivuja liian nopeasti/vieläkin nopeammin. Kun olen onnistunut saamaan
jotain aikaiseksi ja se on pitänyt saada nettiin. Mutta korjailen virheitä aina
sitä mukaa kun ehdin. Sillä tämä sivu/sivustot on minulle tosiaan vain
harrastus.
Ja tästä mennään takasi sinne mistä tulitkin tänne
jos mennään...
Copyright © 1999 Jyrki
Sivua päivitetty 23.7.2002