Digitaalitekniikka (piirit) Metropolia / AKo Joitakin vinkkejä harjoitustyö 2:n aihesiin Aihe Tuloja Lähtöjä Sitten vinkkejä

Samankaltaiset tiedostot
Harjoitustyön 2 aiheiden kuvaukset

ASM-kaavio: reset. b c d e f g. 00 abcdef. naytto1. clk. 01 bc. reset. 10 a2. abdeg. 11 a3. abcdg

Digitaalitekniikka (piirit), kertaustehtäviä: Vastaukset

Harjoitustyön 2 aiheiden kuvaukset

Esimerkkitentin ratkaisut ja arvostelu

Sekvenssipiirin tilat

AUTO3030 Digitaalitekniikan jatkokurssi, harjoitus 2, ratkaisuja

Digitaalitekniikka (piirit) Luku 14 Sivu 1 (16) Sekvenssipiirit. Kombinaatiopiiri. Tilarekisteri

Harjoitustyö - Mikroprosessorit Liikennevalot

GREDDY PROFEC B SPEC II säätäminen

Synkronisten sekvenssipiirien suunnittelu

Konsolin näytössä näkyy käytettäessä ohjaavia viestejä, joita kannattaa tämän ohjeen lisäksi seurata.

Versio: FIN Langaton painonappi. Käyttäjän käsikirja

Harjoitustehtävien ratkaisut

A11-02 Infrapunasuodinautomatiikka kameralle

Kenguru 2017 Benjamin (6. ja 7. luokka)

Toimintaperiaate: 2. Kytke virta vastaanottimeen käyttämällä virtalaitetta, jossa on merkintä "horsealarm receiver only".

ELEC-C3240 Elektroniikka 2

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

Digitaalilaitteen signaalit

Todennäköisyyslaskenta I, kesä 2017 Helsingin yliopisto/avoin Yliopisto Harjoitus 1, ratkaisuehdotukset

Finnish. Osien nimet. Tarkistuslaiteyksikkö. Sähkökaapelin tarkistuslaite. Vaihtokytkimen tarkistuslaite SM-EC79 HAKEMISTO

Vaaka Emp-231C. Liittimet 7, 8 ja 9 ovat transistorilähdöt. 7=yhteinen miinus, 8=alas-pulssit, 9=ylöspulssit.

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

GSRELE ohjeet. Yleistä

088U0213. Käyttöohje CF-RF Huonetermostaatti infrapuna-anturilla VI.UH.R1.20

838E Hands Free Varashälytin

Digitaalitekniikan matematiikka Luku 3 Sivu 1 (19) Kytkentäfunktiot ja perusporttipiirit

Digitaalitekniikan matematiikka Harjoitustehtäviä

MAKING MODERN LIVING POSSIBLE. Danfoss Link SCM Simple Communication Module Asennusohje. Danfoss Heating Solutions

Paikantavan turvapuhelimen käyttöohje

Ratkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...

8.1. Tuloperiaate. Antti (miettien):

Yleishimmentimellä varustetun, uppoasennettavan WMR-252-vastaanottimen käyttöopas

Käyttöohje EMT757 / 3567 Ohjelmoitava digitaalinen kellokytkin

Sukelluskeräily, Pelihahmon liikuttaminen. Tee uusi hahmo: Pelihahmo. Nimeä se. Testaa ikuisesti -silmukassa peräkkäisinä testeinä (jos) onko jokin

Varauspumppu-PLL. Taulukko 1: ulostulot sisääntulojen funktiona

Sangean PR-D4 Käyttöohjeet

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

HY / Matematiikan ja tilastotieteen laitos Tilastollinen päättely II, kevät 2017 Harjoitus 1 Ratkaisuehdotuksia Tehtäväsarja I

SAVUKAASUJEN VALVONTAKESKUS 1/6 HYDROSET ER - O2

Liikennevalo-ohjatut suojatiet: Tekevätkö liikennevalot suojatiestä turvallisemman?

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Kenguru 2011 Ecolier RATKAISUT (4. ja 5. luokka)

Kosteusanturi Langaton

Luku 8. Aluekyselyt. 8.1 Summataulukko

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

HF1 laitteen käyttöönotto ja asetukset

AALTO-VALVONTALAITE TST5102

kokoaminen 1. Ota ASPER ajanottolaitteisto 1- kentän laatikosta ja siirrä kisakentälle 2. Kokoa yleisönäyttö sopivaa paikkaan ja vedä sille sähkö

Käyttöohjeet Ilmatäytteinen poreallas

Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto.

Tietotekniikan valintakoe

Vehicle Security System VSS3 - Alarm system remote

ABT NOSTURIVAA AN KÄYTTÖOHJE 3000, 5000, ja 15000kg

CO 2 -anturi. Langaton. Käyttöohje. -fi. Englannin kielestä käännetty asiakirja A001

2. laskuharjoituskierros, vko 5, ratkaisut

Datatähti 2019 loppu

