El alcoholímetro marca II habla (6 / 7 paso)

Paso 6: El programa: PIC MCU ASM código (código de la Asamblea)

He hecho mi mejor comentar el código a lo mejor de mi capacidad, pero estoy teniendo problemas con el procesador de textos, por lo que el software comentado se puede encontrar aquí:
http://www.electroniclessons.com/talkingbreath.txt
Estoy poniendo en el documento también, pero los comentarios parecen desordenados.  Lo siento que = ()

Si alguno de ustedes quiere el. ASM archivo, por favor, no pedir!    Usé un puck ISD2 programador y el software MPLAB IDE para programar mi PIC.  Si alguno de ustedes tiene alguna pregunta, siempre estoy feliz de contestar si usted quiere saber más sobre este programador, mira aquí:
http://www.microchip.com/Stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010046&Part=DV164005

AQUÍ ESTÁ EL CÓDIGO:

;    Aquí va el código principal ***
MOVLW 0 X 40; FRECUENCIA DEL OSCILADOR INTERNO SET
MOVWF OSCCON; INICIALIZAR
MOVLW 0 X 00; CONFIGURAR PORTB QUE TODAS LAS SALIDAS
MOVWF TRISB; INICIALIZAR
CLRF PORTB; CLARO PORTB SALIDAS
MOVLW 0XFE; 00001110
MOVWF TRISA; CONFIGURAR PORTA QUE TODAS LAS SALIDAS EXCEPTO PARA RA1/2/3
CLRF PORTA; PORTA CLARO
MOVLW 0 X 05; CONFIGURAR ADC
MOVWF ADCON0; PERMITEN A ADC, PERO NO INICIAR LA CONVERSIÓN
MOVLW 0X7D; CONFIGURAR ADC
MOVWF ADCON1; RA0/AN0 = ENTRADA ANALÓGICA
MOVLW 0X0F; CONFIGURAR ADC
MOVWF ADCON2; CONFIGURAR SINCRONIZACIÓN DE CONVERSIÓN ADC (VER HOJA DE DATOS; OPCIONES DE FORMACIÓN REGISTRO ADCON0/1/2
; RA0 = PLAYBACKOUT
; RA1 = ADC EN
; RA3 = MUESTRA

INICIO:
BTFSC PORTA, RA3; Levante la resistencia mantiene RA3 alta hasta que se presiona el botón. Esta instrucción; comprueba el estado de RA3.  Salta la siguiente instrucción si está bajo (botón pulsado).
GOTO Inicio; si no ha pulsado el botón, volver a la puesta en marcha y compruebe otra vez.  ; BUCLES HASTA QUE SE PRESIONA EL BOTÓN.
MQ3CHECK:; Esta rutina actúa para comprobar la salida de la MQ3 para determinar cuando tiene; ser lo suficientemente estable como para otra medición.
CALL RUNADC; Llamando a la subrutina RUNADC, vamos a tomar un 8-bit, representación de la MQ3 salida y almacenar en la memoria
CALL LEDSIGNIFY; Llamar a subrutina que indica un estado de espera al usuario mediante LEDs en el PORTB
MOVLW 0X1E; Mueva el valor de referencia de predermined en registro W (de trabajo).
GEN5 CPFSLT; Compare el valor de vanguardia con valor ADC en GEN5.  SALTAR si contenido de WREG; es más grande que el valor ADC.
GOTO MQ3CHECK; si MQ3 no está listo para tomar una lectura confiable, tomar otra muestra
LLAMADA DE VOZ; Llamar rutina de grabación de voz
LLAME A LOOP1
LLAMADA WAITSTATE; Rutina de llamada que indica que el dispositivo está leyendo el sensor y que la usuario debe soplar hasta que el LED dejará de parpadear.
CALL RUNADC; Vuelva a ejecutar el ADC para una nueva lectura
DETERMINAR LA LLAMADA; Ejecutar una subrutina determinante que hace la matemática

RUNADC:
BSF ADCON0, GO/DONE; Iniciar la conversión - Set bit GO/DONE en registro ADCON0
PASO 2:
BTFSC ADCON0, GO/DONE; El bit GO/DONE ADCON0 se mantendrá alto hasta conversión; completada.  Compruebe si es alta, ir atrás a STEP2. Si no, continuar.
GOTO STEP2
MOVFF ADRESH, GEN5; Con seguridad mover contenido de 8 bits del registro ADC a GEN5 de registro para más adelante.
RETURN                                ; Fin de subrutina

LEDSIGNIFY:
SETF PORTB; Activar las salidas PORTB (todos los LEDs en)
LLAME A LOOP1; Llamar a subrutina de retardo Loop para transcurrir un tiempo
CLRF PORTB; Apagar todas las salidas PORTB (todos los LEDs off)
LLAME A LOOP1; Otro retraso
RETORNO; Volver de la sub-rutina de

VOZ:
BSF PORTA, RA0; Enviar señal a dispositivo ISD1218 - activar grabación (listo para la lectura de alcohol)
LLAMADA LOOP1; retraso utilizado para asegurarse de que ese chip de ISD1218 está activado correctamente
BCF PORTA, RA0; Activar desactivar señal ISD1218
RETORNO; Retorno de subrutina

WAITSTATE:; ofrecen el usuario tiempo a soplar en el sensor
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAMAR AL WAITSTATE2
LLAME A LOOP1
VOLVER

WAITSTATE2:; Parpadea el LED en orden del 1-6
MOVLW 0 X 01
MOVWF PORTB
LLAMADA LOOP3
MOVLW 0 X 02
MOVWF PORTB
LLAMADA LOOP3
MOVLW 0 X 04
MOVWF PORTB
LLAMADA LOOP3
MOVLW 0X08
MOVWF PORTB
LLAMADA LOOP3
MOVLW 0X010
MOVWF PORTB
LLAMADA LOOP3
MOVLW 0 X 20
MOVWF PORTB
LLAMADA LOOP3
CLRF PORTB
VOLVER

DETERMINAR:
MOVLW 0X24; Pasar valor a vanguardia para referencia
CPFSGT GEN5; si el valor del ADC es mayor que vanguardia, saltar siguiente instrucción, si no, usted; encontró su nivel de alcohol!
Llame LED1; si no, luz LED #1 (sin alcohol nivel detectado).
MOVLW 0X3B; Pasar valor a vanguardia para referencia
CPFSGT GEN5, si valor de ADC es mayor que la vanguardia, saltar siguiente instrucción, si no, has encontrado tu nivel de alcohol!
Llame LED2; si no enciende el LED #2 (una o dos cervezas).
MOVLW 0X52; Pasar valor a vanguardia para referencia
CPFSGT GEN5; si el valor del ADC es mayor que vanguardia, saltar siguiente instrucción, si no, usted; encontró su nivel de alcohol!
LLAMAR LED3; si no, la luz LED # 3 (dos o tres en la última hora - más o menos.  Es probable que; no debería conducir).
MOVLW 0X69; Pasar valor a vanguardia para referencia
CPFSGT GEN5; si el valor del ADC es mayor que vanguardia, saltar siguiente instrucción, si no, usted; encontró su nivel de alcohol!
LED4 LLAMADA; Pasar valor a vanguardia para referencia
CPFSGT GEN5; si el valor del ADC es mayor que vanguardia, saltar siguiente instrucción, si no, te has f; ound su nivel de alcohol!
Llame a LED5; si no, la luz LED # 5 (borracho.  No conduzca o golpear a personas que conoces que no!!!).
MOVLW 0X95; Pasar valor a vanguardia para referencia
CPFSGT GEN5; si el valor del ADC es mayor que vanguardia, saltar siguiente instrucción, si no, has encontrado, tu nivel de alcohol!
LED5 LLAMADA
LLAMAR LED6
VOLVER

LED1:
BSF PORTB, RB0; ENCENDER LED1
CALL LONGDELAY; Llame a un largo retraso
RESET                            ; Resultado muestra - programa de reset

LED2:
BSF PORTB, RB1; ENCENDER LED2
CALL LONGDELAY; Llame a un largo retraso
RESET                           ; Resultado muestra - programa de reset

LED3:
BSF PORTB, RB2; ENCENDER LED3
CALL LONGDELAY; Llame a un largo retraso
RESET                           ; Resultado muestra - programa de reset

LED4:
BSF PORTB, RB3; ENCIENDE EL LED4
CALL LONGDELAY; Llame a un largo retraso
RESET                            ; Resultado muestra - programa de reset

LED5:
BSF PORTB, RB4; ENCIENDE EL LED5
CALL LONGDELAY; Llame a un largo retraso
RESET                            ; Resultado muestra - programa de reset

LED6:
BSF PORTB, RB5; ENCIENDE LED6
CALL LONGDELAY; Llame a un largo retraso
RESET                            ; Resultado muestra - programa de reset

LONGDELAY:
MOVLW 0 X 05; Mover un valor decimal de 10 en vanguardia para referencia
MOVWF GEN6; Guardar valor de vanguardia en GEN6
LONGDELAY2:
LLAME A LOOP1; Retardo de llamada
DECFSZ GEN6; decremento valor GEN6, omitir si GEN6 = 0
GOTO LONGDELAY2; Repita el retraso hasta que valor de GEN6 es cero
RETURN                          ; Retorno de subrutina

LOOP1:; sub-rutina de retardo loop que trabaja con rutina LOOP2.  Introduzca valores; en 3 registros en loop1 (ver Loop2)
MOVLW 0 X 00
MOVWF GEN1
MOVLW 0XFF
MOVWF GEN2

LOOP2:; Valores de la cuenta regresiva de LOOP1 hasta 0
DECFSZ GEN1, 1
GOTO LOOP2
DECFSZ GEN2, 1
GOTO LOOP2
VOLVER

LOOP3:; Subrutina de tiempo de retardo se alternan
MOVLW 0X19
MOVWF GEN2
LLAME A LOOP2
VOLVER

VOLVER

;******************************************************************************
; Fin del programa

Artículos Relacionados

SENTIDO: Inteligente dispositivo de análisis de aliento (un alcoholímetro inteligente)

SENTIDO: Inteligente dispositivo de análisis de aliento (un alcoholímetro inteligente)

Hola a todos,Soy Geeve George 15 años fabricante/electrónica Hobbyist.I amor visión por computador, desarrollo Android y algoritmo de Design.I actualmente estoy en 11 grado estudiante de informática en la escuela del indio de Little Rock. :)Encontrar
Remix de alcoholemia 2.0 (Alcohol metro)

