Can anybody help me, kad

P

Praful

Guest
Can anybody help me, kad nuotolinio programa taip pat mygtukas valdomi diodų įjungimo / išjungimo valdiklio naudojant C kalbą ir AT89C51 ir bet RC-5 koduojamos Nuotolinio valdymo pultelis.Cause I ma pradedate uc projektus dabar aš m, mokytis 2 metai.
1) I Don t žinoti, kaip naudotis mygtukus debounce laikui.
2) Kaip priskirti nuotolinio kodo kai funkcija.
Please help me
Dėkoju iš anksto
Prafulk25 (at) rediffmail.com<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutralus" border="0" />Atsiprašome, bet jums reikia prisijungęs, kad galėtumėte peržiūrėti šį priedą

 
Ar jis atliekamas dviem etapais.Jungikliai ir LED turėtų būti paprasta.Palik nuotolinio valdymo pulto dalyje, antrojo etapo metu.Tai nėra labai paprasta pradedantiesiems.Kai gaunate jungikliai ir lemputės į darbą, tada bandykite į RC.Yra daug svetainių, kurios apibūdina jį.

 
Pirmiausia Dėka techniką ir Seadolphine2000, parodyti savo susidomėjimą man padėti.
Gerai, dabar detalių I just wanna Toggle vadovaujama naudojant kaip AT89C51 uc
su touch mygtuką ir taip pat nuotoliniu būdu, o pagal techniką pirmiausia noriu ON / OFF LED's naudojantis klaviatūra, kaip parodyta diagramoje, kuri paskutinį kartą pasiuntė prieš arba, kaip parodyta žemiau.
Prašome atsiųsti programą "C" kalba gali sukelti galiu išmokti ją.
Padėkoti visiems .......
prafulk25 (at) rediffmail.com
Atsiprašome, bet jums reikia prisijungęs, kad galėtumėte peržiūrėti šį priedą

 
I dont turėti Parengti programą dėl tavęs.Bet aš tikiu, kad jei kai kurios studijos save, turėtumėte galėti parašyti vieną lengvai.

 
<img src="http://www.edaboard.com/images/smiles/icon_question.gif" alt="Klausimas" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutralus" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_cry.gif" alt="Crying or Very sad" border="0" />
 
kuris kodas jums naudoti ir?Galiu jums patarti RC5 (Standart kodavimo Sony nuotolinis).Tai labai paprasta.Jei pateikti informaciją galiu atsiųsti C lang kodas.ir PICBASIC

 
eikite į http://www.winpicprog.co.uk ir skaityti IPS vadovėliai.rasite viską, ko reikia (klaviatūra, LED, Sony nuotolinio valdymo kodais ir tt)

 
Gerbiami ikarakaya,
rc-5 nuotolinio kodo, kurį aš, ve yra 38 DE 22 DE, 22 CE.Esu labai dėkinga jei ir man atsiųsti tokią programą "C" kalba AT89C51
Padėkoti vėl ...........

<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutralus" border="0" />
 
Nesunku vyras.Aš noriu parodyti jums keletą veiksmų, kurie man po statyti IR imtuvą vienas iš mano projektų

1.Labai lengva sukurti Gavėjas pirma, siųstuvas nėra svarbu, kaip imtuvas, nes galite įsigyti nuotolinio contol gatavų pigia kaina suderinama su IR-kodą, kurį norite naudoti ..."infrared_protocols_samples.pdf" byla parodys pavyzdžių kai protocoles.

2.Gavimo klausimais, turite nusipirkti Reciver modulį, tai yra 3 kojos IC, bet becareful, turite įsigyti imtuvą, kuris yra suderinamas su siųstuvu, kuris perduoda moduliuoti kodas konkrečius dažnio.Galite sužinoti apie ją iš biuletenio pastatytas grandinė ant šios nuorodos: ftopic138019.html

3.Before programavimas naudojant C, turite žinoti kai kurias mikrovaldiklį prepherals, ypač, išorės nutraukti ir internl Laikmatis TMR0.

4.Nurodykite gerą UC, siūlau naudoti PIC16F84, nes ji yra maža 18 smeigtukai, pigus, paprastas naudoti, labai pajėgumus, ir prieinama.

5.Naudoti gerai C lang. Siūlau CCS nuo www.ccsinfo.com, kuri yra tik PIC ucs, tačiau prieš jums gali iškoduoti ateinančius signalą į UC turite sudaryti išorės nutraukti, kuris pridedamas su Demultiplexers ir įsteigti TMR0 kurį turite naudoti taip, kad ateinančiais ženklą arba vietos laiku.

6.Galite aplankyti www.microchip.com sužinoti daugiau apie IR prietaisus.

7.Good luck: D

 
Aš atlikau projektą, pagal kurį relė turi būti galima valdyti per IR nuotolinio
bet viena problema atsirado tai jeigu mes paspauskite ir laikykite mygtuką nuotolinio Relay galima perjungti į išjungta, kad dėl to, kad ne į išjungta
Norėčiau turi veikti pati, kaip televizija nuotolinio išjungimo funkciją, tai ne, ir dėl priemonių, apie tai cant Toggle
net klavišą ir palaikykite jį.Jis veikia tik dar kartą, kai mes atleiskite mygtuką ir paspauskite dar kartą, jei ant.
Taigi prašome gali bet kuri įstaiga man tirpalui tai aš nedelsiant, bet taip pat ji slepia po uždelsto laiko
Įrangos, kurioje aš, yra At89c52 UC.ir Keil kompiliatorių ir programa yra "C" kalba.
Pavyzdyje: ---
atveju 0xAC: onf1var -;
if (onf1var <= 0)
(
ONF1ON = ~ ONF1ON;
putchar (DIGIT [ONF1ON]); ONF1 ();
for (i = 0; i <5.500; i );
)
break;

tuščia ONF1 (tuščia)
(
if (ONF1ON)
(
ONF1LED = 0;
)
if (! ONF1ON)
(
ONF1LED = 1;
)
for (i = 0; i <5.500; i );<img src="http://www.edaboard.com/images/smiles/icon_neutral.gif" alt="Neutralus" border="0" /><img src="http://www.edaboard.com/images/smiles/icon_exclaim.gif" alt="Exclamation" border="0" />
 
Gavau šį kodą iš kai kur ..... RC5 dekoderis parašyta AVR.Viltis gali būti jums naudingas
Kodas/ *

rc5dec.c 0.2.0 - Nutraukti varoma RC5 decoder for Atmel AVR LC-aisiais.

Tinklalapis: http://markh.de/rc5dec/

Copyright (C) 2003 Markas Haemmerling <rc5(at)markh.de>Ši programa yra laisva programinė įranga; galite ją platinti ir / arba modifikuoti

ji pagal GNU General Public License, paskelbti sąlygos

Free Software Foundation; arba 2 variantas licencijos arba

(Jūsų pasirinkimu) bet kurios vėlesnės redakcijos.Ši programa platinama su viltimi, kad ji bus naudinga,

bet BE JOKIOS GARANTIJOS; net numanomos

PARDUOTI arba TINKAMUMO TAM TIKRAM TIKSLUI. Žiūrėkite

GNU General Public License for more details.Jūs turėjote gauti GNU General Public License kopija

Along with this program; jei ne, parašykite Free Software

Foundation, 59 Temple Place, Suite 330, Boston, MA 02.111-1.307 JAVSukonfigūruotas už INT1 (PD3) ir Timer/Counter0.

*# include <inttypes.h>

# include <avr/signal.h>

# include <avr/interrupt.h>

# include <avr/io.h>/ / Nustatyti savo laikrodį greitis čia

# define XTAL 1000000/ / Jums gali tekti šiek tiek eksperimentuoti su šiuo

/ / Jei sunkiųjų sutrikimams, bandykite vertybės maždaug 60

/ / Pabandykite naudoti nelyginis vertės (simetriškai lygio nustatymas)

# define RC5RESAMPLE 11/ / Šis autoconfigures visus laikmatis vertybės:

# Jei XTAL <285.000

# Define PRESCALEDIV 1

# Define TIMERCR (1 <<CS00)

# Elif XTAL <2300000

# Define PRESCALEDIV 8

# Define TIMERCR (1 <<CS01)

# Elif XTAL <18000000

# Define PRESCALEDIV 64

# Define TIMERCR (1 <<CS01) | (1 <<CS00)

# else

# Define PRESCALEDIV 256

# Define TIMERCR (1 <<CS02)

# endif

# define RC5TIMERFIRST 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0,0008890))

# define RC5TIMERSECOND 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0,0004445))

# define RC5TIMERCANCEL 0x100-((uint8_t) (XTAL / PRESCALEDIV * 0,0008890))lakiųjų uint16_t rc5_code = 0;

lakiųjų uint8_t rc5_first_half;Signalas (SIG_INTERRUPT1) (

/ * Išorės nutraukti prižiūrėtojas

kraštas nuo infraraudonųjų spindulių imtuvą nustatytas.

tai laikoma, kad šiek tiek vidurio.

*

uint8_t I/ / Resample filtruoti vynai

if (MCUCR & (1 <<ISC10)) (

/ / Laukėme auga kraštas, todėl Atšaukti, jei mes mėginys žemas

for (i = RC5RESAMPLE, i, i -) if (! (Pind & (1 <<PIND3))) return;

) Else (

/ / Ir atvirkščiai ...

for (i = RC5RESAMPLE, i, i -) if ((Pind & (1 <<PIND3))) return;

)TCNT0 = RC5TIMERSECOND / / preset laikmatis pavyzdys (OVF int) per antrąjį pusmetį (3 / 4 šiek tiek laiko)

rc5_first_half = 0; / / Kitas pavyzdys bus antroji pusė

Skaičius (TIMSK, TOIE0) / / įjungti laikmatį OVF LC

CBI (GICR, INT1) / / disable ext int (šiuo handler)

)Signalas (SIG_OVERFLOW0) (

/ * Laikmatis overflow prižiūrėtojas

Pavyzdžio dabartinis nutraukti eilutę.

*

statinis uint16_t rc5_shift, rc5_temp;

statinis uint8_t rc5_bit = 0, lygis, first_level = 1;

uint8_t i = 0, temp;/ / Resample filtruoti vynai

for (temp = RC5RESAMPLE; Temp; temperatūra -) if (Pind & (1 <<PIND3)) i ;

lygis = (i> ((uint8_t) (RC5RESAMPLE / 2)));if (rc5_first_half == 2) (

/ / Tai timeout, atšaukti operaciją

Goto rc5_cancel;

) Else if (rc5_first_half == 1) (

/ / Šis pavyzdys paimtas iš pirmosios pusės bit (1 / 4 tiek laiko)

first_level = lygiu; / / išsaugoti esamą lygį

if (lygis) CBI (MCUCR, ISC10) / / dabar yra aukšto lygio, laukti, kurių kraštas

kitas Skaičius (MCUCR, ISC10) / / šiuo metu yra žemas, palaukti, kol auga kraštas

rc5_first_half = 2; / / specialus kodas, tai: Kitas OVF int yra timeout

Skaičius (GICR, INT1) / / kur kas geriau: laukti krašto;)

TCNT0 = RC5TIMERCANCEL / / ne laikmatis OVF (maždaug 1 / 2 šiek tiek laiko) turėtume timeout

) Else (

/ / Šis pavyzdys paimtas iš antrosios pusės bitų (3 / 4 šiek tiek laiko)

TCNT0 = RC5TIMERFIRST / / Kitas pavyzdys pirmąjį pusmetį (1 / 4 tiek laiko) apie kitą šiek

rc5_first_half = 1;

if (first_level! = lygio) (

/ / Differing levels -> L. Mančesteris koduotas bit aptikta

if (! rc5_bit) (

/ / Tai pirmasis bit Reset vertybės

rc5_temp = 0;

rc5_shift = 0x8000;

)

if (! lygis) rc5_temp | = rc5_shift / / žemo lygio (žemo aktyvumo metu) taip laikyti '1 '

else if (rc5_bit <2) Goto rc5_cancel / / aukšto lygio ('0 'bit) kaip startbit -> klaida

if ( rc5_bit == 14) (

/ / Priėmimas baigtas, sustabdyti operacija

rc5_code = rc5_temp;

Goto rc5_cancel;

)

if (rc5_shift == 0x0100) rc5_shift = 0x0020;

kitas rc5_shift>> = 1;

) Else (

/ / Klaida Mančesteris stream -> nutraukti operacija

Goto rc5_cancel;

)

)

return;rc5_cancel:

CBI (MCUCR, ISC10) / / kurių kraštas

Skaičius (GICR, INT1) / / ext.
Int.
įjungtas

GIFR = (1 <<INTF1) / / išvalyti galiausiai nustatyti ext.
Int.
vėliava

CBI (TIMSK, TOIE0) / / išjungimo laikmatis int.

first_level = 1; / / kaip kitą ext.
Int.
pasirodo, kurių briaunos, tarkime, kad pirmasis lygis, kaip didelis

rc5_bit = 0;

)void rc5_init (void) (

/ * Paleidimo už ext.
Int.
ir laikmačio nulį.

skambinti šį kartą aktyvuoti RC5 dekoderis.

*

TCCR0 = TIMERCR;

CBI (DDRD, PD3) / / PIN įvedimo

CBI (PORTD, PD3) / / pullup neįgaliesiems (imtuvas yra nustatyta galia)

CBI (TIMSK, TOIE0) / / laikmatis OVF neįgaliesiems.
pasireiškia įjungta ext.
Int.

Skaičius (MCUCR, ISC11) / / ext.
Int.
aktyvuota, kurių kraštas

CBI (MCUCR, ISC10);

GIFR = (1 <<INTF1) / / išvalyti ext.
Int.
vėliava

Skaičius (GICR, INT1) / / Enable ext.
Int.

)int main (void) (

/ / Pavyzdys pagrindinės programos:

rc5_init (); / / aktyvuoti RC5 nustatymoDDRB = 0xFF / / PORTB yra išėjimas

PORTB = 0x00; / / visi Pins žemas/ / Start pagrindinės linijos

for (;;) (

if (rc5_code) (

/ / ... Kai kurie veiksmai čia ...

PORTB = (uint8_t) rc5_code / / išvesties mažai baitas į PORTB

rc5_code = 0; / / išvalyti kodas

)

)

)/ / EOF

 
Praful rašė:

Aš atlikau projektą, pagal kurį relė turi būti galima valdyti per IR nuotolinis tačiau viena problema atsirado tai jeigu mes paspauskite ir laikykite nuspaudę mygtuką nuotolinio Relay galima perjungti į išjungta, kad dėl to, kad ne į išjungta ...
 

Welcome to EDABoard.com

Sponsor

Back
Top