




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-题目:DS18B20温度测量软件的设计专 业:班 级:学生:指导教师:辩论日期:摘 要近年来,随着大规模集成电路的开展,单片机继续朝快速、高性能方向开展,从4位、8位单片机开展到16位、32位单片机。单片机主要用于控制,它的应用领域普及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。 单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据构造、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表构造设计和制造工艺等的结合,使得单片机的应用非常
2、广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进展管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、部配线少、本钱低,制造、安装、调试及维修方便。 本设计是基于单片机ATMAGE16设计的实时温度采集仪,通过本次设计,我成功的实现了利用单片机对温度的采集和测量。 目 录1 绪论 . . . . 3 1.1 课题背景 . . 3 1.2 设计目的及系统功能 . 4 2 ATMAGE16特性 . . . 5 2.1 ATMAGE16产品特性 . 5 2.2 引脚配置 . 6 3 DS18B20的设计 . 9 3.1 总体通信流程及通信协议 . . 9 3.2 DS18B20
3、温度测量软件的设计 .11 3.3 多机通信软件的设计 .11 3.4 DS18B20工作时序问题 . . 13 4 电路的设计 . . . 14 4.1 温度测量电路的设计 . . 14 4.2 串口通信电路的设计 . . 15 5 分布式温度采集系统设计 . 18 6 ICCAVR制作环境及介绍 . . . 19 6.1 ICCAVR 介绍 . . 19 6.2 ICCAVR 向导 . 22 6.3 ICCAVR 的IDE 环境 . . 22 结 论. . . 24 参考文献. 25 1 绪论自从1976年Intel公司推出第一批单片机以来,80年代单片机技术进入快速开展时期,近年来,随着
4、大规模集成电路的开展,单片机继续朝快速、高性能方向开展,从4位、8位单片机开展到16位、32位单片机。单片机主要用于控制,它的应用领域普及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机在国的三大领域中应用得十分广泛:第一是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括、手机和BP机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它本钱低、集成度高、功耗低、控制功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性
5、处理等问题。单片机将微处理器、存储器、定时/计数器、I/O接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据构造、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表构造设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进展管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、部配线少、本钱低,制造、安装、调试及维修方便。目前单片机渗
6、透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的平安保障系统,录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。1.1 课题背景分布式温度采集系统广泛应用在使用了中央空调的大型商场、厂房、办公大楼等大型建筑。本课题主要用温度传感器对环境温度实施实时监测,各结点控制单元可将有关信息上传给计算机,本课题研究主要解决的问题为分布式控制构造设计、多单片机串行通信、
7、温度的采集与处理。 本设计是基于单片机ATMAGE16设计的实时温度采集仪,采用DS18B20可以采集多路温度数据(本设计只用了2路),同时实时显示所采集到的温度值。在传统的温度测量系统设计中,往往采用模拟技术进展设计,这样就不可防止地遇到诸如引线误差补偿、多点测量中的切换误差和信号调理电路的误差等问题;而其中*一环节处理不当,就可能造成整个系统性能的下降。随着现代科学技术的飞速开展,特别是大规模集成电路设计技术的开展,微型化、集成化、数字化正成为传感器开展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DSl8B20,具有独特的单总线接口,仅需要占用一个通用I/O端口即可完成与
8、微处理器的通信;在-10+85温度围具有±O.01精度;用户可编程设定912位的分辨率。以上特性使得DSl8B20非常适用于构建高精度、多点温度测量系统。 1.2 设计目的及系统功能 本设计的目的是以单片机为核心设计出一个分布式温度采集系统。在传统测量系统中,传感器与计算机接口的连接是通过假设干条导线连接。当传感器数量较多时,尤其是信号线的长距离传输时,相互容易产生干扰。一个室多点温度测量中,系统的接线会非常多,导线往往不易铺设,使得测量工作非常困难。采用总线构造数字式传感器,配合单片机及PC机串口进展长距离数据通信,则可以很容易解决这个问题,该系统最多可以检测256 路温度信号,在
9、室多点温度测量控制中能到达很好的效果。通过本课题设计,综合运用单片机及接口技术、微机原理、通信协议,锻炼动手操作能力,综合运用能力,学习论文的写作方法和步骤。 设计的温度控制系统有以下功能及特点: (a)实现在一条数据总线上接多个DS18B20器件; (b)测温围099; (c)温度显示:采用2个4位数码管,显示采样温度值; 并在电脑上一同显示; (d)精度±0.01。 2 ATMAGE16特性本章介绍了ATMAGE16的产品特性和ATmega16的构造。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1MIPS MHz,从而可以缓减系统在功耗和处理
10、速度之间的矛盾。 2.1 ATMAGE16产品特性 1、 高性能、低功耗的 8 位 AVR 微处理器 2、 先进的RISC构造 a131 条指令 b32 个8 位通用工作存放器 c全静态工作 d工作于16 MHz 时性能高达16 MIPS e只需两个时钟周期的硬件乘法器 f大多数指令执行时间为单个时钟周期 3、 非易失性程序和数据存储器 a16K 字节的系统可编程 Flash擦写寿命: 10,000 次 b 具有独立锁定位的可选Boot 代码区通过片上Boot 程序实现系统编程真正的同时读写操作 c512 字节的EEPROM擦写寿命: 100,000 次 d1K 字节的片SRAM e可以对锁定
11、位进展编程以实现用户程序的加密 4、 JTAG 接口( 与IEEE 1149.1标准兼容 ) a符合JTAG标准的边界扫描功能 b支持扩展的片调试功能 c通过JTAG接口实现对 Flash、EEPROM、熔丝位和锁定位的编程 5、 外设特点 a两个具有独立预分频器和比较器功能的8 位定时器/计数 b一个具有预分频器、比较功能和捕捉功能的16 位定时器/计数 c具有独立振荡器的实时计数器RTC d四通道PWM e8路 10 位ADC8 个单端通道TQFP 封装的7 个差分通道2个具有可编程增益1*, 10*, 或200*的差分通道 f面向字节的两线接口 g 两个可编程的串行USART h 可工作
12、于主机/从机模式 SPI串行接口 i 具有独立片振荡器的可编程看门狗定时器 j 片模拟比较器 6、 特殊的处理器特点 a上电复位以及可编程的掉电检测 b片经过标定的RC 振荡器 c片/片外中断 d6种睡眠模式 : 空 ADC噪声抑制模式、省电模式、掉电模式、Standby 、式以扩展的Standby 模式 7、 I/O和封装 a32 个可编程的I/O口 b40 引脚PDIP封装 , 44 引脚 TQFP 封装,与 44 引脚MLF封装 8、 工作电压: aATmega16L:2.7 - 5.5V bATmega16:4.5 - 5.5V 9、速度等级 a0 - 8 MHz ATmega16L
13、b0 - 16 MHz ATmega16 10、 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,从而可以缓减系统在功耗和处理速度之间的矛盾。ATMAGE16引脚分布如图2.1所示。 AVR 核具有丰富的指令集和 32 个通用工作存放器。所有的存放器都直接与算逻单元(ALU) 相连接,使得一条指令可以在
14、一个时钟周期同时两个独立的存放器。这种构造大大提高了代码效率,并且具有比普通的 CISC微控制器最高至 10倍的数据吞吐率。ATmega16 有如下特点 16K字节的系统可编程Flash(具有同时读写的能力,即RWW), 图2.1 ATMAGE16引脚分布 AVR 核具有丰富的指令集和 32 个通用工作存放器。所有的存放器都直接与算逻单元(ALU) 相连接,使得一条指令可以在一个时钟周期同时两个独立的存放器。这种构造大大提高了代码效率,并且具有比普通的 CISC微控制器最高至 10倍的数据吞吐率。ATmega16 有如下特点 16K字节的系统可编程Flash(具有同时读写的能力,即RWW),5
15、12 字节 EEPROM,1K字节 SRAM,32 个通用I/O 口线,32 个通用工作存放器,用于边界扫描的 JTAG 接口,支持片调试与编程,三个具有比较模式的灵活的定时器/计数(T/C),片/外中断,可编程 USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益 (TQFP 封装 ) 的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 DS18B20的设计本章介绍了系统软件设计,并具体介绍了实现和调试的方法,以及分布式温度采集系统的通信流程和DS18B20温度测量软件的设计思路、DS18B20
18、工作的时序问题。 3.1 总体通信流程及通信协议 总体通信流程表达在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、向主机发送四位当前采集的温度,并回发发送完成标记“c
21、; 一号从机回发信号后,向主机发送四位采集的温度,这个温度在前文已提到标记为“c; 5、主机发送“h给2号从机: 主机在接收到一号从机发来的“c命令后,会立刻发送“h信号给二号从机,表示要采集二号从机的数据; 6、2号从机回发“h: 二号从机接收到单片机主机的命令后,会立即向单片机主机回发信号,要求单片机主机做好接收准备; 7、向主机发送四位当前采集的温度,并回发发送完成标记“c: 二号从机向单片机主机回发完信号后,向主机发送四位当前采集的温度,这个温度标记为“c; 8、主机发送“d给PC机: 单片机主机在接收到二号从机发送来的信号后,立刻发送信号给PC机,表示完成PC机的前一指令; 9、PC
22、发送“a给主机: PC机在接收到单片机主机发送的信号后,发送新一个指令给单片机主机,要求单片机主机发送一号从机采集的温度数据; 10、主机将一号从机温度数据发送给PC机: 单片机主机接收到PC机的命令后将一号从机发送过来的四位当前温度数据转换成ASCII码后,发送给PC机,因为PC机只能读取ASCII码; 11、PC机发送“b给主机: PC机接收到单片机主机发送的即时温度后会立即发送另一指令给单片机主机,要求单片机主机发送二号从机采集的温度数据; 12、主机将二号从机温度数据发送给PC机,发送完成后,返回1: 单片机主机接收到PC机的命令后将二号从机发送过来的四位当前温度数据同样也转换成ASC
23、II码后,发送给PC机。此时一个完整过程完毕,将返回1开场另一轮采集。 3.2 DS18B20温度测量软件的设计 由于DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进展。操作协议为:初始化DS18B20发复位脉冲发ROM 功能命令发存储器操作命令处理数据。主机控制DS18B20完成温度转换的程序必须经过3个步骤:初始化、ROM操作指令、存储器操作指令。假设单片机系统所用的晶振频率为12MHz,根据DS18B20的初始化时序、写时序和读时序,分别编写3个子程序:INIT为初始化子程序,WRITE 为写命令或数据子程序,R
24、EAD为读数据子程序,所有的数据读写均由最低位开场。主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s 进展一次,流程图如图3.1所示 。读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进展CRC 校验,校验有错时不进展温度数据的改写,其程序流程图如图3.2所示。 从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。因为DS18B20的转换精度为912 位可选,为了提高精度采用12位。在采用12位转换精度时,温度存放器里的值是以0.0625为步进的,即温度值为温度存放器里的二进制值乘以0.0625,就是实际的十进制温度值
25、。3.3 多机通信软件的设计 ATMAGE16单片机有串行发送缓冲器接收缓冲器(SBUF)、串行口控制存放器(SCON)、特殊功能存放器(PCON)。通过设置SCON可以有四种工作方式,其中工作方式2、3 适用于多机通信。在串行通信前,通过程序预先将各从机串行口设置为方式2或方式3,并使SM2和REN(允许串行接收控制位)为1,允许串行口中断。主机与从机通信时,将SM2置0,准备接收数据,否则维持SM2为1,这样在主机发送数据时(此时主机发送数据中第9 位为0),只有地址相符的从机可接收数据,图3.1 DS18B20温度主程序流程图 3.2 读出温度子程序流程图其余从机对数据信息不予理睬,从而
26、可以实现多机通信集散型控制系统将各控制单元分散到现场各控制点。从机主程序和串行口中断效劳程序如图3.3所示。PC 机与单片机的串口通信中,ATMAGE16单片机的Pl.3和Pl.4口分别模拟串行通信的发送和接收端,其接口程序主要由发送子程序和接收子程序组成。通信速率9600bps,帧格式为N.8.l。发送时,先发送一个起始位(低电平),接着 按低位在先的顺序发送8位数据,最后发送停顿位。接收时,先判断P1.4接收端口是否有起始低电平出现,如有则按低位在先的顺序接收8位数,最后判断P1.4 口是否有停顿高电平出现,如有则完成一个数据接收,否则继续等待。其中软件编写要严格按照异步通信的时序进展。图
27、3.3 从机主程序和串行口中断效劳程序 3.4 DS18B20工作时序问题 DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序。主机即单片机首先发480us-960us的低电平,进展复位,然后释放总线,之后总线被外部上拉电阻电阻抬高,大约等待1560us之后,DS18B20发出60到240us的低电平信号,以示存在,至此初始化完毕。 写“0“的时候,首先单片机发复位信号,然后发“0于是低电平持续60us就完成了写“0写“1的时候首先单片机发复位信号,持续时间大于1us小于15us然后发“1持续50us以上即可。 读时序也是主
28、机先发低电平,然后在15us检测连接DS18B20的数据线的引脚,从而读得相应值。4 电路的设计本章分析了分布式温度采集系统的各主要功能模块的设计与实现,具体包括温度测量电路模块和串口通信电路模块。 4.1 温度测量电路的设计 温度测量采用DS18B20 数字式温度传感器。由DS18B20 构成的智能温度测量装置由三局部组成:DS18B20 温度传感器、ATMAGE16、显示模块。产品的主要技术指标:测量围:-55+125,测量精度:0.5,反响时间500ms。为了到达更高的精度,则在对DSl8B20测温原理进展详细分析的根底上,采取直接读取DSl8B20部暂存存放器的方法,将DSl8B20
29、的测温分辨率提高到0.010.1,DSl8B20部暂存存放器的分布如表4-1所列,其中第7字节存放的是当温度存放器停顿增值时计数器l的计数剩余值,第8字节存放的是每度所对应的计数值。这样,就可以通过下面的方法获得高分辨率的温度测量结果。 表4-1 DS18B20部暂存器序号 存放器名称 作用 序号 存放器名称0 温度低字节以16位补码形式存放4、5 保存字节1、2 1 温度高字节6 计数器余值2 TH/用户字节1 存放温度上限7 计数器/3 HL/用户字节2 存放温度下限8 CRC 基于DS18B20的温度测量装置电路图如图4.1所示:图4.1 温度测量电路 温度传感器DS18B20将被测环境
30、温度转化成带符号的数字信号以十六位补码形式,占两个字节,传感器可置于离装置150米以的任何地方,输出脚I/O直接与单片机的P1.1 相连,R1为上拉电阻,传感器采用外部电源供电。ATMAGE16 是整个装置的控制核心,ATMAGE16带1K字节的FlashROM,用户程序存放在这里。显示器模块由四位一体的共阳数码管和4个9012组成。系统程序分传感器控制程序和显示器程序两局部,传感器控制程序是按照DS18B20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。 4.2 串口通信电路的设计 为了增加单片机多机通信的距离,该局部电路采用RS232标准接口,通信距离可以到达
31、15米;如果采用RS422 或是RS485 接口,通信距离会更远。多机通信接口原理图见图1 。在数据传输过程中采用的是RS232 电平,提高了抗干扰能力。需要在主机串行接口和从机串行接口进展电平转换:TTL-RS232-TTL。这都是用MA*232 接口芯片实现的,具体的电路如图4.2所示。图4.2 TTL-RS232-TTL电平转换电路通信电路是本设计的重要组成局部,负责温度数据的采集和数据的上传。包括单片机多机串口通信电路,PC 机与ATMAGE16的串口通信电路。其中主单片机ATMAGE16既要和从机通信,还要负责将数据通过串口发送到PC机上。而ATMAGE16 单片机只有一个串行通信口
32、,这就需要用硬件或是软件扩展一个串行通信口。本设计采用一种用单片机普通I/O口和相应软件实现串行通信的方法。 5 分布式温度采集系统设计分布式温度采集系统设计 数字式传感器一般采用单总线技术(1-WIREBUS,即在单片机或计算机接口中只用一根导线输入/ 输出信号线,美国Dallas公司最新推出的1-WireBus数字式温度传感器DS18B20,与传统的温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式,可以分别在93.75ms 和750ms将温度值转化为9 位和12位的数字量,对应的可分辨温度分别为0.5、0.25、0.125和0.0625;
33、为实现与PC机串口长距离数据通信,系统采用了RS232 串行接口,通信距离可以到达15m,如果采用RS422或RS485串行接口可以到达1000m。串口通信由PC机与单片机的通信和单片机多机通信组成,每个从机负责温度的测量然后通过多机通信把温度数据发送到主单片机上,最后PC机通过VB程序控制串口把主单片机上的所有温度数据收集起来。系统框图如图5.1所示。 5.1 系统框图 6 ICCAVR制作环境及介绍本章介绍了ICCAVR的制作环境,ICCAVR 中的文件类型及其文件的扩展名、附注和扩大,并介绍了IAR 或其它ANSI C 编译系统的代码转换。 6.1 ICCAVR 介绍 本节主要介绍了IC
34、CAVR文件的根本特点、类型、扩展名等。 ImageCraft 的ICCAVR 介绍ImageCraft 的ICCAVR 是一种使用符合ANSI 标准的C 语言来开发微控制器(MCU)程序的一个工具,它有以下几个主要特点: ICCAVR 是一个综合了编辑器和工程管理器的集成工作环境IDE,其可在WINDOWS9*/NT 下工作。源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成。编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会自动跳转到编辑窗口中引起错误的那一行。这个工程管理器还能直接产生您希望得到的可以直接使用的INTEL HE* 格式文件,INTEL HE*
35、 格式文件可被大多数的编程器所支持,用于下载程序到芯片中去。ICCAVR 是一个32 位的程序,支持长文件名。本论文并不介绍通用的C 语言语法知识,仅介绍使用ICC AVR 所必须具备的知识。 ICCAVR 中的文件类型及其扩展名 文件类型是由它们的扩展名决定的,IDE 和编译器可以使用以下几种类型的文件。 输入文件: .c 扩展名-表示是C 语言源文件 .s 扩展名-表示是汇编语言源文件 .h 扩展名-表示是C 语言的头文件 .prj 扩展名-表示是工程文件,这个文件保存由IDE 所创立和修改的一个工程的有关信息。.a 扩展名-库文件,它可以由几个库封装在一起。libcavr.a 是一个包含
36、了标准C 的库和AVR 特殊程序调用的根本库。如果库被引用,器会将其到您的模块或文件中。您也可以创立或修改一个符合你需要的库。输出文件 .s 对应每个C 语言源文件,由编译器在编译时产生的汇编输出文件。 .o 由汇编文件汇编产生的目标文件,多个目标文件可以成一个可执行文件。 .he* INTEL HE* 格式文件,其中包含了程序的机器代码。 .eep INTEL HE* 格式文件,包含了EEPROM 的初始化数据。 .cof COFF 格式输出文件,用于在ATMEL 的AvrStudio 环境下进展程序调试。 .lst 列表文件,在这个文件中列举出了目标代码对应的最终地址。 .mp 存映象文件
37、 它包含了您程序中有关符号及其所占存大小的信息 d NoICE 2.* 调试命令文件。 .noi NoICE 3.* 调试命令文件。 .dbg ImageCraft 调试命令文件。 附注和扩大 *pragma 编译附注 这个编译器承受以下附注: *pragma interrupt_handler <func1>:<vector number> <func2>:<vector> . 这个附注必须在函数之前定义,它说明函数func1、func2 是中断操作函数,所以编译器在中断操作函数中生成中断返回指令reti 来代替普通返回指令ret ,并且保存和
38、恢复函数所使用的全部存放器;同样编译器根据中断向量号vector number 生成中断向量地址。*pragma ctask <func1> <func2>. 这个附注指定了函数不生成挥发存放器来保存和恢复代码,它的典型应用是在RTOS实时操作系统中让RTOS 核直接收理存放器。*pragma te*t:<name> 改变代码段名称,使其与命令行选项相适应。*pragma data:<data> 改变数据段名称,使其与命令行选项相适应。这个附注在分配全局变量至EEPROM中时必须被使用。 *pragma abs_address:<addre
39、ss> 函数与全局数据不使用浮动定位重定位,而是从<address>开场分配绝对地址。这在中断向量和其它硬件工程时特别有用。 *pragma end_abs_address 完毕绝对定位,使目标程序使用正常浮动定位。 C+ 注释如果你选择了编译扩大(Project->Options->piler),你可以在你的源代码中使用C +的 / 类型的注释。 二进制常数 如果你选择了编译扩大(Project->Options->piler),你可以使用0b<1|0>* 来指定二进制常数,例如0b10101 等于十进制数21。 在线汇编你可以使用asm
40、("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 fu
41、nc:4 / 4 是这个中断的向量号,func 为中断处理函数名称,ICCAVR 可以使多个中断向量共用一个中断处理函数。在 IAR 中:interrupt vector_name func() / vector_name 是*一个中断向量的名称,IAR C 的中断向量地址使用中断名称来代替,以增加程序的可读性。扩大关键字IAR 引入flash 关键字将工程分配进入程序存贮空间FLASH 存贮器,ICCAVR 使用const 关键字来到达一样的目的。过程调用转换在两个编译系统之间函数参数传递使用的存放器是不同的,这仅影响手工写的汇编函数。在线汇编、宏等,IAR 不支持在线汇编符号,而ICCAV
42、R 支持在线汇编。 6.2 ICCAVR 向导 自你启动 IDE 后,首先从Project 菜单系统选择Open 命令,进入icce*amples.avr 目录并且选择并翻开“led工程,工程管理器显示在这个工程中只有一个文件led.c。 然后从Project 菜单中选择Options 命令翻开工程编译选项,在"Target"标号下选择目标处理器。然后从Project 菜单中选择Make Project 命令,IDE 将调用编译器编译这个工程文件,并且在状态窗口中显示所有的信息。 6.3 ICCAVR 的IDE环境 编译一个单独的文件 正常建立一个输出文件的次序是,你首先应
43、该建立一个工程文件并且定义属于这个工程的所有文件。然而,我们有时也需要将一个文件单独地编译为目标文件或最终的输出文件。这时可以这样操作:从IDE 菜单“File 中选择“pile File.命令,来执行“to Object和“to Output中的任意一个。当你调用这个命令时,文件应该是翻开的并且在编辑窗口中可以编辑的。编译一个文件为目标文件to Object,对检查语法错误和编译一个新的启动文件是很有用的。编译一个文件为输出文件to Output,对较小的并且是一个文件的程序较为有用。 6.3.2 创立一个新的工程 为创立一个新的工程,从菜单“Project中选择“New命令,IDE 会弹出
44、一个对话框,在对话框中你可以指定工程的名称,这也是你的输出文件的名称。如果你使用一些已经建立的源文件,你可在菜单“Project中选择“AddFile(s) 命令。另外,你可以在菜单“File中选择“New命令来建立一个新的源文件来输入你的代码,你可以在菜单“File中选择“Save或“Save As命令来保存文件。然后你可以象上面所述调用“AddFile(s)命令将文件参加到工程中,也可在当前编辑窗口中单击鼠标右键选择“Add to Project将文件参加已翻开的工程列表中。通常你输出源文件在工程同一个目录中,但也可不作这样要求。工程的编译选项使用菜单中 “Project中的“Options命令。 工程管理 工程管理允许你将多个文件组织进同一个工程,而且定义它们的编译选项,这个特性允许你将工程分解成许多小的模块。当你处理工程构筑时,只有一个文件被修改和重新编译,如果一个头文件作了修改,当你编译包含这个头文件的源文件时,IDE 会自动重新编译已经改变的头文件。一个源文件可以写成 C 或汇编格式的任意一种。C 文件必须使用“.c扩展名汇编文件必须使用“.s扩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/IEC 23090-6:2021/AMD2:2025 EN Information technology - Coded representation of immersive media - Part 6: Immersive media metrics - Amendment 2: Additional latencies and
- 【正版授权】 ISO/IEC 25390:2025 EN Information technology - Financial information exchange - Simple binary encoding
- 【正版授权】 IEC 62149-4:2022+AMD1:2025 CSV EN Fibre optic active components and devices - Performance standards - Part 4: 1 300 nm fibre optic transceivers for Gigabit Ethernet applicat
- 2025年新媒体与传播研究课程考试试题及答案
- 2025年法语语言及文化考试题及答案
- 2025年海洋与水文专业基础考试试题及答案
- 2025年保定市中考二模物理试题及答案
- 2025年节能技术服务项目发展计划
- 肿瘤晚期患者教育
- 眼部个性护理
- 入孵企业合作协议书范本
- SCR脱硝催化剂体积及反应器尺寸计算表
- 中级会计经济法-中级会计《经济法》模拟试卷12
- ISO-IEC20000-2018信息技术服务管理体系标准及内审员培训教材
- 2025年全球及中国智能艾灸服务机器人行业头部企业市场占有率及排名调研报告
- 大学生创新创业教育课件
- 连云港市农商控股集团限公司2025年专业技术人员招聘高频重点提升(共500题)附带答案详解
- 甘肃省陇南市武都区2024-2025学年八年级上学期期末学业水平测试历史试题(含答案)
- 一例脓毒血症的个案护理
- 2024年叙永县中医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 安全科学导论知到智慧树章节测试课后答案2024年秋中国矿业大学(北京)
评论
0/150
提交评论