Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Aprendiendo Proton IDE, Apuntes de Electrotecnia

Es un resumen de las principales rutinas e implementaciones a manera de fragmentos de código escrito en BASIC para microcontroladores.

Tipo: Apuntes

2015/2016

Subido el 22/04/2022

adrian-manuel-lopez-cosenza
adrian-manuel-lopez-cosenza 🇻🇪

1 documento

1 / 27

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Electrónica ML – Construyendo Tecnología Nacional
Biblioteca De Códigos
Indice Del Documento:
1. Activar - Desactivar-Puertos
2. Activar-Modo-Texto-LCD
3. Activar-Por-Bucle
4. Activar-Por -Etiqueta
5. Activar-Puertos-Condicional
6. Alias-Periféricos
7. Bucle-Acción
8. Capturar-Valor - Decimal
9. Configurar-Comunicación-Serial
10. Configurar-Entrada-Analógica
11. Configurar-Fuses-18F4550
12. Configurar-LCD
13. Configurar-LCD-Gráfico
14. Configurar-Memoria
15. Configurar-Pines-Digitales
16. Configurar-Puerto-I/O
17. Configurar-Teclado
18. Configurar-Variables
19. Contar-Pulsos
20. Organizar-Instrucciones
21. Posicionar-Cursor-LCD
22. Quiebre-De-Bucle
23. Retardos-Temporización
24. Configurar-Micro
25. Velocidad
Abrir Archivos (Extensión Bas)
1. Activar - Desactivar-Puertos
2. Activar-Modo-Texto-LCD
3. Activar-Por-Bucle
4. Activar-Por -Etiqueta
5. Activar-Puertos-Condicional
6. Alias-Periféricos
7. Bucle-Acción
8. Capturar-Valor - Decimal
9. Configurar-Comunicación-Serial
10. Configurar-Entrada-Analógica
11. Configurar-Fuses-18F4550
12. Configurar-LCD
13. Configurar-LCD-Gráfico
14. Configurar-Memoria
15. Configurar-Pines-Digitales
16. Configurar-Puerto-I/O
17. Configurar-Teclado
18. Configurar-Variables
19. Contar-Pulsos
20. Organizar-Instrucciones
21. Posicionar-Cursor-LCD
22. Quiebre-De-Bucle
23. Retardos-Temporización
24. Configurar-Micro
25. Velocidad
AMLC-2014
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Vista previa parcial del texto

¡Descarga Aprendiendo Proton IDE y más Apuntes en PDF de Electrotecnia solo en Docsity!

Electrónica ML – Construyendo Tecnología Nacional

Biblioteca De Códigos

