Prosba - monostabilni obvod s MCU (VYRESENO)
Jirka
zaloha na volny.cz
Pondělí Září 3 21:27:45 CEST 2012
Tak se musím pochlubit, už mi to i pípá:
************************************************************************
'-----------------------------------------------------------------------
' casovy spinac 30 min., inspirace http://www.bittnar.info/cz/casovy-spinac/
' zmeny: zkraceni casu, inverze vystupu, odstraneni konfig. vstupu a jejich
' zmena na vystupy, pridani pipnuti po skonceni casu
' program funguje i v PIC12C509A nebo PIC12F509
'-----------------------------------------------------------------------
'
' Vcc -| U |- Vss
' green LED -| |-
' red LED -| |- zvuk
' rezim/start -| |- vystup
DEVICE 12C508
XTAL = 4
config WDT_OFF, MCLRE_OFF, CP_OFF, INTRC_OSC
set_osccal ' nastaveni kalibrace oscilatoru
Dim cas As Word ' deklarace promennych
Dim i As Word
Dim j As Word
Dim auto As Bit
Symbol snd = GPIO.1 ' vystup zvuku
Symbol out = GPIO.2 ' casovy vystup (L je aktivni uroven)
Symbol in = GPIO.3 ' start tlacitko (pri manual)
Symbol red = GPIO.4 ' H rozsviti cervenou LED (menic bezi)
Symbol green = GPIO.5 ' H rozsviti zelenou LED (napajeni)
option_reg.6 = 0 ' povoleni pull-up
option_reg.5 = 0 ' pin 5 jako GP2
trisio = %00001001 ' nastaveni portu (vstupy / vystupy)
out = 1 ' cas. vystup do H (vypnuti menice)
snd = 0 ' zvuk do 0
red = 0 ' zhasnuti cervene LED
green = 1 ' rozsviceni zelene LED
auto = 0
if in = 0 then auto = 1 ' zjisteni rezimu s nastavenim priznaku
main:
If auto = 0 Then If in = 1 then Goto main ' cek. na start
out = 0
red = 1
green = 0 ' cas. vystup do L (zapnuti menice)
cas = 1800 ' 30 min. (1800 sec.)
For i = 1 To cas ' smycka generujici dobu sepnuti
delayMs 1000
Next i
For j = 1 to 5000 ' smycka generujici 2kHz po dobu 5 sec.
snd = 1
DelayUs 250
snd = 0
DelayUs 250
Next j
snd = 0
red = 0 ' zhasnuti cervene LED
green = 1 ' rozsviceni zelene LED
out = 1 ' cas. vystup do H (vypnuti menice)
konec:
If auto = 1 Then Goto konec ' konec (pri automat.),
Goto main ' jinak opakovat znovu
************************************************************************
největší porod byl s pochopením funkce trisio, tedy hlavně s fcí
jednotlivých bitů, není to pořádně popsáno prakticky nikde...
---
Jirka
Další informace o konferenci Hw-list