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   
 
Archivos descargables                   

 

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
 
Archivos descargables                   
 

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
 
;-------------------------------------------------
 
Archivos descargables                   
 

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