Napsal: 09 úno 2010, 18:58
Tak hledej botu v zapojení. Pin 12 máš připojenej na zem, stejně tak + vstup OZ, pin 11 máš připojenej na - vstup OZ a pin 9 na výstup OZ?
Vše, co potřebujete vědět o elektronice :-)
http://elektrobastlirna.cz/
Kód: Vybrat vše
; Bits definition :
#define CS PORTA,0 ;CS
#define WR1 PORTA,1 ;WR1
#define zap PORTA,2 ;připoj k ústředně
#define vyp PORTA,3 ;odpoj od ústředny
#define tl1 PORTA,4 ;tlačítko 1 (sin_1kHz)
#define tl2 PORTA,5 ;tlačítko 2 (sin_2kHz)
;START
org 0x0000 ;program starts at address 0x000
;*********************************************
;***************nastavení portů***************
;*********************************************
bsf STATUS,RP0 ;bank 1
movlw 0x06
movwf ADCON1
clrf TRISC ;TRISC(data) bude 0=>výstup
clrf TRISB ;TRISB(zobrazení) bude 0=>výstup
movlw b'11111100' ;TRISA0,1(řízení) bude 0=>výstup
movwf TRISA
bcf STATUS,RP0 ;bank 0
;*********************************************
;***************natsavení portů***************
;*********************************************
;*********************************************
;***************HLAVNÍ PROGRAM****************
;*********************************************
movlw 0xFF
movwf PORTB
main: movfw MEMORY_B
movwf PORTB
main2: call T_4ms
btfss tl1 ;je stisknuto 1.tlačítko?
call sine_one ;ANO - volej sine_one
call T_4ms
btfss tl2 ;NE - je stisknuto 2.talčítko?
call sine_two ;ANO - volej sine_two
goto main2 ;vrať se na začátek
;*********************************************
;***************HLAVNÍ PROGRAM****************
;*********************************************
;********************************************
;***************sinusovka 1kHz***************
;********************************************
sine_one:
movlw 0xDE ;zobraz číslici 1
movwf MEMORY_B ;ulož číslici do reg. MEMORY_B
movwf PORTB ;zobraz číslici na PORTB
call T_4ms
bcf CS ;1 =>nula
movlw .128
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS ;2 =>pi/8
movlw .177
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .218 ;3 =>pi/4
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .246 ;4 =>3pi/8
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .255 ;5 =>pi/2
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .246
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .218
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .177
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .128
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .79
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .38
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .10
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .0
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .10
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .38
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .79
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
bcf CS
movlw .128
movwf PORTC
bcf WR1
nop
bsf WR1
call T_50us
bsf CS
jmp btfss tl1
goto jmp
return
;********************************************
;***************sinusovka 1kHz***************
;********************************************
;**********************************************************
T_50us: movlw 0x0C ;čekej 50 us
movwf cnt1
decfsz cnt1,F
goto $-1
return
T_4ms: movlw 0x4B ;čekej 4 ms
movwf cnt2
T_4ms2: call T_50us
decfsz cnt2,F
goto T_4ms2
return
end
Andrea píše:Tak to je teda brutální generování sinusovky.