PIC SIREN generatorius

M

me_guitarist

Guest
Ar kas nors konvertuoti šį kodą į komplektą į PIC12F675?

; Projektas: SIREN Garsas
List P = 16F84
#
include <p16F84.inc>
__CONFIG 1Bh; _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC

ORG 0; Tai pradžia atmintyje programą.
Sąranka BSF 03,5; Grįžti į banko 1
CLRF 06; Padaryti visų uosto B produkcija
BCF 03,5; Eiti į banko 0 - programos atminties srityje.
CLRF 06; Išvalyti ekranas
GOTO SIREN

SIREN MOVLW 80H; Ciklų skaičius už kiekvieną toną
MOVWF 0Eh
MOVWF 10h
MOVLW 50H; skaičius veiksmus
MOVWF 0Fh; Failo 0F turi keletą žingsnių
MOVLW 50H; Nustato dažnio
MOVWF 0Ch; Failo 0C nustato dažnio

Repaet MOVF 0C, 0; Failo 0C yra perkelta į V
MOVWF 0D; W persikėlė į failą 0D už decrementing

Apie BSF 06,7; ilgis DAUG laiko pjezo
DECFSZ 0D, 1
GOTO Apie
MOVWF 0Dh; W persikėlė į failą 0D vėl

Ne BCF 06,7; ilgis MAŽAI laiko pjezo
DECFSZ 0D, 1
GOTO Išjungta
DECFSZ 10h, 1; Ciklų skaičius už kiekvieną toną
GOTO Pakartotinis
DECF 0C, 1, žemo ir aukšto yra sutrumpintas tono kilimas
INCF 0E, 1; Didinti ciklų skaičius
MOVF 0E, 0; Failo 0E W
MOVWF 10h; W failą 10h
DECFSZ 0F, 1; skaičius veiksmus
GOTO Pakartotinis
GOTO SIREN

PABAIGA

 
Kiekvienas gali padėti paštu kai kurių vynai Sirija schema?
Tikimės, kad yra 12F675 kaip aš kai jame.

 
Here you go.
Atkreipkite dėmesį, kad generatorius dar RC, kaip ir originalaus dizaino, todėl jūs galite lengvai reguliuoti tonas.
GPIO0 yra produkcija.Jeigu jums nepatinka, kad jį pakeisti.
Kodas:

; Projektas: SIREN Garsas

List P = 12F675

# include <p12F675.inc>

; __CONFIG 1Bh; _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC

__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _EXTRC_OSC_NOCLKOUT & _MCLRE_OFF & _BODEN_ON# define OUT GPIO, 0; uosto Kaisčiai apibrėžta kaip faktinė produkcija; KINTAMŲJŲ

Ciklai EQU 20H; triumai # ciklų

Veiksmai EQU 21h; triumai # veiksmų

Freq EQU 22h; turi dažnio kintamo

Skaitliukas EQU 23h; kintamojo naudojama kaip skaitiklis

Counter1 EQU 24H; kintamojo naudojama kaip skaitiklis; KONSTANTOS

N_cycles EQU 80H; ciklų skaičius

N_steps EQU 50H; # veiksmų

N_freq EQU 50H; konstanta, kad nustato dažnioORG 0; Tai pradžia atmintyje programą.Setup: CLRF GPIO; visi rezultatai yra nustatomas nulis

MOVLW 07H; GPIO2: 0, skaitmeninių IO

MOVWF CMCON;

BSF STATUSĄ, RP0; Grįžti į banko 1

CLRF Ansel; visi skaitmeniniai IO

CLRF TRISIO; Padaryti visų uosto išėjimas

BCF STATUSĄ, RP0; Grįžti į banko 0 - programos atminties srityje.

; CLRF 06; Išvalyti ekranas; nereikia

; GOTO SIREN; nereikiaSiren: MOVLW N_cycles; Ciklų skaičius už kiekvieną toną

MOVWF ciklų;

MOVWF Counter1;

MOVLW N_steps; skaičius laiptelių

MOVWF etapai; Failo 0F turi keletą žingsnių

MOVLW N_freq; Nustato dažnio

MOVWF Freq; Failo 0C nustato dažnioPakartotinis: MOVF Freq W; Failo 0C yra perkelta į V

MOVWF Skaitliukas; W persikėlė į failą 0D už decrementingDėl: BSF OUT; ilgis DAUG laiko pjezo

DECFSZ Skaitliukas F

GOTO ApieMOVWF Skaitliukas; W persikėlė į failą 0D vėlOff: BCF OUT; ilgis MAŽAI laiko pjezo

DECFSZ Skaitliukas, F;

GOTO IšjungtaDECFSZ Counter1, F; Ciklų skaičius už kiekvieną toną

GOTO PakartotinisDECF Freq, F; žemo ir aukšto yra sutrumpintas tono kilimas

INCF ciklų, F; Didinti ciklų skaičius

MOVF Ciklų W; Failo 0E W

MOVWF Counter1; W failą 10h

DECFSZ žingsniai, F; gruodis skaičius laiptelių

GOTO Pakartotinis;

GOTO SIRENPABAIGA
 
Ačiū VVV.

Ar šios programos darbą šioje grandinėje?<img src="http://images.elektroda.net/77_1230194732_thumb.jpg" border="0" alt=""/>
 
Kiekvienas gali padėti parašyti kodą šiam grandinės?<img src="http://images.elektroda.net/52_1230282371_thumb.png" border="0" alt=""/>
 
Jums reikės generatorius komponentai.Naudokite skaičiaus 9-3 ir specifikacija.Pasirinkite vertes, kad atitiktų jūsų pageidaujamą tonus.
Kadangi jūs nieko prijungtas prie MCLR, tada pakeiskite nustatymus: __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _EXTRC_OSC_NOCLKOUT & _MCLRE_ON & _BODEN_ON

