单片机C语言程序设计实训100例 基于Arduino+Proteus仿真
作者:(中国)彭伟
出版时间:2019年版
内容简介
本书基于Atmel Studio+Arduino IDE开发平台和Proteus硬件仿真平台,精心编写了100项Arduino C语言程序设计案例并分别提出了难易适中的实训目标。全书基础设计类案例涵盖Arduino最基本的端口I/O、定时控制、A/D转换、中断控制、串口通信等程序设计;硬件应用类案例涵盖编/解码器件,串/并与并/串转换器件,LED显示及驱动器件,字符/图形液晶,TFT彩屏,实时日历时钟器件,I2C/SPI/1-Wire总线器件,电动机,温/湿度、压力、雷达传感器,SD卡等器件;综合设计类案例包括大量实用型项目设计,如多功能电子万年历、计算器、电子秤、密码锁、大幅面LED点阵屏设计、交流电压检测、K型热电偶及铂电阻温度计、GPS、红外遥控、测距、温室监控、游戏设计、Arduino Web应用等,因全书大量案例基于库进行设计,很多复杂的程序均可通过便捷的代码实现。
目录
第1章 Arduino C语言程序设计概述 1
1.1 Arduino简介 1
1.2 Arduino开发环境 2
1.3 Arduino开发语言 6
1.4 Arduino程序结构 6
1.5 基本数据类型、有符号数与无符号数的应用及位相关操作 8
1.6 数组、字符串与指针应用 11
1.7 全局变量、静态变量、外部变量及修饰符 13
1.8 运算符的优先级 14
1.9 关于中英文、数字字符的编码处理及应用 15
1.10 Arduino的常用函数 20
1.11 Arduino的特殊寄存器 21
1.12 Arduino相关在线资源 22
第2章 Proteus操作基础 24
2.1 Proteus操作界面简介 24
2.2 仿真电路原理图设计 25
2.3 选择元件 27
2.4 仿真运行 31
第3章 基础程序设计 32
3.1 闪烁的LED 32
3.2 双向来回的流水灯 35
3.3 花样流水灯 36
3.4 LED模拟交通灯 38
3.5 分立式数码管循环显示0~9 40
3.6 集成式数码管动态扫描显示 42
3.7 按键控制LED开关 45
3.8 按键消抖处理 46
3.9 按键调节数码管闪烁增/减显示 49
3.10 继电器及双向晶闸管控制照明设备 53
3.11 数码管显示4×4键盘矩阵按键 54
3.12 INT0中断计数 58
3.13 INT0~INT3中断计数 62
3.14 Timer0控制LED闪烁 65
3.15 使用TimerOne库实现Timer1控制LED闪烁 72
3.16 Timer1定时器中断控制数码管动态显示 75
3.17 Timer1定时器中断控制5×7 LED点阵屏显示 77
3.18 Timer2控制门铃声音输出 79
3.19 使用FreqencyTimer2库实现Timer2控制音阶演奏 83
3.20 使用MsTimer2库实现Timer2控制交通指示灯 86
3.21 Timer1、Timer2及INT0控制报警器与旋转灯 89
3.22 按键控制定时器选播多段音乐 92
3.23 用模拟与数字输出方法实现PWM控制LED渐变 94
3.24 模数转换与数码管显示 97
3.25 通过A/D转换实现5路按键检测 100
3.26 硬件及软件串口应用 103
3.27 双机串口双向通信 106
3.28 PC与Arduino双向串口通信 111
3.29 Arduino内置EEPROM读/写测试 117
3.30 Flash数据访问 120
第4章 硬件应用 124
4.1 74HC138译码器与反向缓冲器控制数码管显示 124
4.2 用74HC164驱动多位数码管显示 127
4.3 串入并出芯片74HC595控制数码管显示4位数字 129
4.4 并/串转换器74HC165的应用 133
4.5 用74HC148扩展中断 135
4.6 串行发送数据到2片8×8点阵屏滚动显示 138
4.7 数码管BCD解码驱动器CD4511与DM7447的应用 140
4.8 拨码开关及74HC245的应用 142
4.9 14段与16段数码管演示 144
4.10 16键解码芯片74C922的应用 148
4.11 1602字符液晶工作于8位模式切换显示 150
4.12 1602字符液晶工作于4位模式显示 162
4.13 LGM12864(KS0108)液晶屏显示测试 163
4.14 UG-2864(SSD1306)OLED屏显示测试 170
4.15 Nokia5110(PCD8544)液晶屏显示测试 175
4.16 PG160128A(T6963C)液晶屏图文演示 178
4.17 EADOGS102液晶屏显示测试 182
4.18 TFT彩屏ILI9341显示测试 184
4.19 WS2812串行全彩灯显示测试 190
4.20 DS1302实时时钟应用 196
4.21 I2C接口时钟日历芯片DS1307的应用 200
4.22 日历时钟芯片PCF8583的应用 206
4.23 I2C接口存储器AT24C04的读/写与显示(4片) 210
4.24 用I2C存储器设计的中文硬件字库的应用 217
4.25 I2C接口DS1621温度传感器测试 220
4.26 用I2C接口芯片PCF8574驱动LM044L液晶屏 224
4.27 I2C接口数字电位器AD5242的应用 226
4.28 用兼容I2C接口的MAX6953驱动4片5×7点阵显示器 228
4.29 用I2C接口控制MAX6955驱动16段数码管显示 232
4.30 用带I2C接口的MCP23017扩展16位通用I/O端口 235
4.31 使用I2C接口器件PCA9555扩展接口 239
4.32 I2C接口18位ADC芯片MCP3421的应用 244
4.33 SPI接口存储器AT25F1024的读/写与显示 249
4.34 SPI接口数字电位器AD5206的应用测试 258
4.35 SPI接口串行共阴驱动器MAX7219控制4+2+2数码管显示 260
4.36 8位数码管段位复用串行驱动芯片MAX6951的应用 264
4.37 SPI接口温度传感器TC72的应用测试 270
4.38 NTC热敏电阻应用测试 273
4.39 温度传感器LM35全量程应用测试 275
4.40 8路12位模数转换芯片MCP3208的应用 278
4.41 压力传感器MPX4250的应用 282
4.42 直流电动机正/反转及PWM调速控制 284
4.43 ULN2803驱动单极步进电动机的正/反转 287
4.44 L298N驱动双极步进电动机运行 292
4.45 伺服电动机控制测试 296
4.46 用M145026与M145027设计的无线收发系统 299
4.47 温/湿度传感器DHT22的应用 302
4.48 SRF04雷达测距传感器的应用 307
4.49 DS18B20温度传感器的测试 309
4.50 SD卡FAT文件系统读/写测试 315
第5章 综合设计 324
5.1 带日历时钟及温度显示的电子万年历 324
5.2 简易计算器设计 329
5.3 电子秤仿真设计 333
5.4 简易加密电子密码锁 337
5.5 用T6963C液晶与DS1302设计的可调指针式电子钟 342
5.6 温度控制L298N驱动直流电动机调节转速 349
5.7 ULN2003驱动5路继电器及74HC595控制电梯数字点阵屏滚动显示 351
5.8 用74LS595与74LS154及反向驱动器7406控制16×16LED点阵屏显示 354
5.9 红外遥控收发仿真 358
5.10 交流电压检测与数字显示仿真 363
5.11 3端可调正稳压器LM317应用测试 367
5.12 GP2D12红外测距传感器的应用 370
5.13 带液晶显示的K型热电偶温度计 377
5.14 用MCP3421与RTD-PT100设计的铂电阻温度计 381
5.15 T6963C液晶显示的模拟射击训练游戏 388
5.16 简易飞船游戏 392
5.17 可接收串口信息的带中英文硬字库的80×16LED点阵屏 399
5.18 GPS导航系统仿真 405
5.19 温室综合监控系统仿真设计 409
5.20 Arduino Web服务应用 415