Remix de alcoholemia 2.0 (Alcohol metro)

Mensaje: Por favor hacer tu ciudad limpia y decir NO a las bolsas de plástico, utiliza bolsas de papel reciclado. PLANTAR MÁS ÁRBOLES Y HACER DE ESTA TIERRA VERDE. Utilizar viejas piezas de reciclaje para proyectos y ahorrar dinero y medio ambiente.
Alcoholímetro Sensor

Alcoholímetro Sensor

Mientras que ya hay sistemas de interbloqueo de ignición para automóviles, son extremadamente caros y difícil de instalar en los vehículos, debido a la falta de universalidad en su diseño. Nuestro proyecto abordará estos temas, proporcionando al usua
La alcoholemia hablando

La alcoholemia hablando

*** información adicional en http://droidalyzer.com/talkingbreathalyzer/ ***Video de la alcoholemia hablando en acción:Más detalles sobre la alcoholemia hablando:Un alcoholímetro personalizable que habla y te dice cuánto has tenido que beber. También
Cómo hacer manos libres las puntas de prueba de roto sondas multímetro

Cómo hacer manos libres las puntas de prueba de roto sondas multímetro

Como aficionado a los hobbys, tendemos a utilizar multímetros baratos, a diferencia de los profesionales que prefieren utilizar multímetros marca, nuestras necesidades son limitadas a decenas de voltios y amperios no más.Cuestión que he enfrentado du
Droidalyzer - una fuente abierta, Bluetooth accesorios de detector de alcohol para teléfonos Android