Liikennevalot. Arduino toimii laitteen aivoina. Arduinokortti on kuin pieni tietokone, johon voit ohjelmoida toimintoja.

Testi 1 Torjuntakontrolli

Vehicle Security System VSS3 - Vehicle original remote

Käyttöohje EchoChime 300 Langaton järjestelmä

Loppukilpailu perjantaina OSA 1 Ratkaisuaika 30 min Pistemäärä 20. Peruskoulun matematiikkakilpailu

LANGATON RENGASPAINEEN JA LÄMPÖTILAN VALVONTAJÄRJESTELMÄ

Käyttöohje CF-RD Huonetermostaatti näytöllä

Inputs: b; x= b 010. x=0. Elektroniikkajärjestelmät ETT_2068

vapaa vapaa nasta 3 nasta 2 nasta 1 (maadoitus)

LOPPUKÄYTTÄJÄN OHJEET KÄYNNISTYSTÄ, VIRRAN KATKAISEMISTA, ULOSKIRJAUSTA, KANAVAN VAIHTOA JA NÄYTTÖASETUSTEN MUUTTAMISTA VARTEN.

10. Kytkentäohje huonetermostaateille

Jamboree villasukkien ohje

DIMLITE Daylight. Sähkönumero Käyttöohje

9. Matemaattisista koneista.

Scratch ohjeita. Perusteet

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Dynatel 2210E kaapelinhakulaite

KÄYTTÖOHJE HIRVIMATIC (2V0)

Helsingin seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

Uolevin reitti. Kuvaus. Syöte (stdin) Tuloste (stdout) Esimerkki 1. Esimerkki 2

OPERAATIOVAHVISTIN. Oulun seudun ammattikorkeakoulu Tekniikan yksikkö. Elektroniikan laboratoriotyö. Työryhmä Selostuksen kirjoitti

HYDROSET ERK-S ITSEVALVOVA KUIVAKIEHUNTASUOJA

Yhtälönratkaisu oppilaan materiaali

Merkkijono on palindromi, jos se säilyy samana, vaikka sen kääntää väärinpäin.

Kenguru 2019 Cadet (8. ja 9. luokka)

Superintend VR-16 Vikavirtarele 5-johdinverkkoihin Lyhyt käyttöohje

T80_a_BA.book Seite 1 Donnerstag, 22. April :01 16 Telestart T80

Ohjauspaneeli jännitteettömällä lähdöllä (NO) ja radiomoduuli Chor-palovaroittimen CHOR-WS/WAC-alustaan. Avaa kansi, paina nuolen suuntaan

LANKAKERÄ NEULOMINEN

Versio 1. Hiilidioksidimittari 7787 Käyttöohje. Hiilidioksidimittari Käyttöohje

Näppäimistö CT Käyttäjäopas. Global Safety & Security Solutions Oy info@globalsafety.fi. CT1000v.5

NXT Infrapuna-sensori

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Evoluutiopuu. Aluksi. Avainsanat: biomatematiikka, päättely, kombinatoriikka, verkot. Luokkataso: luokka, lukio

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

Modulaatio-ohjauksen käyttölaite AME 435 QM

75289 Laskuvarjo. Ideoita LASKUVARJO leikkeihin

Turun seitsemäsluokkalaisten matematiikkakilpailu Ratkaisuita

9.6 Kannettava testilaite

SUBSTANTIIVIT 1/6. juttu. joukkue. vaali. kaupunki. syy. alku. kokous. asukas. tapaus. kysymys. lapsi. kauppa. pankki. miljoona. keskiviikko.

Valmistelut: Aseta kartiot numerojärjestykseen pienimmästä suurimpaan (alkeisopiskelu) tai sekalaiseen järjestykseen (pidemmälle edenneet oppilaat).

Transkriptio:

