Created
January 31, 2012 14:57
-
-
Save fenrig/1710914 to your computer and use it in GitHub Desktop.
check et zelf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
org 000h | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
;tempomzetting: | |
; zet de temperatuur om in graden celcius tot 1 getal na de komma | |
; bits worden juist gezet | |
; verschil gemaakt tussen max waarde en gemeten waarde | |
; omzetting van kelvin naar graden celcius | |
; output is in bcd, r2,r1,r0 =24 bit bcd getal (r2=msb) | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
lcall initlcd | |
tempomzetting: | |
push acc ;kopie maken van acc | |
push psw ;kopie maken van acc | |
anl a,#11000000b ;eerste twee bits opslaan | |
rl a ;a doordraaien | |
rl a ;a nog eens opschuiven, de bits staan nu vooraan in a | |
mov r1,a ; getal opslaan voor sub16 | |
pop acc ;kopie word terug gehaald | |
pop psw ;kopie word terug gehaald | |
anl a,#00111111b ;de al gebruikte bits worden weg gelaten | |
anl b,#11000000b ;de least significant bits (b) worden opgeslagen | |
add a,b ;a en b worden opgeteld, de b-bits staan nog vooraan | |
rl a ;roteren | |
rl a ;roteren => b bits staan nu achteraan | |
; sub16 zal het verschil berekenen van 2 16 bit getallen. De uitkomst is | |
; 24 bit groot. (eerste - tweede) | |
; input: r1,r0 = eerste getal (r1=msb) | |
; r3,r2 = tweede getal (r3=msb) | |
; output: r2,r1,r0 (r2=msb) | |
; | |
; r3,r2,r1,r0 worden aangepast | |
mov r0,a | |
mov r2,#2fh | |
mov r3,#02h | |
lcall sub16 | |
; mul16 is de routine die twee 16 bit getallen zal vermenigvuldigen. | |
; input: r1,r0 = eerste getal (r1=msb) | |
; r3,r2 = tweede getal (r3=msb) | |
; output: r3,r2,r1,r0 met r3=msb | |
mov r2,#88h | |
mov r3,#13h | |
lcall mul16 | |
; div32 is de routine die twee 32 bit getallen zal delen (eerste/tweede). | |
; input: r3,r2,r1,r0 = eerste getal (r3=msb) | |
; r7,r6,r5,r4 = tweede getal (r7=msb) | |
; output: r7,r6,r5,r4 = quotient (r7=msb) | |
; r3,r2,r1,r0 = rest (r3=msb) | |
; carry=1 bij delen door 0 | |
mov r4,#00h | |
mov r5,#04h | |
mov r6,#00h | |
mov r7,#00h | |
lcall div32 | |
; input r1,r0 = 16 bit hex getal (r1=msb) | |
; output r2,r1,r0 =24 bit bcd getal (r2=msb) | |
mov a,r3 | |
lcall lcdoutbyte | |
mov a,r2 | |
lcall bcdhex8 | |
lcall lcdoutbyte | |
mov a,r1 | |
lcall bcdhex8 | |
lcall lcdoutbyte | |
mov a,r0 | |
lcall bcdhex8 | |
lcall lcdoutbyte | |
mov a,#99h | |
lcall delaya0k05s | |
ljmp tempomzetting | |
#include "c:\xcez2.inc" | |
#include "c:\xcez1.inc" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment