Bienvenidos

Por : Jefferson Tipán domingo, 5 de enero de 2014

Bascom AVR

 Nombre 
 Opción 1
 Opción 2
 Vídeo

Xloader
Variables e impresión por pantalla


 1. Luxómetro con Transistores

2. Luxómetro con cd 4511

3. Luxómetro con 4511 y 328p

4. Luxómetro con 4511 y 328p con pulsador
Luxómetro Con Display de 7 segmentos
































{ 2 comentarios... read them below or Comment }

  1. hola Jefferson Tipán , como estas ? Estoy realizando un luxómetro
    con 4511 y 328p con pulsador como proyecto similar al número 4 publicado en este blog , este debe prenderse mediante un pulsador y apagarse si el mismo valor se mantiene por 30 segundos , como se lo podría agregar a mi código ? desde ya muchas gracias y saludos.


    $regfile = "m328pdef.dat"
    $crystal = 40000000
    $baud = 9600

    Config Portd = Output
    Config Portb = &B11
    Sec1 Alias Portb.0
    Sec2 Alias Portb.1

    Sec1 = 1
    Sec2 = 1
    Portd = 0
    '-------ADC-------------------------------------------------------

    Config Adc = Single , Prescaler = Auto , Reference = Avcc

    Start Adc


    '-------7_Segmentos-----------------------------------------------

    Dim Unidad As Byte , Decimal As Byte
    Dim Resultado As Byte , Dato As Word ,

    Dato = 0

    '-------otras variables----------------------------------------------

    Dim W As Word , Dato2 As Word , T As Word , Ok As Byte , A As Byte

    T = 0
    Ok = 0
    A = 1
    Do

    Gosub Analizar
    Gosub Presenta
    Dato2 = Dato

    While A = 1

    Gosub Analizar
    If Dato = Dato2 Then

    If T <= 300 And Ok = 0 Then

    Sec1 = 0
    Sec2 = 0
    Ok = 1

    Else

    Wait 1
    Incr T

    End If

    Else

    Dato2 = Dato
    Gosub Presenta
    Ok = 0
    T = 0

    End If

    Wend

    Loop

    Analizar:

    W = Getadc(0)

    W = W / 10
    If W > 99 Then
    W = 99
    End If
    Dato = W

    Return

    Presenta:

    Decimal = Dato / 10
    Unidad = Dato Mod 10
    Rotate Decimal , Left
    Rotate Decimal , Left
    Rotate Decimal , Left
    Rotate Decimal , Left
    Resultado = Decimal + Unidad
    Portd = Resultado

    Return

    ResponderEliminar
  2. aquí trate de basarme en tu cogido y logre que si la misma variación se mantiene por 30 seg se apagan los display , pero no pude lograr hacer que se encienda con un pulsador . como que tu realizaste

    Gosub Analizar
    Gosub Presenta
    Dato2 = Dato

    While A = 1

    Gosub Analizar
    If Dato = Dato2 Then

    If T <= 300 And Ok = 0 Then

    Sec1 = 0
    Sec2 = 0
    Ok = 1

    Else

    Wait 1
    Incr T

    End If

    Else

    Dato2 = Dato
    Gosub Presenta
    Ok = 0
    T = 0

    End If

    Wend

    Loop


    --------------------------------------------------------------------------------

    Do


    If P1 = 0 Then
    For I = 1 To 255 ' para que funcione el programa un tiempo determinado
    For J = 1 To 25 ' calibrado para que comprueba la informacion cada 5 segundo, se puede modificar teniendo el cuenta las repeticiones y el tiempo
    D1 = 1
    D2 = 1
    Gosub Luxo
    Gosub Separa
    Gosub Presenta
    Waitms 200 'tiempo de espera para actualizar la informacion del display
    Next

    If W = Dato Then
    Goto Apagado ' apaga los displays si la informacion se mantiene durante 5 segundos
    End If
    Dato = W

    Next
    Else
    D1 = 0
    D2 = 0
    End If



    Loop

    Apagado:
    D1 = 0
    D2 = 0
    Return

    Luxo:
    W = Getadc(0)
    W = W / 10
    If W > 99 Then
    W = 99
    End If
    Print "i= " ; I ; " j= " ; J ; " w= " ; W ; " dato= " ; Dato
    Return

    -------------------------------------------------------------------------

    ResponderEliminar

- Copyright © Jefferson-tutoriales - Date A Live - Powered by Blogger - Designed by Johanes Djogan -