Digitaalitekniikka (piirit) Joitakin vinkkejä harjoitustyö 2:n aihesiin Metropolia / AKo Sille ei voi mitään, että jotkut harjoitustyöaiheet ovat vaikeammin lähestyttäviä kuin jotkut muut. Siltä varalta, että jollain tuntuu ASM-kaavion aikaansaaminen kovin hankalalta, ja myös virheellisestä ASMkaaviosta aiheutuvan hukkatyön ehkäisemiseksi, tässä hiukan lisäselitystä eri aiheisiin. Alla on ensin luettelo kunkin harjoitustyön tuloksena olevan laitteen tulo- ja lähtösignaalien määristä. Jos olet päätynyt muihin lukemiin, mieti uusiksi tai kysy opettajalta. Tulojen määrään on luettu mukaan kellosignaali ja nollaussignaali (reset). Jos siis laitteessa on (resetin lisäksi) kaksi painonappia, on siinä 4 tulosignaalia. Osassa aiheita osa lähdöistä on testaamista helpottavia lähtöjä (t0, t1 jne). Niiden avulla on tarkoitus saada laite toimimaan niin, että laitteen jokainen tila antaa erilaisen lähtösignaalikombinaation, jolloin testaaminen harjoitustyöalustalla onnistuu. Nuo testilähdöt on tietysti laskettu mukaan lähtöjen määrään. Aihe Tuloja Lähtöjä 1 4 4 2 4 3 3 4 3 4 4 8 5 3 5 6 6 5 7 4 6 8 3 4 9 5 3 10 5 5 11 5 3 12 5 5 13 5 5 14 3 5 15 4 6 Sitten vinkkejä Osaksi näissä toistetaan samoja asioita, jotka on sanottu varsinaissa ohjeissakin, mutta ehkä hiukan eri sanoin. Osaan aiheista on annettu sitten paljonkin lisäselitystä, osaan vähemmän. 1. Jouluvalojen vilkutin. Kannattaa huomata, että kaikissa tapauksissa aina ensimmäisenä palaa sisin kehä, joten vasta tätä vastaavan tilan jälkeen tarvitsee testata valintasignaaleja. Ja silloin kannattaa huomata, että jos ensimmäinen valintasignaali = 0, niin siitä riippumatta, onko toinen valintasignaali 0 vai 1, on valosekvenssin kolme seuraavaa tilaa samat. Vasta niiden jälkeen tarvitsee testata toinen valintasignaali. Samoin jos ensimmäinen valintasignaali = 1, niin taas toisen valintasignaalin arvosta riippumatta alkutilaa (sisin palaa) seuraavat kolme tilaa ovat samat, eli vasta niiden jälkeen tarvitsee testata toinen valintasignaali. 2. Diskovalojen välkytin. Kaikissa annetuissa sekvensseissä alkutila on punainen, joten vasta sen jälkeen pitää testata valintasignaalien arvoja. Ensin testataan ensimmäinen ja sitten heti perään toinen, jolloin kaavio jakautuu neljään haaraan eli jokaiselle valintasignaaliparille 00, 01, 10, 11 oma haara. Sitten vaan kuvauksen mukaisesti kuhunkin haaraan peräkkäisiä tiloja, joissa valot palavat halutulla tavalla. 3. Maija-pelin luksus-valtinarvontakone. Aiheen ohje voisi olla selvempikin. Valtin arvonta siis tapahtuu niin, että valttipainike painetaan pohjaan, pidetään sitä siellä hetken (tai kauan), ja kun painike päästetään takaisin ylös, laite arpoo yhden maan kolmesta. Näyttö kuitenkin pysyy pimeänä siihen asti kunnes näyttöpainiketta painetaan, jolloin arvottua maata vastaava lamppu syttyy. Tuo lamppu palaa niin kauan kuin näyttöpainiketta painetaan. Jos näyttöpainikkeen painamisen loputtua valttipainiketta ei paineta uudestaan, niin näyttöpainikkeen uudelleenpainaminen sytyttää edelleen saman lampun. Jos näyttöpainikkeen painamisen loputtua valttipainiketta painetaan uudestaan, niin silloin tietysti laite arpoo uuden valtin. Miten tuo sitten toteutetaan? Alkutilassa laite odottaa valttipainiketta ja polttaa kaikkia kolmea lamppua. Sitten kun laite toteaa, että valttipainiketta on painettu, ja myös pysyy painettuna, se kiertää hurjaa vauhtia kolmen tilan muodostamassa silmukassa. Tuo hurja vauhti saadaan aikaan suurella kellotaajuudella, esim. jos se on 1 MHz, niin tila vaihtuu mikrosekunnin välein. Olkoon nuo kolme tilaa vaikka A, B ja C (käytä

toteutuksessa parempia nimiä). Noissa tiloissa A, B, C lamput ovat pimeänä. Jokaisen tilan A, B, C jälkeen on valttipainiketta vastaavan tulon testaus. Jos painike on pohjassa (eli signaali = 1), niin mennään seuraavaan tilaan. Mutta jos testaus toteaa tilan X (missä X voi olla A, B tai C) jälkeen, että valttipainike on päästetty ylös (eli signaali = 0), testataan, onko näyttöpainike pohjassa. Jos ei ole, niin palataan tilaan X. Sen jälkeenhän on taas valttipainikkeen testaus, ja kun se testaus taas antaa nollan, niin taas testataan näyttöpainike. Jos sitä ei vieläkään ole painettu, niin taas palataan tilaan X. Tässä silmukassa pyöritään siihen asti kunnes näyttöpainikkeen testaus antaa ykkösen, jolloin laite menee tilaan, jossa se näyttää yhden kolmesta mahdollisesta valtista. Minkä? Se määräytyy vaikkapa niin, että jos edellä mainittu X = A, niin näyttää hertan, jos X = B, näyttää ristin, jos X = C, näyttää ruudun. Arvotun maan näyttävän tilan jälkeen taas testataan näyttöpainike, ja niin kauan kuin painike on pohjassa, pysytään tuossa arvotun maan näyttävässä tilassa. Sitten kun näyttöpainike ei enää ole pohjassa, palataan tilaan X. 4. Reaktionopeustesteri. Tämä muistuttaa kovasti tunnilla läpimentyä suunnitteluesimerkkiä, jossa pyöritettiin 7-segmenttinäytöllä numeroita 0-1-2-3. Tarkemmin sanoen tuon esimerkin osaa 2, jossa numeroiden kiertämissuunta oli valittavissa. Reaktionopeustesterissä on lisäksi pysäytyspainike, ja tiloja (joissa jokaisessa palaa eri lamppu) on kahdeksan. Aina jokaisen tilan jälkeen on kaksi testiä. Ensin testataan pysäytyspainike, ja jos se on painettuna, jäädään pyörimään samaan tilaan. Jos pysäytyspainiketta ei ole painettu, testataan suuntakytkin, ja sen perusteella valitaan, mihin suuntaan mennään. 5. HDLC-protokollan erotteen tunnistus- ja virhepiiri. Tähän laitteeseen tulee sen (kellon ja resetin lisäksi) ainoasta tulosta bittejä samaa vauhtia kuin mitä kello käy. Tuleva bitti alkaa aina jonkin aikaa ennen kellon nousevaa reunaa ja loppuu jonkin aikaa kellon nousevan reunan jälkeen. Eli aina kellon nousevan reunan kohdalla tulobitti on joko 0 tai 1. Laite pysyy alkutilassaan niin kauan kuin tulobitti = 0. Sitten kun tulobitti = 1, laite siirtyy seuraavaan tilaan. Jos seuraaava bitti = 0, niin laite siirtyy alkutilaan, mutta jos bitti = 1, laite siirtyy seuraavaan tilaan. Tätä toistetaan kunnes päästään tilaan, jossa on tullut kuusi peräkkäistä ykköstä. Jos sen jälkeen tulee nolla, niin erote 01111110 on toteutunut, jolloin mennään tilaan, jossa erotepulssilähtö antaa ykkösen, ja sen jälkeen palataan alkuun odottelemaan seuraavaa erotetta. Sen sijaan jos kuuden ykkösen jälkeen tulee ykkönen, laitetaan virhelähtö ykköseksi, jossa se pysyy siihen asti kunnes tulee nolla, jolloin palataan alkuun. Testilähtöjen avulla saadaan aikaan systeemi, jossa lähtöjen arvojen perusteella nähdään, miten laite siirtyy tilasta toiseen. 6. Parannettu proffamuistutin. Tässä ei kannata yrittää miettiä kaikkia mahdollisia tapoja, joilla professori voisi toilailla. Kannattaa olettaa, että hän toimii järkevästi. Eli astuu matolle, jos lamppu syttyy niin poistuu matolta hakemaan tarvikkeen, astuu taas matolle, avaa oven, menee ulos, sulkee oven. Palatessaan ulkoa astuu matolle ja sitten matolta pois, jolloin ASM-kaaviossa palataan alkutilanteeseen. ASM-kaavion jokaisessa tilassa odotellaan sopivan tulobitin arvon muuttumista, joten kellotajuus saa olla iso, esim. 1 khz. 7. Peliautomaatin ohjain. Alkutilassa odotellaan rahan tunnistuspulssia (joka on yksi laitteen tuloista). Kun se antaa ykkösen, mennään tilaan, jossa lamppu palaa. Tämän tilan jälkeen testataan pelipainiketuloa. Niin kauan kuin se = 0, pysytään samassa tilassa. Sitten kun todetaan, että pelipainike on pohjassa, laite alkaa kiertää hurjaa vauhtia kymmenen tilan muodostamassa silmukassa. Tuo hurja vauhti saadaan aikaan suurella kellotaajuudella, esim. jos se on 1 MHz, niin tila vaihtuu mikrosekunnin välein. Numeroidaan nuo kymmenen tilaa vaikka 1, 2,... 10 (toteutuksessa noille pitää keksiä VHDL-kelpoiset nimet). Aina jokaisen tilan jälkeen testataan pelipainike. Jos se on pohjassa, siirrytään seuraavaan tilaan. Näin laite kiertää noiden kymmenen tilan silmukassa niin kauan kuin pelipainike on pohjassa. Mutta ennen pitkää jonkin tilan jälkeen testaus kertookin, että pelipainike on päästetty ylös, jolloin pitää päättää, tuliko voitto vai ei, ja jos tuli, niin kaksi vai viisi euroa. Voittotodennäköisyydet toteutuvat niin, että jos tuo pelipainikkeen ylösnousu havaitaan tilojen 1... 7 jälkeisessä testauksessa, voittoa ei tule, eli laite vaan palaa alkuun odottelemaan seuraavaa kolikkoa. Mutta jos pelipainikkeen nollautuminen havaitaan tilan 8 tai 9 jälkeen (jonka tapahtuman todennäköisyys on 2/10 eli 20 %), niin silloin voitto on kaksi euroa. Silloin laite jatkaa toimintaansa niin, että voittopulssilähtö antaa ensin ykkösen, sitten nollan, sitten ykkösen ja sitten nollan. Eli se antaa kaksi kellojakson pituista pulssia. Tuo toteutuu niin, että laite menee neljän tilan läpi, joista ensimmäisessä ja kolmannessa voittopulssilähtö = 1, ja toisessa ja neljännessä se = 0. Jos pelipainikkeen nollautuminen havaitaan tilan 10 jälkeen (jonka tapahtuman todennäköisyys on 1/10 eli 10 %), niin silloin voitto on viisi euroa, eli laite jatkaa toimintaansa niin, että voittopulssilähtö antaa edelläkuvatulla tavalla viisi pulssia. Tässä kannattaa älytä, että ASM-kaaviossa nuo viisi pulssia voi toteuttaa niin, että ensin toteuttaa kolme pulssia (kuudella peräkkäisellä tilalla) ja sitten kaksi viimeistä pulssia samoilla neljällä tilalla, joilla 2 euron voiton kaksi pulssia toteutuu.

