Directorio para el desarrollo de sistemas integrados PIC
Parte 1 Introducción a los sistemas integrados
Capítulo 1 Computadoras pequeñas, control oculto 2
1.1 Descripción general de los sistemas integrados actuales 2
1.2 Algunos ejemplos de sistemas integrados 3
1.2.1 Frigorífico doméstico 3
1.2.2 Mecanismo de puerta de coche 4
1.2.3 Electrónica Tenis de mesa 5
1.2.4 Vehículo autónomo guiado Derbot 5
1.3 Algunos conocimientos informáticos necesarios 7
1.3.1 Elementos informáticos 7 p>
1.3.2 Conjunto de instrucciones - CISC y RISC 8
1.3.3 Tipo de memoria 8
1.3.4 Estructura de organización de la memoria 9
1.4 Microprocesador y Microcontrolador 10
1.4.1 Microprocesador 10
1.4.2 Microcontrolador 10
1.4.3 Productos de la serie Microcontroller 11
1.4.4 Embalaje y apariencia del microcontrolador 12
1.5 Microcontroladores Microchip y PIC 13
1.5.1 Antecedentes 13
1.5.2 El microcontrolador PIC actual 14
1.6 Tomando la serie 12 como modelo ejemplo para presentar el microcontrolador PIC 16
1.7 Otros microcontroladores: microcontroladores Freescale 18
Resumen 20
Referencias 20
Parte 2 Sistema mínimo y PIC16F84A
Capítulo 2 Familia PIC16 y 16F84A 22
2.1 Serie PIC16 22
2.1.1 Descripción general de la serie PIC16 22
2.1. 2 16F84A 24
2.1.3 Actualice con precaución 24
2.2 Descripción general de la arquitectura 16F84A 24
2.3 Revisión de la tecnología de memoria 27
2.3 .1 RAM estática 27
2.3.2 EPROM 28
2.3.3 EEPROM 28
2.3.4 Flash 29
2.4 Memoria de 16F84A 29
2.4.1 Memoria de programa 16F84A 29
2.4.2 Memoria de registro de datos y funciones especiales (RAM) 16F84A 30
2.4.3 Palabra de configuración 32
2.4.4 EEPROM 33
2.5 Algunos problemas relacionados con la sincronización 34
2.5.1 Oscilador de reloj y ciclo de instrucciones 34
2.5.2 Operación de tubería 35
2.6 Encendido y reinicio 36
2.7 Otros microcontroladores: microcontrolador Atmel AT89C2051 37
2.8 Más detalles: reinicio en chip 16F84A circuito 38
Resumen 40
Referencias 41
Capítulo 3 Puertos paralelos, fuentes de alimentación y osciladores de reloj 42
3.1 Entrada/entrada paralela Descripción general de la salida 42
3.2 Desafíos técnicos de la entrada/salida paralela 43
3.2.1 Diseño de puertos paralelos 43
3.2.2 Características eléctricas de los puertos 46 p>
3.2.3 Algunas características especiales del puerto 47
3.3 Dispositivos conectados al puerto paralelo 48
3.3.1 Switch 48
3.3.2 Diodo emisor de luz 49
<p>3.4 PIC16F84A puerto paralelo 51
3.4.1 16F84A puerto B 52
3.4.2 16F84A puerto A 53
3.4.3 Características de salida del puerto 53
3.5 Oscilador de reloj 55
3.5.1 Tipo de oscilador de reloj 55
3.5.2 Cuestiones a considerar al utilizar el oscilador 56
3.5.3 Oscilador de reloj 16F84A 56
3.6 Fuente de alimentación 58
3.6.1 Requisitos de fuente de alimentación 58
3.6.2 Condiciones de trabajo 16F84A 58
3.7 Diseño de hardware de un juego electrónico de tenis de mesa 60
Resumen 60
Referencias 61
Capítulo 4 Inicio de la programación ——Introducción al ensamblaje 62 p>
4.1 Funciones del programa y proceso de desarrollo 63
4.1.1 Problemas de programación y compromisos del ensamblador 63
4.1.2 Uso del lenguaje ensamblador Proceso de escritura del programa 64
4.1.3 Proceso de desarrollo del programa 65
4.2 Conjunto de instrucciones de la serie PIC16 y ALU 66
4.2.1 Serie PIC16 ALU 66 p>
4.2.2 Serie PIC16 conjunto de instrucciones 67
4.3 Ensamblador y formato de ensamblaje 68
4.3.1 Introducción al ensamblador y ensamblador Microchip MPASMTM 68
4.3.2 Formato de ensamblaje 68
4.3.3 Directivas de ensamblaje 69
4.3.4 Representación de números 69
4.4 Escribir programas simples 70
4.5 Programar usando un entorno de desarrollo 72
4.5.1 Introducción a MPLAB 72
4.5.2 Componentes de MPLAB 73
4.5.3 Estructura de archivos MPLAB 74
4.6 MPLAB Guía 74
4.6.1 Crear un proyecto 75
4.6.2 Escribir código fuente 75
4.6 .3 Armar el proyecto 76
4.7 Introducción a la simulación del programa 77
4.7.1 Iniciar la simulación 77
4.7.2 Generar entrada de puerto 78
4.7.3 Observar el estado de varias partes del microcontrolador 78
4.7.4 Restablecer y ejecutar el programa 79
4.8 Descargar el programa al microcontrolador 80
4.9 Comparación entre el conjunto de instrucciones CISC y RISC conjunto de instrucciones 82
4.10 Más comprensión: formato del conjunto de instrucciones de la serie 16 83
Resumen 84
Referencias 84
Capítulo 5 Creación de programas en ensamblador 85
5.1 Descripción general de la creación de programas estructurados 85
5.1.1 Diagrama de flujo 85
5.1 2. Diagrama de estado 86
5.2. Control de procesos - bifurcaciones y subrutinas 88
5.2.1 Bifurcaciones condicionales y operaciones de bits 88
5.2.2 Subrutinas y pila 89
5.3 Generación de retrasos y tiempos intervalos 91
5.4 Procesamiento de datos 92
5.4.1 Registro de direccionamiento directo y selección de archivos 93
5.4.2 Tabla de búsqueda 93
5.4.3 Ejemplo de programa que incluye bucle de retardo y tabla de búsqueda 95
5.5 Instrucciones lógicas 97
5.6 Instrucciones aritméticas y bandera de acarreo 97
5.6.1 Instrucciones de suma 98
5.6.1
p>
5.6.2 Instrucción de resta 98
5.6.3 Un ejemplo de programa aritmético 98
5.6.4 Guardar la secuencia de Fibonacci 100 mediante direccionamiento indirecto
p>
5.7 Ensambladores más complejos 102
5.7.1 Incluir archivos 102
5.7.2 Macros 103
5.7.3 Instrucciones especiales MPLAB 104.
5.8 Más usos del emulador MPLAB 105
5.8.1 Punto de interrupción 105
5.8.2 Cronómetro 106
5.8.3 Seguimiento 107
5.9 Programa electrónico de juego de tenis de mesa 108
5.9.1 Estructura del programa 108
5.9.2 Análisis del código del programa 110
5.10 Electrónico Simulación del programa de juego de tenis de mesa 111
5.10.1 Configuración de incentivos de entrada 111
5.10.2 Configuración de la ventana de observación 111
5.10.3 Carrera de un solo paso 111
5.10.4 Carrera continua de un solo paso 112
5.10.5 Carrera 112
5.10.6 Punto de interrupción 112
5.10.7 Cronómetro 112
5.10.8 Seguimiento 113
5.10.9 Depuración de todo el programa 113
5.11 Introducción a otros emuladores—— Máquina de fax gráfica 114
Resumen 114
Referencias 114
Capítulo 6 Dispositivos relacionados con la temporización: interrupciones, contadores y temporizadores 115
p>6.1 Interrupción 115
6.1.1 Estructura de interrupción 116
6.1.2 Estructura de interrupción 16F84A 117
6.1.3 Respuesta de la CPU a interrupciones 118
6.2 Escribir un programa con interrupciones 119
6.2.1 Escribir un programa con una sola interrupción 119
6.2.2 Escribir un programa con múltiples interrupciones ——Identificar fuentes de interrupción 121
6.2 .3 Evitar que las interrupciones dañen el programa: guardar contexto 122
6.2.4 Evitar que las interrupciones dañen el programa: áreas críticas y enmascaramiento de interrupciones 124
6.3 Descripción general de contadores y temporizadores 126
6.3.1 Repaso de contadores digitales 126
6.3.2 Uso de contadores como temporizadores 127
6.3.3 Módulo 16F84ATimer0 128
6.4 Uso de 16F84ATimer0: tomando como ejemplo el juego de tenis de mesa electrónico 130
6.4.1 Conteo de objetivos o eventos 130
6.4.2 Retraso generado por hardware 131
6.5 Temporizador de vigilancia 133
6.6 Modo de suspensión 133
6.7 Otras interrupciones 134
p>6.8 Más comprensión: retardo de respuesta a la interrupción 135
Resumen 136
Parte 3 Sistemas más grandes y PIC16F873A
Capítulo Capítulo 7 Sistemas más grandes y PIC16F873A 138
7.1 Descripción general de PIC16F87XA 139
7.2 Diagrama de estructura de 16F873A y CPU 140
7.2.1 CPU y núcleo 141
7.2.2 Memoria 141
7.2.3 Dispositivo periférico 142
7.3 Memoria y mapa de memoria de 16F873A
142
7.3.1 Memoria de programa 16F873A 142
7.3.2 Memoria de datos y registro de funciones especiales 16F873A 144
7.3.3 Palabra de configuración 146
p>7.4 Operaciones de memoria “especiales” 146
7.4.1 Acceso a EEPROM y memoria de programa 147
7.4.2 Programación en serie en circuito (ICSPTM) 149
7.5 Interrupción 149 de 16F873A
7.5.1 Estructura de interrupción 149
7.5.2 Registro de interrupción 150
7.5.3 Identificación de interrupción y preservación del contexto 152
7.6 Oscilador, reset y alimentación de 16F873A 152
7.6.1 Oscilador de reloj 152
7.6.2 Reset y alimentación 152
p>
7.7 Puerto paralelo 153 de 16F873A
7.7.1 Puerto A 153 de 16F873A
7.7.2 Puerto B 155 de 16F873A
7.7. 3. Puerto C de 16F873A 155
7.8 Herramientas de prueba, depuración y diagnóstico 156
7.8.1 Desafíos en las pruebas de sistemas integrados 156
7.8 .2 Osciloscopios y analizador lógico 158
7.8.3 Emulador en circuito 160
7.8.4 Depurador en chip 161
7.9 Depurador en circuito de Microchip (ICD2 ) 162
7.10 Aplicación 16F873A: DerbotAGV 163
7.10.1 Alimentación, oscilador y reset 163
7.10.2 Uso de puerto paralelo 164
7.10.3 Integración de hardware 165
7.11 Uso de ICD2 para descargar, probar y ejecutar un programa simple 166
7.11.1 El primer programa AGV 166
7.11.2 Aplicar el depurador en circuito ICD2 168
7.11.3 Establecer la palabra de configuración en el programa 169
7.12 Obtenga más información sobre el puerto D y el puerto E de 16F874A/16F877A 171
Resumen 173
Referencias 173
Capítulo 8 Interfaz hombre-computadora e interfaz física 174
8.1 Descripción general de interfaz hombre-computadora 174
8.2 Del interruptor al teclado 176
8.2.1 Teclado 177
8.2.2 Ejemplo de diseño: uso del teclado en el controlador manual Derbot 178
8.3 Pantalla LED 182
8.3.1 Matriz de LED: pantalla LED de siete segmentos 182
8.3.2 Ejemplo de diseño: uso de pantalla LED de siete segmentos en el controlador manual Derbot 184
8.4 LCD 188
8.4.1 Controlador HD44780 y su circuito derivado 188
8.4.2 Ejemplo de diseño: uso de la pantalla LCD en Derbot controlador de mano 190
8.5 Interactuando con el mundo físico 192
8.6 Algunos sensores simples 193
8.6.1 Microinterruptor 193
8.6. 2 Fotorresistor 194
8.6.3 Detección óptica de objetos 194
8.6.4 Sensor óptico para codificador de ángulo de eje 195
8.6.5 Método ultrasónico de percepción de objetos
196
8.7 Estudio en profundidad de la entrada de señal digital 196
8.7.1 Características de entrada del 16F873A 197
8.7.2 Garantizar una amplitud de voltaje normal y protección de entrada 198
8.7.3 Eliminación del rebote del interruptor 201
8.8 Actuador: motor y servo 202
8.8.1 Motor CC y motor paso a paso 202
8.8.2 Posicionamiento de ángulo: servotransmisión 203
8.9 Interacción con el actuador 204
8.9.1 Conversión CC simple 204
8.9. circuito en AGV 206
8.9.3 Interruptor bidireccional: puente H 207
8.9.4 Interruptor de motor en AGV 209
8.10 Integración de hardware AGV 209 p>
8.11 Aplicación de sensores y actuadores: programa de navegación "ciego" AGV 210
Resumen 212
Referencias 212
Capítulo 9 Aprendizaje profundo de la sincronización 213
9.1 Aprendizaje profundo de conteo y cronometraje 213
9.2 16F87XATimer0 y Timer1 214
9.2.1 Timer0 214
9.2.2 Timer1 214
9.2.3 Utilice Timer0 y Timer1 como contadores del odómetro AGV 216
9.2.4 Utilice Timer0 y Timer1 para generar interrupciones repetitivas 219 p>
9.3 Timer2 , comparador y registro PR2 220 de 16F87XA
9.3.1 Timer2 220
9.3.2 Registro PR2, comparador y postescalador 221
9.4 Capturar/Comparar/PWM (CCP) Módulo 222
9.4.1 Captura/Comparación/PWM Introducción 222
9.4.2 Modo de captura 223
p>
9.4.3 Modo de comparación 224
9.5 Modulación de ancho de pulso 225
9.5.1 Principio de PWM 225
9.5.2 En hardware Generar señal PWM - Módulo PWM de 16F87XA 226
9.5.3 Aplicar PWM al control de motores en AGV 228
9.6 El software genera PWM 231
9.6 .1 Un ejemplo de software que genera PWM 231 p>
9.6.2 Directivas de ensamblaje relacionadas con la definición de memoria y el salto 235
9.7 Uso de PWM para la conversión digital a analógica 236
9.8 Medición de frecuencia 239
9.8.1 Principio de medición de frecuencia 239
9.8.2 Medición de frecuencia (velocidad) en AGV 239
9.9 In Aplicación del control de velocidad en AGV 242
9.10 Cuando no hay ningún temporizador disponible 245
9.11 Modo de suspensión 247
9.12 Qué aprenderemos más adelante 248
9.13 Integración de hardware AGV 248
Resumen 248
Referencias 249
Capítulo 10 Comunicación del puerto serie 250
10.1 Introducción a los puertos serie 250
10.2 Serie simple conexión - comunicación de datos síncrona 252
10.2.1 Conceptos básicos de la comunicación síncrona 252
10.2.2 En microcontrol Implementación de E/S serie síncrona en el dispositivo 253
10.
2.3 Microcable y SPI 254
10.2.4 Introducción de múltiples nodos 254
10.3 Modo SPI del módulo de puerto serie síncrono maestro (MSSP) 16F87XA 255
10.3. 1 Descripción general del puerto 255
10.3.2 Configuración del puerto 256
10.3.3 Configuración del reloj 257
10.3.4 Transmisión de datos de gestión 258
10.4 Un ejemplo simple de SPI 259
10.5 Microwire y SPI y las limitaciones de la transmisión serial síncrona simple 261
10.6 Comunicación serial síncrona mejorada y bus entre chips 261
p>10.6.1 Las principales características y conexión física de I2C 261
10.6.2 Resistencia pull-up 262
10.6.3 Características de la señal I2C 262
10.7 MSSP configurado como I2C 263
10.7.1 Registros I2C en MSSP y sus aplicaciones básicas 263
10.7.2 MSSP en modo esclavo I2C 267
10.7.3 MSSP en modo maestro I2C 269
10.8 Aplicando I2C en DerbotAGV 270
10.8.1 Usando el controlador manual Derbot como nodo serie 270 p>
10.8. 2 Usando AGV como maestro I2C 271
10.8.3 Usando controlador manual como esclavo I2C 275
10.8.4 Verificación del programa DerbotI2C 277
10.9 Evaluación de serial síncrono comunicación de datos e introducción a los métodos de comunicación asincrónica 278
10.9.1 Principios asincrónicos 278
10.9.2 Si cómo sincronizar datos en serie al recibir una señal de reloj 279
10.10 16F87XA Transmisor receptor asíncrono síncrono direccionable universal (USART) 280
10.10.1 Descripción general de puertos 280
10.10.2 Transmisor asíncrono USART 280
10.10.3 Generador de velocidad de baudios USART 282
10.10.4 Receptor asíncrono USART 283
10.10.5 Ejemplo de comunicación asíncrona 284
10.10.6 Uso de la detección de dirección en el modo de recepción USART 286
10.10.7 Modo síncrono de USART 287
10.11 No Implementación de comunicación en serie con la ayuda de puertos serie - "bitbanging" 287
10.12 Construyendo un Derbot controlador manual 287
Resumen 287
Referencias 288
Capítulo 11 Adquisición y procesamiento de datos 289
11.1 Descripción general de la adquisición y el uso de Cantidades analógicas y digitales 289
11.2 Sistema de adquisición de datos 290
11.2.1 Convertidor analógico a digital 290
11.2.2 Acondicionamiento de señales: amplificación y filtrado 293
11.2.3 Multiplexor analógico 293
11.2 .4 Tiempo de muestreo y retención y adquisición 293
11.2.5 Temporización y control por microprocesador 295
11.2.6 Adquisición de datos en un entorno de microcontrolador 296
11.3 ¿Módulo ADC en PIC?16F87XA 296
11.3.1 Descripción general y diagrama de bloques 296
11.3.2 Control de AD
C 297
11.3.3 Modelo de entrada analógica 300
11.3.4 Calcular el tiempo de adquisición 301
11.3.5 Repetir conversión 302
11.3.6 Compensación integral entre tasa de conversión y precisión de conversión 302
11.4 Aplicación de ADC en el programa de fotometría Derbot 303
11.4.1 Configuración de ADC 304
11.4 .2 Tiempo de adquisición 304
11.4.3 Conversión de datos 304
11.5 Algunas técnicas simples de procesamiento de datos 305
11.5.1 Punto fijo y punto flotante aritmética 305
11.5.2 Conversión de números binarios a códigos BCD 306
11.5.3 Multiplicación 307
11.5.4 Ejemplos de escalado y fotometría Derbot 307 p >
11.5.5 Escalado usando voltaje de referencia 308
11.6 Programa de búsqueda de luz Derbot 309
11.7 Módulo comparador 311
11.7.1 Comparación general de operación del dispositivo 311
11.7.2 Comparador y voltaje de referencia de 16F87XA 311
11.8 Uso del circuito Derbot para otras mediciones 312
11.8.1 Medición electrónica Medidor de distancia 312
11.8.2 Fotómetro 313
11.8.3 Voltímetro 314
11.8.4 Otros sistemas de medición 314
11.9 Configurar Derbot como robot buscador de luz 314
Resumen 314
Referencias 315
Parte 4 Un sistema más diestro y PIC18FXX2
Capítulo 12 Más sistemas inteligentes y PIC18FXX2 318
12.1 Descripción general de las series PIC18 y 18FXX2 319
12.2 Diagrama de estructura y registro de estado de 18F2X2 320
12.3 Conjunto de instrucciones de la serie 18 324
12.3.1 Instrucciones sin cambios 327
12.3.2 Instrucciones actualizadas 328
12.3.3 Nuevas instrucciones modificadas 328
12.3.4 Nuevas instrucciones 328
12.4 Memoria de datos y registros de funciones especiales 329
12.4.1 Mapa de memoria de datos 329
12.4.2 Acceso a la RAM 329
12.4. 3 Direccionamiento indirecto y acceso a tablas en la memoria de datos 329
12.5 Memoria de programa 332
12.5.1 Mapa de memoria de programa 332
12.5.2 Contador de programa 332 p>
12.5.3 Instrucción goto de cálculo mejorada basada en la serie 16 333
12.5.4 Registro de configuración 334
12.6 Pila 335
12.6. 1 Operación automática de la pila 335
12.6.2 Acceso del programador a la pila 336
12.6 3. Pila de registro rápido 336
12.7 Interrupciones 336
12.7.1 Descripción general de la estructura de interrupciones 337
12.7.2 Habilitación y priorización de fuentes de interrupción 337
p>12.7.3 Habilitación de prioridad general de interrupción 338
12.7.4 Habilitación global 338
12.7.5 Otros aspectos de la lógica de interrupción 338
12.7.6 Registro de interrupción 3
39
12.7.7 Protección del contexto de interrupción 343
12.8 Alimentación y reinicio 343
12.8.1 Alimentación 343
12.8. 2 Encendido y reinicio 343
12.9 Fuentes de oscilación 345
12.9.1 Modos de oscilador LP, XT, HS y RC 345
12.9.2 EC, Modo de oscilador ECIO y RCIO 345
12.9.3 Modo de oscilador HS PLL 346
12.9.4 Conmutación de fuente de reloj 346
12.10 Introducción a la programación 18F242 346 p> p>
12.10.1 Usando MPLABIDE Serie 18 347
12.10.2 Programa Fibonacci 347
Resumen 349
Referencias 349 p>
Capítulo 13 Dispositivos periféricos PIC18FXX2 350
13.1 Descripción general de los dispositivos periféricos 18FXX2 350
13.2 Puerto paralelo 351
13.2.1 Puerto A de 18FXX2 351
13.2.2 Puerto B de 18FXX2 352
13.2.3 Puerto C de 18FXX2 353
13.2.4 Puerto esclavo paralelo 353
13.3 Temporizador 353
13.3.1 Temporizador0 353
13.3.2 Temporizador1 355
13.3.3 Temporizador2 356
13.3.4 Temporizador3 356
13.3.5 Temporizador de vigilancia 357
13.4 Módulo de comparación/captura/PWM(CCP) 358
13.4.1 Registro de control 358
13.4.2 Modo captura 359
13.4.3 Modo comparación 359
13.4.4 Modulación de ancho de pulso 360
13.5 Puerto serie 360
13.5.1 MSSP en modo SPI 360
13.5.2 MSSP en modo I2C 361
13.5.3 USART 361
p>13.6 Analógico- convertidor a digital (ADC) 361
13.7 Detección de bajo voltaje 361
13.8 Aplicación de la serie 18 en Derbot-18 363
13.9 18F2420 y conjunto de instrucciones extendido 363
13.9.1 Nanotecnología 364
13.9.2 Conjunto de instrucciones extendido 364
13.9.3 Periféricos mejorados 365
Resumen 365
Referencias 365
Capítulo 14 Introducción al lenguaje C 366
14.1 Por qué elegir el lenguaje C 366
14.2 Introducción al lenguaje C 367 p>
14.2.1 Breve historia 367
14.2.2 El primer programa C 367
14.2.3 Estructura del programa—— Declaraciones, declaraciones, comentarios y espacios 368 p>
14.2.4 Palabras clave del lenguaje C 370
14.2.5 Funciones del lenguaje C 370
14.2.6 Tipos de datos y almacenamiento 371
14.2. 7 operadores C 372
14.2.8 Control de flujo de programa y palabra clave while 372
14.2.9 Preprocesador C y su directiva 373
>
14.2.10 Uso de bibliotecas y bibliotecas estándar 373
14.3 Compilación de programas en C 373
14.4 Compilador MPLABC18 374
14.4.1 Especificaciones del sistema numérico 375
14.4.2 Operaciones aritméticas 375
14.5 Directrices C18 375
14.5.1 Conectores y scripts de conectores 375
14.5 .2 Conexión archivos de encabezado y archivos de biblioteca 376
14.5.3 Creación de proyectos 377
14.5.4 Archivos de proyecto 378
14.6 Simulación de programas en C 378
14.7 La segunda rutina C: programa Fibonacci 380
14.7.1 Programa preliminar: mayor comprensión de la declaración de variables 381
14.7.2 estructura do- while 381
14.7.3 Etiqueta y palabra clave Goto 381
14.7.4 Simulación del programa Fibonacci 381
14.8 Biblioteca MPLABC18 382
14.8.1 Función de dispositivo periférico de hardware 382
14.8.2 Biblioteca de dispositivos periféricos de software 382
14.8.3 Biblioteca de software general 383
14.8.4 Biblioteca de matemáticas 384
14.9 Lectura en profundidad 385
Resumen 385
Referencias 385
Capítulo 15 Lenguaje C y entorno integrado 387
15.1 Cómo hacer que el lenguaje C sea adecuado para entornos integrados 387
15.2 Control y ramificación de valores de bits 387
15.2.1 Control de bits individuales 389
15.2.2 Condicional If y if-else estructuras de rama 389
15.2.3 Establecer bits de configuración 390
15.2.4 Simular y ejecutar rutinas 390
15.3 Mayor comprensión de las funciones 391
15.3.1 Prototipo de función 391
15.3.2 Definición de función 392
15.3.3 Llamada de función y transferencia de datos 392
15.3.4 Función de biblioteca de retardo y Delay10KTCYx() 393
15.4 Más instrucciones de bifurcación y bucle 393
15.4.1 Usando la palabra clave break 393
15.4.2 Usando la palabra clave for 394
15.5 Usar temporizadores y periféricos PWM 395
15.5.1 Usar periféricos temporizadores 397
15.5.2 Usar PWM 398
15.5.3 Bucle del programa principal 399
Resumen 399
Capítulo 16 Uso del lenguaje C para recopilar datos y uso 400
16.1 Uso del lenguaje C para implementar el procesamiento de datos 400
16.2 Usar 18FXX2ADC 400
16.2.1 Estructura del programa de búsqueda de luz 404
16.2.2 Usar ADC 405
16.2.3 Más aplicaciones de if-else 406
16.2.4 Simulación del programa de caza de luz 406
16.3 Punteros, Arrays y Strings 408
16.3.1 Punteros 408
16.3.2 Arreglos 408
16.3.3 Uso de punteros con arreglos 409
16.3.4 Cadena 409
16.3.5 Aplicación de punteros, matrices y cadenas
Rutina de uso 409
16.3.6 Explicación complementaria de la condición while 411
16.3.7 Rutina de simulación 411
16.4 Uso de periféricos I2C 413 p>
16.4.1 Rutinas I2C 413
16.4.2 Uso del operador and 415
16.5 Formateo de datos de visualización 416
16.5 .1 Descripción general de las rutinas 419
16.5.2 Usar funciones de biblioteca para formatear datos 418
16.5.3 Análisis de programas 418
Resumen 419
Capítulo 17 estudio en profundidad de la programación en lenguaje C y un entorno de programación en lenguaje C más rico 420
17.1 Estudio en profundidad de la programación en lenguaje C y un entorno de programación en lenguaje C más rico 420
17.2 Inserción de ensamblado 421
17.3 Controlar la asignación de memoria 422
17.3.1 Directiva de asignación de memoria pragma 422
17.3.2 Establecer palabras de configuración 423
17.4 Interrupción 424
17.4.1 Rutina de servicio de interrupción 424
17.4.2 Localización e identificación de la rutina de servicio de interrupción 424
17.5 Ejemplos de uso de interrupciones de desbordamiento ——Encienda el LED el AGV 425
17.5.1 Usando Timer0 426
17.5.2 El uso de interrupciones y las acciones de la rutina de servicio de interrupción 427
17.5. Programa de simulación de LED parpadeante 427
17.6 Tipo de almacenamiento variable y su aplicación 429
17.6.1 Tipo de almacenamiento 429
17.6.2 Visibilidad 430
p >17.6.3 Vida útil 430
17.6.4 Conexión 430
17.6.5 Tipo de memoria de la variable especificada en la serie 18 431
17.6 .6 Ejemplo de tipo de almacenamiento 431
17.7 Archivo de inicio: c018i.c 432
17.7.1 Archivo de inicio C18 432
17.7.2 Estructura del archivo c018i.c 433
17.7.3 Archivo c018i.c de simulación 433
17.8 Estructura, unión y campo de bits 435
17.9 Archivos de encabezado relacionados con el procesador 436
17.9.1 Definición de SFR 436
17.9.2 Definiciones relacionadas con el ensamblaje en archivos de encabezado 437
17.10 Aprendizaje en profundidad: conector MPLAB y archivo .map 437
17.10.1 Funciones del conector 737
17.10.2 Scripts del conector 738
17.10.3 Archivos .map 439
Resumen 440
Referencias 441
Capítulo 18 Sistema operativo multitarea en tiempo real 442
18.1 Desafíos causados por la multitarea y el tiempo real 442
18.1.1 Multitarea - tareas, prioridades, plazos 443
18.1.2 El significado de "tiempo real" 444
18.2 Multitarea a través de programación secuencial 444
18.2.1 Análisis de Hyperloop 445
18.2.2 Tareas activadas por tiempo y por evento 445
18.2.3 Uso de interrupciones para diferenciar prioridades—— Estructura de primer plano/fondo 445
18.2 .4 Introducción del "tick del reloj" para sincronizar las actividades del programa 446
p>
18.2.5 Un "sistema operativo" general 446
18.2.6 Limitaciones de la programación secuencial para lograr la multitarea 448
18.3 Sistema operativo en tiempo real 448
18.4 Estrategias de programación y programadores 448
18.4.1 Programación por turnos 449
18.4.2 Programación de rotación de intervalos de tiempo y cambio de contexto 449
18.4. 3. Estado de la tarea 450
18.4.4 Programación de prioridad preventiva 451
18.4.5 Programación colaborativa 452
18.4.6 Interrupción en la programación de tareas Función 452
18.5 Desarrollo de tareas 453
18.5.1 Definición de tareas 453
18.5.2 Redacción de tareas y establecimiento de prioridades de tareas 453
18.6 Datos y protección de recursos - semáforos 454
18.7 Lo que aprenderemos más adelante 454
Resumen 455
Referencias 455
Capítulo 19 SalvoTM real- sistema operativo en tiempo real 456
19.1 Descripción general del sistema operativo en tiempo real 456 de Salvo
19.1.1 Funciones básicas de Salvo 456
19.1.2 Versión de Salvo y relacionadas referencias 457
19.2 Configuración de aplicaciones Salvo 458
19.2.1 Creación de aplicaciones Salvo - creación de bibliotecas 458
19.2.2 Bibliotecas Salvo 458
19.2.3 Versiones C18 y Salvo 459
19.3 Escribir programas Salvo 460
19.3.1 Inicialización y programación 460
19.3 .2 Escribir tareas Salvo 461
19.4 La primera rutina Salvo 461
19.4.1 La estructura general del programa y la función principal 463
19.4.2 Tareas y programación 464
19.4.3 Creando un proyecto Salvo/C18 464
19.4.4 Ajustes del archivo de configuración 465
19.4.5 Construyendo ejemplos de Salvo 465
19.4. 6 Simulación de programas Salvo 466
19.5 Uso de interrupciones, retrasos y semáforos en programas Salvo 467
19.5.1 Rutinas de ticks de reloj impulsadas por interrupciones 468
19.5. 2 Seleccionar bibliotecas y configuraciones 470
19.5.3 Usar interrupciones y generar ticks de reloj 470
19.5.4 Usar retrasos 472
19.5.5 Usar un semáforo binario 472
19.5.6 Simulación del programa 474
19.5.7 Ejecutar el programa 475
19.6 Usar mensajes Salvo y aumentar la complejidad de RTOS 475
19.7 Una rutina para usar mensajes 476
19.7.1 Seleccionar bibliotecas y configuración 481
19.7.2 Tareas :USnd_Task 481
19.7.3 Tarea: Motor_Task 481
19.7.4 Uso de mensajes 482
19.7.5 Uso de interrupciones e ISR 483
19.7.6 Simulación o ejecución de programas 485
19.8 RTOS generales 485
Resumen 485
Referencias 486<
/p>
Parte 5 Tecnología de interconexión de redes
Capítulo 20 Interconexión y red 488
20.1 Descripción general de la interconexión de redes 488
20.2 Conexión por infrarrojos 490 p>
20.3 Conexión radio 491
20.3.1 Bluetooth 491
20.3.2 Zigbee 492
20.3.3 Microcontrolador Zifenghe PIC 492
20.4 Red de área del controlador e Internet LAN 493
20.4.1 Red de área del controlador 493
20.4.2 Controlador de microcontrolador CAN y PIC 494
20.4 .3 Internet de área local 495
20.4.4 Microcontroladores LIN y PIC 496
20.5 Sistemas integrados e Internet 497
20.6 Resumen 498
Resumen 498
Referencias 499
Apéndice 1 Conjunto de instrucciones de la serie PIC16 500
Apéndice 2 Juego electrónico de tenis de mesa 502
Apéndice 3 Detalles de diseño del hardware DerbotAGV 507
Apéndice 4 Algunos conocimientos básicos de vehículos guiados autónomos 511
Apéndice 5 Conjunto de instrucciones de la serie PIC18 (sin extensión) 515
Apéndice 6 Conceptos básicos del lenguaje C 519
Índice 523
……