本书基于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 闪烁的LED32
3.2 双向来回的流水灯35
3.3 花样流水灯36
3.4 LED模拟交通灯38
3.5 分立式数码管循环显示0~940
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 2100433B
1、此题先构造一个求阶乘的函数,然后3次调用该函数,即可。2、程序的源代码如下:#include<stdio.h>int fact(int n);int main(){ int m,n,c...
;可设定时间的倒计时定时器,可选择5/15/20/30/35/45/50分钟倒计时 ;倒计时时间由四位拨码开关的1/2/3位来控制, ;第2位表示5分钟,第3位表示15分钟,第4位表示30分钟, ;通...
#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit spk=P3^0;sbit k0=P3^...
1绪论 1.1 自动门的简介 自动门控制系统,在现当代社会是一个应用非常广泛的设备,自动门已经广 泛应用于酒店、银行、超市、停车场或公共建筑等入口,其主要核心部分——自 动门控制系统正是我们这篇论文的主要研究讨论的课题。 自动门是指 :可以将人接近门的动作 (或将某种入门授权) 识别为开门信号的 控制单元,通过驱动系统将门开启, 在人离开后再将门自动关闭, 并对开启和关 闭的过程实现控制的系统。 自动门的性能优劣主要取决于它的控制装置, 早期的 自动门控制系统采用继电器逻辑控制,造成安装繁琐、体积大、不稳定、不易维 修等缺点已逐渐被淘汰。 1.2 本设计研究的内容 1.2.1 自动平移门机组的部件组成 在本设计中主要研究自动平移门, 设计的自动平移门具有手动和自动开门功 能以及分时段控制功能, 同时配备防夹人光栅、 后备电源等辅助装置来满足商场 等人流众多场所的高效率、高安全性的要求。 (
在倡导全民健身的今天,我们带来一种方便快捷安全的健身装置_室内攀岩机,通过模拟真实岩壁,使室内攀岩成为了可能.我们将程序设计和硬件设计结合起来,不仅创新了室内攀岩机的结构、控制了攀岩壁的机械安装角度和攀岩面的运动速度,还调节了运动的难易程度以适用不同使用群体,使室内攀岩运动成为家庭运动的一种新理念、新可能.
本书基于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服务应用 4152100433B
MPLAB是目前应用最广泛的PIC单片机软件开发环境,Proteus是应用最广泛的硬件仿真环境。本书基于MPLAB和Proteus介绍了24个PIC单片机应用实例,每个实例都包含背景介绍、设计思路以及该实例涉及的基础原理、硬件设计、软件设计和仿真与总结等内容,并提供了所有实例的Proteus仿真电路图及基于MPLAB的程序源代码,读者可登录华信教育资源网查找本书免费下载。