Vad som gjorts då? Jo man trycker på en knapp som är kopplad till en ingång så tänds en lysdiod på en annan utgång i c:a 1 sekund. Avancerat till 1000

Nåväl eftersom jag började på noll så tog det cirka 5 timmar. Barnen bråkade också rätt mycket <--skyller på

Sen upptäckte en annan att MPSIM är långt ifrån perfekt och inte överensstämmer med verkligheten allt för mycket.
Men skam den som ger sig till slut fungerade det! Dessutom fuskkikade jag inte på andra utan har själv listat ut varför det aldrig funkade med andra ord så blev det en del


Koden bjuder jag på för den som vågar sig på detta våldsamt avancerade projekt.
Kod: Markera allt
;***************************************************************
list p=16F628a
#include <p16F628a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF &_INTRC_OSC_NOCLKOUT & _MCLRE_ON & _LVP_OFF
ERRORLEVEL -302
;***************************************************************
z1 equ 2Ah
z2 equ 2Bh
z3 equ 2Ch
;***************************************************************
org 0x0000
GOTO INIT
NOP
NOP
NOP
NOP
org 0x0005
INIT
BANKSEL PORTA ;Select Bank 0
MOVLW b'111' ;Set W to 00000111
MOVWF CMCON ;Turn OFF the comparators
CLRF PORTA ;Initiate PORTA
CLRF PORTB ;Initiate PORTB
BANKSEL TRISA ;Select Bank 1
CLRF TRISA ;Initiate TRISA
CLRF TRISB ;Initiate TRISA
MOVLW b'10' ;Set W to 00000010
MOVWF TRISA ;Which means RA1 as input
BANKSEL PORTA ;Select Bank 0
MOVLW b'1000' ;Set W to 00001000
MOVWF PORTB ;Set PORTB to the value stored in W (00001000
CALL Delay ;Call the delay routine
CLRF PORTB ;Clear PORTB (turn off the diode)
Main
BTFSC PORTA,1 ;If the button is pressed skip the next statement
GOTO Main ;Repeat
MOVLW b'1000' ;Set W to 00001000
MOVWF PORTB ;Set PORTB to the value stored in W (00001000
CALL Delay ;Call the delay routine
CLRF PORTB ;Clear PORTB (turn off the diode)
GOTO Main ;Repeat
;***************************************************************
;***************************************************************
subtitle "Delayroutine"
Delay
movlw 0x5
movwf z3
movlw D'137'
movwf z2
decfsz z1,f
goto $-1
decfsz z2,f
goto $-3
decfsz z3,f
goto $-5
return
END


Så kommentarer: Vad är fel och vad är rätt?