From b8c4af0771371e0c91a57343892e991254c4bf0b Mon Sep 17 00:00:00 2001 From: thing1 Date: Mon, 21 Oct 2024 08:37:33 +0100 Subject: did some electronics --- electronics/asm/mem.ba~ | 28 -------------------------- electronics/asm/signalplayback.asm | 40 ++++++++++++++++++++++++++++++++++++++ electronics/asm/temp.asm | 39 +++++++++++++++++++++++++++++++++++++ electronics/asm/temp.err | 0 electronics/asm/timer.asm | 40 ++++++++++++++++++++++++++++++++++++++ electronics/asm/timer.err | 0 6 files changed, 119 insertions(+), 28 deletions(-) delete mode 100644 electronics/asm/mem.ba~ create mode 100644 electronics/asm/signalplayback.asm create mode 100644 electronics/asm/temp.asm create mode 100644 electronics/asm/temp.err create mode 100644 electronics/asm/timer.asm create mode 100644 electronics/asm/timer.err (limited to 'electronics/asm') 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 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 -- cgit v1.2.3