Professional Documents
Culture Documents
Jorge Morales
Jonathan Tipán
En esta práctica podemos comunicarnos via usb del pic2550 al pc a través del HIDTerminal
de Mikrobasic
program TP2550MKB
include "USBdsc" 'descriptor del Programa
dim
k, i as byte 'variables Uso general
userWR_buffer as byte[2] 'Buffer de Transmision USB
userRD_buffer as byte[2] 'Buffer de Recepcion USB
main:
for i=0 to 5
porta = not porta
delay_ms(500)
next i
Delay_mS(1000)
Delay_mS(1000) 'Pausa para que cargue el PIC
'Loop Infinito
while true
wend
HID_Disable() 'Deshabilitamos el HID
end.
program USB_HID_test
include "USBdsc"
dim
k, i, ch as byte
userWR_buffer as byte[64]
userRD_buffer as byte[64]
'******************************************************************************
' Main Interrupt Routine
'******************************************************************************
sub procedure interrupt
'** this is a way to call a procedure from interrupt
HID_InterruptProc
end sub
'******************************************************************************
'******************************************************************************
' Initialization Routine
'******************************************************************************
sub procedure Init_Main
'--------------------------------------
' Disable interrupts
'--------------------------------------
INTCON = 0 ' Disable GIE, PEIE, TMR0IE,INT0IE,RBIE
INTCON2 = 0xF5
INTCON3 = 0xC0
RCON.IPEN = 0 ' Disable Priority Levels on interrupts
PIE1 = 0
PIE2 = 0
PIR1 = 0
PIR2 = 0
ADCON1 = ADCON1 or 0x0F ' Configure all ports with analog function as digital
'--------------------------------------
' Ports Configuration
'--------------------------------------
TRISA = 0
TRISB = 0xFF
TRISC = 0xFF
'TRISD = 0
'TRISE = 0x07
LATA = 0
LATB = 0
LATC = 0
'LATD = 0
'LATE = 0
end sub
'******************************************************************************
' Main Program Routine
'******************************************************************************
main:
Init_Main()
HID_Enable(@userRD_buffer, @userWR_buffer)
Delay_mS(1000)
Delay_mS(1000)
while true
k = HID_Read()
i=0
while i < k
ch = userRD_buffer[0]
userWR_buffer[0] = ch
HID_Write(@userWR_buffer, 1)
inc(i)
wend
wend
HID_Disable()
end.