Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

12/11/2010 #1


Software cuentavueltas digital pic16f84 y ¿628?
Hola, es la primera vez o segunda no recuerdo bien que escribo algo por aca, el tema es que desarrolle un cuentavueltas especial que primero lee un dipswitch de 8 lineas y en esa tabla se plantea un umbral de rpm. Cuando la entrada supera ese umbral se prende un led y una pata se pasa a on, denominada flag . La entrada de pulsos es de de 5 volts, nada raro. Tambien hay otro led que parpadea al ritmo de los pulsos de entrada pero lo gatilla el soft, para verificar que el soft esta corriendo. El sistema de conteo de las rpm es por x veces un periodo de tiempo durante el "periodo" de la señal de entrada, o sea se mide vuelta a vuelta. a continuacion les dejo el asm.

El codigo corria bien con un dip swtich de 4 bit, pero le agrande la tabla y lo pase a 8 para tener mas definicion y ahora no tira error al ensamblar (aparte cheque con mplab y esta todo ok) pero no anda y la placa no es la causa. Medi "todo" con osciloscopio y el pic no marcha, cheque el pic y no es. Tambien me gustaria cambiar a pic16f628 por el costo pero se ve que no son 100% compatibles por que lo programo y no va y la verdad no me puse a rediseñar el soft para el 628. No se que cambios habra que hacer, pero los tendre que hacer ya que no consigo mas el 16f84 (vivo en un pueblo y tengo que hacer 130 km para conseguir cualquier componente de electronica).


Bueno espero me puedan ayudar, cualquier cosa si es necesario les paso el circuito, pero creo que con el codigo se entiende. En algo le estoy pifiando pero no puedo sacar que es y el pic se niega a funcionar.

; Modelo: ER01 - Pic2 contador de rpm
;
;Clock unicamente xt 4.00 mhz
;
__config B'11111111110001'
;
;modo xt 4 mhz , wtd off , pwrupt on , proteccion off
;
list p=16F84
;
;
opcion equ h'81'
pcl equ h'02'
estado equ h'03'
porta equ h'05'
portb equ h'06'
umbral equ h'0c'
umpos equ h'0d'
contador equ h'0e'
ciclo equ h'0f'
rpm equ h'10'
pdel1 equ h'11'
w equ h'0'
f equ h'1'

