Ahh! Får det inte att funka. Assembler + PIC1684A
Postat: 16 mars 2007, 17:12:25
Tjena.
Om någon ser vad som är fel i koden är det bara att hojta till.
Får det som sagt inte att funka. Skall med koden bara tända en LED som sitter på RA0, så det är inga konstigheter egentligen.
Jag har testat koden och kopplingen som finns på denna sida (PIC1684A): http://www.voti.nl/blink/index.html och det funkar utmärkt.
Jag har kvar samma koppling som dem har på sidan, alltså jag har inte rört kopplingen, som fungerar med koden på sidan.
/ Jonas
Om någon ser vad som är fel i koden är det bara att hojta till.
Får det som sagt inte att funka. Skall med koden bara tända en LED som sitter på RA0, så det är inga konstigheter egentligen.
Jag har testat koden och kopplingen som finns på denna sida (PIC1684A): http://www.voti.nl/blink/index.html och det funkar utmärkt.
Jag har kvar samma koppling som dem har på sidan, alltså jag har inte rört kopplingen, som fungerar med koden på sidan.
Kod: Markera allt
;############################################################################
;############################################################################
;####################### Description Of Project #############################
;
; Name Of Project: Turn LED on.
; Description: LED is connected to RA0.
;
;
;
;
;
;
; Date:
; Author:
;
;############################################################################
;############################################################################
;############################ Directives ####################################
list p=16F84A ; list directive to define processor
#include <p16F84A.inc> ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
;############################################################################
;############################################################################
;######################## Constant Declarations #############################
udata
LEDmaskOn equ b'00000000' ; LEDmaskOn=b'00000000'.
LEDmaskOff equ b'00000001' ; LEDmaskOff=b'00000001'.
;############################################################################
;############################################################################
;######################## Variable Declarations #############################
;############################################################################
;############################################################################
;######################### On Reset (StartUp) ###############################
startup code
goto MAIN ; go to beginning of program.
;############################################################################
;############################################################################
;############################# On Interupt ##################################
;############################################################################
;############################################################################
;############################### Subroutines ################################
;++++++++++++++++++++++++++++++++ LEDon ++++++++++++++++++++++++++++++++++++++
; This routine turns LED on, then returns.
LEDOn
;----------------to turn LED on we set RA0 to 0, i.e. OV.--------------------
movlw LEDmaskOn ; moves literal LEDmaskOn=b'00000000' to w.
movwf PORTA ; moves content of w to file-register PORTA,
; i.e. turns LED on.
;-----------------------------------------------------------------------------
return
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;############################################################################
;############################################################################
;################################# MAIN #####################################
code
MAIN
;---------------------------------------------------------------------------
; Sets all PORTA to outputs (here we are only concerned with bit0 of PORTA,
; i.e. RA0) and init RA0 to 1, i.e. RA0 is 5V --> LED is off.
banksel TRISA ; Swith to bank1.
movlw b'00000000' ; move literal b'00000000' to w.
movwf TRISA ; move contents of w to file-register TRISA.
; (set RA0 to output)
banksel PORTA ; Switch back to bank0.
movlw b'00000001' ; move literal b'00000001' to w.
movwf PORTA ; move contents of w to file-register PORTA.
; (Set bit RA0 to 1 --> LED off)
;--------------------------------------------------------------------------
call LEDOn
loop goto loop
end
;############################################################################
;############################################################################
;############################################################################
/ Jonas