electrònica fòrum

Regles | Enviaments recents | RSS tema | Cercar | Registre | Entrar

temps d'espera a 89C51/89C52


Post new topic Reply to topic EDAboard.com Fòrums de discussió -> Microcontrollers -> temps d'espera a 89C51/89C52
Autor Missatge
semiconductors



Antiguitat: 04 de abril 2003
Posts: 294
Ajudat: 3
Lloc: França


Post 27 abril 2005 18:02

temps d'espera a 89C51/89C52


Estic assignat un exercici per a un programa d'AT89C51 per al projecte de portes automàtiques.

Estic davant d'un problema: TIMEOUT

si el sensor detecta la gent externa disponible, s'obrirà la porta i esperant el sensor intern detecta les persones disponibles. Després de 20 anys, si no es detecta cap senyal, automàticament es tanqui la porta i tornar al principi del programa (en espera de la senyal de la porta exterior.

amb AT89C51, estic de programació en C, però no sé com dissenyar TIMEOUT algorisme amb AT89C51 (20 segons).

Algú em pot recomanar solucions?
Tornar al principi
IANP



Antiguitat: 05 de octubre 2004
Missatges: 6.490
Ajudat: 1542
Ubicació: Costa Oest


Post Abril 28, 2005 1:25

Re: temps d'espera a 89C51/89C52


Utilitzeu timer1 a MODE1 (comptador de 16 bits) per explicar (Fclock/12): FFFFh.
Si la plataforma és 11.0952MHz la interrupció es produirà cada (11095200/12) / 65536 = 14,108 .. vegades per segon.
Crear TimeH variable i TimeL.
Augmentar TimeHTimeL cada interrupció. Per arribar als 20 segons que serà necessari ≈ 282 interrupcions i que deixarà als TimeHTimeL = 01 1A (h) = 0282 (d).
Ara vostè pot restablir 20s comptador (TimeHTimeL) i executar el que s'ha de fer després de 20 anys ..

Bona sort ..
Tornar al principi
Google
AdSense
Google Adsense




Post Abril 28, 2005 1:25

Anuncis




Tornar al principi
mrcube_ns



Antiguitat: 10 abril 2002
Missatges: 429
Ajudat: 11
Ubicació: costat fosc de la Lluna


Post 28 abril 2005 21:17

Re: temps d'espera a 89C51/89C52


IANP és completament correcte,

però, recomano utilitzar el cristall de 12MHz, de manera que un cicle es 1us.

A continuació, utilitza timer 1 com temporitzador de 16 bits i 50 ms fet temporitzador (T1H = 0x3C T1L = 0xAF), per la qual cosa té 20 càrrecs en una segona 20seg => als rics que necessita exactament 400 càrrecs.


Salutacions cordials,


Mr.Cube
Tornar al principi
Hero



Antiguitat: 06 de març 2002
Posts: 145
Ajudat: 2


Post Abril 29, 2005 3:51

Re: temps d'espera a 89C51/89C52


Hola,

Per al període de temps que necessita Software lliure.

Ús de maquinari 16 bits per a la lluita contra la generació de intterupt diaris.

A la interrupció del servei de rutina conjunt de variables CNT_FLAG.

CNT_FLAG unsigned char;
CNT llarg sense signe;
TIMEOUT unsigned char;
unsigned char TIMEOUT_ENABLED;

# Define TIMEOUT_THRESHOLD 1.024

interrupt_routine void ()
(
CNT_FLAG = 1;
)

void main ()
(
init ();

while (1) (
...
cnt_process ();
sleep (); / / anar a la manera d'espera
)
)

cnt_process void ()
(
if (CNT_FLAG) (
CNT_FLAG = 0;
if (TIMEOUT_ENABLED) (
if (i <TIMEOUT_THRESHOLD)
i ;
TIMEOUT = (CNT == TIMEOUT_THRESHOLD);
)
)
)

En arribar a la CNT TIMEOUT_THRESHOLD TIMEOUT s'establirà.

Una altra solució és la CNT increment en la rutina d'interrupció

interrupt_routine void ()
(
if (TIMEOUT_ENABLED) (
if (i <TIMEOUT_THRESHOLD)
i ;
TIMEOUT = (CNT == TIMEOUT_THRESHOLD);
)
)
Tornar al principi
Versió en àrab Versió búlgara Versió en català Versió txeca Versió danesa Versió alemanya Versió grega Versió Anglès Versió en espanyol Versió finlandesa Versió francesa Versió hindi Versió croat Versió indonèsia Versió italiana Versió hebrea Versió en japonès Versió coreana Versió lituana Versió letona Versió neerlandesa Versió noruega Versió polonesa Versió en portuguès Versió romanesa Versió russa Versió eslovaca Versió eslovena Versió sèrbia Versió sueca Versió en tagal Versió d'Ucraïna Versió en vietnamita Versió en xinès
Post new topic Reply to topic EDAboard.com Fòrums de discussió -> Microcontrollers -> temps d'espera a 89C51/89C52
Pàgina 1 de 1

subj

text

Totes les hores són GMT 1 Hora
Temes similars:
ús de la calculadora 89C51 o 89C52 (6)
diferència en 89C51 atmel i 89C52 (9)
error de temps d'espera en VB (1)
Codi C (Tesitng un temps d'espera de maquinari) (7)
SIM700D: temps d'espera de les comandes AT? (3)
89C52 interfície en sèrie (3)
89C52 d'interfície amb el PC (5)
89C52 problema de disseny (4)
Codi de LCD 89C52 (5)
Consulta sobre 89C52 .... (2)


Abús | | Administrador | | Moderadors | | Suport a nosaltres | | Mapa del lloc
RSS tema