diff options
Diffstat (limited to 'electronics/asm')
-rw-r--r-- | electronics/asm/mem.ba~ | 28 | ||||
-rw-r--r-- | electronics/asm/signalplayback.asm | 40 | ||||
-rw-r--r-- | electronics/asm/temp.asm | 39 | ||||
-rw-r--r-- | electronics/asm/temp.err | 0 | ||||
-rw-r--r-- | electronics/asm/timer.asm | 40 | ||||
-rw-r--r-- | electronics/asm/timer.err | 0 |
6 files changed, 119 insertions, 28 deletions
diff --git a/electronics/asm/mem.ba~ b/electronics/asm/mem.ba~ deleted file mode 100644 index 62c8d54..0000000 --- a/electronics/asm/mem.ba~ +++ /dev/null @@ -1,28 +0,0 @@ -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
-;; for this program use the 2k 8 bit mem chip, with WE on B2, OE on B3, and the memorys 3 least
-;; sig bits to B4-B6 (inclusive), all other pins on the mem chip need to be held low, and an led
-;; needs to be on B1
-;; when B1 goes high move the 3 pins from the microcontroler to leds and see the value
-main:
- movlw b'01111000'
- movwf PORTB ; make we high, oe low, and 3 pins high
- call wait1000ms
-
- movlw b'00000110'
- movwf PORTB ; make we low, oe high, and 3 pins low
-
-noend:
- goto noend
-
- END ; ends the program
-
diff --git a/electronics/asm/signalplayback.asm b/electronics/asm/signalplayback.asm new file mode 100644 index 0000000..9e412f1 --- /dev/null +++ b/electronics/asm/signalplayback.asm @@ -0,0 +1,40 @@ +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 + + bsf INTCON, INT0IE + bsf INTCON, GIE + + counter1 EQU B8 + + goto main + +interrupt: + movf B0, W + movwf counter1 + goto countdown + +countdown: + call wait1000ms + decfsz counter1, F + goto countdown + + bcf INTCON, INT0IF + + retfie + +main: + call readadc0 + movf B0, W + movwf PORTB + + goto main + + END ; ends the program diff --git a/electronics/asm/temp.asm b/electronics/asm/temp.asm new file mode 100644 index 0000000..c6d808d --- /dev/null +++ b/electronics/asm/temp.asm @@ -0,0 +1,39 @@ +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 + + ;bsf INTCON, INT0IE + ;bsf INTCON, GIE + + rawtemp EQU B5 + + goto main + +showme: + movlw 255 + movwf PORTB + return + +main: + call readadc1 + movf B1, W + movwf rawtemp + + call readadc0 + movf B0, W + + subwf rawtemp, w + + btfsc STATUS, 2 + call showme + + goto main + + END ; ends the program diff --git a/electronics/asm/temp.err b/electronics/asm/temp.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/temp.err diff --git a/electronics/asm/timer.asm b/electronics/asm/timer.asm new file mode 100644 index 0000000..9e412f1 --- /dev/null +++ b/electronics/asm/timer.asm @@ -0,0 +1,40 @@ +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 + + bsf INTCON, INT0IE + bsf INTCON, GIE + + counter1 EQU B8 + + goto main + +interrupt: + movf B0, W + movwf counter1 + goto countdown + +countdown: + call wait1000ms + decfsz counter1, F + goto countdown + + bcf INTCON, INT0IF + + retfie + +main: + call readadc0 + movf B0, W + movwf PORTB + + goto main + + END ; ends the program diff --git a/electronics/asm/timer.err b/electronics/asm/timer.err new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/electronics/asm/timer.err |