miyago icon

ADC

miyago | PRO | 01/23/18 07:14:55 PM UTC | 0 ⭐ | 322 👁️ | Never ⏰ | []
6502 Kick Assembler |

0 B

|

None

|

0 👍

/

0 👎

#include "p18F4520.inc"
    
    CONFIG OSC = HS
    CONFIG PWRT = OFF
    CONFIG WDT = OFF
    CONFIG PBADEN = OFF
    CONFIG LVP = OFF
    
    org 0x000000
 
PORST   GOTO MAIN
 
;---------DELAY 80 ms------------------------
IDSHORT equ 0x07D
IDLONG  equ 0x07E
    
ED80MS  CLRF    IDSHORT
        CLRF    IDLONG
LDLOOP  DECFSZ  IDSHORT
        GOTO    LDLOOP
        DECFSZ  IDLONG
        GOTO    LDLOOP
        RETURN
;----END OF DELAY SUBROUTINE-----------------
        org 0x000020
    
MAIN    BSF  TRISA, 0      ; RA0 = input for analog
        BCF  TRISA, 1      ; RA1 = output for LED
        CLRF TRISD     ; Port D I/O = out
        BSF  PORTA, RA1    ; kolumn 1 på
        CLRF PORTD     ; alla rader av
    
        MOVLW 0x01
        MOVWF ADCON0
        MOVLW 0x0E
        MOVWF ADCON1
        MOVLW 0x12
    
OVER    CALL    ED80MS
        BSF ADCON0,GO
BACK    BTFSC   ADCON0,DONE
        BRA BACK
    
        CALL    COMVAL      ;Anropa subrutiner som jämnför vilket intervall
        CALL    ED80MS
        NOP
        NOP
        BRA OVER
        
    ;*******VÄRST SUBRUTINEN!*********
    COMVAL  CLRF    PORTD
    MOVLW   0xE0        ; Intervall 224-255
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 7        ; ..släck!
        
    MOVLW   0xC0        ; Intervall 192
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 6        ; ..tänd!
    MOVLW   0xDF        ;      till 223
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 6        ; ..släck!
    
    MOVLW   0xA0        ; Intervall 160
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 5        ; ..tänd!
    MOVLW   0xBF        ;      till 191
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 5        ; ..släck!
    
    MOVLW   0x80        ; Intervall 128
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 4        ; ..tänd!
    MOVLW   0x9F        ;      till 159
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 4        ; ..släck!
    
    MOVLW   0x60        ; Intervall 96
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 3        ; ..tänd!
    MOVLW   0x7F        ;      till 127
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 3        ; ..släck!
    
    MOVLW   0x40        ; Intervall 64
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 2        ; ..tänd!
    MOVLW   0x5F        ;      till 95
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 2        ; ..släck!
    
    MOVLW   0x20        ; Intervall 32
    CPFSLT  ADRESH      ; Om mindre..
    BSF PORTD, 1        ; ..tänd!
    MOVLW   0x3F        ;      till 63
    CPFSLT  ADRESH      ; Om större..
    BCF PORTD, 1        ; ..släck!
    
    MOVLW   0x1F
    CPFSGT  ADRESH      ; Om större hoppa..
    BSF PORTD, 0        ; ..annars tänd!
    
    RETURN
    ;*********SLUT PÅ ELÄNDET************
 
    end

Comments