Testilähtöjen avulla saadaan aikaan systeemi, jossa lähtöjen arvojen perusteella nähdään, miten laite siirtyy tiloja 1... 10 kiertäessään ja voittopulsseja antaessaan tilasta toiseen. 8. Elektroninen arpanoppa. Tämän ohjeen alussa oleva taulukko sanoo, että tässä tarvitaan neljä lähtöä. Kuinka niin, kun nopassa on seitsemän lamppua? No, nopan lukemat 1-6 voi toteuttaa neljällä lähdöllä: Lähtö 1 sytyttää keskimmäisen lampun, lähtö 2 vasemman ylänurkan ja oikean alanurkan, lähtö 3 oikean ylänurkan ja vasemman alanurkan, ja lähtö 4 kutosen vaatimat loput kaksi lamppua. Näin saadaan aikaan kaikki noppaluvut laittamalla lähtöjä 1-4 sopivasti ykkösiksi. Laitteen alkutila voi olla vaikka sellainen, jossa nopan kaikki 7 lamppua palavat. Alkutilan jälkeen laite testaa painiketta, kunnes toteaa, että sitä painetaan. Silloin laite alkaa kiertää hurjaa vauhtia kuuden tilan muodostamassa silmukassa. Tuo hurja vauhti saadaan aikaan suurella kellotaajuudella, esim. jos se on 1 MHz, niin tila vaihtuu mikrosekunnin välein. Numeroidaan nuo kuusi tilaa 1, 2,... 6 (toteutuksessa noille pitää keksiä VHDL-kelpoiset nimet). Aina jokaisen tilan jälkeen testataan painike. Jos se on pohjassa, siirrytään seuraavaan tilaan. Näin laite kiertää noiden kuuden tilan silmukassa niin kauan kuin pelipainike on pohjassa. Mutta ennen pitkää testaus kertoo, että painiketta ei enää paineta. Jos tuo toteaminen tapahtuu tilan X jälkeen, niin sitten laite menee tilaan, jossa lukua X vastaavat nopan lamput palavat. Tuon tilan jälkeen testataan taas painike, ja niin kauan kuin painiketta ei paineta, laite pysyy tilassa, jossa noppa näyttää lukua X. Mutta sitten kun painiketta taas painetaan, laite alkaa taas kiertää hurjaa vauhtia tiloja 1-6. 9. Kellopulssigeneraattori. Alkutilassa pulssilähtö antaa nollan. Ensin pitää testata jatkuvan kellon kytkin. Jos se on päällä, laite menee tilaan, jossa pulssilähtö = 1 ja sen jälkeen palaa alkuun. Näin jatkuvan kellon kytkin tuottaa pulssilähtöön vuorotellen kellojakson pituisen ykkösen ja kellojakson pituisen nollan. Eli se tuottaa signaalin, jonka taajuus on puolet kellon taajuudesta. (Jos kellon taajuus on esim. 1 khz, niin kellojakson pituus = 1 ms ja kello antaa vuorotellen 0,5 ms pitkän ykkösen ja 0,5 ms pitkän nollan. Tällöin jatkuvan kellon kytkin synnyttää pulssilähtöön vuorotellen 1 ms pitkän ykkösen ja 1 ms pitkän nollan. Eli pulssilähdön jakso = 2 ms, eli sen taajuus on 0,5 khz.) Jos jatkuvan kellon kytkin ei ole päällä, niin testataan pulssipainike. Jos sitä on painettu, laite menee tilaan, jossa pulssilähtö = 1, ja sen jälkeen tilaan jossa se = 0. Pulssipainiketta tuon tilan jälkeen testaamalla saadaan aikaan se, että pulssilähtö pysyy nollana niin kauan kuin pulssipainike on pohjassa. Sitten kun pulssipainike päästetään ylös, laite palaa alkutilaan. Jos jatkuvan kellon kytkin ei ole päällä eikä pulssipainiketta paineta, testataan kaksoispulssipainike. Jos sitä on painettu, laite menee läpi neljä tilaa käsittävän sekvenssin, jossa pulssilähtö on vuorotellen 1 ja 0. Kaksoisulssipainiketta tuon sekvenssin viimeisen tilan jälkeen testaamalla saadaan aikaan se, että pulssilähtö pysyy nollana niin kauan kuin kaksoispulssipainike on pohjassa. Sitten kun kaksoispulssipainike päästetään ylös, laite palaa alkutilaan. Testilähtöjen t0 ja t1 avulla saadaan aikaan systeemi, jossa lähtöjen arvojen perusteella nähdään, miten laite siirtyy tilasta toiseen. 10. Maija-pelin superluksus-valtinarvontakone. Aiheen ohje voisi olla selvempikin. Valtin arvonta siis tapahtuu niin, että valttipainike painetaan pohjaan, pidetään sitä siellä hetken (tai kauan), ja kun painike päästetään takaisin ylös, laite arpoo yhden maan kolmesta. Näyttö kuitenkin pysyy pimeänä siihen asti kunnes näyttöpainiketta painetaan, jolloin arvottua maata vastaava lamppu syttyy. Tuo lamppu palaa niin kauan kuin näyttöpainiketta painetaan. Jos näyttöpainikkeen painamisen loputtua valttipainiketta ei paineta uudestaan, niin näyttöpainikkeen uudelleenpainaminen sytyttää edelleen saman lampun. Jos näyttöpainikkeen painamisen loputtua valttipainiketta painetaan uudestaan, niin silloin tietysti laite arpoo uuden valtin. Jos näyttöpainikkeen painamisen loputtua painetaan testipainiketta, niin laite menee tilaan, jossa kaikki lamput palavat. Tuon tilan jälkeen testipainikkeen arvo testataan, ja niin kauan kuin testipainiketta painetaan, laite säilyy tilassa, jossa kaikki lamput palavat. Jos testipainikkeen painamisen loputtua valttipainiketta ei paineta uudestaan, niin näyttöpainikkeen painaminen sytyttää viimeksi arvottua valttia vastaavan lampun. Miten tuo sitten toteutetaan? Alkutilassa laite odottaa valttipainiketta ja kaikki kolme lamppua ovat pimeänä. Sitten kun laite toteaa, että valttipainiketta on painettu, ja myös pysyy painettuna, se kiertää hurjaa vauhtia kolmen tilan muodostamassa silmukassa. Tuo hurja vauhti saadaan aikaan suurella kellotaajuudella, esim. jos se on 1 MHz, niin tila vaihtuu mikrosekunnin välein. Olkoon nuo kolme tilaa vaikka A, B ja C (käytä toteutuksessa parempia nimiä). Noissa tiloissa A, B, C lamput ovat pimeänä. Jokaisen tilan A, B, C jälkeen

