电气自动化毕业论文18873_第1页
电气自动化毕业论文18873_第2页
电气自动化毕业论文18873_第3页
电气自动化毕业论文18873_第4页
电气自动化毕业论文18873_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、题 目:DS18B20温度测量软件的设计学生姓名: 指导教师: 答辩日期:近年来,随着大规模集成电路的发展,单片机继续朝快速、高性 能方向发展,从4位、8位单片机发展到16位、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑 应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系 统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通 信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造 工艺等的结合,使得单片机的应用非常广泛。

2、同时,单片机具有较强 的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个 系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制 造、安装、调试及维修方便。 本设计是基于单片机 ATMAGE1设计的实时温度采集仪,通过本次设计,我成功的实现了利用单片机对温度 的采集和测量。1绪论31.11.21.31.41.51.61.71.81.9课题背景1.2 设计目的及系统功能 2 ATMAGE16特性 性2.1 ATMAGE16产品特性2.2 引脚配置3 DS18B2 0的设计3.1 总体通信流程及通信协议 ,3.2 DS18B20温度测量软件的设计3.3 多机通信软件的设计 9911

3、.111.10 3.4 DS18B20工作时序问题131.11 4电路的设计141.12 4.1温度测量电路的设计141.13 4.2串口通信电路的设计151.14 5分布式温度采集系统设计181.15 6 ICCAVR制作环境及介绍191.16 6.1191.17 6.2221.18 6.3221.19 结241.20 参考文献251.21ICCAVRICCAVRICCAVR介绍向导的IDE环境1绪论自从1976年Intel公司推出第一批单片机以来,80年代单片机 技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片 机继续朝快速、高性能方向发展,从 4位、8位单片机发展到16位、

4、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业, 大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其 能。单片机在国内的三大领域中应用得十分广泛: 第一是家用电器业, 例如全自动洗衣机、智能玩具;第二是通讯业,包括电话、手机和 BP机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、 收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单 片机应用十分广泛的一个领域。它成本低、集成度高、功耗低、控制 功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、 线性处理等问题。单片机将微 处理器、存储器、定时/计数器、I/O接口

5、电路等集成在一个芯片上 的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与 传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑 应用技术、微机接口技术、数据库技术以及数据结构、计算机操作系 统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通 信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造 工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强 的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个 系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制 造、安装、调试及维修方便。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领

6、域没有单片机的踪迹。导弹的导航装置,飞 机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过 程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿 车的安全保障系统,录象机、摄象机、全自动洗衣机的控制,以及程 控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领 域的机器人、智能仪表、医疗器械了。1.1 课题背景分布式温度采集系统广泛应用在使用了中央空调的大型商场、厂房、办公大楼等大型建筑内。本课题主要用温度传感器对环境温度实 施实时监测,各结点控制单元可将有关信息上传给计算机,本课题研究主要解决的问题为分布式控制结构设计、多单片机串行通信、温度的采集与处理。本设计是基

7、于单片机 ATMAGE1设计的实时温度采集仪,采用 DS18B20可以采集多路温度数据(本设计只用了 2路),同时实时显示 所采集到的温度值。在传统的温度测量系统设计中,往往采用模拟技 术进行设计,这样就不可避免地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中某一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速发展, 特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正 成为传感器发展的一个重要方向。美国 Dallas半导体公司推出的数 字温度传感器DSI8B20,具有独特的单总线接口,仅需要占用一个通 用I/O端口即可完成与微处理器的通

8、信;在-10+85C温度范围内具 有士 O.O1C精度;用户可编程设定912位的分辨率。以上特性使得 DSI8B20非常适用于构建高精度、多点温度测量系统。1.2 设计目的及系统功能本设计的目的是以单片机为核心设计出一个分布式温度采集系 统。在传统测量系统中,传感器与计算机接口的连接是通过若干条导 线连接。当传感器数量较多时,尤其是信号线的长距离传输时,相互 容易产生干扰。一个室内多点温度测量中,系统的接线会非常多,导 线往往不易铺设,使得测量工作非常困难。采用总线结构数字式传感 器,配合单片机及PC机串口进行长距离数据通信,则可以很容易解 决这个问题,该系统最多可以检测 256路温度信号,在

9、室内多点温 度测量控制中能达到很好的效果。 通过本课题设计,综合运用单片机 及接口技术、微机原理、通信协议,锻炼动手操作能力,综合运用能 力,学习论文的写作方法和步骤。设计的温度控制系统有以下功能及特点:(a)实现在一条数据总线上接多个 DS18B2(器件;(b) 测温范围0C99C;(C) 温度显示:采用2个4位数码管,显示采样温度值;并在电脑上一同显示;(d) 精度士 0.01C。2 ATMAGE16 特性本章介绍了 ATMAGE1的产品特性和ATmega16的结构。由于其先 进的指令集以及单时钟周期指令执行时间, ATmega16的数据吞吐率 高达1MIPS MHz从而可以缓减系统在功耗

10、和处理速度之间的矛盾。2.1 ATMAGE16产品特性1、高性能、低功耗的8位AVR微处理器2、先进的RISC结构131条指令32个8位通用工作寄存器全静态工作工作于16 MHz时性能高达16 MIPS只需两个时钟周期的硬件乘法器 大多数指令执行时间为单个时钟周期(a)(b)(c)(d)(e)(f)3、非易失性程序和数据存储器(a) 16K字节的系统内可编程Flash擦写寿命:10,000 次(b) 具有独立锁定位的可选Boot代码区通过片上Boot程序实现 系统内编程真正的同时读写操作(C) 512字节的EEPR0擦写寿命:100,000 次(d) 1K字节的片内SRAM(e) 可以对锁定位

11、进行编程以实现用户程序的加密4、JTAG 接口(与 IEEE 1149.1 标准兼容)(a) 符合JTAG标准的边界扫描功能(b) 支持扩展的片内调试功能(C)通过JTAG接 口实现对Flash、EEPROM熔丝位和锁定位的编程5、外设特点两个具有独立预分频器和比较器功能的8位定时器/计数一个具有预分频器、比较功能和捕捉功能的16位定时器/计数具有独立振荡器的实时计数器 RTC四通道PWM(a)(b)(c)(d)面向字节的两线接口两个可编程的串行USART可工作于主机/从机模式SPI串行接口 具有独立片内振荡器的可编程看门狗定时器 片内模拟比较器(e)8路10位ADC8个单端通道TQFP封装的

12、7个差分通道2个具 有可编程增益(1x, 10x,或200x)的差分通道(f)(g)(h)(i )6、特殊的处理器特点(a)(b)(c)(d)(j ) 上电复位以及可编程的掉电检测 片内经过标定的RC振荡器 片内/片外中断空ADC噪声抑制模式、省电模式、掉电模式、6种睡眠模式:Standby、模式I/O 口式以扩展的Standby7、I/O和封装(a)32个可编程的(b)40引脚PDIP封装,44引脚TQFP封装,与44引脚MLF封装& 工作电压:(a)ATmega16L 2.7 - 5.5V(b)ATmega16 4.5 - 5.5V9、速度等级(a)0 - 8 MHz ATmega

13、16L(b)0 - 16 MHz ATmega1610、ATmega16L在 1 MHz, 3V, 25 C 时的功耗(a)正常模式:1.1 mA(b)空:0.35 mA(c)掉电模式:1 卩A 2.2引脚配置ATmega16是基于增强的AVRRISC吉构的低功耗8位CMOS 微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1MIPS MHz,从而可以缓减系统在功耗 和处理速度之间的矛盾。ATMAGE1引脚分布如图2.1所示。AVR内 核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接 与算逻单元(ALU)相连接,使得一条指令可以在一个时钟周期

14、内同时 访问两个独立的寄存器。这种结构大大提咼了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。ATmega16有如下 特点16K字节的系统内可编程Flash(具有同时读写的能力,即RWV, 图2.1 ATMAGE1引脚分布AVR内核具有丰富的指令集和32个通用 工作寄存器。所有的寄存器都直接与算逻单元(ALU)相连接,使得一 条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的CISC微控制器最高至10倍的数据吞吐率。ATmega16有如下特点16K字节的系统内可编程 Flash(具有同时读写的能力,即 RWVV) 512字节E

15、EPROM 1K字节 SRAM 32个通用I/O 口线,32个通用工作寄存器,用于边界扫描 的JTAG接口,支持片内调试与编程,三个具有比较模式的灵活的定 时器/计数(T/C),片内/外中断,可编程USART有起始条件检测器的 通用串行接口,8路10位具有可选差分输入级可编程增益 (TQF P封 装)的ADC,具有片内振荡器的可编程看门狗定时器,一个SPI串行端口,以及六个可以通过软件进行选择的省电模式。工作于空闲模式时CPU停止工作,而USART两线接口、A/D转换器、SRAM T/C、SPI端口以及中断系统继续 工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复 位之外都停止工作

16、;在省电模式下,异步定时器继续运行,允许用户 保持一个时间基准,而其余功能模块处于休眠状态;ADC噪声抑制模式时终止CPU和除了异步定时器与ADC以外所有I/O 模块的工作, 以降低ADC转换时的开关噪声;Standby模式下只有晶体或谐振振 荡器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流, 同时具有快速启动能力;扩展 Standby模式下则允许振荡器和异步 定时器继续工作。本芯片是以 Atmel高密度非易失性存储器技术生 产的。片内ISP Flash允许程序存储器通过ISP串行接口,或者通 用编程器进行编程,也可以通过运行于 AVR内核之中的引导程序进 行编程。引导程序可以使用

17、任意接口将应用程序下载到应用Flash存储区(ApplicationFlash Memory)。在更新应用Flash存储区时引导 Flash区(Boot Flash Memory)的程序继续运行,实现了 RWW操作。 通过8位RISC CPU与系统内可编程的Flash集成在一个芯片内, ATmega16成为一个功能强大的单片机,为许多嵌入式控制应用提供 了灵活而低成本的解决方案。3 DS18B2 0的设计本章介绍了系统软件设计,并具体介绍了实现和调试的方法,及分布式温度采集系统的通信流程和 DS18B20温度测量软件的设计 思路、DS18B2(工作的时序问题。3.1 总体通信流程及通信协议总体

18、通信流程体现在 PC机,单片机主机及各从机的通信,信号 接受及发送,这个设计中,通信协议是一个非常重要也很复杂的部分, 在由PC机与单片机组成的系统中,常要涉及通信问题,如果没有统 一的通信协议,PC机与单片机之间的信息传递就无法识别。通信协议是指通信各方事前约定规则,我们可以简单地理解 为各计算机之间进行相互会话所使用的共同语言.PC机与单片机在进 行通信时,必须使用的通信协议。首先,在设计中自定义几个数据通信协议,如下问提到的“ a”、“b”、“C”、“d”、“g”、“h”。这些协议 一旦定义,在后面的执行过程中就代表了固定的含义,不再改变,PC机、单片机、从机都靠识别这个协议来执行程序,

19、发送一个字节的数 据,接受几个字节的数据,所有的数据协议全都建立在这2个操作方 法上。本设计中自定义“ a”为PC机与单片机主机间的数据协议, 意思为要求主机发送一号从机的温度给 PC机;自定义“b”为PC机 与单片机主机间的数据协议,意思为要求主机发送二号从机的温度给 PC机;自定义“ C”为从机与主机间的数据协议,它代表从机向主 机发送完四位当前采集的温度,这里一号从机和二号从机采集的温 度,都定义为“ C”;自定义“d”为PC机与单片机主机之间的数据 协议,意思为开始和完成命令的信号;自定义“g”为一号从机和单片机主机之间的数据协议,意 思为主机表示要采集一号从机的温度数据,一号从机要求

20、单片机主机 准备接收;自定义“ h”为二号从机和单片机主机之间的数据协议, 意思为主机表示要采集二号从机的温度数据,二号从机要求单片机主 机准备接收。具体流程如下:1、PC机向单片机主机发送“ d”:这步是流程的开始,PC机向单 片机主机发送数据协议,要求主机把接收的温度发送给PC机显示;2、单片机主机向一号从机发送“ g”:单片机主机在接收到PC机发送的“d”信号后,会立即向一号从 机发送“ g”,要求一号从机采集温度并且将温度发回单片机主机;3、一号从机回发“ g”:一号从机接收到单片机主机的命令后,会立即向单片机主机回发 信号,要求单片机主机做好接收准备;4、向主机发送四位当前采集的温度

21、,并回发发送完成标记“ C”; 一号从机回发信号后,向主机发送四位采集的温度,这个温度在前文已提到标记为“ C”;5、主机发送“ h”给2号从机:主机在接收到一号从机发来的“ C”命令后,会立刻发送“ h”信 号给二号从机,表示要采集二号从机的数据;6、2号从机回发“ h” :二号从机接收到单片机主机的命令后,会立即向单片机主机回发 信号,要求单片机主机做好接收准备;7、向主机发送四位当前采集的温度,并回发发送完成标记“ C”: 二号从机向单片机主机回发完信号后,向主机发送四位当前采集的温度,这个温度标记为“ C”;&主机发送“ d”给pca:单片机主机在接收到二号从机发送来的信号后,

22、立刻发送信号给 PC机,表示完成PC机的前一指令;9、PC发送“a”给主机:PC机在接收到单片机主机发送的信号后,发送新一个指令给单 片机主机,要求单片机主机发送一号从机采集的温度数据;10、主机将一号从机温度数据发送给 PC机:单片机主机接收到PC机的命令后将一号从机发送过来的四位当 前温度数据转换成ASCII码后,发送给PC机,因为PC机只能读取 ASCII 码;11、PC机发送“ b”给主机:PC机接收到单片机主机发送的即 时温度后会立即发送另一指令给单片机主机,要求单片机主机发送二 号从机采集的温度数据;12、主机将二号从机温度数据发送给 PC机,发送完成后,返回(1):单片机主机接收

23、到PC机的命令后将二号从机发送过来的四位当 前温度数据同样也转换成ASCII码后,发送给PC机。此时一个完整 过程结束,将返回(1)开始另一轮采集。3.2 DS18B20主机控制DS18B20ROM操作指令、存12MHz根据温度测量软件的设计由于DS18B20单线通信功能是分时完成的,它 有严格的时隙概念,因此读写时序很重要。系统对DS18B20勺各种操 作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)7 发ROM功能命令7发存储器操作命令7处理数据。 完成温度转换的程序必须经过 3个步骤:初始化、 储器操作指令。假设单片机系统所用的晶振频率为DS18B2啲初始化时序、写时序

24、和读时序,分别编写3个子程序:INIT 为初始化子程序,WRITE为写(命令或数据)子程序,READ为读数 据子程序,所有的数据读写均由最低位开始。主程序的主要功能是负 责温度的实时显示、读出并处理DS18B20勺测量温度值,温度测量每 1s进行一次,流程图如图3.1所示。读出温度子程序的主要功能 是读出RAM中的9个字节,在读出时需进行 CRC校验,校验有错时 不进行温度数据的改写,其程序流程图如图3.2所示。从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20勺转换精度为912位可选,为了提高精度采用12位。 在采用12位转换精度时,温度寄存器里的值

25、是以 0.0625为步进的, 即温度值为温度寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。3.3 多机通信软件的设计ATMAGE1单片机有串行发送缓冲器/接收缓冲器(SBUF)、串行 口控制寄存器(SCON)特殊功能寄存器(PCON。通过设置scor可以 有四种工作方式,其中工作方式2、3适用于多机通信。在串行通信 前,通过程序预先将各从机串行口设置为方式2或方式3,并使SM2和REN允许串行接收控制位)为1,允许串行口中断。主机与从机通 信时,将SM2置 0,准备接收数据,否则维持 SM2为1,这样在主机 发送数据时(此时主机发送数据中第9位为0),只有地址相符的从机 可接收数

26、据,图3.1 DS18B20温度主程序流程图3.2读出温度子程序流程图其余从机对数据信息不予理睬,从而可以实现多机通信集散型控 制系统将各控制单元分散到现场各控制点。从机主程序和串行口中断服务程序如图3.3所示。PC机与单片机的串口通信中,ATMAGE16 单片机的Pl.3和Pl.4 口分别模拟串行通信的发送和接收端,其接口 程序主要由发送子程序和接收子程序组成。通信速率9600b ps,帧格式为N.8.I。发送时,先发送一个起始位(低电平),接着 按低位在先的顺序发送8位数据,最后发送停止位。接收时,先判断 P1.4接 收端口是否有起始低电平出现,如有则按低位在先的顺序接收8位数,最后判断P

27、1.4 口是否有停止高电平出现,如有则完成一个数据 接收,否则继续等待。其中软件编写要严格按照异步通信的时序进行。 图3.3从机主程序和串行口中断服务程序 3.4 DS18B20工作时序 问题DS18B20的一线工作协议流程是:初始化7 ROM操作指令7存储 器操作指令7数据传输。其工作时序包括初始化时序、写时序和读时 序。主机即单片机首先发480US-960US的低电平,进行复位,然后释放总线,之后总线被外部上拉电阻电阻抬高,大约等待15 60us 之后,DS18B20发出60到240US的低电平信号,以示存在,至此初 始化结束。 写“ 0 “的时候,首先单片机发复位信号,然后发“ 0” 于

28、是低电平持续60us就完成了写“ 0”写“ 1”的时候首先单片机发 复位信号,持续时间大于1us小于15us然后发“ 1”持续50us以上 即可。读时序也是主机先发低电平,然后在15us内检测连接DS18B20 的数据线的引脚,从而读得相应值。电路的设计本章分析了分布式温度采集系统的各主要功能模块的设计与实现,4.1具体包括温度测量电路模块和串口通信电路模块。温度测量电路的设计温度测量采用DS18B20数字式温度传感器。由 DS18B20构成的 智能温度测量装置由三部分组成:DS18B20温度传感器、ATMAGE16显示模块。产品的主要技术指标:测量范围:-55 C+125C,测量精度:0.5

29、 C,反应时间W 500ms为了达到更高的精度,则在 对DSI8B20测温原理进行详细分析的基础上,采取直接读取 DSI8B20 内部暂存寄存器的方法,将 DSI8B20的测温分辨率提高到0.01C 0.1 C, DSI8B20内部暂存寄存器的分布如表4-1所列,其中第7字 节存放的是当温度寄存器停止增值时计数器l的计数剩余值,第8字节存放的是每度所对应的计数值。 这样,就可以通过下面的方法获得 高分辨率的温度测量结果。表4-1 DS18B20内部暂存器 序号 寄存器名称作用序号寄存器名称0温度低字节以16位补码形式 存放4、5保存字节1、2 1温度高字节6计数器余值2 TH/用户 字节1存放

30、温度上限7计数器/ C 3 HL/用户字节2存放温度下限 8 CRC基于DS18B2啲温度测量装置电路图如图 4.1所示:图4.1温 度测量电路 温度传感器DS18B20将被测环境温度转化成带符号的数字信号(以十六位补码形式,占两个字节),传感器可置于离装置150 米以内的任何地方,输出脚I/O直接与单片机的P1.1相连,R1为上 拉电阻,传感器采用外部电源供电。ATMAGE1是整个装置的控制核心,ATMAGE1内带1K字节的FlashROM用户程序存放在这里。显示 器模块由四位一体的共阳数码管和 4个9012组成。系统程序分传感 器控制程序和显示器程序两部分,传感器控制程序是按照DS18B2

31、0的 通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和 对温度的显示。4.2 串口通信电路的设计为了增加单片机多机通信的距离,该部分电路采用RS232标准接 口,通信距离可以达到15米;如果采用RS422或是RS485接口,通 信距离会更远。多机通信接口原理图见图1。在数据传输过程中采用的是RS232电平,提高了抗干扰能力。需要在主机串行接口和从 机串行接口进行电平转换: TTL-RS232-TTL这都是用 MAX232接口 芯片实现的,具体的电路如图 4.2所示。图4.2 TTL-RS232-TTL电 平转换电路 通信电路是本设计的重要组成部分,负责温度数据的采 集和数据的上传。

32、包括单片机多机串口通信电路,PC机与ATMAGE16的串口通信电路。其中主单片机ATMAGE1既要和从机通信,还要负责 将数据通过串口发送到 PC机上。而ATMAGE1单片机只有一个串行 通信口,这就需要用硬件或是软件扩展一个串行通信口。本设计采用一种用单片机普通I/O 口和相应软件实现串行通信的方法。5分布式温度采集系统设计 分布式温度采集系统设计数字式传感器一般采用单总线技术(1-WIREBUS,即在单片机或计算机接口中只用一根导线(输入 /输 出信号线),美国Dallas公司最新推出的1-WireBus数字式温度传感 器DS18B20与传统的温度传感器不同,它能够直接读出被测温度, 并且

33、可根据实际要求通过简单的编程实现912位的数字值读数方0.5 C、0.25 C、0.125 C和式,可以分别在93.75ms和750ms内将温度值转化为9位和12位的 数字量,对应的可分辨温度分别为0.0625 C;为实现与PC机串口长距离数据通信,系统采用了 RS232串 行接口,通信距离可以达到15m如果采用RS422或 RS485串行接口 可以达到1000m串口通信由PC机与单片机的通信和单片机多机通 信组成,每个从机负责温度的测量然后通过多机通信把温度数据发送 到主单片机上,最后PC机通过VB程序控制串口把主单片机上的所有 温度数据收集起来。系统框图如图 5.1所示。5.1系统框图6

34、ICCAVR制作环境及介绍本章介绍了 ICCAVR勺制作环境,ICCAVR中的文件类型及其文件 的扩展名、附注和扩充,并介绍了 IAR或其它ANSI C编译系统的代 码转换。6.1 ICCAVR介绍本节主要介绍了 ICCAVR文件的基本特 点、类型、扩展名等。6.1.1 ImageCraft 的 ICCAVR介绍 ImageCraft 的 ICCAVR是一种 使用符合ANSI标准的C语言来开发微控制器(MCU程序的一个工具, 它有以下几个主要特点:ICCAVR是一个综合了编辑器和工程管理器 的集成工作环境(IDE),其可在 WIND0WS9X/N下工作。 源文件全 部被组织到工程之中,文件的编

35、辑和工程的构筑也在这个环境中完成。编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时, 光标会自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您希望得到的可以直接使用的INTEL HEX格式文件,INTELHEX格式文件可被大多数的编程器所支持,用于下载程序到芯 片中去。ICCAVR是一个32位的程序,支持长文件名。本论文并不介绍通用的C语言语法知识,仅介绍使用ICC AVR所必须具备的 知识。6.1.2 ICCAVR中的文件类型及其扩展名文件类型是由它们的扩展名决定的,IDE和编译器可以使用以下几种 类型的文件。输入文件:.c扩展名-表示是C语言源文件.s扩展名-表示是汇

36、编语言源文件.h扩展名 表示是C语言的头文件.prj扩展名-表示是工程文件,这个文件保存由IDE所创建和修 改的一个工程 的有关信息。.a扩展名-库文件,它可以由几个库圭寸装在一起。libcavr.a 是 一个包含了标准C的库和AVR特殊程序调用的基本库。如果库被引 用,链接器会将其链接到您的模块或文件中。您也可以创建或修改一个符合你需要的库。输出文件S对应每个C语言源文件,由编译器在编译时产生的汇编输出文件。 .0由汇编文件汇编产生的目标文件,多个目标文件可以链接成一个 可执行文件。hex INTEL HEX格式文件,其中包含了程序的机器代码。.eep INTEL HEX 格式文件,包含了

37、EEPR0啲初始化数据。.cof COFF格式输出文件,用于在 ATMEL的AvrStudio 环境下进行 程序调试。.lst列表文件,在这个文件中列举出了目标代码对应的最终地址。它包含了您程序中有关符号及其所占内存大小的.mp内存映象文件调试命令文件。 调试命令文件。 调试命令文件。信息.cmd NoICE 2.xx.noi NoICE 3.xx.dbg ImageCraft6.1.3 附注和扩充#pragma (编译附注)<fun c1>:<vectornu mber>这个编译器接受以下附注:#p ragmainterrup t_ha ndler<fun c2

38、>:<vector> .这个附注必须在函数之前定义,它说明函数fund、func2是中断操作函数,所以编译器在中断操作函数中生成中断返回指令reti来代替普通返回指令ret ,并且保存和恢复函数所使用的全部寄存器; 同样编译器根据中断向量号vector number生成中断向量地址。#p ragma ctask <fun c1> <fun c2>.这个附注指定了函数不生成挥发寄存器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。#pragma text:<name> 改变代码段 名称,使其与命令行选项相适

39、应。#p ragma data:<data> 改变数据 段名称,使其与命令行选项相适应。这个附注在分配全局变量至EEP ROIM 时必须被使用。 #p ragma abs_address:<address> 函数与 全局数据不使用浮动定位(重定位),而是从<address>开始分配绝对 地址。这在访问中断向量和其它硬件项目时特别有用。#pragmaend_abs_address结束绝对定位,使目标程序使用正常浮动 定位。C+注释如果你选择了编译扩充(Project->Options->Compiler),你可以在你的源代码中使用 C+的/类型的注

40、释。二进制常数 如果你选择了编译扩充(P roject->O ption s->Co mp iler),你可以使用0bv1|0>*来指定二进制常数,例如 OblOIOI等于十进制数21。 在线汇编 你可以使用asm("string")函数来指定在线汇编代码。6.1.4 代码转换IAR或其它ANSI C编译系统的代码转换IAR C编译器作为应用于AVR的第一个C编译器,它有十分丰富的 源代码。当你从IAR编译系统转换到ImageCraft编译系统时,绝大 多数符合ANSI C标准的程序代码不需要转换,IAR C中IO寄存器 的定义与ICCAVR也是相同的。中

41、断操作描述,ICCAVR使用Pragma附注描述中断操作函数, 而IAR引入了语法扩充(interrupt关键字),下面是一个对照: 在ICCAVR 中:#p ragma in terru pt_ha ndler fun c:4 / 4是这个中断在 lAR 中:interrupt vector_namelAR C的中断向的向量号,func为中断处理函数名称,ICCAVR可以使多个中断向量 共用一个中断处理函数。fun c() / vector_name是某一个中断向量的名称,量地址使用中断名称来代替,以增加程序的可读性。扩充关键字IAR 引入flash关键字将项目分配进入程序存贮空间(FLAS

42、H存贮器), ICCAVR使用const关键字来达到相同的目的。过程调用转换在两个编译系统之间函数参数传递使用的寄存器是不同的,这仅影响手工写的汇编函数。在线汇编、宏等,IAR不支持在线汇编符号,而ICCAVR 支持在线汇编。6.2 ICCAVR 向导 自你启动IDE后,首先从Project 菜单系统选择 Open命令,进入iccexamples.avr目录并且选择并打开“led ”工程,工程管理器显示在这个工程中只有一个 文件led.c。然后从Project菜单中选择Options命令打开工程编 译选项,在"Target"标号下选择目标处理器。然后从Project菜单中选

43、择Make Project命令,IDE将调用编译器编译这个工程文件, 并且在状态窗口中显示所有的信息。6.3 ICCAVR 的 IDE 环境631 编译一个单独的文件正常建立一个输出文件的次序是,你首先应该建立一个工程文件并且 定义属于这个工程的所有文件。然而,我们有时也需要将一个文件单 独地编译为目标文件或最终的输出文件。这时可以这样操作:从IDE菜单 “File ” 中选择 “Compile File. ” 命令,来执行 “to Object ” 和“ to Out put ”中的任意一个。当你调用这个命令时,文件应该是打开的并且在编辑窗口中可以编辑的。编译一个文件为目标文件(toObje

44、ct),对检查语法错误和编译一个新的启动文件是很有用的。编 译一个文件为输出文件(to Out put),对较小的并且是一个文件的程 序较为有用。632 创建一个新的工程为创建一个新的工程,从菜单“Project ”中选择“NeW命令,IDE会 弹出一个对话框,在对话框中你可以指定工程的名称, 这也是你的输 出文件的名称。如果你使用一些已经建立的源文件,你可在菜单“Project ”中选择“AddFile(s) ”命令。另外,你可以在菜单“File ” 中选择“ New”命令来建立一个新的源文件来输入你的代码,你可以 在菜单“ File ”中选择“ Save”或“ Save As”命令来保存文

45、件。然 后你可以象上面所述调用“ AddFile(s) ”命令将文件加入到工程中, 也可在当前编辑窗口中单击鼠标右键选择“ Add to Project ”将文件 加入已打开的工程列表中。通常你输出源文件在工程同一个目录中, 但也可不作这样要求。工程的编译选项使用菜单中“Project ”中的 “Options ” 命令。633 工程管理工程管理允许你将多个文件组织进同一个工程,而且定义它们的编译 选项,这个特性允许你将工程分解成许多小的模块。当你处理工程构筑时,只有一个文件被修改和重新编译,如果一个头文件作了修改, 当你编译包含这个头文件的源文件时,IDE会自动重新编译已经改变 的头文件。一个源文件可以写成C或汇编格式的任意一种。C文件 必须使用“ .c ”扩展名汇编文件必须使用“ .S”扩展名。你可以将任 意文件放在工程列表中,例如你可以将一个工程文档文件放在工程管 理窗口中,工程管理器在构筑工程

温馨提示

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

评论

0/150

提交评论