PIC Siren Generator

M

me_guitarist

Guest
Kan iemand deze code omzetten naar suite in PIC12F675?

; Project: Siren Geluid
Lijst P = 16F84
#
include <p16F84.inc>
__CONFIG 1Bh; _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC

ORG 0; Dit is het begin van het geheugen voor het programma.
Setup BSF 03,5; Ga aan Bank 1
CLRF 06; Maak alle poort B-uitgang
BCF 03,5; Ga naar Bank 0 - het programma geheugen gebied.
CLRF 06; Helder display
GOTO Siren

Siren MOVLW 80h, aantal cycli voor elke toon
MOVWF 0Eh
MOVWF 10h
MOVLW 50h; Aantal stappen
MOVWF 0Fh; Bestand 0F houdt het aantal stappen
MOVLW 50h; Bepaalt frequentie
MOVWF 0Ch; Bestand 0C bepaalt de frequentie

Herhalen MOVF 0C, 0; Bestand 0C is verplaatst naar W
MOVWF 0D; W is verplaatst naar bestand 0D voor decrementing

Op BSF 06,7; Lengte van de hoogste tijd om Piëzo
DECFSZ 0D, 1
GOTO Op
MOVWF 0DH; W is verplaatst naar bestand 0D weer

Uit BCF 06,7; Lengte LOW tijd om Piëzo
DECFSZ 0D, 1
GOTO Off
DECFSZ 10h, 1, aantal cycli voor elke toon
GOTO Herhaal
DECF 0C, 1; High en Low wordt verkort-tone stijgt
INCF 0E, 1; Toename van het aantal cycli
MOVF 0E, 0; Bestand 0E naar W
MOVWF 10h; W om 10h
DECFSZ 0F, 1, aantal stappen
GOTO Herhaal
GOTO Siren

EINDE

 
Iedereen kan helpen om na enkele PIC sirene schematische?
Hopelijk is 12F675 als ik wat van.

 
Hier ga je.
Merk op dat de oscillator nog RC, als in het oorspronkelijke ontwerp, zodat u deze eenvoudig kunt aanpassen van de toon.
GPIO0 is de uitgang.Als u niet willen dat veranderen.
Code:

; Project: Siren Geluid

Lijst 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; poort pin gedefinieerd als de daadwerkelijke productie; VARIABELEN

Cycli EQU 20H; bezit # cycli

Stappen EQU 21h; bezit # stappen

Freq EQU 22h; bezit frequentie variabele

Teller EQU 23h; variabele gebruikt als teller

Counter1 EQU 24H; variabele gebruikt als teller; Constanten

N_cycles EQU 80H; aantal cycli

N_steps EQU 50H; # stappen

N_freq EQU 50H; constante die bepaalt frequentieORG 0; Dit is het begin van het geheugen voor het programma.Setup: CLRF GPIO; alle uitgangen op nul

MOVLW 07u; GPIO2: 0 zijn digitale IO

MOVWF CMCON;

BSF STATUS, RP0; Ga aan Bank 1

CLRF Ansel; alle digitale IO

CLRF TRISIO; Maak alle poort uitgang

BCF STATUS, RP0; Ga naar Bank 0 - het programma geheugen gebied.

; CLRF 06; Duidelijke display; niet nodig

; GOTO Siren; niet nodigSiren: MOVLW N_cycles, aantal cycli voor elke toon

MOVWF Cycles;

MOVWF Counter1;

MOVLW N_steps; aantal stappen

MOVWF Stappen; Bestand 0F houdt het aantal stappen

MOVLW N_freq; Bepaalt frequentie

MOVWF Freq; Bestand 0C bepaalt de frequentieHerhaal: MOVF Freq, W; Bestand 0C is verplaatst naar W

MOVWF Teller; W is verplaatst naar bestand 0D voor decrementingOp: BSF OUT; Lengte van de hoogste tijd om Piëzo

DECFSZ Counter, F

GOTO OpMOVWF Teller; W is verplaatst naar bestand 0D weerUit: BCF OUT; Duur van het LOW-tijd tot Piëzo

DECFSZ Counter, F;

GOTO OffDECFSZ Counter1, Vrouw, aantal cycli voor elke toon

GOTO HerhaalDECF Freq, F; High en Low wordt verkort-tone stijgt

INCF Cycles, F; Toename van het aantal cycli

MOVF Cycles, W; Bestand 0E naar W

MOVWF Counter1; W om 10h

DECFSZ Trappen, F; dec Aantal stappen

GOTO herhalen;

GOTO SirenEINDE
 
Dankzij VVV.

Kan dit programma werken op dit circuit?<img src="http://images.elektroda.net/77_1230194732_thumb.jpg" border="0" alt=""/>
 
Iedereen kan helpen bij het schrijven van een code voor dit circuit?<img src="http://images.elektroda.net/52_1230282371_thumb.png" border="0" alt=""/>
 
U moet de oscillator componenten.Gebruik figuur 9.3 in de notitie.Kies de waarden aan uw gewenste tonen.
Aangezien je niets aangesloten op MCLR, dan veranderen de configuratie naar: __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _EXTRC_OSC_NOCLKOUT & _MCLRE_ON & _BODEN_ON

