Red de conocimiento informático - Computadora portátil - Un directorio de introducción al desarrollo del lenguaje C y ejemplos típicos de microcontroladores AVR

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

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

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

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

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

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

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

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

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

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

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

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

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

……