Voorbeeldprogramma's voor de 80C51.
De programma's zijn beschikbaar als bronprogramma, een .a51 file die met de
assembler vertaald kan worden tot elke andere vorm die nuttig is. Sla zo'n file
op in de directory waarin ook de assembler, die in
de hulpprogramma's zit, staat.
--> Testprogramma van het practicum, waarmee de hele
computerprint gecontroleerd kan worden.
--> Start.a51 om een eigen programma mee te beginnen.
Dit programma doet nog niks, maar een aantal adressen is al vastgelegd en er is
een ORG en een END.
Om met een nieuw programma te beginnen: copiëer deze file,
geef hem een nieuwe naam en open die in de editor van WipUptools.
De allereenvoudigste programma's
Begin heel eenvoudig en bouw langzaam uit. Test steeds als je iets gedaan hebt
of het nog doet wat je wilt. De eerste programma's heten dus "Test".
--> Test1.a51 leest poort P3 uit (waarin het drukknopje
TEST zit) en zet dat op poort P1 (aangesloten op het display). Kijk in het
programma en zie dat er meer commentaar is dan instructie. Doe dit altijd,
anders ben je zó de weg kwijt in je eigen bos.
--> Test2.a51 zet het hele display aan als op het knopje
TEST gedrukt wordt. Diverse nieuwe gebruiken zijn nu toegevoegd.
Dutycycle golfvorm op de interrupt
Deze gebruikt Timer 0 en stuurt het middelste streepje van het display (Poort
P1, bit 6) aan. Gebruik dit als voorbeeld, om het uit te proberen of om er mee
verder te gaan.
--> Dutycycle0.a51 maakt een golfvorm van 3,5 kHz met
een dutycycle van 50%. De hoogtijd komt uit RAM-adres 23 en 22 en de laag-tijd
uit 21 en 20.
--> Dutycycle1.a51 Als Dutycycle 0, maar de hoog-tijd
in 22 en de laag-tijd in 20 worden tegengesteld veranderd. Er zit een wachttijd
in waardoor het streepje langzaam van helderheid verandert.
--> Dutycycle2.a51 Nu is er een subroutine toegevoegd
die de dutycycle instelt aan de hand van het getal in het A-register.
Muziek loopt ook op de interrupt
Behalve een veranderende dutycycle kun je verschillende frequenties opwekken op
de interrupt. Daarmee kun je bijvoorbeeld muzieknoten genereren.
--> Bach.a51 Ach ja, het is natuurlijk maar één toon
tegelijk, maar kijk voor meer informatie in de kop van het programma.