Esta guia esta dirigida para todos aquellos interesados en realizar laboratorios de robotica, especialmente a los alumnos que están cursando electiva profesional IV. y teoría de control.
miércoles, 25 de mayo de 2011
LENGUAJES DE PROGRAMACION
Puede Seleccionar MPLAB o PICC para Programar el pic, es desicion del Programador
MPLAB: Es una herramienta para escribir y desarrollar código en lenguaje ensamblador para los microcontroladores PIC. MPLAB incorpora todas las herramientas necesarias para la realización de cualquier proyecto, ya que además de un editor de textos cuenta con un simulador en el que se puede ejecutar el código paso a paso para ver así su evolución y el estado en el que se encuentran sus registros en cada momento.
link de descarga de Mplab.
videotutorial de programacion en Mplab
PICC: Es una herramienta para escribir y desarrollar código en lenguaje de alto nivel, basado en C, integrando todas los complementos necesario para realizar un proyecto.
link de descarga de Pic C compiler
videotutorial de programacion en picC
PROGRAMAS NECESARIOS
PROTEUS:Es una compilación de programas de diseño y simulación electrónica, desarrollado por Labcenter Electronics que consta de los dos programas principales: Ares e Isis, y los módulos VSM y Electra.
link de descarga
JAVA Y JCREATOR: Es un entorno de desarrollo integrado (IDE) para programación en lenguaje Java en entorno Windows. Existe dos versiones de este programa, una es comercial (JCreator PRO), y tiene algunos complementos mas que la version gratuita (JCreator LE), este actua como mascara sobre el JDK.
link de descarga
RECOMENDACIONES
- cuando se trabaja en java el puerto USB, se debe descargar una libreria llamada "jpicusb" lo cual sera de gran ayuda y le permitira que el programa le funcione corrrectamente.
http://sourceforge.net/projects/jpicusb/
- para que el circuito sea detectado por el puerto usb y el computador pueda leer y enviar informacion se debe descargar e instalar algunos drivers.
link de descarga
CIRCUITO ELECTRICO
Circuito Electrico en Proteus
Esta imagen muestra la simulacion de Proteus, se insertan todos los componentes en el plano, como el puerto, el microcontrolador, los cristales, condensadores y demas que necesitemos, aqui podemos ejecutar para simular el funcionamiento.
CODIGO PIC-C
CÓDIGO PICC del microcontrolador
#include "C:\Users\ALFRED\Desktop\LAB3\display.h"
#use delay(clock=48000000)
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#define USB_HID_DEVICE FALSE //deshabilitamos el uso de las directivas HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK
#define USB_EP1_TX_SIZE 32 //tamaño para la tx del buffer endpoint 1
#define USB_EP1_RX_SIZE 32 //tamaño para la rx del buffer endpoint 1
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include "header.h" //Configuración del USB y los descriptores para este dispositivo
#include <usb.c> //handles usb setup tokens and get descriptor reports
#byte puerto_b = 06
const int8 Lenbuf=32;
int8 recbuf[Lenbuf];
void main()
{
setup_adc_ports(NO_ANALOGS|VSS_VDD);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_wdt(WDT_OFF);
setup_timer_0(RTCC_INTERNAL);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_timer_3(T3_DISABLED|T3_DIV_BY_1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
setup_oscillator(False);
// TODO: USER CODE!!
set_tris_b (0x00);
delay_ms(500);
usb_init();
usb_task();
usb_wait_for_enumeration();
enable_interrupts(global);
output_bit (pin_b0,0);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,0);
output_bit (pin_b7,1);
while(true){
if(usb_kbhit(1)){
usb_get_packet(1, recbuf, Lenbuf);
if(recbuf[0]==0){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,0);
}
if(recbuf[0]==1){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,0);
}
if(recbuf[0]==2){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==3){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==4){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==5){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==6){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==7){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,0);
}
if(recbuf[0]==8){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==9){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==65||recbuf[0]==97){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==66||recbuf[0]==98){
output_bit (pin_b0,0);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==67||recbuf[0]==99){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,0);
}
if(recbuf[0]==68||recbuf[0]==100){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==69||recbuf[0]==101){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==70||recbuf[0]==102){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,0);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==71||recbuf[0]==103){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==72||recbuf[0]==104){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==73||recbuf[0]==105){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==74||recbuf[0]==106){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,0);
}
if(recbuf[0]==75||recbuf[0]==107){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==76||recbuf[0]==108){
output_bit (pin_b0,0);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,0);
}
if(recbuf[0]==77||recbuf[0]==109){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==78||recbuf[0]==110){
output_bit (pin_b0,0);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,1);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==79||recbuf[0]==111){
output_bit (pin_b0,0);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==80||recbuf[0]==112){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,0);
output_bit (pin_b3,0);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==81||recbuf[0]==113){
output_bit (pin_b0,1);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==82||recbuf[0]==114){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==83||recbuf[0]==115){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==84||recbuf[0]==116){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==85||recbuf[0]==117){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,1);
output_bit (pin_b4,1);
output_bit (pin_b5,1);
output_bit (pin_b6,0);
}
if(recbuf[0]==86||recbuf[0]==118){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==87||recbuf[0]==119){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==88||recbuf[0]==120){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
if(recbuf[0]==89||recbuf[0]==121){
output_bit (pin_b0,0);
output_bit (pin_b1,1);
output_bit (pin_b2,1);
output_bit (pin_b3,0);
output_bit (pin_b4,0);
output_bit (pin_b5,1);
output_bit (pin_b6,1);
}
if(recbuf[0]==90||recbuf[0]==122){
output_bit (pin_b0,1);
output_bit (pin_b1,0);
output_bit (pin_b2,0);
output_bit (pin_b3,1);
output_bit (pin_b4,0);
output_bit (pin_b5,0);
output_bit (pin_b6,1);
}
}
}
}
Suscribirse a:
Comentarios (Atom)