Indice Del Documento:

  1. Activar-Desactivar-Puertos
  2. Activar-Modo-Texto-LCD
  3. Activar-Por-Bucle
  4. Activar-Por -Etiqueta
  5. Activar-Puertos-Condicional
  6. Alias-Periféricos
  7. Bucle-Acción
  8. Capturar-Valor-Decimal
  9. Configurar-Comunicación-Serial
  10. Configurar-Entrada-Analógica
  11. Configurar-Fuses-18F
  12. Configurar-LCD
  13. Configurar-LCD-Gráfico
  14. Configurar-Memoria
  15. Configurar-Pines-Digitales
  16. Configurar-Puerto-I/O
  17. Configurar-Teclado
  18. Configurar-Variables
  19. Contar-Pulsos
  20. Organizar-Instrucciones
  21. Posicionar-Cursor-LCD
  22. Quiebre-De-Bucle
  23. Retardos-Temporización
  24. Configurar-Micro
  25. Velocidad Abrir Archivos (Extensión Bas)
  26. Activar-Desactivar-Puertos
  27. Activar-Modo-Texto-LCD
  28. Activar-Por-Bucle
  29. Activar-Por -Etiqueta
  30. Activar-Puertos-Condicional
  31. Alias-Periféricos
  32. Bucle-Acción
  33. Capturar-Valor-Decimal
  34. Configurar-Comunicación-Serial
  35. Configurar-Entrada-Analógica
  36. Configurar-Fuses-18F
  37. Configurar-LCD
  38. Configurar-LCD-Gráfico
  39. Configurar-Memoria
  40. Configurar-Pines-Digitales
  41. Configurar-Puerto-I/O
  42. Configurar-Teclado
  43. Configurar-Variables
  44. Contar-Pulsos
  45. Organizar-Instrucciones
  46. Posicionar-Cursor-LCD
  47. Quiebre-De-Bucle
  48. Retardos-Temporización
  49. Configurar-Micro
  50. Velocidad

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Activar-Desactivar_Puertos.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Leer datasheet antes de configurar * '* * '**************************************************************** ' Sintaxis: 'High Port ' High es una palabra reservada por PROTON para activar 'High port.pin ' La sintaxis correcta es indicar la acción con la palabra reservada seguida de la dirección del puerto 'Low Port ' Low es una palabra reservada por PROTON para desactivar (APAGAR) 'Low port.pin ' La sintaxis correcta es indicar la acción con la palabra reservada seguida de la dirección del puerto ' Ejemplo: High PORTB ' Esto activa todas las salidas del puerto B (Debe haberse declarado el puerto B como salida) Low PORTB ' Esto desactiva todas las salidas del puerto B High PORTB ' También expresa que el puerto B cambiara al estado ALTO (ACTIVO) Low PORTB ' También expresa que el puerto B cambiara al estado BAJO (DESACTIVADO) ' De igual manera podemos utilizar las siguientes sintaxis: PORTB= 0 ' El puerto B a nivel BAJO (APAGADO) PORTB.0= 0 ' El puerto B.0 solo el pin 0 con nivel BAJO (APAGADO) PORTB=% 00000000 ' Todo el puerto B con nivel bajo (APAGADO) PORTB= 1 ' Puerto B solo el pin 0 con nivel ALTO (ACTIVADO) PORTB.0= 1 ' Puerto B solo el pin 0 con nivel ALTO (ACTIVADO) PORTB= 7 ' El puerto B reproduce el dato 00000111 Decimal PORTB= 3 ' El puerto B reproduce el dato 00000011 Decimal PORTB=$F ' El puerto B reproduce el dato 00001111 Hexadecimal PORTB=$3F ' El puerto B reproduce el dato 00111111 Hexadecimal PORTB=% 11111111 ' Todo el puerto con nivel ALTO (ACTIVADO)

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Activar_Por_Bucle.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 03/06/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* : * '**************************************************************** Device 18F4550 ' Micro-controlador seleccionado como ejemplo '**************************************************************** ' Ejemplo 1 Inicio: ' Etiqueta principal, ejecuta una rutina PORTD.2= 1 ' Activar (ALTA) PORTD PIN 2 DelayMS 200 ' Esperar 2 mili-segundos PORTD.2= 0 ' Desactivar(CERO) PORTD PIN 2 DelayMS 200 ' Esperar 2 mili-segundos GoTo Inicio ' Termina la rutina y regresa a la etiqueta '**************************************************************** ' Ejemplo 2 Loop: ' Etiqueta de secuencia, ejecuta una rutina LED = 1 ' Activar LED DelayMS 300 ' Esperar 3 mili-segundos For scan = 1 To 7 ' Comienzo del ciclo FOR Escanea hasta completar 7 LED = LED << 1 ' Mientras LED sea menor a 7 debe continuar DelayMS 300 ' Esperar 3 mili-segundos Next ' Siguiente GoTo Loop ' Regresa a loop '**************************************************************** ' Ejemplo 3 Otra: For n= 1 To 50 Step 2 ' Etiqueta de secuencia, ejecuta una rutina PulsOut PORTD.0, 2500 ' Mantén el pulso en PORTD PIN 0 por 2 segundos y medio DelayMS 10 ' Esperar 0.1 mili-segundos Next ' Siguiente End ' FIN de la rutina

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Activar_Por _Etiqueta.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* * '**************************************************************** ' Útil para realizar acciones que no requieren lazos de control, o como parte de un lazo que ejecuta acciones inmutables. GoSub Gira ' Activar una rutina llamada Gira ' La rutina necesita esta sintaxis: Gira: ' Lo que queremos que haga el micro-controlador Return ' Retornar al punto de inicio

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Alias_Perifericos.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Leer datasheet antes de configurar * '* * '**************************************************************** ' Un alias o un modificador es una palabra que expresa un dispositivo conectado a a un puerto: Symbol MOTOR = PORTA. ' Establece que existe un motor conectado en el puerto A pin 1 Symbol SW = PORTA. ' Establece que existe un interruptor conectado en el puerto A pin 2 Symbol S1 = PORTA. ' Establece que existe un interruptor conectado en el puerto A pin 3

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Bucle_Accion.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 03/06/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* : * '**************************************************************** ' Esto ejecuta un bloque de instrucciones hasta que una condición sea verdadera var1 = 1 ' Variable a incrementar Repeat ' Repetir hasta ser mayor del valor declarado Print At 1 , 1 , Dec var ' También podemos utilizar Repeat High led: Until PORTA.0 = 1 DelayMS 200 ' Evitar rebote Inc var1 ' Incrementar la variable Until var1 > 10 ' Con esto indicamos que al llegar a 10 rompa el bucle

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Comunicación_Serial.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Varia según el micro-controlador * '* : Leer la datasheet correspondiente antes de * '* seleccionar el puerto * '**************************************************************** Device 16F Serial_Baud = 9600 Rsout_Pin = PORTC. Rsout_Mode = TRUE Rsout_Pace = 1 Rsin_Pin = PORTC. Rsin_Mode = TRUE Hserial_Baud = 9600 ' 1# Speed in baud = 9600 Hserial_RCSTA = % 10010000 ' 2# Enable serial port and continuous receive Hserial_TXSTA = % 00100100 ' 3# Enable transmit and asynchronous mode Hserial_Clear = On ' 4# Enable error clearing on received characters ' Notas: ' 1# Velocidad en baudios = 9600 ' 2# Activar puerto serial y recepción continua ' 3# Activar modo de transmisión asíncrona ' 4# Activar auto limpieza al recibir caracteres

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Entrada_Analogica.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 03/06/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* : * '**************************************************************** Declare Adin_Res 10 ' Resolución del convertidor analógico digital Declare Adin_Tad 2 ' CLK options are 0,1,2,3 (are based internal cycles) Declare Adin_Stime 100 ' Tiempo de muestreo adcon1 = % 10000000 ' Setup del registro ADCON1, AN1 / RA1 es Analógico ' Nota para mayor información refiera al datasheet del micro-controlador

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_LCD.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Valido para 16X2 16X4 * '* : Antes de configurar revisar la datasheet * '* del dispositivo. * '**************************************************************** 'Seleccionar dispositivo '**************************************************************** Device 18F '**************************************************************** ' Declarar Puertos '**************************************************************** Declare LCD_Type = 0 Declare LCD_DTPin = PORTD. Declare LCD_ENPin = PORTD. Declare LCD_RSPin = PORTD. Declare LCD_Interface = 4 Declare LCD_Lines = 2 ' Si se utiliza una 16X4 LCD_Lines debe ser = 4

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_LCD_Grafico.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Valido para LCD convencional * '* : Antes de configurar revisar la datasheet * '**************************************************************** 'Seleccionar dispositivo '**************************************************************** Device 18F '**************************************************************** ' Declarar Puertos '**************************************************************** LCD_DTPort = PORTD LCD_RSPin = PORTC. LCD_ENPin = PORTE. LCD_RWPin = PORTC. LCD_CS1Pin = PORTE. LCD_CS2Pin = PORTE. LCD_Type = GRAPHIC ' Escribir en mayúsculas Internal_Font = OFF ' Apagar las fuentes internas Font_Addr = 0

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Pines_Digitales.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* : * '**************************************************************** ' CONFIGURAR los pines como digital ' Ejemplo: All_Digital= true ' Puertos A y B

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Puerto_I_O.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Leer datasheet antes de configurar * '* * '**************************************************************** ' Esto es poco claro en principio, sin embargo vamos a explicarlo ' Declaramos un 18F '**************************************************************** Device 18F '**************************************************************** ' Para declarar la totalidad del puerto como entrada '**************************************************************** Input PORTC ' Todo el puerto es de entrada Input PORTC.0 ' Solo el puerto C.0 es entrada, el resto es salida ' También podemos utilizar esta forma: TRISC= 1 ' Todo el puerto es de entrada TRISC.0- 1 ' Solo el puerto C.0 es entrada, el resto es salida ' Si se prefiere podemos utilizar el método binario: TRISC=% 11111111 ' Todo el puerto es entrada TRISC=% 10000000 ' Solo el puerto C.0 es entrada, el resto es salida ' En hexadecimal seria así: TRISC=$FF ' Todo el puerto es entrada ' En decimal seria así: TRISC= 255 ' Todo el puerto es entrada '**************************************************************** ' Una manera de entender esto seria así: '**************************************************************** ' Cada pin del dispositivo representa un puerto, si asignamos un uno a cada puerto, ' este se convierte en entrada, si lo colocamos en cero es una salida. PORTC.0 PORTC.1 PORTC.2 PORTC.3 PORTC.4 PORTC.5 PORTC.6 PORTC. % 1 1 1 1 1 1 1 1 ' Todo el puerto es entrada % 1 0 0 0 0 0 0 0 ' Puerto C.0 es una entrada, el resto es salida % 0 1 1 0 0 0 1 0 ' Puerto C.0, C.3, C.4, C.5 y C.7 son entradas - Puerto C.1, C.2 y C.6 son salidas ' para expresar un valor con cualquier método solo necesitamos transformarlo ' En binario / En Hexadecimal / En Decimal 11111111 FF 255 11111110 FE 254 11111100 FC 252 11111000 F8 248

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Teclado.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : Varia según el micro-controlador * '* : * '**************************************************************** Keypad_Port = PORTB ' Leer la datasheet correspondiente antes de seleccionar el puerto

Electrónica ML – Construyendo Tecnología Nacional

'* Name : Configurar_Variables.BAS * '* Author : [Adrián Manuel López Cosenza] * '* Notice : Copyright (c) 2015 [GNU-GPL3] * '* : All Rights Reserved * '* Date : 23/05/2015 * '* Versión : 1.0 / NO COMPILAR ESTE EJEMPLO * '* Notes : * '* : * '**************************************************************** ' El nombre de la variable lo asignamos a nuestra entera conveniencia. 'Ejemplos: (Utilizar nemonicos fáciles de recordar) ' Declaración Variable Palabra Dim Tecla_1 As Byte Dim Salida_0 As Word Dim Contador-a As Dword ' No es correcto expresarlo de esta forma, puede provocar errores. Tecla_1 var Byte Salida_0 var Word Contador-a var Dword ' No utilizar nemonicos de esta forma ' Declaración Variable Palabra Dim pos1 As Byte Dim 7este As Byte Dim motorderecho As Byte Dim sensor As Word ' Trate de asociar sus nemonicos a la acción que representa.