#DEFINE entrada porta,1 ; RA1 entradas de pulsos
#DEFINE bandera porta,0 ; RA0 salida de bandera umbral
#DEFINE ledumbral porta,3 ; RA3 led verde umbral
#DEFINE ledgiro porta,2 ; RA2 led rojo giro motor
#DEFINE zeta estado,2 ;Z
#DEFINE carry estado,0 ;C
#DEFINE rp0 estado,5 ;rp0 cambio de banco (0 banco 0) (1 banco 1)
;-------------------------------------------------------
;
reset org 0
goto inicio
org 04h
;
org 05h
inicio clrw
movlw b'11111111' ; portb todo entrada
tris portb
bsf rp0 ;paso al banco 1
movlw b'00100000' ; option: divisor 1:2 am tmr0,inc flanco ascendente
movwf opcion ;fuente pulsos RA4 (masa), int. ascendente,pull up on
bcf rp0 ;vuelvo al banco 0
movlw b'00010010' ;entradas: RA1,RA4(masa) Salidas:RA2 ,RA3 y RA0
tris porta
clrf porta ;inicializa los registros
clrf umbral
clrf umpos
clrf contador
clrf pdel1
clrf rpm
movlw d'10' ;cargo valor de ciclo
movwf ciclo
leeumbral movf portb,w ;paso el valor de la llave del portb a umpos
movwf umpos
call tablaumbral ;busco en la tabla y lo cargo a 'umbral'
movwf umbral
checkalto1 btfss entrada ;¿entrada esta en alto?
goto checkalto1 ;no, sigue preguntando
bsf ledgiro ;si, prende led giro
delay1 call delay ;ejecuta delay de 30 microsegundos
incf contador,f ;incrementa en 1 a contador
btfsc zeta ;salta si Z=0
goto limpia ;Z=1 , hay desborde, limpie y reinicie
checkbajo btfsc entrada ;Z=0 , no hay desborde, ¿entrada esta en bajo?
goto delay1 ;no, vaya a delay1
bcf ledgiro ;si, apaga led giro
checkalto2 btfss entrada ;¿entrada esta en alto?
goto delay2 ;no, vaya a delay2
goto checkciclo ;si, chequear si ciclo terminó
delay2 call delay ;ejecuta delay de 30 microsegundos
incf contador,f ;incrementa en 1 a contador
btfsc zeta ;salta si Z=0
goto limpia ;Z=1,hay desborde, limpie y reinicie
goto checkalto2 ;Z=0 , no hay desborde,chequear si sigue alto
checkciclo decfsz ciclo,f ;decremente ciclo, ¿terminó ciclo?
goto noactualiza ;no,no actualiza valor rpm
actualiza movf contador,w ;si, actualiza valor rpm
movwf rpm
subwf umbral,w
btfss carry
goto flagoff ;C=0 rpm real < umbral,baje bandera (valor rpm>umbral)
flagon bsf bandera ;C=1 rpm real >o= umbral,suba bandera (valor rpm<umbral)
bsf ledumbral ;bandera alta , prenda led umbral
goto limpia
cargaciclo movlw d'10'
movwf ciclo ;pone ciclo=10
noactualiza clrf contador ;no actualiza rpm, ;pone contador=0, faltan ciclos
goto checkalto1
flagoff bcf bandera ;bandera baja, apague led umbral
bcf ledumbral
limpia movlw d'10'
movwf ciclo ;pone contador=0 y ciclo=10 y comienza de nuevo
clrf contador
goto checkalto1
;-----------delay fijo de 30 microsegundos---------
delay movlw .6
movwf pdel1
loop1 clrwdt
decfsz pdel1,f
goto loop1
clrwdt
return
; ---- VALOR DE UMBRAL ojo menor valor de tabla mayor las rpm que actua
; O SEA QUE A MAYOR VALOR DE DIPSWICHT MAYOR ES EL UMBRAL
tablaumbral movf umpos,w
addwf pcl,f ;portb '76543210'
retlw d'254' ;posicion 0 "00000000" umbral rpm
retlw d'253' ;posicion 1 "00000001" umbral rpm
retlw d'252' ;posicion 2 "00000010" umbral rpm
retlw d'251' ;posicion 3 "00000011" umbral rpm
retlw d'250' ;posicion 4 "00000100" umbral rpm
retlw d'249' ;posicion 5 "00000101" umbral rpm
retlw d'248' ;posicion 6 "00000110" umbral rpm
retlw d'247' ;posicion 7 "00000111" umbral rpm
retlw d'246' ;posicion 8 "00001000" umbral rpm
retlw d'245' ;posicion 9 "00001001" umbral rpm
retlw d'244' ;posicion 10 "00001010" umbral rpm
retlw d'243' ;posicion 11 "00001011" umbral rpm
retlw d'242' ;posicion 12 "00001100" umbral rpm
retlw d'241' ;posicion 13 "00001101" umbral rpm
retlw d'240' ;posicion 14 "00001110" umbral rpm
retlw d'239' ;posicion 15 "00001111" umbral rpm
retlw d'238' ;posicion 16 "00010000" umbral rpm
retlw d'237' ;posicion 17 "00010001" umbral rpm
retlw d'236' ;posicion 18 "00010010" umbral rpm
retlw d'235' ;posicion 19 "00010011" umbral rpm
retlw d'234' ;posicion 20 "00010100" umbral rpm
retlw d'233' ;posicion 21 "00010101" umbral rpm
retlw d'232' ;posicion 22 "00010110" umbral rpm
retlw d'231' ;posicion 23 "00010111" umbral rpm
retlw d'230' ;posicion 24 "00011000" umbral rpm
retlw d'229' ;posicion 25 "00011001" umbral rpm
retlw d'228' ;posicion 26 "00011010" umbral rpm
retlw d'227' ;posicion 27 "00011011" umbral rpm
retlw d'226' ;posicion 28 "00011100" umbral rpm
retlw d'225' ;posicion 29 "00011101" umbral rpm
retlw d'224' ;posicion 30 "00011110" umbral rpm
retlw d'223' ;posicion 31 "00011111" umbral rpm
retlw d'222' ;posicion 32 "00100000" umbral rpm
retlw d'221' ;posicion 33 "00100001" umbral rpm
retlw d'220' ;posicion 34 "00100010" umbral rpm
retlw d'219' ;posicion 35 "00100011" umbral rpm
retlw d'218' ;posicion 36 "00100100" umbral rpm
retlw d'217' ;posicion 37 "00100101" umbral rpm
retlw d'216' ;posicion 38 "00100110" umbral rpm
retlw d'215' ;posicion 39 "00100111" umbral rpm
retlw d'214' ;posicion 40 "00101000" umbral rpm
retlw d'213' ;posicion 41 "00101001" umbral rpm
retlw d'212' ;posicion 42 "00101010" umbral rpm
retlw d'211' ;posicion 43 "00101011" umbral rpm
retlw d'210' ;posicion 44 "00101100" umbral rpm
retlw d'209' ;posicion 45 "00101101" umbral rpm
retlw d'208' ;posicion 46 "00101110" umbral rpm
retlw d'207' ;posicion 47 "00101111" umbral rpm
retlw d'206' ;posicion 48 "00110000" umbral rpm
retlw d'205' ;posicion 49 "00110001" umbral rpm
retlw d'204' ;posicion 50 "00110010" umbral rpm
retlw d'203' ;posicion 51 "00110011" umbral rpm
retlw d'202' ;posicion 52 "00110100" umbral rpm
retlw d'201' ;posicion 53 "00110101" umbral rpm
retlw d'200' ;posicion 54 "00110110" umbral rpm
retlw d'199' ;posicion 55 "00110111" umbral rpm
retlw d'198' ;posicion 56 "00111000" umbral rpm
retlw d'197' ;posicion 57 "00111001" umbral rpm
retlw d'196' ;posicion 58 "00111010" umbral rpm
retlw d'195' ;posicion 59 "00111011" umbral rpm
retlw d'194' ;posicion 60 "00111100" umbral rpm
retlw d'193' ;posicion 61 "00111101" umbral rpm
retlw d'192' ;posicion 62 "00111110" umbral rpm
retlw d'191' ;posicion 63 "00111111" umbral rpm
retlw d'190' ;posicion 64 "01000000" umbral rpm
retlw d'189' ;posicion 65 "01000001" umbral rpm
retlw d'188' ;posicion 66 "01000010" umbral rpm
retlw d'187' ;posicion 67 "01000011" umbral rpm
retlw d'186' ;posicion 68 "01000100" umbral rpm
retlw d'185' ;posicion 69 "01000101" umbral rpm
retlw d'184' ;posicion 70 "01000110" umbral rpm
retlw d'183' ;posicion 71 "01000111" umbral rpm
retlw d'182' ;posicion 72 "01001000" umbral rpm
retlw d'181' ;posicion 73 "01001001" umbral rpm
retlw d'180' ;posicion 74 "01001010" umbral rpm
retlw d'179' ;posicion 75 "01001011" umbral rpm
retlw d'178' ;posicion 76 "01001100" umbral rpm
retlw d'177' ;posicion 77 "01001101" umbral rpm
retlw d'176' ;posicion 78 "01001110" umbral rpm
retlw d'175' ;posicion 79 "01001111" umbral rpm
retlw d'174' ;posicion 80 "01010000" umbral rpm
retlw d'173' ;posicion 81 "01010001" umbral rpm
retlw d'172' ;posicion 82 "01010010" umbral rpm
retlw d'171' ;posicion 83 "01010011" umbral rpm
retlw d'170' ;posicion 84 "01010100" umbral rpm
retlw d'169' ;posicion 85 "01010101" umbral rpm
retlw d'168' ;posicion 86 "01010110" umbral rpm
retlw d'167' ;posicion 87 "01010111" umbral rpm
retlw d'166' ;posicion 88 "01011000" umbral rpm
retlw d'165' ;posicion 89 "01011001" umbral rpm
retlw d'164' ;posicion 90 "01011010" umbral rpm
retlw d'163' ;posicion 91 "01011011" umbral rpm
retlw d'162' ;posicion 92 "01011100" umbral rpm
retlw d'161' ;posicion 93 "01011101" umbral rpm
retlw d'160' ;posicion 94 "01011110" umbral rpm
retlw d'159' ;posicion 95 "01011111" umbral rpm
retlw d'158' ;posicion 96 "01100000" umbral rpm
retlw d'157' ;posicion 97 "01100001" umbral rpm
retlw d'156' ;posicion 98 "01100010" umbral rpm
retlw d'155' ;posicion 99 "01100011" umbral rpm
retlw d'154' ;posicion 100 "01100100" umbral rpm
retlw d'153' ;posicion 101 "01100101" umbral rpm
retlw d'152' ;posicion 102 "01100110" umbral rpm
retlw d'151' ;posicion 103 "01100111" umbral rpm
retlw d'150' ;posicion 104 "01101000" umbral rpm
retlw d'149' ;posicion 105 "01101001" umbral rpm
retlw d'148' ;posicion 106 "01101010" umbral rpm
retlw d'147' ;posicion 107 "01101011" umbral rpm
retlw d'146' ;posicion 108 "01101100" umbral rpm
retlw d'145' ;posicion 109 "01101101" umbral rpm
retlw d'144' ;posicion 110 "01101110" umbral rpm
retlw d'143' ;posicion 111 "01101111" umbral rpm
retlw d'142' ;posicion 112 "01110000" umbral rpm
retlw d'141' ;posicion 113 "01110001" umbral 11500 rpm
retlw d'140' ;posicion 114 "01110010" umbral rpm
retlw d'139' ;posicion 115 "01110011" umbral rpm
retlw d'138' ;posicion 116 "01110100" umbral rpm
retlw d'137' ;posicion 117 "01110101" umbral rpm
retlw d'136' ;posicion 118 "01110110" umbral rpm
retlw d'135' ;posicion 119 "01110111" umbral 12000 rpm
retlw d'134' ;posicion 120 "01111000" umbral rpm
retlw d'133' ;posicion 121 "01111001" umbral rpm
retlw d'132' ;posicion 122 "01111010" umbral rpm
retlw d'131' ;posicion 123 "01111011" umbral rpm
retlw d'130' ;posicion 124 "01111100" umbral 12500 rpm
retlw d'129' ;posicion 125 "01111101" umbral rpm
retlw d'128' ;posicion 126 "01111110" umbral rpm
retlw d'127' ;posicion 127 "01111111" umbral rpm
retlw d'126' ;posicion 128 "10000000" umbral rpm
retlw d'125' ;posicion 129 "10000001" umbral 13000 rpm
retlw d'124' ;posicion 130 "10000010" umbral rpm
retlw d'123' ;posicion 131 "10000011" umbral rpm
retlw d'122' ;posicion 132 "10000100" umbral rpm
retlw d'121' ;posicion 133 "10000101" umbral rpm
retlw d'120' ;posicion 134 "10000110" umbral rpm
retlw d'119' ;posicion 135 "10000111" umbral rpm
retlw d'118' ;posicion 136 "10001000" umbral rpm
retlw d'117' ;posicion 137 "10001001" umbral rpm
retlw d'116' ;posicion 138 "10001010" umbral 14000 rpm
retlw d'115' ;posicion 139 "10001011" umbral rpm
retlw d'114' ;posicion 140 "10001100" umbral rpm
retlw d'113' ;posicion 141 "10001101" umbral rpm
retlw d'112' ;posicion 142 "10001110" umbral 14500 rpm
retlw d'111' ;posicion 143 "10001111" umbral rpm
retlw d'110' ;posicion 144 "10010000" umbral rpm
retlw d'109' ;posicion 145 "10010001" umbral rpm
retlw d'108' ;posicion 146 "10010010" umbral 15000 rpm
retlw d'107' ;posicion 147 "10010011" umbral rpm
retlw d'106' ;posicion 148 "10010100" umbral rpm
retlw d'105' ;posicion 149 "10010101" umbral 15500 rpm
retlw d'104' ;posicion 150 "10010110" umbral rpm
retlw d'103' ;posicion 151 "10010111" umbral rpm
retlw d'102' ;posicion 152 "10011000" umbral rpm
retlw d'101' ;posicion 153 "10011001" umbral 16000 rpm
retlw d'100' ;posicion 154 "10011010" umbral rpm
retlw d'99' ;posicion 155 "10011011" umbral rpm
retlw d'98' ;posicion 156 "10011100" umbral 16500 rpm
retlw d'97' ;posicion 157 "10011101" umbral rpm
retlw d'96' ;posicion 158 "10011110" umbral rpm
retlw d'95' ;posicion 159 "10011111" umbral 17000 rpm
retlw d'94' ;posicion 160 "10100000" umbral rpm
retlw d'93' ;posicion 161 "10100001" umbral 17500 rpm
retlw d'92' ;posicion 162 "10100010" umbral rpm
retlw d'91' ;posicion 163 "10100011" umbral rpm
retlw d'90' ;posicion 164 "10100100" umbral 18000 rpm
retlw d'89' ;posicion 165 "10100101" umbral rpm
retlw d'88' ;posicion 166 "10100110" umbral 18500 rpm
retlw d'87' ;posicion 167 "10100111" umbral rpm
retlw d'86' ;posicion 168 "10101000" umbral rpm
retlw d'85' ;posicion 169 "10101001" umbral 19000 rpm
retlw d'84' ;posicion 170 "10101010" umbral rpm
retlw d'83' ;posicion 171 "10101011" umbral rpm
retlw d'82' ;posicion 172 "10101100" umbral rpm
retlw d'81' ;posicion 173 "10101101" umbral rpm
retlw d'80' ;posicion 174 "10101110" umbral rpm
retlw d'79' ;posicion 175 "10101111" umbral rpm
retlw d'78' ;posicion 176 "10110000" umbral rpm
retlw d'77' ;posicion 177 "10110001" umbral rpm
retlw d'76' ;posicion 178 "10110010" umbral rpm
retlw d'75' ;posicion 179 "10110011" umbral rpm
retlw d'74' ;posicion 180 "10110100" umbral rpm
retlw d'73' ;posicion 181 "10110101" umbral rpm
retlw d'72' ;posicion 182 "10110110" umbral rpm
retlw d'71' ;posicion 183 "10110111" umbral rpm
retlw d'70' ;posicion 184 "10111000" umbral rpm
retlw d'69' ;posicion 185 "10111001" umbral rpm
retlw d'68' ;posicion 186 "10111010" umbral rpm
retlw d'67' ;posicion 187 "10111011" umbral rpm
retlw d'66' ;posicion 188 "10111100" umbral rpm
retlw d'65' ;posicion 189 "10111101" umbral rpm
retlw d'64' ;posicion 190 "10111110" umbral rpm
retlw d'63' ;posicion 191 "10111111" umbral rpm
retlw d'62' ;posicion 192 "11000000" umbral rpm
retlw d'61' ;posicion 193 "11000001" umbral rpm
retlw d'60' ;posicion 194 "11000010" umbral rpm
retlw d'59' ;posicion 195 "11000011" umbral rpm
retlw d'58' ;posicion 196 "11000100" umbral rpm
retlw d'57' ;posicion 197 "11000101" umbral rpm
retlw d'56' ;posicion 198 "11000110" umbral rpm
retlw d'55' ;posicion 199 "11000111" umbral rpm
retlw d'54' ;posicion 200 "11001000" umbral rpm
retlw d'53' ;posicion 201 "11001001" umbral rpm
retlw d'52' ;posicion 202 "11001010" umbral rpm
retlw d'51' ;posicion 203 "11001011" umbral rpm
retlw d'50' ;posicion 204 "11001100" umbral rpm
retlw d'49' ;posicion 205 "11001101" umbral rpm
retlw d'48' ;posicion 206 "11001110" umbral rpm
retlw d'47' ;posicion 207 "11001111" umbral rpm
retlw d'46' ;posicion 208 "11010000" umbral rpm
retlw d'45' ;posicion 209 "11010001" umbral rpm
retlw d'44' ;posicion 210 "11010010" umbral rpm
retlw d'43' ;posicion 211 "11010011" umbral rpm
retlw d'42' ;posicion 212 "11010100" umbral rpm
retlw d'41' ;posicion 213 "11010101" umbral rpm
retlw d'40' ;posicion 214 "11010110" umbral rpm
retlw d'39' ;posicion 215 "11010111" umbral rpm
retlw d'38' ;posicion 216 "11011000" umbral rpm
retlw d'37' ;posicion 217 "11011001" umbral rpm
retlw d'36' ;posicion 218 "11011010" umbral rpm
retlw d'35' ;posicion 219 "11011011" umbral rpm
retlw d'34' ;posicion 220 "11011100" umbral rpm
retlw d'33' ;posicion 221 "11011101" umbral rpm
retlw d'32' ;posicion 222 "11011110" umbral rpm
retlw d'31' ;posicion 223 "11011111" umbral rpm
retlw d'30' ;posicion 224 "11100000" umbral rpm
retlw d'29' ;posicion 225 "11100001" umbral rpm
retlw d'28' ;posicion 226 "11100010" umbral rpm
retlw d'27' ;posicion 227 "11100011" umbral rpm
retlw d'26' ;posicion 228 "11100100" umbral rpm
retlw d'25' ;posicion 229 "11100101" umbral rpm
retlw d'24' ;posicion 230 "11100110" umbral rpm
retlw d'23' ;posicion 231 "11100111" umbral rpm
retlw d'22' ;posicion 232 "11101000" umbral rpm
retlw d'21' ;posicion 233 "11101001" umbral rpm
retlw d'20' ;posicion 234 "11101010" umbral rpm
retlw d'19' ;posicion 235 "11101011" umbral rpm
retlw d'18' ;posicion 236 "11101100" umbral rpm
retlw d'17' ;posicion 237 "11101101" umbral rpm
retlw d'16' ;posicion 238 "11101110" umbral rpm
retlw d'15' ;posicion 239 "11101111" umbral rpm
retlw d'14' ;posicion 240 "11110000" umbral rpm
retlw d'13' ;posicion 241 "11110001" umbral rpm
retlw d'12' ;posicion 242 "11110010" umbral rpm
retlw d'11' ;posicion 243 "11110011" umbral rpm
retlw d'10' ;posicion 244 "11110100" umbral rpm
retlw d'9' ;posicion 245 "11110101" umbral rpm
retlw d'8' ;posicion 246 "11110110" umbral rpm
retlw d'7' ;posicion 247 "11110111" umbral rpm
retlw d'6' ;posicion 248 "11111000" umbral rpm
retlw d'5' ;posicion 249 "11111001" umbral rpm
retlw d'4' ;posicion 250 "11111010" umbral rpm
retlw d'3' ;posicion 251 "11111011" umbral rpm
retlw d'2' ;posicion 252 "11111100" umbral rpm
retlw d'1' ;posicion 253 "11111101" umbral rpm
retlw d'1' ;posicion 254 "11111110" umbral rpm
retlw d'1' ;posicion 255 "11111111" umbral rpm
end
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.