Olá. Gostaria de ter alguma ajuda com a elaboração de cronómetro digital recorrendo a um uprocessador 89S51 da Atmel.
O objectivo é que a contagem (em tempo real) seja apresentada num LCD através de interface RS232 ou algo assim.
Neste momento ainda estou um pouco a zeros, mas para já deparo-me com dilema de usar ou não um RTC para fornecer o sinal de relógio, ou fazê-lo através do relógio do próprio 8051.
Obrigado.
Com os melhores cumprimentos,
Miguel Guerreiro
Cronómetro Digital com ATMEL 89S51
-
- Faça a sua apresentação
- Mensagens: 4
- Registado: 07 jun 2010, 20:41
- Localização: Santiago do Cacém
Cronómetro Digital com ATMEL 89S51
_______________________________________________________________________________
OET nº19710
DGEG nº80443
OET nº19710
DGEG nº80443
-
- Faça a sua apresentação
- Mensagens: 4
- Registado: 07 jun 2010, 20:41
- Localização: Santiago do Cacém
Re: Cronómetro Digital com ATMEL 89S51
O objectivo é usar-mos a linguagem C. Mas não sei até que ponto somos obrigados a usar apenas este tipo de linguagem.
_______________________________________________________________________________
OET nº19710
DGEG nº80443
OET nº19710
DGEG nº80443
- asena
- Velha Guarda
- Mensagens: 152
- Registado: 26 abr 2008, 19:00
- Localização: Lundin Links, Scotland
- Contacto:
Re: Cronómetro Digital com ATMEL 89S51
Dependendo do frequência a que corre o 8051, se não for necessária muita exactidão, basta o oscilador interno. Poupa-se no RTC.
Não tens exemplos dados pelo professor, de aplicações simples?
É construir a partir daí.
Se só tens q enviar a informação por USART, então só tens que saber de quanto em quanto tempo é que envias.
Depois do outro lado tanto faz quem a vai ler.
Não tens exemplos dados pelo professor, de aplicações simples?
É construir a partir daí.
Se só tens q enviar a informação por USART, então só tens que saber de quanto em quanto tempo é que envias.
Depois do outro lado tanto faz quem a vai ler.
Cumprimentos,
Sérgio Sena
Projectos e Sistemas Electrónicos à medida - Electronics Design Craftsmanship
Instagram
LinkedIn
Sérgio Sena
Projectos e Sistemas Electrónicos à medida - Electronics Design Craftsmanship
-
- Faça a sua apresentação
- Mensagens: 4
- Registado: 07 jun 2010, 20:41
- Localização: Santiago do Cacém
Re: Cronómetro Digital com ATMEL 89S51
Ok. Obrigado pela dica.
Hoje na aula acabei por ter uma ajuda e já deu para perceber algumas coisas.
O Xtal que estamos a usar é de 11.0592MHz. E na porta série usamos 9400Hz.
Aquilo que vou fazer é uma contagem de 10 ms (1 centésimo) e em cada contagem acrescento um centésimo. Depois é fazer contas a partir daí para os restantes valores. (décimos de segundo, segundos, etc.)
Eu tenho alguns excertos de programas e com que vi hoje talvez dê para me safar. Mas dá sempre jeito uma ajuda.
Obrigado.
Hoje na aula acabei por ter uma ajuda e já deu para perceber algumas coisas.
O Xtal que estamos a usar é de 11.0592MHz. E na porta série usamos 9400Hz.
Aquilo que vou fazer é uma contagem de 10 ms (1 centésimo) e em cada contagem acrescento um centésimo. Depois é fazer contas a partir daí para os restantes valores. (décimos de segundo, segundos, etc.)
Eu tenho alguns excertos de programas e com que vi hoje talvez dê para me safar. Mas dá sempre jeito uma ajuda.

Obrigado.
_______________________________________________________________________________
OET nº19710
DGEG nº80443
OET nº19710
DGEG nº80443
Re: Cronómetro Digital com ATMEL 89S51
Olá,
No caso do 89S51 o cilo de máquina = f(HZ) cirstal/12
no teu caso 11.0592MHz/12=0,9216Mhz ) (921600)Hz
Com um Timer podes ter uma interrupção sempre com um tempo certo
com formula T (tempo)=2"N (numero de bits programados no timer)*12/f(oscilador em Hertz)
Se carregares o timer com o valor de 921600 o valor de cada interrupção será de 100 ou seja ao fim de
100 interrupções terás 1 segundo.
Podes utilizar o Timer2 neste caso do 89S51 tem dois de 16bits cada .
O teu programa terá de ser escrito dentro do cilco deste timer.
Um abraço
No caso do 89S51 o cilo de máquina = f(HZ) cirstal/12
no teu caso 11.0592MHz/12=0,9216Mhz ) (921600)Hz
Com um Timer podes ter uma interrupção sempre com um tempo certo
com formula T (tempo)=2"N (numero de bits programados no timer)*12/f(oscilador em Hertz)
Se carregares o timer com o valor de 921600 o valor de cada interrupção será de 100 ou seja ao fim de
100 interrupções terás 1 segundo.
Podes utilizar o Timer2 neste caso do 89S51 tem dois de 16bits cada .
O teu programa terá de ser escrito dentro do cilco deste timer.
Um abraço