Taigi MCLR gaus savo pullup įjungtas, todėl ją galima palikti slanki.
Atsiprašome, bet jums reikia prisijungti, kad galėtumėte peržiūrėti šį priedą

 
Ar galiu įtraukti 10K visoje MCLR & VDD?

RC neveikia.Garsas labai lėtai.Parašytas po 4 valandų 23 minučių:Ar kas nors konvertuoti šį kodą 12F675?

Expt7a.asm
; Projektas: Hee Haw Garsas
List P = 16F84
#
include <p16F84.inc>
__CONFIG 1Bh; _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC

ORG 0; Tai pradžia atmintyje programą.

Setup BSF 03,5; Grįžti į banko 1
CLRF 06; Padaryti visų uosto B produkcija
BCF 03,5; Eiti į banko 0 - programos atminties srityje.
CLRF 06; Išvalyti ekranas
GOTO Hee1

Hee1 MOVLW 0FFh; skaičius vyrių
MOVWF 14h; kilpos failą
Hee2 MOVLW 0C0h; trukmė DAUG
BSF 06,7; Įjungti pjezo
Hee3 NOP
DECFSZ 15h, 1; Sukurkite DAUG laiko
GOTO Hee3
MOVLW 0C0h; trukmė LOW
MOVWF 15h; LOW failą
BCF 06,7; Išjungti pjezo
Hee4 NOP
DECFSZ 15h, 1; Sukurti LOW laikas
GOTO Hee4
DECFSZ 14h, 1; mažinti kilpos failą
GOTO Hee2; Ar daugiau ciklų

MOVLW 0C0h; skaičius vyrių
MOVWF 14h; kilpos failą
Haw1 MOVLW 0FFh
MOVWF 15h
BSF 06,7; Įjungti pjezo
Haw3 NOP
DECFSZ 15h, 1; Sukurti LOW laikas
GOTO Haw3
DECFSZ 14h, 1; mažinti kilpos failą
GOTO Haw1; Ar daugiau ciklų
GOTO Hee1

PABAIGA

 
Taip, galite įtraukti 10k nuo MCLR į VDD.
Ką reiškia RC nebuvo darbe ir ką reiškia garsas yra per lėtas?Jums reikia patikslinti RC gauti garso pikio norite.Pradėti naudojant tą patį RC komponentus kaip pirminiame schema su 16F84.

 
Max VVV,

jei naudoti RC, garsas yra labai lėtai, net negali girdėti.Jeigu aš pašalino kondensatorius garsas ok.

Problema yra garso vyksta nuo aukšto iki žemo lygio, kaip padaryti jį nuo aukšto iki žemo lygio
ir aukšto mažas?

 
Hi guys,

I
can't get reikalaujama dažnis gali kažkas Pls help?
500/1200Hz freq reikia.Parašytas po 4 valandų 52 minučių:mano grandine.<img src="http://images.elektroda.net/24_1232008149_thumb.png" border="0" alt=""/>
 
Kodą, kad aš komandiruotiems buvo tiesiog savo kodą su sligh pakeitimus dėl 11F675.
Manau, kad problema gali būti, kad dažnis yra labai didelis ir gal kalba eina tik apie subharmonic.Aš mačiau per kodas vėl atrodo, kad 4MHz laikrodis turi būti Gerai.
Išbandykite skirtingus rezistorius ir dangtelį, norėdami pamatyti, kas vyksta.Galbūt jūsų generatorius veikia ne daugiau kaip 4MHz.Tai tik pasiūlymas aš.Kadangi jūs esate vairavimo garsiakalbio su 5Vpp signalas vienintelis būdas garso yra per silpnas yra, jei garso dažnis yra per didelis ir speker negali atkurti.

 
VVV rašė:

Kodą, kad aš komandiruotiems buvo tiesiog savo kodą su sligh pakeitimus dėl 11F675.

Manau, kad problema gali būti, kad dažnis yra labai didelis ir gal kalba eina tik apie subharmonic.
Aš mačiau per kodas vėl atrodo, kad 4MHz laikrodis turi būti Gerai.

Išbandykite skirtingus rezistorius ir dangtelį, norėdami pamatyti, kas vyksta.
Galbūt jūsų generatorius veikia ne daugiau kaip 4MHz.
Tai tik pasiūlymas aš.
Kadangi jūs esate vairavimo garsiakalbio su 5Vpp signalas vienintelis būdas garso yra per silpnas yra, jei garso dažnis yra per didelis ir speker negali atkurti.
 
Aš pasikeitė config vidaus OSC tai veikia, bet pats rezultatas.

 
Norėdami pakeisti dažnį, pakeisti N_freq; keisti kartoti kursą, keisti N_cycles.N_steps turės panašių padarinių.

 
VVV rašė:

Norėdami pakeisti dažnį, pakeisti N_freq; keisti kartoti kursą, keisti N_cycles.
N_steps turės panašių padarinių.
 
Kodas aš keista jums yra lygi viršuje.Viskas, ką jums reikia padaryti, tai pakeisti šias eilutes.Pavyzdžiui kaita:
N_Freq EQU 64H

Norėdami naudoti išorinį 20MHz krištolas, pakeisti generatorius galimybė _HF_OSC į config žodį.
Bet kodėl gi jūs padarote, kad vidaus generatorius yra stabili ir tiksli pakankamai šiai programai?Ir tai visiškai nemokamai, nes nėra jokių komponentų, kurį norite pridėti.
Plius, yra 20MHz laikrodžio leis garso pikio per didelis.

 

Welcome to EDABoard.com

Sponsor

Back
Top