diff options
Diffstat (limited to 'electronics/asm')
-rw-r--r-- | electronics/asm/1.asm | 21 | ||||
-rw-r--r-- | electronics/asm/1.err | 0 | ||||
-rw-r--r-- | electronics/asm/2.asm | 23 | ||||
-rw-r--r-- | electronics/asm/2.err | 0 | ||||
-rw-r--r-- | electronics/asm/3.asm | 31 | ||||
-rw-r--r-- | electronics/asm/3.err | 0 | ||||
-rw-r--r-- | electronics/asm/5.asm | 45 | ||||
-rw-r--r-- | electronics/asm/5.err | 0 | ||||
-rw-r--r-- | electronics/asm/7.asm | 41 | ||||
-rw-r--r-- | electronics/asm/7.err | 0 | ||||
-rw-r--r-- | electronics/asm/Makefile | 4 | ||||
-rw-r--r-- | electronics/asm/TODO | 2 |
12 files changed, 163 insertions, 4 deletions
diff --git a/electronics/asm/1.asm b/electronics/asm/1.asm new file mode 100644 index 0000000..70eaa99 --- /dev/null +++ b/electronics/asm/1.asm @@ -0,0 +1,21 @@ +start: +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 + goto main +main: + movlw b'11111111' + movwf PORTB + call wait1000ms + call wait1000ms + movlw b'00000000' + movwf PORTB + call wait1000ms + goto main + END ; ends the program diff --git a/electronics/asm/1.err b/electronics/asm/1.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/1.err diff --git a/electronics/asm/2.asm b/electronics/asm/2.asm new file mode 100644 index 0000000..2dafe9e --- /dev/null +++ b/electronics/asm/2.asm @@ -0,0 +1,23 @@ +start: +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 + goto main + +main: + movlw b'00000111' + movwf PORTB + call wait1000ms + + movlw b'11100000' + movwf PORTB + call wait1000ms + + goto main + END ; ends the program diff --git a/electronics/asm/2.err b/electronics/asm/2.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/2.err diff --git a/electronics/asm/3.asm b/electronics/asm/3.asm new file mode 100644 index 0000000..9182e8d --- /dev/null +++ b/electronics/asm/3.asm @@ -0,0 +1,31 @@ +start: +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 + goto main + +main: + btfsc PORTA, 0 + goto flashled + goto main + +flashled: + movlw b'11111111' + movwf PORTB + call wait1000ms + call wait1000ms + movlw b'00000000' + movwf PORTB + call wait1000ms + + btfsc PORTA, 0 + goto flashled + goto main + + END ; ends the program diff --git a/electronics/asm/3.err b/electronics/asm/3.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/3.err diff --git a/electronics/asm/5.asm b/electronics/asm/5.asm new file mode 100644 index 0000000..5455ded --- /dev/null +++ b/electronics/asm/5.asm @@ -0,0 +1,45 @@ +start: +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 + goto main + +main: + btfsc PORTA, 0 + goto led0 + + btfsc PORTA, 1 + goto led1 + + btfsc PORTA, 2 + goto led2 + + call wait1000ms + call wait1000ms + + movlw b'00000000' + movwf PORTB + goto main + +led0: + movlw b'00000001' + movwf PORTB + goto main + +led1: + movlw b'00000010' + movwf PORTB + goto main + +led2: + movlw b'00000100' + movwf PORTB + goto main + + end ; ends the program diff --git a/electronics/asm/5.err b/electronics/asm/5.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/5.err diff --git a/electronics/asm/7.asm b/electronics/asm/7.asm new file mode 100644 index 0000000..4d7585c --- /dev/null +++ b/electronics/asm/7.asm @@ -0,0 +1,41 @@ +start: +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 + + VARA equ B20 + VARB equ B21 + + goto main +main: + btfsc PORTA, 0 + incf VARA, 0 + + btfsc PORTA, 1 + goto NEXTVAR + + goto main + +NEXTVAR: + btfsc PORTA, 0 + incf VARB, 0 + + btfsc PORTA, 1 + goto ADDITION + + goto NEXTVAR + +ADDITION: + movlw 0 + addwf VARA, 0 + addwf VARB, 0 + + movwf PORTB + + END ; ends the program diff --git a/electronics/asm/7.err b/electronics/asm/7.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/7.err diff --git a/electronics/asm/Makefile b/electronics/asm/Makefile deleted file mode 100644 index 095d4e9..0000000 --- a/electronics/asm/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -test: test.asm - wjecasm -c/dev/ttyUSB0 test.asm -clean: - rm -rf *.err diff --git a/electronics/asm/TODO b/electronics/asm/TODO new file mode 100644 index 0000000..459236b --- /dev/null +++ b/electronics/asm/TODO @@ -0,0 +1,2 @@ +fix the last one, it doesnt work + |