猜你喜欢
ARM Cortex-M3嵌入式C语言编程100例

ARM Cortex-M3嵌入式C语言编程100例

书籍作者:孙安青 ISBN:9787519824105
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:3775
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是以基于32位ARM Cortex-M3为内核的LPC1343器件为核心,通过100个应用实例,以功能模块为起点,以每个模块的硬件、软件设计为主线,通过大量实例的介绍来达到理论联系实际的目的,让读者能迅速开发出实际的应用系统。
本书讲解深入浅出,实例内容翔实,绝大多数模块、实例都有Proteus仿真验证,所有的模块和实例都有详细的硬件和软件设计。力求既能让ARM初学者快速入门,又能让中高级开发人员的水平得到进一步提升,适合各类高校自动控制、电气工程、自动化、机械电子专业的学生使用,同时也可供从事单片机系统开发的广大技术人员参考阅读。

作者简介

孙安青,长期从事电子产品研发和单片机教学工作,有丰富的单片机项目开发经验,出版过多本专著。

编辑推荐
适读人群 :广大读者
100个经典实例。功能模块众多,实例讲解翔实,设计得到仿真验证。
前言

前 言

NXP公司生产的LPC1343是一款基于ARM Cortex-M3内核的嵌入式微控制器,由于具有体积小、功能强和价格低的特点,在工业控制、数据采集、智能仪表、机电一体化、家用电器等领域有着广泛的应用,其应用可以大大提高生产和生活的自动化水平。
LPC1343的系统工作频率最高可达72MHz。采用3级流水线执行结构,内核体系采用哈佛体系结构,采用精简指令集。内部采用3种总线结构。ARM Cortex-M3 CPU内部集成了支持随机分支的预取单元。LPC1343的外设包括:最高可达32KB的Flash,8KB的数据存储器SRAM,USB驱动,一个Fast-mode Plus的I2C接口,一个UART接口,4个通用定时器,最高可达42个通用I/O引脚。由于具有高速、单周期、低功耗、抗干扰能力强、内置的资源丰富等特点,在嵌入式、物联网等领域具有很好的应用市场。
本书特点
本书以LPC1343为核心器件,通过100个应用实例,以功能模块为起点,以每个模块的硬件、软件设计为主线,通过大量实例的介绍来达到理论联系实际的目的,让读者能迅速开发出实际的应用系统。
本书具有以下特点。
(1)功能模块众多:本书讲解的功能模块涵盖嵌入式使用的各个应用场合,在每个功能模块中,详细讲解了其应用场合、工作原理、实现该功能的主要元器件,并且给出了原理图和完整程序代码。
(2)实例讲解翔实:选用常见的实例作为讲解对象,在每个实例中,分析了常见设计思路的优劣,介绍了主要元器件的使用方法及完整的硬件、软件设计,读者只要稍作修改就可以应用于实际项目中。
(3)设计得到仿真验证:本书对所有功能模块和实例都进行了Proteus仿真验证,并且将仿真过程穿插于内容讲解中,这样既提高了设计的正确性,也为读者设计实际系统提供了验证设计思路的方法。
本书讲解深入浅出,实例内容翔实,绝大多数模块、实例都有Proteus仿真验证,所有的模块和实例都有详细的硬件和软件设计。力求既能让ARM初学者快速入门,又能让中高级开发人员的水平得到进一步提升,适合各类高校自动控制、电气工程、自动化、机械电子专业的学生使用,同时也可供从事单片机系统开发的广大技术人员参考阅读。
主要内容
全书分为3章:
第1章为基础应用实例,共有60个应用实例,是以LPC1343微控制器的基础应用为主,这些基础应用主要包括I/O口的输出、按键输入、数码管驱动、8×8点阵LED、三基色LED、定时器、中断、串行口、内置的A/D转换器、CAP模块捕获、PWM脉宽调制、E2PROM、SPI接口。
第2章为扩展应用实例,共有25个应用实例,是以扩展一些实际应用中常用的器件和模块为核心,介绍了这些器件和模块的功能特点及实现如何用LPC1343微控制器来驱动这些器件的驱动程序的设计为主。这些外围扩展器件和模块主要包括串/并转换器件74HC595的应用、字符LCD模块、图形点阵LCD模块、不同尺寸和接口的真彩屏TFT LCD模块、SPI和I2C接口的串行存储器、并行和串行A/D转换器、并行和串行D/A转换器、实时时钟RTC器件、直流电动机和步进电动机驱动器件、温度、湿度、超声波传感器、红外遥控接收协议。
第3章综合应用实例,共有15个应用实例,这15个综合应用实例既有多个基本资源的综合应用,又有外围扩展方面的器件和模块的高级应用、算法和复杂的综合应用实例,让读者能够了解到一个项目开发的全过程是如何实现的。包括:“推箱子”游戏设计实例、GPS定位系统设计实例、基于240×128 TFTLCD的中文显示万年历实例、基于PID算法的电动机转速控制系统设计实例、带温度测量的64×16点阵LED数字钟设计实例、简易波形显示设计实例等
光盘使用
本书实例需要以下运行的软件支持:Proteus8.7 SP3和Keil uVision 4。本书配套光盘中包括了所有章节的程序代码,可以作为学习和参考之用,未经许可不得用于任何商业等其他用途。
致谢
本书由桂林电子科技大学孙安青编写,在策划和编写过程中,编者参阅了大量的参考书籍、文献以及相关网络资源,并在书中引用了其中的部分文字和插图,在此表示感谢。桂林电子科技大学信息与通信学院的领导对本书的编写也给予大力支持,在此深表感谢。
由于编者水平有限,书中难免存在疏漏与不妥之处,恳请广大同行与读者批评指正(电子邮箱:[email protected])。

