单片机原理与接口技术(C语言版)11_第1页
单片机原理与接口技术(C语言版)11_第2页
单片机原理与接口技术(C语言版)11_第3页
单片机原理与接口技术(C语言版)11_第4页
单片机原理与接口技术(C语言版)11_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与接口技术 C语言版 第11章单片机应用实例 主编 周国运清华大学出版社 第11章单片机应用实例 目录11 1单片机应用开发方法11 2基于单片机的计算器设计11 3基于单片机的万年历设计 本章要点本章首先介绍单片机应用开发的方法 然后以计算器和带温度功能的万年历两个单片机应用实例 示范单片机应用系统的设计过程 11 1单片机应用开发方法 主要内容11 1 1总体设计11 1 2硬件设计11 1 3软件设计11 1 4系统调试与测试 11 1单片机应用开发方法 单片机系统是针对某一具体应用的专用系统 单片机的应用领域范围很广 控制形式多种多样 在不同场合下要求各不相同 但设计开发过程基本相同 一个典型的单片机应用系统开发过程包括总体设计 硬件设计 软件设计 软硬件集成与调试 调试运行 性能测试等几个阶段组成 在调试过程中需要对系统进行修改和完善 11 1 1总体设计 1 研究开发对象和用户要求2 拟订方案 确定功能 性能指标3 软硬件功能划分在系统方案确定之后 需要对系统软硬件功能合理安排 要根据系统的要求而定 一些硬件电路的功能可以由软件来实现 反之亦然 11 1 2硬件设计 1 系统硬件电路设计的一般原则 选择典型电路 力求硬件电路规范化 模块化 选择功能强的芯片 简化电路设计 考虑以后系统功能的变化 留下扩展余地 系统中相关的器件要尽可能做到性能匹配 外接电路较多时 必须考虑其驱动能力 考虑系统可靠性与抗干扰问题去耦滤波 合理布线 信号隔离 看门狗电路等 2 硬件可靠性设计采用隔离和滤波技术抑制输入 输出通道可能出现的干扰 采用单独供电 低通滤波器和隔离变压器等抑制供电系统的干扰 采用屏蔽和接地措施 强弱地线分开等措施抑制电磁场干扰 使用 看门狗 电路 解决CPU运行时可能进入混乱或死循环 11 1 2硬件设计 3 元器件选择原则尽可能选择单片机自身集成度比较高的型号 除了可以降低系统的硬件开销外 系统的复杂程度和出错可能性也大大减低 尽量采用通用的大规模集成电路 这样能简化系统的设计 安装和调试过程 也有助于提高系统的可靠性 外围电路芯片类型一致 对于低功耗应用系统 必须采用HCMOS或CMOS芯片 如74HC系列 CD4000系列 而一般系统可使用TTL数字集成电路芯片 11 1 2硬件设计 11 1 3软件设计 1 模块化结构根据系统的功能 把整个系统软件划分成多个主模块 每一个主模块有1个文件 或1个主文件和多个子文件构成 便于分工独立设计 各模块间尽量减少关联 模块划分如键盘和显示 射频卡操作 温度测控 变频器 电机 测控 阀门和压力测控 日期时间产生与调整等 在各模块的设计中 按照各自的目标功能 采取自顶向下 先粗后细的方法 拟定出实现目标需要的功能块 然后编写功能函数 2 软件抗干扰技术 1 通过数字滤波提高数据采集的可靠性算术平均法 对一点数据连续采样多次 计算其平均值 以其平均值作为采样结果 中值法 对一个采样点连续采集多个信号 并对这些采样值进行排序 取中间值作为采样结果 去极值算术平均法 对采样值进行排序 去掉两端相同数目的大数和小数 对剩余数的算数平均值作为采样值 11 1 3软件设计 2 程序运行失常的软件抗干扰措施设置软件陷阱 在程序所有的断裂点 函数 数表结束处 无条件转移指令处 之后和空白区域的尾端 放两条 NOP 指令和一条 LJMP0 指令 软件 看门狗 使用定时器 设置定时器的定时时间稍大于主程序最长的循环时间 在主程序循环体中给定时器赋初值 当程序失常时 将不能对定时器赋初值而导致其溢出并中断 在定时器中断服务程序中 使系统从0地址开始运行 11 1 3软件设计 11 1 4系统调试与测试 1 系统调试包括硬件调试 软件调试和软硬件集成调试 硬件调试的任务是排除硬件电路故障 软件调试是利用开发工具进行在线仿真调试 除发现和解决程序错误外 也可以发现硬件故障 软硬件集成调试 往往在现场 是将程序下载到单片机中 系统运行调试 对大系统要逐个部分调试 在调试过程中 不断地发现错误 排除故障 修改软硬件 直到正确为止 2 系统测试系统在现场通过调试运行后 需要对系统进行测试 以检查系统是否满足原设计要求 并进一步改进和完善 经过反复运行测试 各种性能指标满足要求后 就可以将系统交付用户 由用户操作使用 开发过程即告结束 在用户的使用的初期 需要密切关注系统运行情况 11 1 4系统调试与测试 11 2基于单片机的计算器设计 主要内容11 2 1系统电路设计11 2 2系统功能设计11 2 3系统程序设计 11 2 1系统电路设计 11 2 1系统电路设计 计算器电路器件列表如下 AT89C52 单片机 7SEG MPX8 CA BLUE 蓝色七段8位共阳极数码管 KEYPAD SMALLCALC 计算器键盘 SOUNDER 蜂鸣器 数码管采用共阳极设计 段选口相应段输入0时该段点亮 输入1时不亮 而AT89C52的P0口没有上拉电阻 P0口相应位输出0时该位接地 输出1时为悬空 所以可以使用P0作为数码管的段选口 实际应用电路 段选口和位选口应该加上驱动 其段驱动可以使用74LS245 位驱动可以用74LS07等 11 2 2系统功能设计 1 系统主要模块及功能1 按键识别模块 采用行扫描法识别按键 将所得按键键值通过查表转换为简易计算器键盘按键所对应的键值 2 按键执行模块 根据所按下按键 分别执行相应的功能 3 计算处理模块 对算术运算的处理 4 修改显示缓冲区模块 将要显示的内容送入显示缓冲区 供显示函数读取显示 5 主模块 初始化系统 循环调用按键识别模块 有键按下执行按键执行模块 6 定时器中断模块 定时器0定时1ms 在一次中断中执行多个任务 对数码管动态扫描显示 每中断一次只显示1位 每位显示时间为1毫秒 产生500Hz的蜂鸣器响声 产生毫秒单位延时 11 2 2系统功能设计 11 2 2系统功能设计 系统执行路线图 11 3基于单片机的万年历设计 主要内容11 3 1实时时钟芯片DS1302简介11 3 2数字温度传感器DS18B20简介11 3 3系统电路设计11 3 4系统功能设计11 3 5系统程序设计 11 3 1实时时钟芯片DS1302简介 DS1302是美国DALLAS公司推出的一种高性能 低功耗的实时时钟芯片 采用SPI三线接口与CPU进行同步通信 并可采用突发方式一次传送多个字节的时钟信号和RAM数据 可提供秒 分 时 日 星期 月和年 且具有闰年补偿功能 工作电压宽达2 5 5 5V 采用双电源供电 可设置备用电源充电方式 提供了对后备电源进行涓细电流充电的能力 1 DS1302引脚功能Vcc1 主电源正极接入端 2 5 5 5V Vcc2 备份电源 11 3 1实时时钟芯片DS1302简介 SCLK 串行时钟 输入 控制数据的输入与输出 X1 X2 振荡源 外接32 768kHz晶振 I O 三线接口时的双向数据线 RST 复位引脚 11 3 1实时时钟芯片DS1302简介 2 DS1302读写操作DS1302是SPI总线驱动方式 它不仅要向寄存器写入控制字 还需要读取相应寄存器的数据 DS1302的控制字如下图 位7 必须是逻辑1 位6 为0 存取日历时钟数据 为1 存取RAM数据 位5至位1 A4 A0 指示操作单元的地址 位0 为0 进行写操作 为1 进行读操作 11 3 1实时时钟芯片DS1302简介 控制字总是从最低位开始输出 在控制字指令输入后的下一个SCLK时钟的上升沿时 数据被写入DS1302 数据输入从最低位 0位 开始 同样 在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿 读出DS1302的数据 读出的数据也是从最低位到最高位 11 3 1实时时钟芯片DS1302简介 DS1302寄存器功能及读写数据格式 11 3 1实时时钟芯片DS1302简介 3 DS1302基本操作函数voidDS1302WriteByte unsignedcharData unsignedchari for i 8 i 0 i Data 1 DS1302IO CY DS1302CLK 1 DS1302CLK 0 11 3 1实时时钟芯片DS1302简介 unsignedcharDS1302ReadByte 从DS1302读取1Byte数据unsignedchari temp 0 for i 0 i 8 i DS1302CLK 0 if DS1302IO 0 temp 1 i DS1302CLK 1 return temp 11 3 2数字温度传感器DS18B20简介 DS18B20数字温度传感器是DALLAS公司生产的1 Wire 即单总线器件 体积小 线路简单等特点 在一根通信线上 可以挂很多这样的数字温度传感器 因此用它来组成一个测温系统 十分方便 DS18B20主要有如下特点 单个I O引脚数据通信每个DS18B20都有独一无二的序列号实际应用中不需要外部任何元器件即可实现测温测量温度范围在 55 到 125 之间分辨率为9 12位可选 12位时精度为0 0625 内部有温度上 下限报警设置 1 DS18B20引脚功能DS18B20采用3脚PR 35封装 或8脚SOIC封装 引脚排列如图11 5所示 该图为DS18B20的平面向前的正视图 各引脚定义如下 11 3 2数字温度传感器DS18B20简介 GND 为电源地接入端DQ 为数字信号输入 输出端VDD 为外接供电电源正极输入端 在寄生电源接线方式时接地 11 3 2数字温度传感器DS18B20简介 DS18B20内部结构图 2 DS18B20的结构由电源检测电路 64位光刻ROM和单线接口电路 测温元件 高低温触发器 配置寄存器 高速缓存存储器以及存储器和控制器等组成 如下图所示 11 3 2数字温度传感器DS18B20简介 11 3 2数字温度传感器DS18B20简介 配置寄存器格式 温度分辨率设置表 11 3 2数字温度传感器DS18B20简介 DS18B20暂存寄存器分布 11 3 2数字温度传感器DS18B20简介 ROM指令表 11 3 2数字温度传感器DS18B20简介 RAM指令表 11 3 2数字温度传感器DS18B20简介 3 DS18B20接口电路 寄生电源供电方式外部电源供电方式 在单点测温系统中 可以使用寄生电源供电方式 在多点温度监控系统中 外部电源供电方式是DS18B20最佳的工作方式精度 11 3 2数字温度传感器DS18B20简介 4 DS18B20的操作函数bitInit DS18B20 void 初始化函数 bitx 0 DQ 1 DQ复位delay 1820 8 稍做延时DQ 0 单片机将DQ拉低delay 1820 80 精确延时大于480 sDQ 1 拉高总线delay 1820 14 x DQ x 0则初始化成功delay 1820 20 x 1则初始化失败return x 11 3 2数字温度传感器DS18B20简介 unsignedcharReadOneChar void 读一个字节 unsignedchari dat 0 for i 8 i 0 i DQ 0 给脉冲信号dat 1 DQ 1 给脉冲信号delay 1820 1 if DQ dat 0 x80 delay 1820 4 return dat 11 3 2数字温度传感器DS18B20简介 voidWriteOneChar unsignedchardat 写一个字节unsignedchari for i 8 i 0 i DQ 0 DQ dat 11 3 2数字温度传感器DS18B20简介 uintReadTemperature void 读取温度 unsignedchartemp l temp h unsignedinttemp 0 Init DS18B20 WriteOneChar 0 xCC 跳过读序列号的操作WriteOneChar 0 x44 启动温度转换Init DS18B20 WriteOneChar 0 xCC 跳过读序列号的操作WriteOneChar 0 xBE 读取温度寄存器等temp l ReadOneChar 前两个就是温度temp h ReadOneChar temp temp h temp temp 8 temp l return temp 11 3 3系统电路设计 11 3 4系统功能设计 系统主要模块如下 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论