fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

programa un PIC usando PicProg2006

5 Respuestas
3 Usuarios
0 Reactions
2,048 Visitas
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

hola a todos, estoy intentando programar un micro controlador (concretamente el PIC 16F84A)

Y uso el programa PicProg2006
pero cuando ya e compilado el programa y esta en .hex, me sale un error
pego aqui el programa por si algien puede echarle un vistazo

'*
'*Project name
' Bras
'*Copyright:
' sergi ubach
'*Revision Historiy:
' 20090205:
' -initial release
'*Description
' this is a simple project wich have to move four servos
'*Test configuration
' MCU: P16F84A
' Dev.Board: VM134
' Oscillator: XT, 04.0000MHz
' Ext. Modules: -
' SW: mikroBasic v7.1
'*Notes
' none
'*

program bras
symbol BD1="pin9" 'Var PortB.3
symbol BE1="pin8" 'Var PortB.2
symbol BD2="pin1" 'Var PortA.2
symbol BE2="pin2" 'Var PortA.3
symbol BD3="pin6" 'Var PortB.0
symbol BE3="pin7" 'Var PortB.1
symbol BD4="pin17" 'Var PortA.0
symbol BE4="pin18" 'Var PortA.1
symbol S1="pin10" 'Var PortB.4

symbol S2="pin11" 'Var PortB.5
symbol S3="pin12" 'Var PortB.6
symbol S4="pin13" 'Var PortB.7
dim a, b, x, d As short
TrisA = %01111
TrisB = %00001111
main:
a=0
b=0
x=0
d=0
MENU:
If portb.3 =1 Then
a=a+1
end if
If portb.2=1 Then
a=a-1
end if
If porta.2=1 Then
b=b+1
end if
If porta.3=1 Then
b=b-1
end if
If portb.0=1 Then
x=x+1
end if
If portb.1=1 Then
x=x-1
end if
If porta.0=1 Then
d=d+1
end if
If porta.1=1 Then
d=d-1
end if
if a =181 Then
portb.4=1
Delay_ms(2000)
portb.4=0
Else
portb.4=1
vdelay_ms (1000+a/18/100)
portb.4=0
vdelay_ms (2-(1+a/180))
End if
If b=181 Then
portb.5=1
Delay_ms(2000)
portb.5=0
Else
portb.5=1
vdelay_ms (1000+b/18/100)
portb.5=0
vdelay_ms (2-(1+b/180))
End If
If x=181 Then
portb.6=1
Delay_ms(2000)
portb.6=0
Else
portb.6=1
vdelay_ms (1000+x/18/100)
portb.6=0
vdelay_ms (2-(1+x/180))
End If
If d=181 Then
portb.7=1
Delay_ms(2000)
portb.7=0
Else
portb.7=1
vdelay_ms (1000+d/18/100)
portb.7=0
vdelay_ms (2-(1+d/180))
End If
delay_ms (12000)
goto MENU
End.

Responder
4 respuestas
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

lo e puesto en mikroBasic por que en hexadecimal era muy largo y supongo que mas complicado de entender.

Responder
boops
Respuestas: 1813
(@boops)
Ardero
Registrado: hace 19 años

oko123456, ¿que error te sale?

Responder
isman7
Respuestas: 42
(@isman7)
Eminent Member
Registrado: hace 17 años

Donde te sale el error?? en el programador, o en el compilador? Yo estaba usando una Velleman, la VM111, y voy a ir a cambiarla mñn porque no me gusta nada, no me ha grabado la mitad de los pics bien, y no he podido entregar bien el TRECBOT por eso, pretendo pillarme un pickit2.

Salu2

Responder
oko123456
Respuestas: 17
Topic starter
(@oko123456)
Active Member
Registrado: hace 16 años

el Programa me da un error en el momento en que lo voy a grabar en el PiC, me dice:

Error writing to pic

y si lo itnento con WinPic el error dice:

ERROR -> F:bras2222222.hex
Línea : 129
Direccion invalida para el dispositivo seleccionado

¿desea continuar y truncar los datos?

Al decir que "yes"

todas las ordenes de en hexadecimal se convierten en 0s
i falla

gracias por las molestias

Responder
Compartir: