资源预览内容
第1页 / 共28页
第2页 / 共28页
第3页 / 共28页
第4页 / 共28页
第5页 / 共28页
第6页 / 共28页
第7页 / 共28页
第8页 / 共28页
第9页 / 共28页
第10页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
目目 录录1 绪论1 1.1 课题背景.1 1.2 设计目的及系统功能.2 2 ATMAGE16 特性3 2.1 ATMAGE16 产品特性.3 2.2 引脚配置.4 3 DS18B20 的设计.7 3.1 总体通信流程及通信协议.7 3.2 DS18B20 温度测量软件的设计9 3.3 多机通信软件的设计.9 3.4 DS18B20 工作时序问题11 4 电路的设计12 4.1 温度测量电路的设计.12 4.2 串口通信电路的设计.13 5 分布式温度采集系统设计15 6 ICCAVR 制作环境及介绍16 6.1 ICCAVR 介绍16 6.2 ICCAVR 向导19 6.3 ICCAVR 的 IDE 环境19 结结 论论21 参考文献参考文献22 致致 谢谢23 附件附件 1:总系统的原理图如下:总系统的原理图如下:.24 附件附件 2:单片机:单片机 ATMAGE16 控制控制 DS18B20 的程序的程序:251 绪论绪论自从 1976 年 Intel 公司推出第一批单片机以来,80 年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从 4 位、8 位单片机发展到 16 位、32 位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机在国内的三大领域中应用得十分广泛:第一是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括电话、手机和 BP 机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它成本低、集成度高、功耗低、控制功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题。单片机将微处理器、存储器、定时/计数器、I/O 接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。1.1 课题背景课题背景分布式温度采集系统广泛应用在使用了中央空调的大型商场、厂房、办公大楼等大型建筑内。本课题主要用温度传感器对环境温度实施实时监测,各结点控制单元可将有关信息上传给计算机,本课题研究主要解决的问题为分布式控制结构设计、多单片机串行通信、温度的采集与处理。本设计是基于单片机 ATMAGE16 设计的实时温度采集仪,采用 DS18B20 可以采集多路温度数据(本设计只用了 2 路),同时实时显示所采集到的温度值。在传统的温度测量系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国 Dallas 半导体公司推出的数字温度传感器 DSl8B20,具有独特的单总线接口,仅需要占用一个通用 I/O 端口即可完成与微处理器的通信;在-10+85温度范围内具有O.01精度;用户可编程设定 912 位的分辨率。以上特性使得 DSl8B20 非常适用于构建高精度、多点温度测量系统。1.2 设计目的及系统功能设计目的及系统功能本设计的目的是以单片机为核心设计出一个分布式温度采集系统。在传统测量系统中,传感器与计算机接口的连接是通过若干条导线连接。当传感器数量较多时,尤其是信号线的长距离传输时,相互容易产生干扰。一个室内多点温度测量中,系统的接线会非常多,导线往往不易铺设,使得测量工作非常困难。采用总线结构数字式传感器,配合单片机及 PC 机串口进行长距离数据通信,则可以很容易解决这个问题,该系统最多可以检测 256 路温度信号,在室内多点温度测量控制中能达到很好的效果。通过本课题设计,综合运用单片机及接口技术、微机原理、通信协议,锻炼动手操作能力,综合运用能力,学习论文的写作方法和步骤。设计的温度控制系统有以下功能及特点:(a)实现在一条数据总线上接多个DS18B20器件;(b)测温范围099;(c)温度显示:采用2个4位数码管,显示采样温度值; 并在电脑上一同显示;(d)精度0.01。2 ATMAGE16 特性特性本章介绍了 ATMAGE16 的产品特性和 ATmega16 的结构。由于其先进的指令集 以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1MIPS MHz,从而可 以缓减系统在功耗和处理速度之间的矛盾。2.1 ATMAGE16 产品特性产品特性1、 高性能、低功耗的 8 位 AVR 微处理器2、 先进的RISC结构(a)131 条指令(b)32 个8 位通用工作寄存器(c)全静态工作(d)工作于16 MHz 时性能高达16 MIPS(e)只需两个时钟周期的硬件乘法器(f)大多数指令执行时间为单个时钟周期3、 非易失性程序和数据存储器(a)16K 字节的系统内可编程 Flash擦写寿命: 10,000 次(b) 具有独立锁定位的可选Boot 代码区通过片上Boot 程序实现系统内编程真正的同时读写操作(c)512 字节的EEPROM擦写寿命: 100,000 次(d)1K 字节的片内SRAM(e)可以对锁定位进行编程以实现用户程序的加密4、 JTAG 接口( 与IEEE 1149.1标准兼容 )(a)符合JTAG标准的边界扫描功能(b)支持扩展的片内调试功能(c)通过JTAG接口实现对 Flash、EEPROM、熔丝位和锁定位的编程5、 外设特点(a)两个具有独立预分频器和比较器功能的8 位定时器/计数(b)一个具有预分频器、比较功能和捕捉功能的16 位定时器/计数(c)具有独立振荡器的实时计数器RTC(d)四通道PWM(e)8路 10 位ADC8 个单端通道TQFP 封装的7 个差分通道2个具有可编程增益(1x, 10x, 或200x)的差分通道(f)面向字节的两线接口(g) 两个可编程的串行USART(h) 可工作于主机/从机模式 SPI串行接口(i) 具有独立片内振荡器的可编程看门狗定时器(j) 片内模拟比较器6、 特殊的处理器特点(a)上电复位以及可编程的掉电检测(b)片内经过标定的RC 振荡器(c)片内/片外中断(d)6种睡眠模式 : 空 ADC噪声抑制模式、省电模式、掉电模式、Standby 、式以扩展的Standby 模式7、 I/O和封装(a)32 个可编程的I/O口(b)40 引脚PDIP封装 , 44 引脚 TQFP 封装,与 44 引脚MLF封装8、 工作电压:(a)ATmega16L:2.7 - 5.5V(b)ATmega16:4.5 - 5.5V9、速度等级(a)0 - 8 MHz ATmega16L(b)0 - 16 MHz ATmega1610、 ATmega16L在 1 MHz, 3V, 25 C时的功耗(a)正常模式: 1.1 mA(b)空 : 0.35 mA(c)掉电模式: : : .这个附注必须在函数之前定义,它说明函数func1、func2 是中断操作函数,所以编译器在中断操作函数中生成中断返回指令reti 来代替普通返回指令ret ,并且保存和恢复函数所使用的全部寄存器;同样编译器根据中断向量号vector number 生成中断向量地址。#pragma ctask .这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS 核直接管理寄存器。#pragma text:改变代码段名称,使其与命令行选项相适应。#pragma data:改变数据段名称,使其与命令行选项相适应。这个附注在分配全局变量至EEPROM中时必须被使用。#pragma abs_address:函数与全局数据不使用浮动定位(重定位),而是从开始分配绝对地址。这在访问中断向量和其它硬件项目时特别有用。#pragma end_abs_address结束绝对定位,使目标程序使用正常浮动定位。C+ 注释如果你选择了编译扩充(Project-Options-Compiler),你可以在你的源代码中使用C +的 / 类型的注释。二进制常数如果你选择了编译扩充(Project-Options-Compiler),你可以使用0b* 来指定二进制常数,例如0b10101 等于十进制数21。在线汇编你可以使用 asm(“string“)函数来指定在线汇编代码。6.1.4 代码转换IAR 或其它ANSI C 编译系统的代码转换IAR C 编译器作为应用于AVR 的第一个C 编译器,它有十分丰富的源代码。当你从IAR编译系统转换到ImageCraft 编译系统时,绝大多数符合ANSI C标准的程序代码不需要转换,IAR C 中IO 寄存器的定义与ICCAVR 也是相同的。中断操作描述,ICCAVR 使用pragma 附注描述中断操作函数,而IAR 引入了语法扩充(interrupt 关键字),下面是一个对照:在 ICCAVR 中:#pragma interrupt_handler func:4 / 4 是这个中断的向量号,func 为中断处理函数名称,ICCAVR 可以使多个中断向量共用一个中断处理函数。在 IAR 中:interrupt vector_name func() / vector_name 是某一个中断向量的名称,IAR C 的中断向量地址使用中断名称来代替,以增加程序的可读性。扩充关键字IAR 引入flash 关键字将项目分配进入程序存贮空间(FLASH 存贮器),ICCAVR 使用const 关键字来达到相同的目的。过程调用转换在两个编译系统之间函数参数传递使用的寄存器是不同的,这仅影响手工写的汇编函数。在线汇编、宏等,IAR 不支持在线汇编符号,而 ICCAVR 支持在线汇编。6.2 ICCAVR 向导向导自你启动 IDE 后,首先从Project 菜单系统选择Open 命令,进入iccexamples.avr 目录并且选择并打开“led”工程,工程管理器显示在这个工程中只有一个文件led.c。 然后从Project 菜单中选择Options 命令打开工程编译选项,在“Target“标号下选择目标处理器。然后从Project 菜单中选择Make Project 命令,IDE 将调用编译器编译这个工程文件,并且在状态窗口中显示所有的信息。6.3 ICCAVR 的的 IDE 环境环境6.3.1 编译一个单独的文件正常建立一个输出文件的次序是,你首先应该建立一个工程文件并且定义属于这个工程的所有文件。然而,我们有时也需要将一个文件单独地编译为目标文件或最终的输出文件。这时可以这样操作:从 IDE 菜单“File” 中选择“Compile File.”命令,来执行“to Object”和“to Outpu
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号