Op die manier de MCLR krijgt haar pullup ingeschakeld, zodat u kunt laten zweven.
Sorry, maar je moet inloggen om dit onderdeel te bekijken koppelingseisen

 
Kan ik een 10K in MCLR & VDD?

De RC heeft niet werken.Geluid zeer traag.Toegevoegd na 4 uur 23 minuten:Kan iemand deze code omzetten voor 12F675?

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

ORG 0; Dit is het begin van het geheugen voor het programma.

Setup BSF 03,5; Ga aan Bank 1
CLRF 06; Maak alle poort B-uitgang
BCF 03,5; Ga naar Bank 0 - het programma geheugen gebied.
CLRF 06; Helder display
GOTO Hee1

Hee1 MOVLW 0FFh; Aantal lussen
MOVWF 14h; De lus bestand
Hee2 MOVLW 0C0h; Duur van HOGE
BSF 06,7; Zet piëzo
Hee3 NOP
DECFSZ 15h, 1; Maak de HOGE tijd
GOTO Hee3
MOVLW 0C0h; Duur van het LOW
MOVWF 15h; De LOW-bestand
BCF 06,7; Zet piëzo
Hee4 NOP
DECFSZ 15h, 1; Maak het LOW tijd
GOTO Hee4
DECFSZ 14u, 1; Decrement de lus bestand
GOTO Hee2; Doe meer cycli

MOVLW 0C0h; Aantal lussen
MOVWF 14h; De lus bestand
Haw1 MOVLW 0FFh
MOVWF 15h
BSF 06,7; Zet piëzo
Haw3 NOP
DECFSZ 15h, 1; Maak het LOW tijd
GOTO Haw3
DECFSZ 14u, 1; Decrement de lus bestand
GOTO Haw1; Doe meer cycli
GOTO Hee1

EINDE

 
Ja, u kunt een 10k uit MCLR aan Vdd.
Wat bedoel je de RC niet werkte en wat denkt u: het geluid is te traag?U moet voor het aanpassen van de RC om het geluid toonhoogte je wilt.Begin met het gebruik van de RC dezelfde onderdelen als in het oorspronkelijke schema met de 16F84.

 
Hi VVV,

als ik het gebruik van de RC, het geluid zijn zeer traag, zelfs niet kunnen horen.Als ik het verwijderen van de condensator het geluid is ok.

Het probleem is het geluid gaat van laag naar hoog, hoe te maken van laag naar hoog
en hoog naar laag?

 
Hi guys,

Ik kan niet de vereiste freq pls kan iemand helpen?
500/1200Hz freq nodig.Toegevoegd na 4 uur 52 minuten:mijn route.<img src="http://images.elektroda.net/24_1232008149_thumb.png" border="0" alt=""/>
 
De code die ik gedetacheerd was gewoon uw code met sligh wijzigingen voor de 11F675.
Ik denk dat het probleem kan zijn dat de frequentie is zeer hoog en misschien de spreker alleen draait op een subharmonic.Ik keek naar de code opnieuw het lijkt dat een 4Mhz klok moet op OK.
Probeer variatie van de weerstand en de dop, om te zien wat er gebeurt.Misschien is uw oscillator draait op veel meer dan 4Mhz.Dat is de enige suggestie die ik heb.Omdat u rijdt de spreker met een 5Vpp signaal de enige manier waarop uw geluid is te zwak is als het geluid frequentie te hoog is en de speker niet kunnen reproduceren.

 
VVV schreef:

De code die ik gedetacheerd was gewoon uw code met sligh wijzigingen voor de 11F675.

Ik denk dat het probleem kan zijn dat de frequentie is zeer hoog en misschien de spreker alleen draait op een subharmonic.
Ik keek naar de code opnieuw het lijkt dat een 4Mhz klok moet op OK.

Probeer variatie van de weerstand en de dop, om te zien wat er gebeurt.
Misschien is uw oscillator draait op veel meer dan 4Mhz.
Dat is de enige suggestie die ik heb.
Omdat u rijdt de spreker met een 5Vpp signaal de enige manier waarop uw geluid is te zwak is als het geluid frequentie te hoog is en de speker niet kunnen reproduceren.
 
Ik heb de config aan interne OSC het werk, maar hetzelfde resultaat.

 
Als u de frequentie, verandering N_freq; om de herhaal-tarief, wijziging N_cycles.N_steps zal een soortgelijk effect.

 
VVV schreef:

Als u de frequentie, verandering N_freq; om de herhaal-tarief, wijziging N_cycles.
N_steps zal een soortgelijk effect.
 
De code die ik heb bewerkt voor u is gelijk aan de top.Alles wat u hoeft te doen is verandering die lijnen.Bijvoorbeeld veranderingen:
N_Freq EQU 64H

Om gebruik te maken van een externe 20MHz kristal, de oscillator optie _HF_OSC in de config woord.
Maar waarom zou je dat doen, omdat de interne oscillator is stabiel en nauwkeurig genoeg is voor deze toepassing?En het
is helemaal gratis,
want er zijn geen onderdelen aan toe te voegen.
Plus, een 20MHz klok zal het geluid toonhoogte te hoog.

 

Welcome to EDABoard.com

Sponsor

Back
Top