编者

目录

前言
第 1 章 基础应用实例 1
1.1 流水灯实例 1
1.2 呼吸灯实例 2
1.3 LED电子沙漏实例 3
1.4 单个LED数码管显示数字0~9实例 5
1.5 按键计数十六进制显示实例 7
1.6 4位共阴LED数码管动态显示实例 8
1.7 基于计数方式去抖的按键计数LED数码管动态显示实例 10
1.8 多变循环LED彩灯显示实例 12
1.9 基于引脚中断方式的加减计数实例 16
1.10 4×4矩阵键盘读取实例 18
1.11 4个PIO引脚构成的4×3矩阵键盘读取实例 21
1.12 16位定时器0实现的1sLED闪烁实例 24
1.13 16位定时器1实现的4位共阴LED数码动态显示实例 26
1.14 具有启/停控制的秒表实例 28
1.15 基于32位定时器1的占空比可调的软PWM实例 31
1.16 基于16位定时器1的MAT功能实现硬PWM实例 34
1.17 基于32位定时0的CAP测量脉宽实例 37
1.18 基于32位定时器1的可调数字钟实例 41
1.19 基于16位定时器0的频率测量实例 45
1.20 基于引脚中断功能的频率测量实例 48
1.21 基于系统节拍定时器的时钟实例 51
1.22 基于SysTick的音阶产生实例 53
1.23 基于32位定时器0的MAT功能实现的简易电子琴实例 57
1.24 基于32位定时器1的PWM产生1kHz正弦波信号实例 59
1.25 滴水灯实例 62
1.26 基于定时器的救护车声模拟实例 64
1.27 基于定时器的“叮咚”门铃实例 67
1.28 红外遥控编码模拟实例 69
1.29 红外遥控解码模拟实例 73
1.30 LED圣诞树实例 76
1.31 LED摇摇棒实例 79
1.32 基于定时器的音乐播放实例 83
1.33 基于SPI功能的串/并转换LED数码管显示实例 90
1.34 基于查询方式的A/D转换应用实例 92
1.35 基于LM35温度传感器的温度测量实例 95
1.36 基于GPIO引脚构成的R-2R电阻网络产生的正弦波信号实例 97
1.37 基于UART的字符串发送实例 99
1.38 基于UART的中断方式的发送接收实例 101
1.39 基于I2C接口的24C02串行存储器读写实例 104
1.40 基于SPI接口的25AA010A串行存储器读写实例 110
1.41 8×8点阵LED显示数字0~9实例 112
1.42 16×16点阵LED显示汉字实例 114
1.43 16×16点阵LED流水方式显示汉字实例 117
1.44 基于8×8点阵LED的“贪吃蛇”实例 120
1.45 RGB LED灯珠颜色渐变实例 124
1.46 基于32位定时器1实现RGB LED灯珠颜色渐变实例 126
1.47 LM016L字符LCD模块的显示实例 128
1.48 128×64点阵图形LCD模块的汉字显示实例 131
1.49 基于ST7920的中文128×64图形点阵LCD显示模块实例 135
1.50 八层电梯运行模拟实例 137
1.51 等精度频率测量应用实例 141
1.52 LED霹雳灯实例 144
1.53 简易计算器应用实例 147
1.54 基于MPX4250的气压测量实例 153
1.55 基于定时器的6路舵机控制实例 155
1.56 基于APDS-9002的照度测量实例 160
1.57 基于GP2D12的红外测距应用实例 162
1.58 基于SFR04的超声波测距应用实例 164
1.59 基于光敏电阻的光照度测量应用实例 168
1.60 基于可控硅的交流调光应用实例 171
第 2 章 扩展应用实例 176
2.1 基于74HC595的8位共阴LED数码管显示实例 176
2.2 基于74HC595的8×8点阵LED显示实例 178
2.3 基于74HC595的16×16点阵LED按键计数显示实例 181
2.4 基于74HC595的16×16点阵LED的飞机射击游戏实例 184
2.5 基于LM016L的字符LCD动态菜单显示操作实例 192
2.6 基于128×64的点阵LCD模块的指针式时钟显示实例 198
2.7 基于128×64的图形LCD模块的菜单设计实例 206
2.8 基于NOKIA3310的图形LCD模块显示实例 214
2.9 基于NOKIA5510的LCD模块的时钟显示实例 223
2.10 基于SHT11的环境温湿度测量实例 229
2.11 基于DS18B20的数字温度测量实例 236
2.12 基于DS1302的RTC时钟实例 239
2.13 基于PCF8563的RTC应用实例 245
2.14 基于SPI接口的DS3234实时时钟应用实例 255
2.15 基于SPI接口的TLC5615信号发生器实例 261
2.16 基于热敏电阻的模拟温度测量应用实例 265
2.17 LCD显示的直流电动机的调速与正反转控制实例 270
2.18 基于CX20106A的超声波测距应用实例 276
2.19 基于A/D转换的直流电动机调速实例 279
2.20 基于L297和L298驱动的2相4线步进电动机控制实例 283
2.21 LCD显示的4相5线步进电动机控制实例 286
2.22 160×128图形LCD显示模块应用实例 294
2.23 基于DAC0832的信号发生器应用实例 305
2.24 基于PCF8591的直流稳压电源应用实例 312
2.25 基于BMP180的大气压强温度和海拔高度测量实例 318
第 3 章 综合应用实例 325
3.1 自动量程的电压表设计实例 325
3.2 基于比较器的电容测量表设计实例 329
3.3 基于NE555构成的电容测量表设计实例 333
3.4 可预设电压的数控电源设计实例 337
3.5 LCD显示的电子密码锁设计实例 341
3.6 迷你音乐频谱显示器设计实例 352
3.7 温控风扇系统设计实例 357
3.8 基于240×128 TFTLCD的中文显示万年历实例 363
3.9 带记忆功能的数字调节式直流稳压电源设计实例 387
3.10 “推箱子”游戏设计实例 394
3.11 GPS定位系统设计实例 415
3.12 智能温室控制系统应用实例 420
3.13 基于PID算法的电动机转速控制系统设计实例 429
3.14 带温度测量的64×16点阵LED数字钟设计实例 434
3.15 简易波形显示设计实例 447

参考文献