summaryrefslogtreecommitdiff
path: root/electronics/cw2/final.asm
diff options
context:
space:
mode:
authorthing1 <thing1@seacrossedlovers.xyz>2025-03-03 08:07:43 +0000
committerthing1 <thing1@seacrossedlovers.xyz>2025-03-03 08:07:43 +0000
commit2ac42fa825d403e6285a58e08a62e6d549c86fa1 (patch)
treeb6076a025c5ec1eabcac62217da0de4bfd098110 /electronics/cw2/final.asm
parenta14717c2f5fc893b504cdad7b9975d67af39d59a (diff)
started elcectronics cw2
Diffstat (limited to 'electronics/cw2/final.asm')
-rw-r--r--electronics/cw2/final.asm69
1 files changed, 69 insertions, 0 deletions
diff --git a/electronics/cw2/final.asm b/electronics/cw2/final.asm
new file mode 100644
index 0000000..fd4ad7d
--- /dev/null
+++ b/electronics/cw2/final.asm
@@ -0,0 +1,69 @@
+init:
+ clrf PORTA ; make sure port A output latches are low
+ clrf PORTB ; make sure port B output latches are low
+ bsf STATUS,RP0 ; select memory bank 1
+ movlw b'11111111' ; set port A data direction to inputs
+ movwf TRISA
+ movlw b'00000000' ; set port B data direction to outputs
+ movwf TRISB
+ bcf STATUS,RP0 ; select memory bank 0
+ BACK equ B4
+ goto main
+
+volow:
+ movlw b'00000001'
+ movwf PORTB
+ goto main
+vomid:
+ movlw b'00000011'
+ movwf PORTB
+ goto main
+vohigh:
+ movlw b'00000111'
+ movwf PORTB
+ goto main
+vovhigh:
+ movlw b'00001111'
+ movwf PORTB
+ goto main
+
+
+convert:
+ andlw b'00001111'
+ movwf BACK
+
+ andlw b'00001100'
+ btfsc STATUS, Z
+ goto volow
+ movf BACK, W
+
+ andlw b'00001100'
+ sublw b'00000100'
+ btfsc STATUS, Z
+ goto vomid
+ movf BACK, W
+
+ andlw b'00001100'
+ sublw b'00001000'
+ btfsc STATUS, Z
+ goto vohigh
+ movf BACK, W
+
+ andlw b'00001100'
+ sublw b'00001100'
+ btfsc STATUS, Z
+ goto vovhigh
+ movf BACK, W
+
+ goto main
+main:
+ ;goto vovhigh
+
+ call readadc0
+ movf B0, W
+
+ goto convert
+
+ goto main
+
+ end