|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - thevy
Páginas: [1]
1
« en: Miércoles 20 de Febrero de 2008, 17:42 »
Este programa supuestamente envia y recibe un voltaje,, pero me da un error en el config, y no se por que? ;------------------------------------------------------------ ; Código assembler generado por Niple V5.2.1 ; Proyecto: Voltimetro Digital ; Autor: --- ; Fecha: 07/02/2008 ; PIC: 16F88 ; Velocidad de reloj: 4 Mhz ; Descripcion: Medir un voltaje cada segundo y mostrar el resultado. enviarlo por el puerto serial ;------------------------------------------------------------ LIST P=PIC16F88 _XT_OSC equ 0x3FFD _DEBUG_OFF equ 0x3FFF _WDT_OFF equ 0x3FFB _PWRTE_ON equ 0x3FF7 _BODEN_OFF equ 0x3FBF _LVP_OFF equ 0x3F7F _CPD_OFF equ 0x3FFF _CP_OFF equ 0x3FFF ;_WRT_ENABLE_OFF equ 0x3DFF __config _XT_OSC & _DEBUG_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF ;------------------------------------------------------------ ; Declaración de Registros ;------------------------------------------------------------ w equ 0x0000 status equ 0x0003 portb equ 0x0006 pclath equ 0x000a adresh equ 0x001e adcon0 equ 0x001f voltaje_1 equ 0x0021 voltaje_2 equ 0x0022 _np_temp1 equ 0x0023 _np_temp2 equ 0x0024 _np_temp3 equ 0x0025 _np_temp4 equ 0x0026 _np_temp5 equ 0x0027 _np_rs232_t equ 0x0028 _np_rs232_t1 equ 0x0029 _np_config_interrup equ 0x002a _np_tiempo equ 0x002c _np_tiempo1 equ 0x002e _np_tiempo2 equ 0x002f _np_tiempo3 equ 0x0030 trisa equ 0x0085 trisb equ 0x0086 adresl equ 0x009e adcon1 equ 0x009f ;------------------------------------------------------------ ; Declaración de Bits ;------------------------------------------------------------ adfm equ 7 ; adon equ 0 ; c equ 0 ;carry / borrow bit go_done equ 2 ; rp0 equ 5 ;registrer bank select bit rp1 equ 6 ;registrer bank select bit z equ 2 ;bit cero ;------------------------------------------------------------ ; Inicio ;------------------------------------------------------------ reset org 0 goto paso2 org 4 retfie ;------------------------------------------------------------ ; programa principal ;------------------------------------------------------------ paso2 movlw b'00000001' ;configurar el puerto a como xxsssssa bsf status,rp0 ;cambiar a banco 1 bcf status,rp1 movwf trisa movlw b'10001110' ;configuracion a/d = dddda movwf adcon1 bcf status,rp0 ;cambiar a banco 0 bsf adcon0,adon ;activar activar el conversor a/d. movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a banco 1 movwf trisb paso5 movlw b'10000001' ;conversión bcf status,rp0 ;cambiar a banco 0 bcf status,rp1 movwf adcon0 bsf status,rp0 ;cambiar a banco 1 bsf adcon1,adfm ;alinear el resultado a la derecha bcf status,rp0 ;cambiar a banco 0 clrf _np_temp3 clrf _np_temp4 movlw .16 movwf _np_temp5 paso5_ciclos call leer_ad bsf status,rp0 ;cambiar a banco 1 movf adresl,w ;recuperar el registro bajo de la conversion a/d bcf status,rp0 ;cambiar a banco 0 movwf voltaje_2 movf adresh,w ;recuperar el registro alto de la conversion a/d movwf voltaje_1 movf voltaje_2,w addwf _np_temp4,1 btfsc status,c incf _np_temp3,1 movf voltaje_1,w addwf _np_temp3,1 decfsz _np_temp5,1 goto paso5_ciclos bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 movf _np_temp3,w movwf voltaje_1 movf _np_temp4,w movwf voltaje_2 movf voltaje_1,w ;enviar el dato voltaje_1 movwf _np_temp1 call rs232_tb1_9600 movlw .1 ;temporizador 1 seg call tiempo_1_255_mega_c goto paso5 ;cierra el ciclo ;------------------------------------------------------------ ; Declaración de Subrutinas ;------------------------------------------------------------ tiempo_1_255_mega_c movwf _np_tiempo goto tiempo_1_255_mega_c_1 tiempo_1_255_mega_c_bucle2 nop nop nop nop nop nop nop tiempo_1_255_mega_c_1 movlw .10 movwf _np_tiempo1 tiempo_1_255_mega_c_bucle1 nop nop movlw .99 movwf _np_tiempo2 tiempo_1_255_mega_c_bucle0 nop nop nop movlw .200 movwf _np_tiempo3 tiempo_1_255_mega_c_bucle nop nop decfsz _np_tiempo3,1 goto tiempo_1_255_mega_c_bucle nop nop nop decfsz _np_tiempo2,1 goto tiempo_1_255_mega_c_bucle0 nop nop nop decfsz _np_tiempo1,1 goto tiempo_1_255_mega_c_bucle1 decfsz _np_tiempo,1 goto tiempo_1_255_mega_c_bucle2 return leer_ad ;realizar conversion a/d movlw .200 movwf _np_temp1 bsf adcon0,go_done leer_ad_esperar decfsz _np_temp1,1 goto leer_ad_esperar nop nop leer_ad_esperar_fin btfsc adcon0,go_done goto leer_ad_esperar_fin return rs232_tb1_9600 ;enviar un dato rs232 por portb,1 (por codigo) ;_np_temp1 = dato a enviar ;_np_temp2 = contador de bits movlw .8 bcf status,rp0 ;cambiar a banco 0 bcf status,rp1 movwf _np_temp2 bcf portb,1 call rs232_9600_bit rs232_tb1_9600_tx_otro bcf portb,1 bcf status,c rrf _np_temp1,1 btfsc status,c bsf portb,1 call rs232_9600_bit decfsz _np_temp2,1 goto rs232_tb1_9600_tx_otro bsf portb,1 call rs232_9600_bit return rs232_9600_bit movlw .9 movwf _np_rs232_t goto rs232_9600_bit_2 rs232_9600_bit_bucle nop nop nop nop nop nop nop rs232_9600_bit_2 decfsz _np_rs232_t,1 goto rs232_9600_bit_bucle nop nop nop nop nop nop nop nop nop return rs232_9600_mbit movlw .4 movwf _np_rs232_t goto rs232_9600_mbit_2 rs232_9600_mbit_bucle nop nop nop nop nop nop nop rs232_9600_mbit_2 decfsz _np_rs232_t,1 goto rs232_9600_mbit_bucle nop nop nop nop nop nop nop nop nop return End
2
« en: Jueves 7 de Febrero de 2008, 23:55 »
HOLA TENGO ESTE COD PERO ME DA UN ERROR EN EL CONFIG.. ALGUIEN ME AYUDA? ;------------------------------------------------------------ ; Código assembler generado por Niple V5.2.1 ; Proyecto: Voltimetro Digital ; Autor: --- ; Fecha: 07/02/2008 ; PIC: 16F88 ; Velocidad de reloj: 4 Mhz ; Descripcion: Medir un voltaje cada segundo y mostrar el resultado. enviarlo por el puerto serial ;------------------------------------------------------------ LIST P=PIC16F88 _XT_OSC equ 0x3FFD _DEBUG_OFF equ 0x3FFF _WDT_OFF equ 0x3FFB _PWRTE_ON equ 0x3FF7 _BODEN_OFF equ 0x3FBF _LVP_OFF equ 0x3F7F _CPD_OFF equ 0x3FFF _CP_OFF equ 0x3FFF ;_WRT_ENABLE_OFF equ 0x3DFF __config _XT_OSC & _DEBUG_OFF & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _CP_OFF ;------------------------------------------------------------ ; Declaración de Registros ;------------------------------------------------------------ w equ 0x0000 status equ 0x0003 portb equ 0x0006 pclath equ 0x000a adresh equ 0x001e adcon0 equ 0x001f voltaje_1 equ 0x0021 voltaje_2 equ 0x0022 _np_temp1 equ 0x0023 _np_temp2 equ 0x0024 _np_temp3 equ 0x0025 _np_temp4 equ 0x0026 _np_temp5 equ 0x0027 _np_rs232_t equ 0x0028 _np_rs232_t1 equ 0x0029 _np_config_interrup equ 0x002a _np_tiempo equ 0x002c _np_tiempo1 equ 0x002e _np_tiempo2 equ 0x002f _np_tiempo3 equ 0x0030 trisa equ 0x0085 trisb equ 0x0086 adresl equ 0x009e adcon1 equ 0x009f ;------------------------------------------------------------ ; Declaración de Bits ;------------------------------------------------------------ adfm equ 7 ; adon equ 0 ; c equ 0 ;carry / borrow bit go_done equ 2 ; rp0 equ 5 ;registrer bank select bit rp1 equ 6 ;registrer bank select bit z equ 2 ;bit cero ;------------------------------------------------------------ ; Inicio ;------------------------------------------------------------ reset org 0 goto paso2 org 4 retfie ;------------------------------------------------------------ ; programa principal ;------------------------------------------------------------ paso2 movlw b'00000001' ;configurar el puerto a como xxsssssa bsf status,rp0 ;cambiar a banco 1 bcf status,rp1 movwf trisa movlw b'10001110' ;configuracion a/d = dddda movwf adcon1 bcf status,rp0 ;cambiar a banco 0 bsf adcon0,adon ;activar activar el conversor a/d. movlw b'00000000' ;configurar el puerto b como ssssssss bsf status,rp0 ;cambiar a banco 1 movwf trisb paso5 movlw b'10000001' ;conversión bcf status,rp0 ;cambiar a banco 0 bcf status,rp1 movwf adcon0 bsf status,rp0 ;cambiar a banco 1 bsf adcon1,adfm ;alinear el resultado a la derecha bcf status,rp0 ;cambiar a banco 0 clrf _np_temp3 clrf _np_temp4 movlw .16 movwf _np_temp5 paso5_ciclos call leer_ad bsf status,rp0 ;cambiar a banco 1 movf adresl,w ;recuperar el registro bajo de la conversion a/d bcf status,rp0 ;cambiar a banco 0 movwf voltaje_2 movf adresh,w ;recuperar el registro alto de la conversion a/d movwf voltaje_1 movf voltaje_2,w addwf _np_temp4,1 btfsc status,c incf _np_temp3,1 movf voltaje_1,w addwf _np_temp3,1 decfsz _np_temp5,1 goto paso5_ciclos bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 bcf status,c rrf _np_temp3,1 rrf _np_temp4,1 movf _np_temp3,w movwf voltaje_1 movf _np_temp4,w movwf voltaje_2 movf voltaje_1,w ;enviar el dato voltaje_1 movwf _np_temp1 call rs232_tb1_9600 movlw .1 ;temporizador 1 seg call tiempo_1_255_mega_c goto paso5 ;cierra el ciclo ;------------------------------------------------------------ ; Declaración de Subrutinas ;------------------------------------------------------------ tiempo_1_255_mega_c movwf _np_tiempo goto tiempo_1_255_mega_c_1 tiempo_1_255_mega_c_bucle2 nop nop nop nop nop nop nop tiempo_1_255_mega_c_1 movlw .10 movwf _np_tiempo1 tiempo_1_255_mega_c_bucle1 nop nop movlw .99 movwf _np_tiempo2 tiempo_1_255_mega_c_bucle0 nop nop nop movlw .200 movwf _np_tiempo3 tiempo_1_255_mega_c_bucle nop nop decfsz _np_tiempo3,1 goto tiempo_1_255_mega_c_bucle nop nop nop decfsz _np_tiempo2,1 goto tiempo_1_255_mega_c_bucle0 nop nop nop decfsz _np_tiempo1,1 goto tiempo_1_255_mega_c_bucle1 decfsz _np_tiempo,1 goto tiempo_1_255_mega_c_bucle2 return leer_ad ;realizar conversion a/d movlw .200 movwf _np_temp1 bsf adcon0,go_done leer_ad_esperar decfsz _np_temp1,1 goto leer_ad_esperar nop nop leer_ad_esperar_fin btfsc adcon0,go_done goto leer_ad_esperar_fin return rs232_tb1_9600 ;enviar un dato rs232 por portb,1 (por codigo) ;_np_temp1 = dato a enviar ;_np_temp2 = contador de bits movlw .8 bcf status,rp0 ;cambiar a banco 0 bcf status,rp1 movwf _np_temp2 bcf portb,1 call rs232_9600_bit rs232_tb1_9600_tx_otro bcf portb,1 bcf status,c rrf _np_temp1,1 btfsc status,c bsf portb,1 call rs232_9600_bit decfsz _np_temp2,1 goto rs232_tb1_9600_tx_otro bsf portb,1 call rs232_9600_bit return rs232_9600_bit movlw .9 movwf _np_rs232_t goto rs232_9600_bit_2 rs232_9600_bit_bucle nop nop nop nop nop nop nop rs232_9600_bit_2 decfsz _np_rs232_t,1 goto rs232_9600_bit_bucle nop nop nop nop nop nop nop nop nop return rs232_9600_mbit movlw .4 movwf _np_rs232_t goto rs232_9600_mbit_2 rs232_9600_mbit_bucle nop nop nop nop nop nop nop rs232_9600_mbit_2 decfsz _np_rs232_t,1 goto rs232_9600_mbit_bucle nop nop nop nop nop nop nop nop nop return End
3
« en: Lunes 4 de Febrero de 2008, 22:51 »
hola quisiera saber si ese codigo funciona con el pic16f88?
4
« en: Martes 29 de Enero de 2008, 22:50 »
porque no pruebas con otro programa, conozco uno que se llama winpicpgm
5
« en: Martes 29 de Enero de 2008, 22:48 »
hola quisiera me pudieran ayudar, con algo: quiero grabar un programa en el pic16f88, quiero recibir un valor de un voltimetro luego convertirlo a señal digital para luego enviarlo por medio del puerto serie..... se puede? dejo mi correo por cualquier cosa,,, please help me,,,,, sandrathevy@hotmail.com
6
« en: Martes 29 de Enero de 2008, 22:35 »
hola, tengo un pequeño problema,,, no se como trabajar con un combobox que esta enlazado a la BD, osea q cuando elija por ejemplo
id nombre 1 cargo 2 cosa
que cuando elija 1 sepa q es cargo, en otra tabla que este relacionado.....
7
« en: Martes 29 de Enero de 2008, 22:14 »
hola quisiera me pudieran ayudar, con algo: quiero grabar un programa en el pic16f88, quiero recibir un valor de un voltimetro luego convertirlo a señal digital para luego enviarlo por medio del puerto serie..... se puede? dejo mi correo por cualquier cosa,,, please help me,,,,, sandrathevy@hotmail.com
Páginas: [1]
|
|
|