Toteutus
No nyt kun sinulla on piirilevy ja osat hankittu ja piirilevy tehty. Niin osat voi sijoitella paikalleen piirilevylle tämän kuvan mukaisesti:
Ruuviliittimen kytkentä
Vasemmalta alkaen:
Ensinmäisen riviliittimen ruuvin alle tulee jännitelähteen + plusjohto ja heti sen viereen – miinusjohto. Laskuri kestää ainakin auton akun eli noin 12-15V jännitteen. Joten sen verran jännitettä uskaltaa tähän systeemiin kytkeä.
Seuraaviin N-kirjaimella varustettuihin liittimiin tulee lukkiutumaton sulkeutuva nappi. Jolla voidaan tallentaa laskurin lukema muistiin tai sitten tarkastaa mitä sinne on tallennettu.
Ja lopuksi P-kirjaimilla varustettuihin liittimiin tulee itse pulssi joltain sulkeutuvalta kärjeltä. Eli Esim. Reed-rele, mikrokytkin tms. Tähän voisi käyttää myös HALL-anturia.
Koodit
Ohjelma poikkeaa jossain määrin aikaisemmin tehdyn laskurin ohjelmasta. Eli tässä on tuo EEPROM-muistiin tehty laskurin lukeman tallennus mahdollisuus. Ja aikaisemman laskurin koodissa olleen 7-segmenttien ohjausta ohjaavan aliohjelman bugin korjaus. Eli aikaisemmin jäi kolme 7-segmenttiä palaamaan himmeesti kun yksi paloi kirkkaasti. Nyt sekin ongelma on pois pyyhitty. Kiitos siitä kuuluu yhdelle kauvan sitten sähköpostia lähettäneelle, joka antoi vihjeen missä vika piilee tuossa aikaisemmassa reikälevylle tehdyssä laskuri versiossa.
Lähdekoodit:
Asembly-kielinen lähdekoodi 16f628:lle(laskuri.asm).
Ja sama lähdekoodi käännettynä(laskuri.hex) hex koodiksi 16f628:lle.
HUOM. Koodit on txt muodossa, koska Word Press-julkaisujärjestelmä ei tunnista asm ja hex päätteisiä tiedostoja. Ja koska en halua itse muokata Word Pressin koodia hyväksymään noita tiedostomuotoja tämän sivuston ylläpidon helpottamiseksi. Niin voit kopioida koodit noista txt-päätteisistä tiedostoista kehitysympäristöihin halutessasi.
Se miten taas koodi toimii? Niin se täytyy sinun itse selvittää tuon lähdekoodin avulla. Siellä on muutama kommentikin asiaa helpottamassa.
Testaaminen
Kun nyt on tarvittavat kytkennät tehty ja koodi poltettu PIC 16F628 FLASH-muistiin? Ja jos et ole kytkenyt vielä jännitettä niin tee se nyt. Jos kaikki on mennyt oikein? Pitäisi segmentteihin ilmestyä 0000 lukema. Ja kun Reed-relettä tms ”häiritsee”. Niin lukeman pitäisi nousta yhdellä joka kerta.
Ja nyt kun tahdot tallentaa lukeman EEPROM-muistiin. Niin ei muuta kuin PP-riviliittimiin liitetty nappi pohjaan. Ja näytössä alkaa vilkkuun EEPROM-muistissa oleva lukema ja laskurin nykyinen lukema. Ja kun vilkkumista on tapahtunut hetken aikaa niin laskurissa oleva lukema tallentuu vanhan lukeman päälle. Ja vilkkuminen loppuu.
HUOM. Jos piiri on juuri ohjelmoitu. Niin EEPROM-muistista tulee todennäköisesti lukema 8888 kun nappia painaa ekan kerran. Koska yleensä tuonne EEPROM-muistiin on ohjelmoitu tavuun luku 255. Eli kaikki 8-bittiä on ykkösenä EEPROM-muistin kaikissa muistitavuissa.
Ja kun sitten haluat nollata laskurin 0000 lukemaan. Niin ei muuta kuin käyttöjännite pois hetkeksi. Ja takaisin päälle ja laskurin lukema on nollaantunut.
Copyright <> jyrki.k(at)innopultti.fi <> Päivitetty: 25.5.2004