Droidalyzer - una fuente abierta, Bluetooth accesorios de detector de alcohol para teléfonos Android

*** versión del producto de la Droidalyzer ahora disponible de Seeedstudio ***El Droidalyzer es un accesorio de detector de alcohol de Bluetooth para los teléfonos Android de código abierto. Par el Bluetooth habilitado Droidalyzer para tu teléfono An
Detección de alcohol mediante Linkit uno

Detección de alcohol mediante Linkit uno

Un alcoholímetro es un dispositivo para la estimación de sangrecontenido de alcohol (BAC) de una muestra de aliento. Analizadores de aliento no miden directamente el contenido de alcohol de la sangre o la concentración, que requiere el análisis de un
Probador de alcohol con luces LED

Probador de alcohol con luces LED

INTRODUCCIÓNEn este proyecto voy a explicar a usted cómo crear un alcoholímetro para estimar contenido de alcohol de sangre de una muestra de aliento utilizando un sensor de Gas de Alcohol MQ-3 y usando VIPER o Sublime Text a la Junta Directiva del p
Bata de laboratorio LED interactivo

Bata de laboratorio LED interactivo

este es un instructivo para las batas de laboratorio LED interactiva, en Autodesk University.¡ Mira los videos a continuación! El primero es una demostración de los colores por los botones. La segunda es una demostración de la alcoholemia. (esto se e
Elixir vulgar y... SANGRE!

Elixir vulgar y... SANGRE!

Remolacha fresca es cocido, jugo, fermentado y destilado entonces para producir una bebida de alcohol alcohol degustación muy agradable.Siempre estoy tratando de pensar en cosas útiles que hacer con los cultivos crecen y remolacha es muy fácil de cul
Modelos para principiantes

Modelos para principiantes

este tutorial le enseñará las técnicas básicas, materiales y herramientas que necesitarás para empezar a modelar.Así que vamos a comenzar!!!!!!Paso 1: modelización Modelado sobre la construcción de réplicas de la escala de los vehículos como aviones,
DIY Magic Mirror y Photobooth - Arduino Powered

DIY Magic Mirror y Photobooth - Arduino Powered

un kit montado para este proyecto ya está disponible enSeeedstudio.comMás información en este proyecto en http://diymagicmirror.com El software para este proyecto es de código abiertoQue es la más bella de todas ellas. Haga su propio Magic Mirror y d
El ecualizador de gráfico de alcoholemia de simulador de relámpago - Arduino Powered

El ecualizador de gráfico de alcoholemia de simulador de relámpago - Arduino Powered

ACTUALIZACIÓN: Una versión portable de la alcoholemia que habla aquí es http://talkingbreathalyzer.com ***Las tiras LED están montadas en un trellace al aire libre que funciona como un simulador de rayos, alcoholemia al aire libre, ecualizador gráfic
Mapeo de las tripas de un teclado

Mapeo de las tripas de un teclado

¡ Hola!Este es un instructivo sobre cómo asignar las tripas de un teclado. Más concretamente, vamos a tratar de encontrar los contactos que conectan entre sí para crear cada pulsación única. Para los que menos versado en el funcionamiento de funciona