具体描述
SPCE061A是台湾凌阳公司2001年推出的新一代单片机,具有高速度、低价格、体积小、功耗低、可靠实用、简单易学等特点。本书以SPCE061A为例,介绍十六但嵌入式微控制器的工作原理、内部结构、指令系统、程序设计、开发工具,以及嵌入式操作系统。讲解过程中,技术理论与实践应用并重,通过大量实例来加深理解、强化应用,还通过13个基础实验进一步提高学生的综合应用能力和动手能力。
本书体系完整、层次清晰、通俗易懂、极具实用性,可作为大专院校自动化、计算机应用、仪器仪表等有关专业的教材使用,也可以从从事嵌入式系统设计、开发和维护的广大科技人员阅读参考。
作者简介
目录信息
0.1 微处理器、微型计算机和单片机的概念
0.1.1 微处理器(Microprocessor)
0.1.2 微型计算机(Microcomputer)
0.1.3 单片机
0.2 计算机如何工作
0.3 微处理器与微控制器在组成计算机系统方面的区别
0.3.1 基本系统
0.3.2 扩展系统
0.4 嵌入式微控制器的进展
0.4.1 嵌入式微控制器的新进展
0.4.2 嵌入式微控制器的开发平台
0.4.3 实时多任务操作系统
0.4.4 实时在线仿真器(ICE)
O.5 微控制器典型产品分类
0.6 单片机发展趋势
第1章 基于基本系统的单片机简介
1.1 凌阳16位单片机
1.2 SPCE061A
1.2.1 总述
1.2.2 性能
1.2.3 SPCE061A的结构
1.2.4 SPCE061A最小系统
1.2.5 SPCE061A的开发方法
1.2.6 特性和引脚功能
1.2.7 应用领域
第2章 SPCE061A单片机硬件结构
2.1 µ'nSP™的内核结构
2.2 单片机的片内存储结构
2.2.1 单片机的ROM
2.2.2 单片机的RAM
2.2.3 SPCE061A内存储器结构
2.2.4 SPCE061A堆栈
2.2.5 闪存Flash
2.2.6 编程操作实例
2.3 单片机输入/输出接口
2.3.1 单片机输入/输出接口应注意的问题
2.3.2 SPCE061A输入/输出接口
2.4 时钟电路
2.5 锁相环PLL(Phase Lock Loop)振荡器
2.5.1 锁相环与系统时钟
2.5.2 系统时钟
2.6 时间基准信号
2.7 低功耗睡眠和唤醒
2.7.1 单片机低功耗技术
2.7.2 睡眠状态的低功耗
2.7.3 低功耗系统中要注意的问题
2.7.4 睡眠与唤醒
2.8 定时器/计数器
2.9 A/D转换器设计实例
2.9.1 主要A/D转换器特点
2.9.2 SPCE061A的模数转换器(ADC)
2.10 DAC方式音频输出
2.11 低电压监测(LVD),复位,保密设定,看门狗
2.11.1 低电压监测和低电压复位
2.11.2 复位
2.11.3 保密设定
2.11.4 看门狗计数器(WatchDog)
2.12 SIO接口
2.12.1 通用同步串行接口
2.12.2 061A串行设备输入输出口
2.13 UART接口
2.13.1 通用异步通信方式
2.13.2 061A的通用异步串行接LIART
习题
第3章 微控制器寻址方式与指令系统
3.1 微控制器的寻址方式
3.1.1 立即数寻址(Immediate Addressing)
3.1.2 寄存器寻址(Register Addressing)
3.1.3 直接寻址(Direct Addressing)
3.1.4 寄存器间接寻址(Register Relative Addressing)
3.1.5 变址寻址
3.2 SPCE061 A指令分类
3.2.1 数据传送指令
3.2.2 算术运算指令
3.2.3 SPCE061A的逻辑运算和移位指令
3.2.4 SPCE061A的控制转移类指令
3.2.5 伪指令
3.2.6 宏定义与调用
习题
第4章 程序设计
4.1 汇编语言程序设计
4.1.1 μ'nSPTM汇编语言程序的结构
4.1.2 汇编语言的语法
4.1.3 汇编语言程序举例
4.2 C语言程序设计
4.3 C和汇编混合编程
4.3.1 C语言的在线汇编
4.3.2 C和汇编语言的相互调用
习题
第5章 开发环境简介
5.1 概述
5.2 菜单、工具栏
5.3 窗口
5.3.1 Workspace窗口
5.3.2 输出窗H Output
5.3.3 编辑窗口EdIt
5.3.4 内存窗H Memory
5.3.5 寄存器窗H Register
5.3.6 命令窗H Command
5.3.7 断点窗El BreakPoints
5.3.8 变量表窗H Watch
5.3.9 反汇编窗口Disassemble
5.4 项目
5.4.1 项目的操作
5.4.2 选择Probe型号
5.4.3 项目设置
5.4.4 项目的编制
5.4.5 加载程序
5.4.6 调试器
5.4.7 程序示例
5.5 项目流程实例——音频播放
5.5.1 音频概述
5.5.2 凌阳音频简介
5.5.3 凌阳音频解决方案
5.5.4 凌阳音频播放过程
习题
第6章 中断系统
6.1 概述
6.1.1 中断概念
6.1.2 中断源
6.1.3 中断的一般处理过程
6.1.4 中断向量表
6.1.5 中断优先级
6.1.6 中断屏蔽
6.1.7 使用中断应该注意的问题
6.2 SPCE061A单片机中断系统
6.2.1 中断分类
6.2.2 中断向量
6.2.3 中断源
6.2.4 中断控制
6.2.5 中断处理过程
6.3 中断程序举例
6.3.1 用汇编语言编写中断服务子程序
6.3.2 用C语言编写中断服务子程序
习题
第7章 嵌入式实时操作系统
7.1 实时操作系统的一些基本概念
7.1.1 任务
7.1.2 多任务
7.1.3 任务切换
7.1.4 内核
7.1.5 任务调度
7.1.6 任务优先级
7.1.7 资源、共享资源与互斥
7.1.8 死锁和饿死
7.1.9 同步
7.1.1O 任务间通信
7.1.1l 消息邮箱和消息队列
7.1.12 中断
7.1.13 时钟节拍(Clock Tick)
7.1.14 对存储器的需求
7.1.15 实时系统内核的优点
7.2 µC/OS-II内核结构
7.2.1 任务
7.2.2 任务状态
7.2.3 任务控制块(Task Control Blocks,OS_TCBs)
7.2.4 任务管理
7.2.5 中断处理
7.3 µC/OS-II的移植
7.3.1 OS—CPU-H
7.3.2 OS—CPU—A.ASM
7.3.3 OS—CPU—C.C
习题
第8章 实验箱
8.1 硬件结构及I/O分配
8.2 PROBE说明与硬件连接
8.3 实验箱各个模块的说明
8.3.1 电源
8.3.2 SPCE061A芯片周边电路
8.3.3 I/OEl电路
8.3.4 音频输入
8.3.5 音频输出
8.3.6 双色8~8LED点阵
8.3.7 双路0-3.3V可调电路
8.3.8 SPR4096构成的SIO存储电路
8.3.9 电平发生按键电路
8.3.10 逻辑电平指示灯
8.3.11 异步串口通信电路
8.3.12 4×4键盘矩阵
8.3.13 数码管
8.3.14 LCD
习题
第9章基础实验
实验一 熟悉µnSP™ IDE开发环境
实验二 IO口实验
实验三 用定时器A/B产生PWM信号
实验四 FIQ中断实验
实验五 IRQ0/IRQ I/IRQ2中断实验
实验六 IRQ4/IRQ5中断实验
实验七 UART实验
实验八 A/D转换
实验九 双通道D/A转换
实验十 32K字的Fiash读/写
实验十一 音频播放——SACM-A2000
实验十一 6位7段LED数码管显示实验
实验十三 LCD上的字符显示
第10章 SPCE061A单片机应用举例
10.1 生产线货物自动计数设备
10.1.1 问题描述
10.1.2 硬件电路设计
10.1.3 算法及流程
10.1.4 源程序
10.2 电子时钟与作息时问控制
10.2.1 问题描述
10.2.2 硬件电路设计
10.2.3 算法及流程
10.2.4 源程序
附录1 C-Lib中的函数集
附录2 µnSP™ 汇编器伪指令集
附录3 与µnSP™ 编译相关的错误信息
附录4 端口速查表
附录5 符号约定
参考文献
· · · · · · (收起)
读后感
用户评价
这本书的叙事风格非常具有“工程师的浪漫”,作者似乎并不满足于仅仅罗列枯燥的寄存器地址和时序图,而是巧妙地将复杂的底层原理融入到一系列生动的应用案例之中。举例来说,在讲解中断处理机制时,作者没有停留在理论的抽象层面,而是通过模拟一个实时控制系统的场景,详细剖析了从外部事件发生到CPU响应处理的完整“生命周期”,这种叙事手法极大地降低了初学者的理解门槛。我尤其欣赏作者在处理复杂算法优化时的那种庖丁解牛般的细致,他会先展示一个直观但效率不高的实现方法,然后逐步引入更高级的指令集优化和流水线技巧,每一步的改进都有明确的性能增益数据作为支撑,让人对“效率”二字的理解从模糊的概念转变为可量化的指标。这种从实践中提炼理论,再用理论指导实践的循环论证方式,使得整本书读起来像是一场引人入胜的技术探险,而非冷冰冰的教科书。
如果用一句话来概括我对这本书的整体感受,那就是“详尽到令人发指,却又条理清晰到令人称奇”。在深入研究到特定功能模块时,例如片上外设的配置过程,我发现作者几乎穷尽了所有可能的寄存器位定义及其对应的软件操作顺序。对于初学者而言,这或许会显得信息量过大,但我发现,正是这份详尽,使得我在尝试脱离书本示例,进行独立项目开发时,极大地减少了查阅官方数据手册的次数。作者仿佛已经提前将厚厚的芯片手册精炼、消化,并以最易于吸收的结构呈现出来。特别是关于时钟树配置和低功耗模式管理的章节,其深度和广度远超我之前阅读过的任何同类教材,它不仅告诉你“怎么做”,更深入探讨了“为什么必须这么做”以及“如果不这样做会带来什么后果”,这才是真正有价值的深度。
这本书的配套资源和作者的教学理念似乎是高度统一的,它倡导的是一种“动手是检验真理的唯一标准”的学习哲学。我注意到,书中给出的每一个代码片段,无论长短,都像是经过了严苛的编译和调试检验的“黄金代码”。这种对代码质量的坚持,对于培养一个严谨的嵌入式工程师至关重要。很多技术书籍的代码示例充斥着逻辑错误或低级语法问题,让读者在跟随学习时反复受挫,但此书在这方面堪称典范。此外,作者在章节末尾设置的“思考题与拓展实践”部分,其设计巧妙,往往能引导读者思考当前章节知识点在更宏观系统中的作用,并鼓励读者去探索那些未被直接讲解的周边技术,这种潜移默化的引导,比生硬的说教有效得多,真正培养了独立解决问题的能力。
这本书的排版和印刷质量实在是令人眼前一亮,装帧设计简洁而富有现代感,封面配色沉稳又不失活力,让人在书架上第一时间就能注意到它。内页纸张的质地也非常舒服,即便是长时间阅读,眼睛也不会感到明显的疲劳。更值得称赞的是,书中大量的电路图和实验截图,都清晰锐利,细节分毫毕现,这对于学习硬件设计和嵌入式系统的人来说至关重要。很多技术书籍为了压缩成本,往往在插图上敷衍了事,导致关键的连接点模糊不清,但这本书在这方面做得非常到位,体现了作者和出版方对读者的尊重。光是翻阅目录和章节标题,就能感受到作者对内容组织结构的精心考量,层次分明,逻辑严谨,仿佛已经预见到读者在学习过程中的每一步疑惑,并提前准备好了清晰的指引。这种对物理载体的重视,无疑为后续的学习体验奠定了极佳的基础,让人有种迫不及待想要深入研读的冲动。
从阅读体验的角度来看,这本书的语言风格非常平实、谦逊,没有丝毫故作高深的学术腔调。作者在解释复杂的硬件交互机制时,会大量使用类比和生活中的例子来帮助理解,这使得原本可能让人望而生畏的数字逻辑和时序控制变得异常直观。例如,在描述数据总线的仲裁过程时,作者将其比喻为“会议室里的发言权分配”,这种贴近生活的描述,极大地拉近了技术与读者的距离。同时,作者在面对特定技术的局限性时也持有一种坦诚的态度,他不会刻意美化某个特定架构的弱点,而是会平衡地指出其优势与劣势,这为读者提供了更为全面和客观的技术视角,避免了陷入某种特定厂商或技术的“教条主义”陷阱。整体而言,这是一部既有深度又有温度的技术著作。