Publicado el 18 de Diciembre del 2020
1.568 visualizaciones desde el 18 de Diciembre del 2020
14,4 MB
372 paginas
Creado hace 15a (16/04/2009)
BASIC PARA
BASIC PARA
BASIC PARA
BASIC PARA
MICROCONTROLADORES PIC
MICROCONTROLADORES PIC
MICROCONTROLADORES PIC
MICROCONTROLADORES PIC
Christian Bodington Esteva
Ingeniero en Electrónica
CONTENIDO
Prólogo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
Capítulo I. Herramientas de Diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
Capítulo II. MicroCode Studio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Capitulo III. Microcontroladores PIC.
3.1.- ¿Que es un PIC? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21
3.2.- El Oscilador Externo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
3.3.- El Circuito de Reset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.4.- Consideraciones técnicas de diseño. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4.1.- Estado Lógico de un pin I/O. . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.4.2. Lectura de un estado lógico en un pin I/O. . . . . . . . . . . . . . . 33
3.4.3. El Opto-acoplador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.4.4. Fuente de poder, 5Vdc / 3.3Vdc. . . . . . . . . . . . . . . . . . . . . . . 37
Capítulo IV. Estructura de un programa. Componentes y operadores en
PicBasic.
4.1.- Estructura de un programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.- Subrutinas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.- Componentes y operadores en PicBasic. . . . . . . . . . . . . . . . . . . . . . . .41
i
4.3.1.- Define. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3.2.- Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4.3.3.- Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3.4.- Constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.5.- Símbolos o Alias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.3.6.- Operadores Aritméticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
4.3.7.- Operadores Binarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
4.3.8.- Operadores de Comparación. . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.9.- Operadores Lógicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Capitulo V. Primeros Programas con el PIC16F84.
5.1.- Proyecto #1. Implementación de las instrucciones de programa High,
Low Goto y Pause. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47
5.2.- Proyecto #2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.3.- Proyecto #3. Implementación de la instrucción If-Them-Else. . . . . . . .60
5.4.- Proyecto #4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.5.- Proyecto #5. Implementación de la instrucción For-Next. . . . . . . . . . . 65
5.6.- Proyecto #6. Implementación de la instrucción Frecout. . . . . . . . . . . . 68
5.7.- Proyecto #7. Implementación de la instrucción Button . . . . . . . . . . . . .76
5.7.1.- Proyecto #7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.7.2.- Proyecto #7.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.7.3.- Proyecto #7.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
ii
5.8.- Proyecto #8. Implementación de la instrucción Branch . . . . . . . . . . . . 91
5.9.- Proyecto #9. Implementación de la instrucción PWM . . . . . . . . . . . . . 94
Capitulo VI. Módulos LCD.
6.1.- Pantallas LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2.- Identificación de los pines de una pantalla LCD . . . . . . . . . . . . . . . . . 98
6.3.- Conexión de una pantalla LCD en Pic Basic. . . . . . . . . . . . . . . . . . . . 99
6.4.- Proyecto #10. Implementación de la instrucción Lcdout . . . . . . . . . . 103
6.5.- Proyecto #11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.6.- Proyecto #12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .109
6.7.- Proyecto #13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
6.8.- Proyecto #14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
6.9.- Proyecto #15. Implementación de la instrucción Count. . . . . . . . . . . 115
6.10.- Proyecto #16. Implementación de la instrucción Pulsin. . . . . . . . . . 122
6.11.- Proyecto #17. Implementación de la instrucción Pot. . . . . . . . . . . . 124
6.12.- Memoria CGRAM en la Pantalla LCD. . . . . . . . . . . . . . . . . . . . . . . .127
6.13.- Proyecto #18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
6.14.- Proyecto #19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
7.1.- Teclado Matricial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
7.2.- Proyecto #20. Aplicación de un teclado 3x4. . . . . . . . . . . . . . . . . . . .154
Capitulo VII. Teclado Matricial.
iii
Capitulo VIII. Memoria de Datos.
8.1.- Memoria de Datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
8.2.- Proyecto #21. Implementación de la instrucción Read. . . . . . . . . . . .161
8.3.- Proyecto #22. Implementación de la instrucción Write. . . . . . . . . . . .163
8.4.- Proyecto #23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
8.5.- Proyecto #24. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
Capitulo IX. Interrupciones.
9.1.- ¿Qué son las Interrupciones?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
9.2.- Fuentes de Interrupciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
9.3.- Registro INTCON. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
9.4.- Activación de interrupción a través del pin RB0/INT. . . . . . . . . . . . . . 177
9.5.- Proyecto #25. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
9.6.- Interrupción TMR0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180
9.7.- Registro OPTION. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181
9.8.- Proyecto #26. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
9.9.- Interrupción por cambio de estado de uno de los pines más
significativos del puerto B (RB4-RB7). . . . . . . . . . . . . . . . . . . . . . . . . . . . .186
9.10.- Proyecto #27. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
Capitulo X. Memoria Serial I2C.
10.1.- ¿Qué es el bus I2C?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
10.2.- Proyecto #28. Implementación de las instrucciones I2Cwrite, I2Cread . . 192
iv
10.3.- Proyecto #29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
10.4.- Proyecto #30. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
11.1.- Conversor A/D. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
Capitulo XI. Conversor A/D en el PIC16F877.
Capitulo XII. Comunicación Serial. Transmisión y Recepción de Datos.
11.2.- El registro ADCON0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
11.3.- El registro ADCON1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
11.4.- Proyecto #31. Implementación de la instrucción ADCin. . . . . . . . . . 214
12.1.- Comunicación Serial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
12.2.- Instrucción SerIn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
12.3.- Proyecto #32. Implementación de la instrucción SerIn. . . . . . . . . . . 221
12.4.- Instrucción SerOut. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
12.5.- Proyecto #33. Implementación de la instrucción SerOut. . . . . . . . . .233
12.6.- Proyecto #34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
Capitulo XIII. Servomotor.
13.1.- ¿Qué es un Servomotor?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
13.2.- Proyecto #35. Implementación de la instrucción PauseUs. . . . . . . . .272
13.3.- Proyecto #36. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
13.4.- Proyecto #37. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
13.5.- Proyecto #38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
v
Capitulo XIV. Módulos RF para comunicaciones.
Capitulo XV. Instrucc
Comentarios de: Basic para Microcontroladores PIC (0)
No hay comentarios