Você está na página 1de 4

Implementacin de un circuito de muestreo

con un atmega328p (tarjeta Arduino) y el


compilador Bascom
1. Objetivos:
El objetivo de este experimento es familiarizarse con el compilador Bascom. El
programa consiste en hace un contador binario de 4 bits, que cuente de manera
ascendente de 0 a 15, en intervalos de un segundo, usando el timer 1.
2. Circuito a usar:

Usamos el programa proteus para simular el funcionamiento correcto del circuito,


el programa se realiza con el compilador Bascom, usando la interrupcin del timer
1 para realizar una cuenta cada 1s. Este conteo se visualiza a tras del PORTB,
recordemos que la interrupcin es una funcin aparte del programa y que esta
funcin se ejecuta cada vez que sucede la interrupcin que se da cuando el
contador del timer1 llega a tener el mismo valor del Compare1a = 15625, la
interrupcin se calcula de la siguiente manera. El arduino usa pro defecto una
frecuencia de trabajo de 16Mhz, esta frecuencia se divide entre 1024, que viene a
ser el prescaler usado en el programa, luego este resultado que seria 15625Hz la
inversa me da el periodo y serian 64uS. Como nosotros necesitamos una
interrupcin de 1s, dividimos 1/64us y este valor seria el que iria en el compare1a,
que vendra a ser Compare1a = 15625.

Ingeniera de control 1
Pgina 1
3. Diagrama de bloques:

4. Cdigo
$regfile = "m328pdef.dat"
$crystal = 16000000
Config Portb = Output
Portb = 0
Config Timer1 = Counter , Prescale = 1024 , Clear Timer = 1
Timer1 = 0
On Compare1a Muestreo1
Compare1a = 15625
Enable Compare1a
Enable Interrupts

Do
' cuerpo del programa
Loop
End

Ingeniera de control 1
Pgina 2
Muestreo1:
Timer1 = 0
Portb = Portb + 1
If Portb = 16 Then
Portb = 0
End If
Return

Ingeniera de control 1
Pgina 3
5. Implementacin

Ingeniera de control 1
Pgina 4

Você também pode gostar