描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121367168
内容简介
本选题是中高职教育电子信息工程技术专业课程改革创新规划教材。改变了原先以51单片机为载体,汇编语言为主要编程语言的旧有教学体系。以”将企业真正用到的知识和技能,在学生在校学习阶段系统传递”为指导原则,与企业联合研发培养方案,引入了基于软件设计方法学的”层次化软件设计思想”,构建了以”C语言为主,汇编语言为辅”的单片机教学体系。本书以ATmega168PA单片机为主体,运用Atmel公司的开发环境Atmel Studio和PROGISP软件、AVR JTAGICE仿真器,以及AVR ISP下载器,通过大量典型的多任务项目实训详细介绍了单片机开发必备的基础知识和软/硬件条件,系统介绍了单片机的基本结构、定时/计数器、中断系统、串行通信、常用接口技术、信息显示技术、DS18B20温度检测等技术内容及相应的Atmel Studio和PROGISP软件设计基本方法。本书所有实例均采用Atmel Studio和PROGISP软件进行仿真和实验板进行实验,使读者在实践中逐步掌握单片机的硬件结构和C语言程序设计开发方法。本书在编写时采用”层次化软件设计思想”,知识讲解以”必须、够用”为原则,技能培养以”紧密结合实践”为特色,项目任务设计知识覆盖面广,技能要求全面。本书程序代码具有”可读性强、可代码复用、可多人协作和可跨CPU移植”,这正是企业所需要程序设计人员写出的优良的程序代码的特征。因此本书具有跟企业要求零衔接。
目 录
项目1 与单片机的一见钟情—记录你与单片机的相识
任务一 解剖MP4,认知智能电子产品的构成
一、拆装MP4前的准备工作
二、拆装MP4的注意事项
三、拆装MP4,并认知智能电子产品的构成
任务二 深入单片机的世界,构建自己的开发环境
一、认知数字电子计算机
二、认知冯?诺依曼思想
三、认知单片机
四、选择适合学习的单片机
五、构建单片机开发环境
任务三 牛刀小试,实现会唱歌的“音乐盒”
一、打开AVRWARE 例程模板,开始项目设计
二、熟悉程序的基本架构,调用声音播放函数
三、编译和下载的步骤
评价与考核
思考与练习 23
项目2 初识层次化软件设计思想—点亮你的LED 24
任务一 直接应用寄存器点亮LED 25
一、单片机控制LED发光的基本方法 26
二、应用PORTC寄存器控制LED闪烁
三、程序代码解读
任务二 控制指定LED的亮灭
一、认知C语言中的位操作
二、操纵寄存器中的指定位
三、认知C语言中的宏定义
四、置高、置低和反转功能宏
任务三 应用层次化软件设计思想实现多路LED闪烁
一、认知层次化软件设计思想 43
二、将硬件原理图直译成映射层 44
三、逻辑层设计 47
评价与考核 57
思考与练习 58
项目3 串转并的方法—控制更多的LED
任务一 认知“倒计时器”硬件原理
一、认知ATmega168PA单片机最小系统
二、认知74HC595内部工作原理
三、认知24路LED模块电路控制原理
任务二 编写程序,显示数字“0”
一、config.h文件的使用
二、74HC595配置文件的使用
三、认知74HC595的操作函数和功能宏
四、在24路LED模块上显示数字“0”
任务三 编写程序,实现“倒计时器”
一、数字字模的构建
二、编程实现倒计时
三、程序的优化
评价与考核
思考与练习
项目4 中断与定时器—使用数码管表达我们的信息
任务一 认知“数码管”的显示原理
一、认知数码管
二、数码管的测量
三、数码管的字符编码 95
任务二 数码管的静态和动态显示 97
一、数码管的静态显示 98
二、认知74HC138内部工作原理
三、数码管的动态显示
四、交替显示字符“01234567”和“89ABCDEF”
任务三 中断与定时器
一、认知单片机中的“中断”
二、定时器
三、应用定时器中断实现数码的显示
评价与考核
思考与练习
项目5 独立式按键—多功能秒表的设计与制作 129
任务一 认知轻触机械式触点开关按键 130
一、什么是轻触机械式触点开关按键 132
二、轻触按键动作的时序分析
三、按键抖动时间
四、按键的硬件消抖
任务二 独立式按键设计
一、认知独立式按键
二、按键的软件消抖
三、设计具有“启动/继续”、“暂停”与“复位”的秒表
任务三 设计具有倒计时功能的多功能秒表
一、认知蜂鸣器 151
二、倒计时时间的调整 153
三、实现秒表倒计时 165
评价与考核 179
思考与练习 180
项目6 IIC总线—万年历的设计与制作 181
任务一 认知智能设备中的实时时钟 182
一、认知实时时钟 184
二、实时时钟模块的内部组成
三、认知SD2405实时时钟模块
四、SD2405实时时钟模块的硬件电路设计
任务二 认知IIC总线
一、认知总线
二、总线的分类
三、认知IIC总线
四、IIC总线的特点
任务三 使用C语言模拟IIC总线 192
一、IIC总线的结构和工作原理
二、IIC总线典型信号的C语言实现
三、单字节数据的发送与接收
四、实际器件的读写操作
五、理解完整的IIC驱动程序
任务四 设计显示当前时间的万年历
一、认知SD2405的寄存器
二、认知BCD码
三、使用结构体表示当前时间
四、解读SD2405驱动程序
五、在数码管上显示当前时间
评价与考核
思考与练习
项目7 异步串行通信—与计算机之间传递信息
任务一 理解数据通信的基本概念
一、认知数据通信
二、认知数据通信的有线传输媒质
三、认知数据通信的无线传输媒质
四、认知数据通信的传输模式
任务二 认知异步串行总线
一、认知通用异步串行总线UART
二、认知衡量UART传输速率的方法
三、认知UART的总线标准接口
四、使用计算机中的串口
任务三 操纵单片机中的UART
一、理解UART的硬件结构
二、理解UART硬件驱动的初始化
三、理解UART硬件驱动的数据发送与接收
四、在计算机上显示实时时钟的当前时间
任务四 修正万年历的时间
一、正确判断协议的开始
二、进一步提高程序的运行效率
三、在中断函数中实现UART数据的接收
四、处理UART接收到的数据
五、使用计算机控制教学开发板
评价与考核
思考与练习
项目8 单总线—温度测量报警系统
任务一 认知温度测量的基本方法
一、认知有关温度测量的基础知识
二、认知接触式测温方法
三、认知非接触式测温方法
四、电量式测温方法
任务二 认知集成测温芯片DS18B20
一、认知DS18B20测量温度的基本原理
二、认知DS18B20的内部结构和器件特点
三、理解DS18B20的硬件连接方式
任务三 DS18B20的驱动程序设计
一、分析单总线时序
二、理解单总线初始化、写、读时序
三、理解DS18B20寄存器分布及其使用方法
四、实现DS18B20的驱动程序
任务四 在数码管上显示当前温度
一、温度的数码管显示
二、理解MiniUart接收完整数据包的本质
三、理解MiniUart的程序实现
四、使用MiniUart进行数据接收
任务五 设计具有实时时间显示的温度测量报警系统
一、用按键切换时间和温度显示
二、通过计算机读取、设置时间
三、编写程序,实现高温报警功能
评价与考核
思考与练习
参考文献
任务一 解剖MP4,认知智能电子产品的构成
一、拆装MP4前的准备工作
二、拆装MP4的注意事项
三、拆装MP4,并认知智能电子产品的构成
任务二 深入单片机的世界,构建自己的开发环境
一、认知数字电子计算机
二、认知冯?诺依曼思想
三、认知单片机
四、选择适合学习的单片机
五、构建单片机开发环境
任务三 牛刀小试,实现会唱歌的“音乐盒”
一、打开AVRWARE 例程模板,开始项目设计
二、熟悉程序的基本架构,调用声音播放函数
三、编译和下载的步骤
评价与考核
思考与练习 23
项目2 初识层次化软件设计思想—点亮你的LED 24
任务一 直接应用寄存器点亮LED 25
一、单片机控制LED发光的基本方法 26
二、应用PORTC寄存器控制LED闪烁
三、程序代码解读
任务二 控制指定LED的亮灭
一、认知C语言中的位操作
二、操纵寄存器中的指定位
三、认知C语言中的宏定义
四、置高、置低和反转功能宏
任务三 应用层次化软件设计思想实现多路LED闪烁
一、认知层次化软件设计思想 43
二、将硬件原理图直译成映射层 44
三、逻辑层设计 47
评价与考核 57
思考与练习 58
项目3 串转并的方法—控制更多的LED
任务一 认知“倒计时器”硬件原理
一、认知ATmega168PA单片机最小系统
二、认知74HC595内部工作原理
三、认知24路LED模块电路控制原理
任务二 编写程序,显示数字“0”
一、config.h文件的使用
二、74HC595配置文件的使用
三、认知74HC595的操作函数和功能宏
四、在24路LED模块上显示数字“0”
任务三 编写程序,实现“倒计时器”
一、数字字模的构建
二、编程实现倒计时
三、程序的优化
评价与考核
思考与练习
项目4 中断与定时器—使用数码管表达我们的信息
任务一 认知“数码管”的显示原理
一、认知数码管
二、数码管的测量
三、数码管的字符编码 95
任务二 数码管的静态和动态显示 97
一、数码管的静态显示 98
二、认知74HC138内部工作原理
三、数码管的动态显示
四、交替显示字符“01234567”和“89ABCDEF”
任务三 中断与定时器
一、认知单片机中的“中断”
二、定时器
三、应用定时器中断实现数码的显示
评价与考核
思考与练习
项目5 独立式按键—多功能秒表的设计与制作 129
任务一 认知轻触机械式触点开关按键 130
一、什么是轻触机械式触点开关按键 132
二、轻触按键动作的时序分析
三、按键抖动时间
四、按键的硬件消抖
任务二 独立式按键设计
一、认知独立式按键
二、按键的软件消抖
三、设计具有“启动/继续”、“暂停”与“复位”的秒表
任务三 设计具有倒计时功能的多功能秒表
一、认知蜂鸣器 151
二、倒计时时间的调整 153
三、实现秒表倒计时 165
评价与考核 179
思考与练习 180
项目6 IIC总线—万年历的设计与制作 181
任务一 认知智能设备中的实时时钟 182
一、认知实时时钟 184
二、实时时钟模块的内部组成
三、认知SD2405实时时钟模块
四、SD2405实时时钟模块的硬件电路设计
任务二 认知IIC总线
一、认知总线
二、总线的分类
三、认知IIC总线
四、IIC总线的特点
任务三 使用C语言模拟IIC总线 192
一、IIC总线的结构和工作原理
二、IIC总线典型信号的C语言实现
三、单字节数据的发送与接收
四、实际器件的读写操作
五、理解完整的IIC驱动程序
任务四 设计显示当前时间的万年历
一、认知SD2405的寄存器
二、认知BCD码
三、使用结构体表示当前时间
四、解读SD2405驱动程序
五、在数码管上显示当前时间
评价与考核
思考与练习
项目7 异步串行通信—与计算机之间传递信息
任务一 理解数据通信的基本概念
一、认知数据通信
二、认知数据通信的有线传输媒质
三、认知数据通信的无线传输媒质
四、认知数据通信的传输模式
任务二 认知异步串行总线
一、认知通用异步串行总线UART
二、认知衡量UART传输速率的方法
三、认知UART的总线标准接口
四、使用计算机中的串口
任务三 操纵单片机中的UART
一、理解UART的硬件结构
二、理解UART硬件驱动的初始化
三、理解UART硬件驱动的数据发送与接收
四、在计算机上显示实时时钟的当前时间
任务四 修正万年历的时间
一、正确判断协议的开始
二、进一步提高程序的运行效率
三、在中断函数中实现UART数据的接收
四、处理UART接收到的数据
五、使用计算机控制教学开发板
评价与考核
思考与练习
项目8 单总线—温度测量报警系统
任务一 认知温度测量的基本方法
一、认知有关温度测量的基础知识
二、认知接触式测温方法
三、认知非接触式测温方法
四、电量式测温方法
任务二 认知集成测温芯片DS18B20
一、认知DS18B20测量温度的基本原理
二、认知DS18B20的内部结构和器件特点
三、理解DS18B20的硬件连接方式
任务三 DS18B20的驱动程序设计
一、分析单总线时序
二、理解单总线初始化、写、读时序
三、理解DS18B20寄存器分布及其使用方法
四、实现DS18B20的驱动程序
任务四 在数码管上显示当前温度
一、温度的数码管显示
二、理解MiniUart接收完整数据包的本质
三、理解MiniUart的程序实现
四、使用MiniUart进行数据接收
任务五 设计具有实时时间显示的温度测量报警系统
一、用按键切换时间和温度显示
二、通过计算机读取、设置时间
三、编写程序,实现高温报警功能
评价与考核
思考与练习
参考文献
前 言
单片机技术的发展日新月异,单片机技术的应用日益广泛地渗透到生产生活的方方面面。人们对单片机技术的向往日益强烈,但是却仍然有不少人对学习单片机技术心存敬畏,裹足不前。这一方面是由于单片机确实是一门技术含量比较高的学问,学习起来有一定的难度;另一方面也是由于传统的学习方式人为地加大了学习单片机技术的困难。实际上,随着单片机技术的发展,单片机学习工具与科学的学习方式也在相应地发生变化。进入科学的学习轨道,单片机技术的学习就可以达到事半功倍的效果。
一、本教材的特点
本教材大胆创新,锐意改革,改变了原先以51单片机为载体,汇编语言为主要编程语言的旧有教学体系。以“将企业真正用到的知识和技能,在学生在校学习阶段系统传递”为指导原则,与企业联合研发培养方案,引入了基于软件设计方法学的“层次化软件设计思想”,构建了以“C语言为主,汇编语言为辅”的多型单片机教学体系。此教学体系采用自顶而下的思想,构建教学内容,由浅入深,由简入繁,通过真实案例,传递企业真正需求的知识和内容,课程具备可伸缩性,可以适应不同职业学院学生、教师的不同特点及学习需求,并将促进学生职业技能与培养学生职业精神高度融合,在一定程度上可以整体提升学生职业能力、人文素质和职业素养。
(1)设计理念的选取
应用“层次化软件设计思想”构建多型单片机教学体系,系统设计上具备完善的可移植性,可在多种上面上常用的单片机进行程序设计(如AVR系列,MSP430系列,ARM7系列,STM32系列等)。
(2)编程语言的选取
很多高职院校在编程语言选择上以汇编语言为主,使用汇编语言的优点是代码紧凑、运行效率高,但缺点非常明显,主要表现在对目标单片机硬件结构的依赖上,造成代码移植困难,开发不同体系的单片机必须进行新的硬件结构和指令的学习,而且汇编语句抽象、不易理解、功能弱,这直接导致编程效率低下。
与汇编语言相比,采用面向单片机的C语言作为开发工具有着显著的优点:
① C语言是一种结构化程序设计语言,使得编制的程序易于阅读、修改和维护;
② C程序具备完善的模块化结构,便于分工协作,易于实现程序的分发与共享。
③ C语言是最为广泛使用的编程语言,具备丰富的函数库,有效地减少编程的工作量。
(3)软件设计思想的选取
引入企业直接需求的软件设计思想,不是停留在以流程图为主的传统过程化教学思维模式。以流程图为主的传统过程化教学模式,在具体企业项目实践中,缺点突出,主要表现在:可读性差、程序代码不可重复利用,不可多人协作,不具可移植性。应用这样编写的单片机程序代码是不符合企业对项目需求的。
本教材引入了层次化的软件设计思想,采用软件分层的方式进行软件设计,应用此思想设计的单片机程序代码具有:可读性强、代码可重复利用、可多人协作和可在各种类型的单片机上进行移植等众多优点。对学生及进行层次化软件设计思想的灌输,可以使学生从单片机的起始学习就形成优良的软件设计思想,并为后续课程和今后企业项目实践奠定坚实的基础。
二、本教材的内容组织
“单片机技术及应用”课程在内容组织上依据学生的认知规律,使用企业真实研发案例与过程进行项目化教学,理论与实践相结合,配合必要的实训环节。其内容组织如下:
项目1:与单片机的一见钟情—记录你与单片机的相识
项目2:初识层次化软件设计思想—点亮你的LED
项目3:串转并的方法—控制更多的LED
项目4:中断与定时器—使用数码管表达我们的信息
项目5:独立式按键—多功能秒表的设计与制作
项目6:IIC总线—万年历的设计与制作
项目7:异步串行通信—与计算机之间传递信息
项目8:单总线—温度测量报警系统
本书由栾秋平、宋维任主编,崔立功任副主编,张训华主审。参与编写本教材的还有李文秀、袁丽艳、郭军等老师。其中宋维老师并为本书设计了配套实验板。由于编者水平有限,书中难免有不足与疏漏之处,敬请广大读者指正。
为便于读者学习,本书专门配备了自行设计的单片机实验板供学习者选用。单片机实验板设计的与众不同之处在于充分考虑到了硬件设计的需要,在电路布线时尽可能留下硬件设备的接口而不是将硬件与单片机的连接固定,以提高软件设计的灵活性与多样性,使得实验板增添了难得的硬件设计功能。为方便教师教学与学生自学,本书还配有教学电子资料包可供免费下载。
最后作者竭诚希望本书能为读者学习单片机应用技术提供帮助,愿为读者的学习提供热忱服务,并希望与广大读者多进行沟通与交流。
一、本教材的特点
本教材大胆创新,锐意改革,改变了原先以51单片机为载体,汇编语言为主要编程语言的旧有教学体系。以“将企业真正用到的知识和技能,在学生在校学习阶段系统传递”为指导原则,与企业联合研发培养方案,引入了基于软件设计方法学的“层次化软件设计思想”,构建了以“C语言为主,汇编语言为辅”的多型单片机教学体系。此教学体系采用自顶而下的思想,构建教学内容,由浅入深,由简入繁,通过真实案例,传递企业真正需求的知识和内容,课程具备可伸缩性,可以适应不同职业学院学生、教师的不同特点及学习需求,并将促进学生职业技能与培养学生职业精神高度融合,在一定程度上可以整体提升学生职业能力、人文素质和职业素养。
(1)设计理念的选取
应用“层次化软件设计思想”构建多型单片机教学体系,系统设计上具备完善的可移植性,可在多种上面上常用的单片机进行程序设计(如AVR系列,MSP430系列,ARM7系列,STM32系列等)。
(2)编程语言的选取
很多高职院校在编程语言选择上以汇编语言为主,使用汇编语言的优点是代码紧凑、运行效率高,但缺点非常明显,主要表现在对目标单片机硬件结构的依赖上,造成代码移植困难,开发不同体系的单片机必须进行新的硬件结构和指令的学习,而且汇编语句抽象、不易理解、功能弱,这直接导致编程效率低下。
与汇编语言相比,采用面向单片机的C语言作为开发工具有着显著的优点:
① C语言是一种结构化程序设计语言,使得编制的程序易于阅读、修改和维护;
② C程序具备完善的模块化结构,便于分工协作,易于实现程序的分发与共享。
③ C语言是最为广泛使用的编程语言,具备丰富的函数库,有效地减少编程的工作量。
(3)软件设计思想的选取
引入企业直接需求的软件设计思想,不是停留在以流程图为主的传统过程化教学思维模式。以流程图为主的传统过程化教学模式,在具体企业项目实践中,缺点突出,主要表现在:可读性差、程序代码不可重复利用,不可多人协作,不具可移植性。应用这样编写的单片机程序代码是不符合企业对项目需求的。
本教材引入了层次化的软件设计思想,采用软件分层的方式进行软件设计,应用此思想设计的单片机程序代码具有:可读性强、代码可重复利用、可多人协作和可在各种类型的单片机上进行移植等众多优点。对学生及进行层次化软件设计思想的灌输,可以使学生从单片机的起始学习就形成优良的软件设计思想,并为后续课程和今后企业项目实践奠定坚实的基础。
二、本教材的内容组织
“单片机技术及应用”课程在内容组织上依据学生的认知规律,使用企业真实研发案例与过程进行项目化教学,理论与实践相结合,配合必要的实训环节。其内容组织如下:
项目1:与单片机的一见钟情—记录你与单片机的相识
项目2:初识层次化软件设计思想—点亮你的LED
项目3:串转并的方法—控制更多的LED
项目4:中断与定时器—使用数码管表达我们的信息
项目5:独立式按键—多功能秒表的设计与制作
项目6:IIC总线—万年历的设计与制作
项目7:异步串行通信—与计算机之间传递信息
项目8:单总线—温度测量报警系统
本书由栾秋平、宋维任主编,崔立功任副主编,张训华主审。参与编写本教材的还有李文秀、袁丽艳、郭军等老师。其中宋维老师并为本书设计了配套实验板。由于编者水平有限,书中难免有不足与疏漏之处,敬请广大读者指正。
为便于读者学习,本书专门配备了自行设计的单片机实验板供学习者选用。单片机实验板设计的与众不同之处在于充分考虑到了硬件设计的需要,在电路布线时尽可能留下硬件设备的接口而不是将硬件与单片机的连接固定,以提高软件设计的灵活性与多样性,使得实验板增添了难得的硬件设计功能。为方便教师教学与学生自学,本书还配有教学电子资料包可供免费下载。
最后作者竭诚希望本书能为读者学习单片机应用技术提供帮助,愿为读者的学习提供热忱服务,并希望与广大读者多进行沟通与交流。
编 者
评论
还没有评论。