Proton IDE
Entrada Analógica
; En este codigo se muestra la configuracion de los adc
; y la configuracion para conectar una lcd por cualquier
; puerto de la targeta i208, se obtiene una lectura por el AN0
; y la lectura del adc se observa en una lcd 2x16
; Configuracion de bootloader en proton
; para la tarjeta i208
; Agregar a todos tus programas estas lineas
;-----------------------------------------------
Device = 18F4550
Declare PROTON_START_ADDRESS = $1000
Xtal 12
PLL_Req On
#define LOADER_USED 1
#define RESET_ORG 1000h
#define INTERRUPT_ORG 1008h
;------------------------------------------------
;----------Empieza a programar aqui AQUI---------
;----------Configuracion para lcd-----------------
TRISD = %00000000 ;Configuracion del puertod para lcd
LCD_Lines = 2 ;Configura lcd de 2 lineas
LCD_Interface = 4 ;Lcd con configuracion de 4 datos es decir solo se usaran d4,d5,d6,d7
LCD_RSPin PORTD.1 ;Pin rs de la lcd por portd.1
LCD_ENPin PORTD.3 ;Pin enable de la lcd por puertod.3
LCD_DTPin PORTD.4 ;Portd.4, portd.5, portd.6, portd.7, como pines de datos de la lcd (d4, d5, d6, d7)
;----------Configuracion del adc ------------------
DelayMS 50 ;Retardo para configuracion de adc
Declare Adin_Res 8 ;Declara resolucion en adc 8, 10
Declare Adin_Tad FRC ;Fuente del oscilador 2_FOSC osciladro externo dividido en 2, 8_FOSC oscilador externo dividido en 8, FRC oscilador externo
Declare Adin_Stime 50 ;Frecuencia de muestreo en 50 us, esta puede ser de de 0us a 65535us
TRISA = %00000001 ;Confifura el ANO como entrada, se configura segun el puerto en que este cada adc del pic
ADCON1 = %00000000 ;Se activan todos los adc (ver data sheet para cambiar configuracion)
Dim ADC As Byte ;declaracion de variable tipo byte para lectura del adc
;----------------------------------------------------
While 1 = 1 ;ciclo infinito
ADC = ADIn 0 ;Lectura de adc el valor es guardado en la variable adc
Print At 1,1, "AN1 = ", Dec, ADC ;Imprime el valor de la variable ADC en la lcd
DelayMS 500 ;Retardo para poder visualizar el dato
Cls ;Limpia lcd
Wend ;Fin del ciclo
;-----------------------------------------------------
Archivos descargables
Digitales
; En este codigo se presenta como configurar
; y usar los puertos de la targeta i208 como
; entradas o salida digital
; Configuracion para bootloader en proton
; para la tarjeta i208
; Agregar a todos tus programas estas lineas
;-----------------------------------------------
Device = 18F4550
Declare PROTON_START_ADDRESS = $1000
Xtal 12
PLL_Req On
#define LOADER_USED 1
#define RESET_ORG 1000h
#define INTERRUPT_ORG 1008h
;------------------------------------------------
;----------Empieza a programar aqui AQUI---------
;---------Configuracion de puertos---------------
Symbol OUT PORTD ;asignamos un nombre al PUERTOD
DelayMS 100 ;retardo para configuracion
TRISD = %00000000 ;Configuracion del puerto d como salida
TRISB = %11111111 ;configuracion del puerto B como entrada
OUT = 0 ;Se apaga todo el puerto d
;------------------------------------------------
While 1 = 1 ;Ciclo infinito
OUT=PORTB ;Se visualiza el estado del puertob en el puertod
DelayMS 100 ;Retardo para lectura
Wend ;Fin de ciclo
PWM
; En este codigo se muestra un ejemplo para la implementacion de pwm en la targeta i208
; esta tiene 2 modulos de ccp (ccp1 y ccp2) los cuales pueden ser configurados
; como pwm por hardware que puede alcanzar una frecuencia de hasta
; 32 khz, en este programa se configura el ccp1 y se muestra como configurar la
; la frecuencia, el ciclo de trabajo y seleccion de pwm de acuerdo al modulo ccp definido
; Configuracion de bootloader en proton
; para la tarjeta i208
; Agregar a todos tus programas estas lineas
;-----------------------------------------------
Device = 18F4550
Declare PROTON_START_ADDRESS = $1000
Xtal 12
PLL_Req On
#define LOADER_USED 1
#define RESET_ORG 1000h
#define INTERRUPT_ORG 1008h
;------------------------------------------------
;----------Empieza a programar aqui AQUI---------
TRISC.2 = 0 ;Pinc.2 como salida para pwm
Declare CCP1_Pin PORTC.2 ;Declara ccp1 como pwm por pinc2
;El ccp puede ser ccp1 y/o ccp2 para la i208
Dim channel As Byte ;variable para seleccion de canal de pwm en caso de tener mas de uno
Dim duty As Byte ;variable para duty cicle del pwm
Dim frecuencia As Word ;Variable para frecuencia de pwm
channel = 1 ;Canal uno de pwm, este puede ser 1, o 2 en caso de configurar el ccp2
duty = 125 ;Duty cycle al 50% (0-255)
frecuencia = 1000 ;Frecuencia de 1Khz para pwm puede ser de (0-32767)
While 1 = 1 ;ciclo infinito
HPWM channel, duty, frecuencia ;funcion para ejecutar pwm por hardware en ccp1
DelayMS 100 ;retardo de ciclo
Wend ;fin del ciclo
Recepción Serial - Serin
; Este ejemplo se muestra la configuracion basica para
; recepcion de transmision serial atravez del portc.7 de la targeta i208
; La siguiente tabla muestra informacion para configurar la
; velocidad en baudios en la instruccion serin
; Tabla 1
;
; Velocidad en Baudios Configuracion
; 300 3313
; 600 1646
; 1200 813
; 2400 396
; 4800 16572
; 9600 84
;
; Configuracion de bootloader en proton
; para la tarjeta i208
; Agregar a todos tus programas estas lineas
;-----------------------------------------------
Device = 18F4550
Declare PROTON_START_ADDRESS = $1000
Xtal 12
PLL_Req On
#define LOADER_USED 1
#define RESET_ORG 1000h
#define INTERRUPT_ORG 1008h
;------------------------------------------------
;----------Empieza a programar aqui AQUI---------
;----------Configaracion de lcd------------------
TRISD = %00000000 ;Configura puerto como salida para LCD
LCD_Lines = 2 ;Define lcd de 2 lineas (2x16)
LCD_Interface = 4 ;Interfaz de 4 datos para LCD
LCD_RSPin PORTD.1 ;Pin Rs de la LCD por el puertod.1
LCD_ENPin PORTD.3 ;Pin enable de la LCD por el puertod.3
LCD_DTPin PORTD.4 ;Pines de datos D4,D5,D6,D7 de la LCD por el puertod.4, puertod.5, puertod.6, puertod.7
;------------------------------------------------
Dim ser As Byte ;Declara variable para almacenar dato recibido
While 1 = 1 ;Ciclo infinito
SerIn PORTC.7 , 84 , [ser] ; Funcion para recepcion serial por el puertoc.7 a una
; velocidad de 9600 baudios para cambiar configuracion ver tabla 1
; [ser] variable donde se almacenara el dato recibido
Cls ; Limpia lcd
Print At 1,5, " DATO = ", Dec, ser ; Imprime dato recibido en lcd
DelayMS 200 ; Retardo para visualizar dato
Wend ; Fin del ciclo
;-------------------------------------------------
Transmision Serial - Serout
; Este ejemplo se muestra la configuracion basica para
; una transmision serial, enviando el string hola a travez del portc.6
; de la targeta i208 la siguiente tabla muestra informacion para configurar la
; velocidad en baudios en la instruccion serout
; Tabla 1
;
; velocidad en baudios Configuracion
; 300 3313
; 600 1646
; 1200 813
; 2400 396
; 4800 16572
; 9600 84
;
; Configuracion de bootloader en proton
; para la tarjeta i208
; Agregar a todos tus programas estas lineas
;-----------------------------------------------
Device = 18F4550
Declare PROTON_START_ADDRESS = $1000
Xtal 12
PLL_Req On
#define LOADER_USED 1
#define RESET_ORG 1000h
#define INTERRUPT_ORG 1008h
;------------------------------------------------
;----------Empieza a programar aqui AQUI---------
;----------Configuracion de la LCD---------------
TRISD = %00000000 ; Configura puertod como salida para lcd
LCD_Lines = 2 ; Define LCD de 2 lineas
LCD_Interface = 4 ; Comunicacion de LCD con 4 datos
LCD_RSPin PORTD.1 ; Configura pin rs de la LCD por puertod.1
LCD_ENPin PORTD.3 ; Configura Enable pin de la lcd por puertod.3
LCD_DTPin PORTD.4 ; Pin de datos de la lcd (d4, d5, d6, d7) por los pines (portd.4, PORTD.5, PORTD.6, PORTD.7)
;------------------------------------------------
Dim SerString[10] As Byte ; Declara un arreglo para almacenar el string
Str SerString = "HELLO" , 0 ; Almacenamos el string HELLO en el arreglo creado
While 1 = 1
SerOut PORTC.6, 84, [Str SerString] ; Funcion para enviar serialmente el strin HEllO a traves del PORTC.6
; a una velocidad de 9600 baudios para cambiar configuracion ver tabla 1
DelayMS 500 ; retardo para enviar cada 500 milisegundos
Wend
Archivos descargables