Red de conocimiento informático - Aprendizaje de programación - Directorio para el desarrollo de sistemas integrados PIC

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

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

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

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

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

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

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

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

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

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

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>

12.10.1 Usando MPLABIDE Serie 18 347

12.10.2 Programa Fibonacci 347

Resumen 349

Referencias 349

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

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

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

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

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

……