school

thing1's amazing school repo
Log | Files | Refs | Submodules | README

final.asm (1101B)


      1 init: 
      2 	clrf    PORTA         ; make sure port A output latches are low 
      3 	clrf    PORTB         ; make sure port B output latches are low 
      4 	bsf     STATUS,RP0    ; select memory bank 1 
      5 	movlw 	b'11111111'   ; set port A data direction to inputs 
      6 	movwf 	TRISA          
      7 	movlw 	b'00000000'   ; set port B data direction to outputs 
      8 	movwf 	TRISB        
      9 	bcf     STATUS,RP0    ; select memory bank 0 
     10 	BACK 	equ B4
     11 	goto    main 
     12 
     13 volow:
     14 	movlw	b'00000001'
     15 	movwf	PORTB
     16 	goto 	main
     17 vomid:
     18 	movlw	b'00000011'
     19 	movwf	PORTB
     20 	goto 	main
     21 vohigh:
     22 	movlw	b'00000111'
     23 	movwf	PORTB
     24 	goto 	main
     25 vovhigh:
     26 	movlw	b'00001111'
     27 	movwf	PORTB
     28 	goto 	main
     29 
     30 
     31 convert:
     32 	andlw	b'00001111'
     33 	movwf	BACK
     34 
     35 	andlw   b'00001100'
     36 	btfsc 	STATUS, Z
     37 	goto 	volow
     38 	movf 	BACK, W
     39 
     40 	andlw 	b'00001100'
     41 	sublw	b'00000100'
     42 	btfsc 	STATUS, Z
     43 	goto 	vomid	
     44 	movf 	BACK, W
     45 
     46 	andlw   b'00001100'
     47 	sublw	b'00001000'
     48 	btfsc 	STATUS, Z
     49 	goto  	vohigh	
     50 	movf 	BACK, W
     51 
     52 	andlw   b'00001100'
     53 	sublw	b'00001100'
     54 	btfsc 	STATUS, Z
     55 	goto  	vovhigh	
     56 	movf 	BACK, W
     57 	
     58 	goto 	main
     59 
     60 main:
     61 	call 	readadc0
     62 	movf	B0, W
     63 
     64 	goto 	convert
     65 
     66 	goto 	main
     67 
     68 	end