on valttipainikkeen testaus. Jos painike on pohjassa (eli signaali = 1), niin mennään seuraavaan tilaan. Mutta jos testaus toteaa tilan X (missä X voi olla A, B tai C) jälkeen, että valttipainike on päästetty ylös (eli signaali = 0), testataan, onko näyttöpainike pohjassa. Jos ei ole, niin testataan, onko testipainiketta painettu. Jos ei ole, niin palataan tilaan X. Tätä silmukkaa (tila X valttipainikkeen testaus: ei painettu näyttöpainikkeen testaus: ei painettu testipainikkeen testaus: ei painettu tila X jne) kierretään niin kauan, kunnes todetaan, että joko valttipainiketta, näyttöpainiketta tai testipainiketta painetaan. Sitten kun todetaan, että painetaan näyttöpainiketta, niin laite menee tilaan, jossa se näyttää yhden kolmesta mahdollisesta valtista Minkä? Se määräytyy vaikkapa niin, että jos edellä mainittu X = A, niin näyttää hertan, jos X = B, näyttää ristin, jos X = C, näyttää ruudun. Tämän arvotun maan näyttävän tilan jälkeen taas testataan näyttöpainike, ja niin kauan kuin painike on pohjassa pysytään tuossa arvotun maan näyttävässä tilassa. Sitten kun näyttöpainike ei enää ole pohjassa, palataan tilaan X ja laite alkaa taas kiertää silmukkaa (tila X valttipainikkeen testaus: ei painettu näyttöpainikkeen testaus: ei painettu testipainikkeen testaus: ei painettu tila X jne) jota kierretään niin kauan, kunnes todetaan, että joko valttipainiketta, näyttöpainiketta tai testipainiketta painetaan. Sitten kun todetaan, että painetaan testipainiketta, laite menee tilaan, jossa kaikki kolme lamppua palavat. Tämän tilan jälkeen taas testataan testipainike, ja niin kauan kuin painike on pohjassa pysytään tuossa kaikkia lamppuja polttavassa tilassa. Sitten kun testipainike ei enää ole pohjassa, palataan tilaan X ja laite alkaa taas kiertää silmukkaa (tila X valttipainikkeen testaus: ei painettu näyttöpainikkeen testaus: ei painettu testipainikkeen testaus: ei painettu tila X jne) jota kierretään niin kauan, kunnes todetaan, että joko valttipainiketta, näyttöpainiketta tai testipainiketta painetaan. Testilähtöjen t0 ja t1 avulla saadaan aikaan systeemi, jossa lähtöjen arvojen perusteella nähdään, miten laite siirtyy tilasta toiseen. 11. Jaskan kuppilan superhypermainos. Tämä on huomattavasti suoraviivaisempi kuin moni muu. Alkutilan (joka kannattaa olla tila, jossa kaikki sanat palavat) jälkeen testataan vuorotellen kaikkia kolmea valintasignaalia. Noiden testausten tuloksena laitteen toiminta (siis sen ASM-kaavio) jakautuu kahdeksaan haaraan, joissa kussakin toteutuu tilojen sekvenssi niin, että sanat palavat eri haaroissa tehtävämäärittelyssä kerrotulla tavalla. 12. Kolikontunnistuspiiri. Tässä pitää vähän miettiä, mitä tapahtuu, kun kolikko vierii tunnistusantureiden ohi. Oheisessa kuvassa on eri kolikkoja symboloivat ympyrät sekä kolme anturia a, b ja c. (Kolikoiden kokosuhteet eivät ole tarkasti oikein.) Kun euron kolikko (pienin) vierii antureiden ohi, niin vain a peittyy joksikin aikaa. Kun 50-senttinen (toiseksi pienin) vierii, niin ensin peittyy a, sitten peittyy b, sitten b tulee esille ja lopuksi a tulee esille. Ja kun kahden euron kolikko vierii, niin ensin peittyy a, sitten peittyy b, sitten peittyy c, sitten c tulee esille, sitten b tulee esille ja lopuksi a tulee esille. Anturien antama signaali (bitti) testataan aina kellosignaalin nousevalla reunalla. Jos laitteen kellotaajuus on kovin pieni, niin voi käydä esim. niin, että euron kolikko ei tietyn kellojakson alussa ole vielä ihan peittänyt a:ta, peittää sen tuon saman kellojakson aikana ja ehtii saman tien vielä myös a:n ohi saman kellojakson aikana. Silloin kolikko jää tunnistamatta. Siispä kellotaajuuden pitää olla riittävän iso. Silloinhan taas käy esim. niin, että euron kolikko peittää a:n usean kellojakson ajan, jolloin anturi a antaa monta ykköstä peräkkäin. Silloin tunnistaminen ei tietenkään voi toimia niin, että heti kun joku anturi antaa ykkösen, niin kolikko kuvitellaan tunnistetuksi. Näin homma toimii. Jos anturi 1 antaa ykkösen, niin sen jälkeen se antaa lisää ykkösiä (koska kellotaajuus on niin iso, että a-anturi on peitossa usean kellojakson ajan). Pitää odottaa, tuleeko noiden ykkösten jälkeen myös b-anturista ykkönen. Jos ei tule, vaan sen sijaan anturin a signaali muuttuu 0:ksi, niin tiedetään, että kolikko oli euro, jolloin laite menee tilaan, jossa euroa vastaava lähtö on ykkönen, on siinä tilassa yhden kellojakson ja menee sitten alkuun. Mutta jos a:n antamien ykkösten jälkeen myös b-anturi antaa ykkösen, niin sen jälkeen se antaa lisää ykkösiä. Pitää odottaa, tuleeko noiden ykkösten jälkeen myös c-anturista ykkönen. Jos ei tule, vaan sen sijaan anturin a signaali muuttuu 0:ksi, niin tiedetään, että kolikko oli 50-senttinen. Huom! Anturin b c b a

