Saludos. Soy nuevo aquí y en la electrónica.
Tengo un código para hacer un termómetro con el LM35 y un PIC16F88
El caso es, que tengo todo bien pero quisiera incluir un detalle, y es que necesito poner un delay al adc para evitar el salto de un grado a otro tan rápido que se pueda ver un parpadeo que de una lectura errónea.
Estoy usando mikroBasic Pro for PIC y el código lo encontré en Internet.
	
	
	
		
				
			Tengo un código para hacer un termómetro con el LM35 y un PIC16F88
El caso es, que tengo todo bien pero quisiera incluir un detalle, y es que necesito poner un delay al adc para evitar el salto de un grado a otro tan rápido que se pueda ver un parpadeo que de una lectura errónea.
Estoy usando mikroBasic Pro for PIC y el código lo encontré en Internet.
		PHP:
	
	program DigThermo
\'Programmer: Syed Tahmid Mahbub
\'Compiler: mikroBASIC PRO for PIC v3.20
\'Target PIC: 16F88 - 18pin DIP
\'Configuration: XT OSC, PWRTE OFF, WDT OFF, RA5 - MCLR OFF, BOR OFF, LVP OFF, CP OFF, CPD OFF, DEBUG OFF, CKMNE OFF, INTEXTSW OFF
dim data7, num7 as byte
dim temperature as longword
dim digit as byte[3]
sub procedure send7 (dim value, seven as byte) \'Common Anode Displays (2 7segments)
    PORTA = 0
    select case value
           case 0 data7 = $C0
           case 1 data7 = $F9
           case 2 data7 = $A4
           case 3 data7 = $B0
           case 4 data7 = $99
           case 5 data7 = $92
           case 6 data7 = $82
           case 7 data7 = $F8
           case 8 data7 = $80
           case 9 data7 = $90
    end select
    PORTB = data7 \'send temperature
    select case seven
           case 1 num7 = 2
           case 2 num7 = 4
           case 3 num7 = 8
    end select
    PORTA = num7 \'choose which 7segment
end sub
sub procedure GlobInit
    TRISA = 1
    TRISB = 0
    PORTA = 0
    PORTB = 0
    ANSEL = 1 \'AN0 analog
    CCP1CON = 0 \'PWM off
    CMCON = 7 \'Comparator off
end sub
sub procedure delay2ms
    delay_ms(2)
end sub
main:
     GlobInit
     while true
           temperature = (ADC_Read(0) * 500) >> 10
           digit[0] = temperature div 100
           digit[1] = (temperature div 10) mod 10
           digit[2] = temperature  mod 10
           send7(digit[0],1)
           delay2ms()
           send7(digit[1],2)
           delay2ms()
           send7(digit[2],3)
           delay2ms()
     wend
end
			
				Última edición por un moderador: 
			
		
	
								
								
									
	
								
							
							 
   
				 
						 
 
		 
 
		 
 
		 
 
		 
 
		