Un directorio de introducción al desarrollo del lenguaje C y ejemplos típicos de microcontroladores AVR
Parte 1: Conceptos básicos de AVR MCU
Capítulo 1 Descripción general de AVR MCU 3
1.1 AVR MCU y su desarrollo 3
1.1. 1 Introducción a AVR MCU 3
1.1.2 Características de AVR MCU 4
1.1.3 Clasificación de AVR MCU 5
1.2ATmega128(L) MCU 5
1.2.1 Estructura y características principales de ATmega128(L) 5
1.2.2 Rendimiento principal de ATmega128(L) 7
1.2.3Embalaje y pines de ATmega128(L) 8
1.3 Resumen de este capítulo 12
Capítulo 2 Estructura de hardware del microcontrolador ATmega128(L) 13
2.1Núcleo ATmega128(L) 13
2.2 Memoria 14 del ATmega128(L)
2.2.1 Memoria interna 14 del ATmega128(L)
2.2.2 Memoria externa 15 del ATmega128(L)
2.3 Reloj del sistema y administración de energía de ATmega128(L) 15
2.3.1 Reloj del sistema 15
2.3.2 Administración de energía y modo de suspensión 18
2.4ATmega128 (L) reinicio e interrupción 19
2.4.1ATmega128(L) lógica de reinicio 19
2.4.2ATmega128(L) interrupción y respuesta a interrupción 20
Temporizador/Contador 22 de 2.5ATmega128(L)
Temporizador/contador de 2.5.18 bits T/C0 22
Temporizador/contador de 2.5.28 bits T/C2 26
Temporizador/contador de 2.5.316 bits Temporizador/Contador Temporizador/C1 y Temporizador/C3 26
Interfaz de bus 31 de 2.6ATmega128(L)
2.6. 1 Sincronización Interfaz periférica SPI 31
2.6.2 Interfaz serie síncrona/asíncrona universal USART0 y USART1 32
2.6.3 Interfaz de bus TWI serie de dos hilos 35
2.7 Resumen de este Capítulo 37
Capítulo 3 Sistema de comando de ATmega128(L)38
3.1 Descripción general del sistema de comando de ATmega128(L)38
3.2ATmega128(Modo de direccionamiento de operandos de instrucción de L) 43
3.3 Instrucciones de operación lógica y aritmética 45
3.3.1 Instrucciones de suma 45
3.3.2 Resta instrucciones 46
3.3.3 Complemento a uno e instrucciones en complemento a uno 48
3.3.4 Instrucciones de multiplicación 48
3.3.5 Instrucciones AND de lógica 50
3.3.6 Instrucción OR lógica 51
3.3.7 Instrucción XOR lógica 52
3.4 Instrucción de comparación y transferencia 53
3.4.1 Instrucción de comparación 53
3.4.2 Instrucción de transferencia incondicional 54
3.4.3 Instrucción de transferencia condicional 54
3.4.4 Instrucción de llamada y devolución de subrutina 60
3.5 Instrucción de transferencia de datos 61
3.5.1 Instrucción de transferencia directa de datos 62
3.5.2 Instrucción de transferencia indirecta de datos 63
3.5.3 y programa Memoria- instrucciones de transferencia de datos relacionadas 65
3.5.4 Instrucciones de transferencia de datos del puerto de E/S 67
3.5.5 Instrucciones de operación de pila 68
3.6 Instrucciones de operación de bits 68
3.6.1 Instrucciones de operación de bits con acarreo 68
3.6.2 Instrucciones de transferencia de variables de bits 70
3.6.3 Instrucciones de modificación de bits 70
3.7MCU comando de control 74
p>
3.8ATmega128(L) Lenguaje ensamblador 75
3.8.1 Formato de declaración y directivas del lenguaje ensamblador 75
3.8.2 Expresiones 76
3.9 Resumen de este capítulo 77
Capítulo 4 Herramienta de diseño de circuitos de hardware del microcontrolador AVR 78
4.1 Símbolos esquemáticos y dibujo de paquete de PCB de componentes típicos en Protel99SE 78
4.1. 1 Concepto de empaquetado de componentes 78
4.1.2 Símbolos esquemáticos y empaquetado en PCB de resistencias 79
4.1.3 Símbolos esquemáticos y empaquetado en PCB de condensadores 80
4.1 .4 Símbolos esquemáticos y empaquetado de PCB de diodos y transistores 81
4.1.5 Símbolos esquemáticos y empaquetado de PCB de circuitos integrados típicos 83
4.2 Principio Proceso de dibujo de diagrama y diagrama de PCB 84
4.2.1 Dibujo del diagrama esquemático 84
4.2.2 Dibujo del diagrama de PCB 86
4.3 Cable de tierra 90
4.3.1 Concepto y clasificación de cables de tierra 90
4.3.2 Tratamiento de cables de tierra en el diseño de PCB 91
4.4 Resumen de este capítulo 91
Capítulo Capítulo 5 Desarrollo de software del microcontrolador AVR entorno 92
5.1 Entorno de desarrollo de software 92
5.2Entorno de desarrollo AVRStudio4.13SP2 94
5.2.1Adquisición e instalación del entorno de desarrollo AVRStudio4.13SP2 94
5.2.2 Menú de AVRStudio4.13SP2 95
5.2.3 Uso de AVRStudio4.13SP2 101
5.3 Resumen de este capítulo 103
Capítulo 6 AVR Desarrollo del lenguaje C del microcontrolador 104
6.1 Conocimientos básicos del lenguaje C 104
6.1.1 Identificadores y palabras clave 104
6.1.2 Tipos de datos básicos, constantes y variables. 104
6.1.3 Operadores comunes 106
6.1.4 Tipos de sentencias en programas 107
6.2 Programación avanzada en lenguaje C 110
6.2.1 Matriz 110
6.2.2 Puntero 112
6.2.3 Estructura, ***Usuario y enumeración 115
6.2.4 Función 119
6.2.5 Preprocesamiento 122
6.3 Extensión AVRStudio4.13SP2 a ANSIC 125
6.3.1 Registros y puertos de E/S Operación 125
6.3.2 Acceso a los datos en la memoria del microcontrolador AVR 126
6.3.3 Programa de servicio de interrupción del microcontrolador AVR 130
6.4 Resumen de este capítulo 132
Parte 2 Ejemplo de aplicación típica del lenguaje C del módulo AVR MCU
Capítulo 7 Aplicación de E/S 135
7.1 Descripción general del puerto de E/S 135
7.2 Control del puerto de E/S de diodos emisores de luz 136
7.2.1 Función de ejemplo 136
7.2.2 Introducción típica al dispositivo 136
7.2.3 Diseño de hardware 136
7.2.4 Diseño del programa y explicación detallada 137
7.2.5 Resumen de la experiencia 138
7.3 Control de puerto de E/S tubo digital de ocho segmentos 138
7.3.1 Funciones de ejemplo 138
7.3.2 Introducción típica al dispositivo 138
7.3.3 Diseño de hardware 138
7.3.4 Diseño del programa y explicación detallada 139
7.3.5 Resumen de experiencia 140
7.4 Simulación de E/S Control de bus de 1 cable DS18B20 140
7.4.1 Función de ejemplo 140
7.4.2 Introducción a dispositivos típicos 140
7.4.3 Diseño de hardware 141
7
.4.4 Diseño del programa y explicación detallada 142
7.4.5 Resumen de la experiencia 145
7.5 Resumen de este capítulo 145
Capítulo 8 Aplicación de temporizador/contador 146 p >
8.1 Descripción general de temporizadores/contadores 146
8.2 Uso de temporizadores para implementar salida de onda cuadrada 146
8.2.1 Funciones de ejemplo 146
8.2. 2 Diseño de hardware 146
8.2.3 Diseño del programa y explicación detallada 147
8.2.4 Resumen de la experiencia 148
8.3 Uso del temporizador/contador para realizar la reutilización de claves 148
8.3.1 Función de ejemplo 148
8.3.2 Diseño de hardware 148
8.3.3 Diseño del programa y explicación detallada 149
8.3 .4 Resumen de la experiencia 150
8.4 Resumen de este capítulo 150
Capítulo 9 Aplicación de interrupciones 151
9.1 Descripción general de las interrupciones 151
9.2 Alarma de interrupción del temporizador de utilización 151
9.2.1 Función de ejemplo 151
9.2.2 Introducción típica del dispositivo 151
9.2.3 Diseño de hardware 152
9.2.4 Programación y explicación detallada 152
9.2.5 Resumen de experiencia 153
9.3 Uso de interrupciones para responder a pulsaciones de teclas 153
9.3. 1 Función de ejemplo 153
9.3.2 Introducción a dispositivos típicos 153
9.3.3 Diseño de hardware 154
9.3.4 Diseño de programa y explicación detallada 154 p>
9.3.5 Resumen de la experiencia 155
9.4 Resumen de este capítulo 155
Capítulo 10 Aplicación del puerto serie 156
10.1 Descripción general de la comunicación serie 156
10.2Interfaz de bus RS-232 157
10.2.1 Función de ejemplo 157
10.2.2 Introducción típica del dispositivo 157
10.2 .3 Diseño de hardware 158
10.2.4 Programación y explicación detallada 159
10.2.5 Resumen de experiencia 160
10.3Interfaz de bus RS-485 160
10.3.1 Funciones de ejemplo 160
10.3.2 Introducción típica del dispositivo 160
10.3.3 Diseño de hardware 161
10.3.4 Diseño y explicación detallada 162
p>10.3.5 Resumen de la experiencia 164
10.4 Comunicación entre microcontroladores 164
10.4.1 Funciones de ejemplo 164
10.4.2 Dispositivos típicos Introducción 164
10.4.3 Diseño de hardware 164
10.4.4 Diseño del programa y explicación detallada 164
10.4.5 Resumen de experiencia 167
10.5 Resumen de este capítulo 167
Capítulo 11 Ampliación de la memoria del programa 168
11.1 Descripción general de la memoria del programa 168
11.2 EPROM extendida 169 p>
11.2.1 Funciones de ejemplo 169
11.2.2 Introducción a dispositivos típicos 170
11.2.3 Diseño de hardware 171
11.2.4 Programa diseño y explicación detallada 171
11.2.5 Resumen de la experiencia 172
11.3 E2PROM extendida 173
11.3.1 Funciones de ejemplo 173
11.3 .2 Introducción típica al dispositivo 173
11.3.3 Diseño de hardware 175
11.3.4 Diseño del programa y explicación detallada 175
11.3.5 Resumen de la experiencia 177 p>
11.4 Memoria Flash extendida 177
11.4.1 Funciones de ejemplo 177
11.4.2 Introducción típica al dispositivo 177
<p>11.4.3 Diseño de hardware 179
11.4.4 Diseño del programa y explicación detallada 179
11.4.5 Resumen de experiencia 181
11.5 Resumen de este capítulo 181
Capítulo 12 Expansión de la memoria de datos 182
12.1 Descripción general de la memoria de datos 182
12.2 Ampliación de SRAM 182
12.2.1 Función de instancia 182
12.2.2 Introducción típica al dispositivo 183
12.2.3 Diseño de hardware 184
12.2.4 Diseño del programa y explicación detallada 185
12.2 .5 Resumen de experiencia 186
12.3 NVSRAM extendida 186
12.3.1 Funciones de ejemplo 186
12.3.2 Introducción típica al dispositivo 187
12.3.3 Diseño de hardware 188
12.3.4 Diseño del programa y explicación detallada 189
12.3.5 Resumen de la experiencia 190
12.4 Resumen de este capítulo 190 p>
Capítulo 3 Aplicaciones típicas de la interfaz del microcontrolador AVR
Capítulo 13 Interfaz del teclado 193
13.1 Descripción general del teclado 193
13.2 Conexión de 4 teclados externos 193
13.2.1 Función de ejemplo 193
13.2.2 Diseño de hardware 193
13.2.3 Diseño del programa y explicación detallada 194
13.2. 4 Resumen de experiencia 195 p>
13.3 Diseño de interfaz con teclado 4×4 195
13.3.1 Función de ejemplo 196
13.3.2 Diseño de hardware 196
13.3.3 Programación y explicación detallada 196
13.3.4 Resumen de la experiencia 202
13.4 Resumen de este capítulo 202
Capítulo 14 Interfaz LCD 203
14.1 Descripción general de la pantalla LCD 203
14.2 LCD de matriz de puntos de caracteres externos 205
14.2.1 Funciones de ejemplo 205
14.2.2 Introducción típica al dispositivo 205
14.2.3 Diseño de hardware 207
14.2.4 Diseño del programa y explicación detallada 208
14.2.5 Resumen de la experiencia 211
14.3 LCD de matriz de puntos de imagen externa 211
14.3.1 Funciones de ejemplo 211
14.3.2 Introducción típica del dispositivo 211
14.3.3 Diseño de hardware 216
14.3.4 Programación y explicación detallada 216
14.3.5 Resumen de la experiencia 219
14.4 Resumen de este capítulo 219
Capítulo 15 Interfaz de la impresora 220
15.1 Descripción general de la microimpresora 220
15.2 Impresora serie externa 221
15.2.1 Función de ejemplo 221
15.2.2 Introducción a Dispositivos típicos 221
15.2.3 Diseño de hardware 223
15.2.4 Diseño del programa y explicación detallada 224
15.2.5 Resumen de la experiencia 225
15.3 Impresora paralela externa 225
15.3.1 Funciones de ejemplo 225
15.3.2 Introducción típica al dispositivo 225
15.3.3 Diseño de hardware 226
15.3.4 Diseño del programa y explicación detallada 227
15.3.5 Resumen de la experiencia 228
15.4 Resumen de este capítulo 228
Capítulo 16 A/ Interfaz D 229
16.1 Descripción general del convertidor A /D 229
16.2 Tipo de comparación sucesiva externa A/D 231
16.2.1 Función de ejemplo 231
16.2.2 Introducción típica al dispositivo 231
16.2.3 Diseño de hardware 233
1
6.3.4 Diseño del programa y explicación detallada 233
16.2.5 Resumen de la experiencia 235
16.3 A/D semi-flash externo de alta velocidad 235
16.3. 1 Función de ejemplo 235
16.3.2 Introducción a dispositivos típicos 236
16.3.3 Diseño de hardware 239
16.3.4 Diseño de programa y explicación detallada 239 p>
16.3.5 Resumen de experiencia 242
16.4 Externo Σ→Δ tipo A/D 242
16.4.1 Función de ejemplo 242
16.4. 2 Introducción típica al dispositivo 242
16.4.3 Diseño de hardware 246
16.4.4 Diseño del programa y explicación detallada 246
16.4.5 Resumen de la experiencia 249
16.5 Resumen de este capítulo 249
Capítulo 17 Ejemplo de interfaz D/A 250
17.1 Descripción general del convertidor D/A 250
17.2 T invertida externa -type D/A 251
17.2.1 Funciones de ejemplo 251
17.2.2 Introducción típica del dispositivo 251
17.2.3 Diseño de hardware 254
17.2.4 Diseño del programa y explicación detallada 255
17.2.5 Resumen de experiencia 256
17.3 Peso externo actual tipo D/A 256
17.3. 1 Función de ejemplo 256
17.3.2 Introducción típica al dispositivo 257
17.3.3 Diseño de hardware 259
17.3.4 Diseño del programa y explicación detallada 259
17.3.5 Resumen de experiencia 261
17.4 Resumen de este capítulo 262
Capítulo 18 Interfaz de dispositivo programable 263
18.1 Descripción general de dispositivos programables 263
18.2 Interfaz de chip de interfaz paralela programable 263
18.2.1 Funciones de ejemplo 263
18.2.2 Introducción típica del dispositivo 264
18.2.3 Diseño de hardware 266
18.2.4 Diseño del programa y explicación detallada 267
18.2.5 Resumen de experiencia 269
18.3 Interfaz del controlador de interrupciones programable 270
18.3.1 Función de ejemplo 270
18.3.2 Introducción a dispositivos típicos 270
18.3.3 Diseño de hardware 273
18.3.4 Diseño y detalle del programa explicación 273
18.3.5 Resumen de la experiencia 276
18.4 Interfaz de contador/temporizador programable 276
18.4.1 Función de ejemplo 276
18.4 .2 Introducción típica al dispositivo 276
18.4.3 Diseño de hardware 278
18.4.4 Diseño del programa y explicación detallada 279
18.4.5 Resumen de la experiencia 281 p>
18.5 Resumen de este capítulo 281
Capítulo 19 Interfaz de bus I2C 282
19.1 Descripción general de la interfaz de bus I2C 282
19.2 Interfaz con AT24C64 283
19.2.1 Función de ejemplo 283
19.2.2 Introducción a dispositivos típicos 283
19.2.3 Diseño de hardware 286
19.2. 4 Diseño del programa y explicación detallada 286
19.2.5 Resumen de experiencia 288
19.3 Interfaz con sensor de temperatura y humedad SHT75 289
19.3.1 Función de ejemplo 289
19.3.2 Introducción típica al dispositivo 289
19.3.3 Diseño de hardware 292
19.3.4 Diseño del programa y explicación detallada 292
19.3 .5 Resumen de experiencia 297
19.4 Resumen de este capítulo 297
Capítulo 20 Interfaz de bus SPI 298
20.1
Descripción general de la interfaz del bus SPI 298
20.2 Acceso flash de la interfaz SPI 299
20.2.1 Función de ejemplo 299
20.2.2 Introducción típica del dispositivo 299
20.2.3 Diseño de hardware 301
20.2.4 Diseño del programa y explicación detallada 301
20.2.5 Resumen de experiencia 307
20.3 Implementación usando SPI bus Comunicación entre microcontroladores 307
20.3.1 Funciones de ejemplo 307
20.3.2 Introducción a dispositivos típicos 307
20.3.3 Diseño de hardware 307
20.3.4 Programación y explicación detallada 308
20.3.5 Resumen de experiencia 309
20.4 Resumen de este capítulo 309
Capítulo 21 Interfaz de bus CAN 310
21.1 Descripción general de la interfaz del bus CAN 310
21.2 Uso de SIA1000 para realizar la transmisión de datos 311
21.2.1 Funciones de ejemplo 311
21.2 .2 Introducción típica del dispositivo 311
21.2.3 Diseño de hardware 315
21.2.4 Diseño del programa y explicación detallada 316
21.2.5 Resumen de la experiencia 320 p>
21.3 Utilice el bus CAN para realizar la comunicación entre microcontroladores 320
21.3.1 Funciones de ejemplo 320
21.3.2 Introducción típica del dispositivo 320
21.3 .3 Diseño de hardware 320
21.3.4 Diseño del programa y explicación detallada 320
21.3.5 Resumen de la experiencia 325
21.4 Resumen de este capítulo 325
Parte 4 Ejemplo de sistema completo
Capítulo 22 Diseño de reproductor MP3 329
22.1 Diseño de circuito de hardware 329
22.1.1 Antecedentes de ejemplo 329
22.1.2 Proceso de diseño de hardware 330
22.1.3 Selección e introducción de dispositivos típicos 330
22.1.4 Circuito de hardware 333
22.2 Diseño de software 337
p>
22.2.1 Proceso de diseño de software 337
22.2.2 Análisis de módulos de software 337
22.2.3 Diseño del programa y explicación detallada 337
22.3 Resumen de la experiencia 341
22.4 Resumen de este capítulo 342
Capítulo 23 Sistema de impresora pequeña 343
23.1 Diseño de circuito de hardware 343
23.1.1 Antecedentes de ejemplo 343
23.1.2 Proceso de diseño de hardware 344
23.1.3 Selección e introducción típica del dispositivo 347
23.1 .4 Circuito de hardware 347
23.2 Diseño de software 350
23.2.1 Proceso de diseño de software 350
23.2.2 Análisis de módulos de software 351
23.2.3 Diseño del programa y explicación detallada 351
23.3 Resumen de la experiencia 354
23.4 Resumen de este capítulo 355
Capítulo 24 Cargador inteligente 356
24.1 Diseño de circuitos de hardware 356
p>
24.1.1 Antecedentes de ejemplo 356
24.1.2 Proceso de diseño de hardware 357
24.1.3 Selección e introducción de dispositivos típicos 357
24.1 .4 Circuito de hardware 360
24.2 Diseño de software 362
24.2.1 Proceso de diseño de software 362
24.2.2 Análisis del módulo de software 363
24.2.3 Diseño del programa y explicación detallada 363
24.3 Resumen de la experiencia 368
24.4 Resumen de este capítulo 368 p>
Capítulo 25 Control de motores CC 369
25.1 Diseño de circuitos de hardware 36
9
25.1.1 Antecedentes de ejemplo 369
25.1.2 Proceso de diseño de hardware 369
25.1.3 Selección e introducción de dispositivos típicos 370
25.1.4 Circuito de hardware 373
25.2 Diseño de software 376
25.2.1 Proceso de diseño de software 376
25.2.2 Análisis de módulos de software 377
25.2.3 Diseño del programa y explicación detallada 377
25.3 Resumen de la experiencia 383
25.4 Resumen de este capítulo 383
Capítulo 26 Sensor de temperatura y humedad 384 p>
26.1 Diseño de circuitos de hardware 384
26.1.1 Antecedentes de ejemplo 384
26.1.2 Proceso de diseño de hardware 385
26.1.3 Típico selección de dispositivo Modelo e introducción 385
26.1.4 Circuito de hardware 387
26.2 Diseño de software 390
26.2.1 Proceso de diseño de software 390
26.2 .2 Análisis del módulo de software 390
26.2.3 Diseño del programa y explicación detallada 390
26.3 Resumen de la experiencia 399
26.4 Resumen de este capítulo 399 p>
Capítulo 27 Control remoto inalámbrico portátil 400
27.1 Diseño de circuitos de hardware 400
27.1.1 Antecedentes de ejemplo 400
27.1.2 Proceso de diseño de hardware 401
27.1.3 Selección e introducción típica del dispositivo 402
27.1.4 Circuito de hardware 405
27.2 Diseño de software 408
27.2. 1 Proceso de diseño de software 408
27.2.2 Análisis del módulo de software 408
27.2.3 Diseño del programa y explicación detallada 408
27.3 Resumen de la experiencia 418
27.4 Resumen de este capítulo 418
……