muuttumista nollaksi ei tarvitse testata, koska kolikon tunnistuspulssi voidaan antaa vasta, kun myös anturi a on paljastunut kolikon takaa, eli kun kolikko on kokonaisuudessaan vierinyt tunnistusantureiden ohi. Mutta jos b:n antamien ykkösten jälkeen myös c-anturi antaa ykkösen, niin tiedetään, että kolikko on 2- euronen. Sen jälkeen pitää testata anturia a, kunnes se antaa nollan (eli kolikko on ohittanut kaikki anturit), jolloin 2-eurosen tunnistuspulssi voidaan antaa. Huom! Anturien c ja b muuttumista nollaksi ei tarvitse testata, koska kolikon tunnistuspulssi voidaan antaa vasta, kun myös anturi a on paljastunut kolikon takaa. 13. Verenpaine- ja sykemittarin ohjain. Vinkkejä myöhemmin, jos joku tämän aiheen valitsee. 14. Otsalampun ohjauspiiri. Alkutila on pimeä. Tässä pysytään, kunnes painike painetaan alas. Silloin siirrytään seuraavaan tilaan, joka myös on pimeä, ja siinä pysytään, kunnes painike päästetään ylös. Sen jälkeen alkaa sekunnin kestävä vuorottelusekvenssi (siirtymissekvenssi). Tuo sekvenssi kannattaa olla 10 tilaa käsittävä, jolloin kellojakson pituus 0,1 s toimii. Silloin sekvenssin 5:nnessä ja 6:nnessa tilassa palaa sama (oikeanpuoleisin) led. Ei kannata yrittää toteuttaa laitetta niin, että siirtyminen seuraavaan sekvenssiin (kaikki ledit välkkyvät yhtä aikaa) tapahtuisi vuorottelusekvenssin keskellä. Siis laite on järkevä toteuttaa niin, että se ei reagoi mitenkään, jos painike painetaan vuorottelun aikana hyvin lyhyeksi aikaa (esim. 0.3 sekunniksi) pohjaan. Siirtyminen seuraavaan sekvenssiin toteutuu, kun painike pidetään pohjassa vuorottelusekvenssin loppuun asti ja hieman sen yli. Silloin ledit jatkavat vuorottelua, mutta sitten kun sekvenssin lopussa painike onkin ylhäällä, siirrytään seuraavaan sekvenssiin, eli kaikkien ledien välkyttämiseen. ASM-kaaviossa tämä näkyy niin, että on kymmenen peräkkäistä vuorottelutilaa, sitten on painikkeen testaus, ja jos painike on ylhäällä, toistetaan samat kymmenen tilaa. Mutta jos painike onkin alhaalla, mennään läpi kymmenen vuorottelutilaa, jotka ovat ASM-kaaviossa eri tilat kuin edelliset kymmenen. Näiden lopussa on taas painikkeen testaus. Jos painike on edelleen alhaalla, toistetaan nuo kymmenen tilaa, mutta jos painike on nostettu ylös, mennään seuraavaan sekvenssiin, jossa ledit palavat 0.1 s ja ovat pimeinä 0.1 s (jolloin vilkkumisjakso on 0.2 s, eli vilkkumistaajuus on 5 Hz). Samalla periaatteella kahdessa muussa sekvenssissä toistetaan ASM-kaaviossa sekvenssin vaatimat tilat niin, että välissä on painikkeen testaus. 15. Autohallin tilaa/täynnä-näyttöpiiri. Tämä on varsin kimurantti tapaus. Esimerkiksi näin voi tämän toteuttaa: Pitää olettaa, että halli on alussa tyhjä. Silloin ollaan alkutilassa, jossa vihreä palaa ja sisääntuloanturia (sis) testataan, ja niin kauan kuin se = 0, pysytään alkutilassa. Sitten kun sis = 1, siirrytään seuraavaan tilaan, jossa vihreä edelleen palaa. Tilan nimessä on hyvä näkyä sisällä olevien autojen määrä. Tässä tilassa pysytään niin kauan kuin sis = 1 (koska auto ei mene anturin ohi ääretöntä vauhtia, jolloin anturi antaa ykköstä usean kellojakson ajan). Sitten kun muuttuu sis = 0, pitää testata ulostuloanturin (ulo) arvo, jos se = 1, niin palataan äskeiseen tilaan. (Autoa ei tietenkään voi olla kaavion tässä kohdassa tulossa ulos silloin kun laite on vasta käynnistetty ja vain yksi auto on mennyt sisään. Mutta kun ASM-kaavio on tehty valmiiksi, todetaan että viimeksimainittuun tilaan tullaan muutakin kautta.) Jos mainittu ulo-testaus antaa 0:n, niin siirrytään seuraavaan tilaan, autoja on sisällä 1. Tässä tilassa pysytään niin kauan kuin sekä sis että ulo ovat nollia. Mutta jos sis = 1, niin silloin autoja on hallissa kaksi ja siirrytään seuraavaan tilaan. Mutta jos testaus antaa sis = 0 ja ulo = 1, niin silloin hallissa ei enää ole yhtään auto, siirrytään alkutilaan. Kun on siirrytty tilaan, jossa sisällä on kaksi autoa, niin tässä tilassa pysytään niin kauan kuin sis = 1. Sitten kun muuttuu sis = 0, pitää testata ulostuloanturin (ulo) arvo, jos se = 1, niin palataan äskeiseen tilaan, koska tällöin autojen määrä on tippumassa kolmesta kahteen. Mutta jos ulo = 0, niin mennään seuraavaan tilaan, autoja on sisällä kaksi. Testataan sis, jos se on = 1, niin autojen määrä kasvaa kolmeen, mennään seuraavaan tilaan. Jos sis = 0, testataan ulo, jos se = 0, pysytään samassa tilassa, mutta jos ulo = 1, niin autojen määrä on pienenemässä yhteen, mennään ensimmäiseen yhden auton tilaan. Samalla periaatteella kaavio rakentuu eteenpäin, kunnes päädytään tilaan, jossa autoja on viisi, jolloin punainen valo palaa. Nollan auton tiloja on yksi, kaikille muille automäärille on kaksi eri tilaa.