Dobókocka

LED-es dobókocka

Még nincs kész, mert csak a kapcsolásban szereplő PIC- kel működik és még nem sikerült beszereznem.

program ASM file:

;********************************************
;*E_dice *
;*Vicsys *
;*2007 *
;* *
;********************************************

list P=PIC12F629
include "P12F629.INC"

__CONFIG _CPD_OFF & _CP_OFF & _BODEN_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT

beept equ 20h
time1 equ 21h
time2 equ 22h
time3 equ 23h
count1 equ 24h
count2 equ 25h
count3 equ 26h
count4 equ 27h
saime equ 28h
scnt equ 29h

org 0
goto intset

intset
bsf STATUS, RP0
call 3ffh
movwf OSCCAL
movlw b'00001000'
movwf TRISIO
movlw b'00000000'
movwf OPTION_REG
movlw b'00001000'
movwf IOC
bcf STATUS, RP0 ;
clrf GPIO
movlw b'00000111'
movwf CMCON
movlw b'00001000' ;
movwf INTCON ;

movlw 0x06
movwf saime

start
call ondisp ;
call t100ms ;
clrf GPIO ;
call t10ms ;
call ondisp ;
call beep ;
call t10ms
clrf GPIO
call t10ms
call ondisp
call beep
call t10ms
clrf GPIO
call t10ms
call ondisp
call beep

game
btfss GPIO,3
goto game
call t50ms

game1
movlw 0x1e
movwf count2
game1a
movlw 0x64 ;
movwf count3
game1b
movlw 0x9b
movwf count4
game1c
movlw 0x0c
movwf count1 ;
game1d
btfss GPIO,3
goto game2
decfsz count1,f
goto game1d

decfsz count4,f
goto game1c
decfsz count3,f
goto game1b
decfsz count2,f
goto game1a
call beep ;
call t20ms
call beep
clrf GPIO ;
bcf INTCON,GPIF ;
sleep
nop
goto start ;

game2
movlw 0x06
addwf count1,f
game2a
movf count1,w
movwf scnt

game3
call disp
call t5ms
btfsc GPIO,3
goto game4
goto game3

game4
call disp
call t50ms
btfss GPIO,3 ;
goto game2a
decfsz scnt
goto game4

call t300ms
call beep5
goto game

beep
movlw 0x30
movwf beept
beep1
bsf GPIO,5
call t50us
bcf GPIO,5
call t50us
decfsz beept,f
goto beep1
return

t50us
movlw 0x30
movwf time1
t50us1
decfsz time1,f
goto t50us1
return

t1ms
movlw 0x08
movwf time2
t1ms1
movlw 0x7d
movwf time3
t1ms2
decfsz time3,f
goto t1ms2
decfsz time2,f
goto t1ms1
return

t5ms
call t1ms
call t1ms
call t1ms
call t1ms
call t1ms
return

t10ms
call t5ms
call t5ms
return

t20ms
call t10ms
call t10ms
return

t50ms
call t10ms
call t20ms
call t20ms
return

t100ms
call t50ms
call t50ms
return

t300ms
call t100ms
call t100ms
call t100ms
return

disp
movf saime,w ;
call digit
movwf GPIO ;
call beep
decfsz saime,f ;
return
movlw 0x06 ;
movwf saime
return

digit
addwf PCL,f
retlw b'00011111'
retlw b'00001111' ;
retlw b'00011101' ;
retlw b'00001101' ;
retlw b'00011100' ;
retlw b'00001100' ;
retlw b'00011000' ;

ondisp
movlw b'00010111' ;
movwf GPIO
return

beep5
call beep
call t20ms
call beep
call t20ms
call beep
call t20ms
call beep
call t20ms
call beep
return

org 0x3ff
retlw 0x38

end

MINDEN VÉLEMÉNY SZÁMÍT!