




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰州交通大学毕业设计(论文)I摘要本次论文是基于单片机的定时器设计。随着时代的进步,电子行业的发展,定时器的应用也越来越广泛,比如。本文介绍了一种电子定时器,用户可以自由输入需要定时的时。传统的定时器都是使用发条驱动式、电机传动式或电钟式等机械定时器。电子定时器相对机械定时器来说,体积小、重量轻、造价低、精度高、寿命长、而且安全可靠、调整方便、适于频繁使用。本篇论文讨论了简单的单片机的定时器,对于倒计时器中的四位LED数码显示器来说,我为了简化线路、降低成本,采用以软件为主的接口方法,即不使用专门的硬件译码器,而采用软件程序进行译码。该电子定时器方便用户操作,达到定时时间后会给出相应的指示,还可以对电器的电源进行控制,更适合需要定时的电子产品使用。关键词单片机定时器数码管锁存器兰州交通大学毕业设计(论文)IIABSTRACT兰州交通大学毕业设计(论文)I目录1概述111课题背景1111AVR单片机简介1112AVR单片机的主要特点2113AV内部结构介绍及方框图312AVR教学实验板的总体结构413课题的设计思路及意义614本文的结构安排62教学实验板的软硬件开发平台721AVR高速嵌入式单片机和ATMEGA128722教学实验板的软件开发环境9221AVRSTUDIO4软件的介绍93数码管及串口的硬件电路设计1731数码管接口模块电路1732串口模块电路图设计184AVR单片机模块的原理及结构2241定时器原理及结构22411AVR单片机定时器结构特点2242串口原理及结构27421串口结构与特点27结论33致谢42参考文献43兰州交通大学毕业设计(论文)11概述11课题背景111AVR单片机简介目前单片机的设计和应用技术发展很快,在全国高等工科学院中,己普遍开设了单片机及相关课程。不仅学习单片机的理论知识,还要进行实验操作。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为性能尚佳而大获好评。此后在8031基础上研制了MCS51系列单片机系统。基于这一系统的单片机系统仍在广泛使用。随着工业控制领域要求的提高,出现了16位单片机,但因为性价比不理想并未得到广泛应用。90年代后随着消费电子产品大发展,单片机技术有了长足进步,随着INTELI960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位并进入主流市场。而传统的8位单片机的性能也得到了快速提高,在未来很长时间里仍将继续发展。目前高校单片机教学中大都选用MCS51进行讲解,所开发的教学实验系统也多是基于MCS51系列单片机开发设计的。MCS51单片机作为目前最具代表性的主流机型,基于该机型的教学实验系统为我国单片机教学做出了很大贡献。AVR单片机是美国ATMEL公司设计的,AVR单片机对原51单片机内核进行了较大改造,采用精简指令集RISCREDUCEDINSTRUCTIONSETCPU结构,废除了原51单片机中的机器周期,由原来12个时钟执行一条指令改进为一个时钟执行一条单周期指令,大多数指令执行所需的时钟周期数与指令的字节数相同,使得AVR单片机的运行速度大大提高。AVR单片机的设计者除了改造51内核外,还将FLASH、EEPROM、A/D、RTC、WATCHDOG定时器I2C、SPI、PWM和片内振荡器等集合为一体,可以真正做到单片。AVR单片机兼容51指令集,能够沿用过去开发的51应用程序,AVR技术创新主要体现在以下几个方面。(1)高性能,采用精简指令集CPURJSC和哈佛HARVARD结构的流水线技术,拥有32个通用工作寄存器。(2)片内集成了非易失性程序和数据存储器以及工作存储器。(3)丰富的外设,如I2C、SPI、EEPROM、RTC、WATCHDOG定时器、A/D转换兰州交通大学毕业设计(论文)2器、PWM和片内振荡器等。(4)宽工作电压186V之间。(5)低功耗,具有6种休眠模式,能够从低功耗模式迅速唤醒。(6)编译好的目标文件可通过在线编程ISP直接写入程序存储器,实现芯片在系统编程调试,无需购买昂贵的仿真器和编程器,从而节省了系统开发成本。(7)I/O口资源丰富,设计灵活,驱动力强。(8)具有多复位源、多中断源方式。(9)其USART不占用定时器,采用独特的波特率发生器。(10)保密性强,FLASH程序存储器具有保密锁死功能。由于AVR单片机具有上述这些优点,给用户带来了前所未有的好处。越来越多的设计人员把目光转向AVR单片机,把AVR单片机作为8位单片机的最佳选择,从而使AVR单片机广泛的进入应用领域。ATMEGA系列单片机属于AVR中的高档产品,它具有AVR单片机所具有的特点,并在此基础上,增加了更多的接口功能,提供更充足的程序和数据存储器,而且在节电性、稳定性、抗干扰性以及灵活性方面考虑的更加周全和完善。本课题采用ATMEGA128单片机,它属于ATMEGA系列单片机的一个子集ATMEG32/64/128,指令系统完全兼容,所以学会了ATMEGA128,掌握其他的ATMEGA系列单片机就会驾轻就熟。随着单片机技术的发展,ATMEGA系列单片机已成为MCS51的升级替代产品。112AVR单片机的主要特点ATMEL在设计AVR系列单片机时吸取PIC及8051单片机的优点,并作了重大改进,其特点如下。1AVR程序存储器由可擦写1000次的FLASH构成并具有较大容量可擦写100000次的EEPROM。可低价快速完成产品商品化,且可多次更改程序(产品升级)而不必浪费单片机或电路板,大大提高产品质量及竞争力。2高速度和低功耗。具有SLEEP休眠功能。每一指令执行速度可达50NS20MHZ,而耗电则在125MA间(典型功耗,当WDT关闭时为100NA),AVR运用HARVARD结构概念(具有预取指令功能),即对程序存储和数据存储带有不同的存储器和总线,当执行某一指令时,下一指令被预先从程序存储器中取出,这使得在每一个时钟周期内都可以执行一条指令。3高度保密LOCK。可多次烧写的FLASH具有多重密码保护锁死LOCK功能,并且FLASH单元深藏于芯片内部,不像MASKROM那样可通过电子显微镜破解,因此兰州交通大学毕业设计(论文)3目前国内还无法破解AVR单片机,这有利于保护设计成果,并且AVR可以通过SELFPROGRAMMING方式远程下载加密的更新代码。4工业级产品。具有(吸入电流)1020MA或40MA单一输出大电流,可直接驱动SSR,内置看门狗定时器WDT,防止程序邹飞,提高产品的抗干扰能力。5超功能精简指令。具有32个通用工作寄存器(相当于8051中的32个累加器,克服了单一累加器数据处理造成的瓶颈现象)及1284KBSRAM;部分型号的单片机内置硬件乘法器,一条乘法指令只需2个时钟周期。6程序写入器件可以并行写入(用万用编程器),也可串行在线下载ISP擦写。7并行I/O口的输入输出特性与PIC的HI/LOW输出及三态高阻抗HIZ输入相似外,也可设定类似8051系列内部上拉电阻作输入端的功能,以满足各种应用特性所需,AVR是真正的I/O口,能正确反映I/O口的输入,输出真实情况。8单片机内置模拟比较器,可组成廉价且具有较高精度的A/D转换器。9像8051一样,不同中断向量的入口地址不同,可快速响应,而不会像PIC一样,所有中断都在同一向量地址,需要以程序判别后才可响应。10同PIC一样可重设启动复位。AVR系列单片机也有内置的POR(上电复位)和BOD电源电压监测,只要在复位端接一个上拉电阻就可以了,不必使用外部复位IC。11最大具有6种睡眠模式。12计数器/定时器有8位和16位,可作比较器、计数器外部中断和PWM也可作D/A用于控制输出。13有串行异步通信UART不占用定时器和SPI传输功能,晶振可工作在一般标准整数频率,而波特率可达1152KBPS和576KBPS。14工作电压范围宽1860V,电源抗干扰性能强。15进入门槛低,可以通过自制下载线(最简单的并行下载线仅需4个电阻),利用ATMEL提供的汇编和仿真软件即可以进行开发。16高档AVR单片机MEGA系列的性能更强大。如ATMEGA128有更大容量的存贮器FLASH128KB、EPROM4KBIO口有53个、中断源有34个、外部中断8个、SPI接口1个,片内有RC振荡器上电延时复位电路和可编程的欠电压检测电路,工作电压为27V55V。113AVR单片机内部结构介绍及方框图AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与逻兰州交通大学毕业设计(论文)4辑单元ALU相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。为了得到最大程度的性能以及并行性,AVR采用了HARVARD结构,具有独立的数据和程序总线。程序存储器的指令通过一级流水线运行。CPU在执行一条指令的同时读取下一条指令在本文称为预取。这个概念实现了指令的单时钟周期运行。程序存储器为可以在线编程的FLASH,AVR单片机内部结构图如图11所示。SPI单元I/O模块3I/O模块2I/O模块1模拟比较看门狗中断单元可擦存储器32位工作寄存器状态控制程序控制FLASH程序寄存器指令寄存器指令译码器I/O线逻辑单元数据寄存控制线图11AVR单片机内部结构图12AVR教学实验板的总体结构教学实验板的总体方案设计应能满足单片机教学实验的需求,具体来讲,基于单片机开发板实验平台应能完成如下实验项目。1基础类实验。可以实现如LED控制实验、模数转换A/D实验、蜂鸣器控制实验、中断控制实验、EEPROM读写实验、WATCHDOG控制实验等基础类实验。2人机接口类实验。可以实现如键盘输入实验、LCD显示实验等人机接口类实兰州交通大学毕业设计(论文)5验。3通讯类实验。可以实现如串口通讯实验、USB通讯实验等通讯类实验。4高级应用类实验。可以实现如接近报警实验、过程控制实验、数据采集等实际应用类实验。进行产品应用开发应具备常用的硬件接口和驱动,包括串口、LCD接口、USB接口及相应的驱动程序,能够基于该实验板便捷的完成相关产品的应用开发。因此,在进行器件选型时要考虑成本、易用性及应用广泛性,在进行方案设计时要考虑资源完整性。本实验板采用EASYAVRM128SK,它是基于ATMEGA128单片机的综合学习开发系统,集编程、仿真、学习开发资源、核心板为一体,集成JTAG仿真和ISP下载等功能,其结构如图12所示。图12EASYAVRM128SK系统开发板1USB取电线供电接口内正外负DC5V2JTAGISP二合一编程仿真器PC接口3二路RS232串行通讯口4RS485串行通讯口5LCD12864/1602/12232接口6电源供电接口内正外负DC79V7核心板外部ISP编程接口兰州交通大学毕业设计(论文)68复位按键9可选外接晶振插座10核心板外部JTAG仿真接口114位一体七段数码管124个独立按键138位发光二极管141路有/无源蜂鸣器15PCF8563实时钟16IIC外部E2PROMAT24C0117LMV358信号调理电路增益011000可调,输入010V18AD采集和数字温度采集传感器18B20以及NTC输入接口19液晶对比度和信号调理调节电位器20PCB固定孔,背面有透明硅胶防滑贴脚21芯片引脚引出接口22核心板可拆卸,引脚全部向下引出23板载仿真/编程器工作状态指示24核心芯片ATMEGA12816AUL8AU13课题的设计思路及意义本论文从熟悉AVR单片机的原理及总体结构入手,了解AVR单片机的相关编译、调试软件及C语言的嵌入式编程方法,研究USB接口模块、LED显示模块、定时器的功能,分别对AVR单片机与上述模块的连接电路进行调试,得出最终的实验结果。本论文通过对实验板的研究,熟悉了AVR单片机的结构、开发流程及在C语言中的应用。在充分实验的基础上,建立起单片机与模块、软件与硬件的联系,最终实现单片机的综合应用。兰州交通大学毕业设计(论文)72教学实验板的软硬件开发平台21AVR高速嵌入式单片机和ATMEGA128ATMEL公司是世界上著名的高性能、低功耗、非易失性可擦除存储器和数字集电路的一流半导体制造公司。ATMEL公司最引人注目的是它的电可擦除EERPOM技术、闪速存储器FLASH技术和高质量、高可靠性的生产技术。在CMOS器件生产领域中,ATMEL的先进设计水平、优秀的生产工艺及封装技术,一直处于世界领先地位。这些技术用于单片机生产,使单片机也具有优秀的品质,在结构、性能等方面都有明显的优势。1997年,ATMEL公司挪威设计中心出于市场需要考虑,充分发挥其FLASH技术优势,推出增强型内置FLASH的精简指令集REDUCEDINSTRUCTIONSETCPU,简称RISC高速8位单片机,并命名为AVR。其中A与V分别是两位充满工作激情与灵感的挪威年轻研发者姓名的第一个字母,R代表该芯片为RSIC架构。AVR单片机已形成一个系列。为满足不同的需求和应用,ATMEL公司对AVR单片机的内部资源进行了相应的扩展和删减,推出了ATTINY、AT90和ATMEGA三大系列,分别对应AVR的低、中、高档产品。ATMEGA128为基于AVRRISC结构的8位低功耗CMOS微处理器。由于其先进的指令集以及单周期指令执行时间,ATMEGA128的数据吞吐率高达1MIPS/MHZ,从而可以缓减系统在功耗和处理速度之间的矛盾,产品特点如下。1高性能、低功耗的AVR8位微处理器。2先进的RISC结构。133条指令(大多数可以在一个时钟周期内完成);32X8通用工作寄存器外设控制寄存器;全静态工作工作于16MHZ时性能高达16MIPS;只需两个时钟周期的硬件乘法器。3非易失性的程序和数据存储器。128K字节的系统内可编程FLASH寿命10,000次写/擦除周期;具有独立锁定位、可选择的启动代码区;通过片内的启动程序实现系统内编程;真正的读修改写操作;4K字节的EEPROM寿命100,000次写/擦除周期;4K字节的内部SRAM;多达64K字节的优化的外部存储器空间;可以对锁定位进行编程以实现软件加密;可以通过SPI实现系统内编程。4JTAG接口(与IEEE11491标准兼容)。遵循JTAG标准的边界扫描功能;支持扩展的片内调试;通过JTAG接口实现对FLASH、EEPROM,熔丝位和锁定位的编兰州交通大学毕业设计(论文)8程。5外设特点。两个具有独立的预分频器和比较器功能的8位定时器/计数器;两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器;具有独立预分频器的实时时钟计数器;两路8位PWM;6路分辨率可编程(2到16位)的PWM;输出比较调制器;8路10位ADC;8个单端通道;7个差分通道;2个具有可编程增益(1X,10X,或200X)的差分通道;面向字节的两线接口;两个可编程的串行USART;可工作于主机/从机模式的SPI串行接口;具有独立片内振荡器的可编程看门狗定时器;片内模拟比较器。6特殊的处理器特点。上电复位以及可编程的掉电检测;片内经过标定的RC振荡器;片内/片外中断源;6种睡眠模式空闲模式、ADC噪声抑制模式、省电模式、掉电模式、STANDBY模式以及扩展的STANDBY模式;可以通过软件进行选择的时钟频率;通过熔丝位可以选择ATMEGA103兼容模式;全局上拉禁止功能。7I/O和封装。53个可编程I/O口线;64引脚TQFP与64引脚MLF封装。8工作电压。2755VATMEGA128L4555VATMEGA128。9速度等级。08MHZATMEGA128L016MHZATMEGA128。AVR内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与运算逻辑单元ALU相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。ATMEGA128具有如下特点128K字节的系统内可编程FLASH(具有在写的过程中还可以读的能力,即RWW)、4K字节的EEPROM、4K字节的SRAM、53个通用I/O口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM功能的定时器/计数器T/C、两个USART、面向字节的两线接口TWI、8通道10位ADC具有可选的编程增益)、具有片内振荡器的可编程看门狗定时器、SPI串行端口、与IEEE11491规范兼容的JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。空闲模式时CPU停止工作,而SRAM、T/C、SPI端口以及中断系统继续工作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态;ADC噪声抑制模式时CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪声;STANDBY模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;扩展STANDBY模式则允许振荡器和兰州交通大学毕业设计(论文)9异步定时器继续工作。器件是以ATMEL的高密度非易失性内存技术生产的。片内ISPFLASH可以通过SPI接口、通用编程器,或引导程序多次编程。引导程序可以使用任何接口来下载应用程序到应用FLASH存储器。在更新应用FLASH存储器时引导FLASH区的程序继续运行,实现RWW操作。通过将8位RISCCPU与系统内可编程的FLASH集成在一个芯片内,ATMEGA128为许多嵌入式控制应用提供了灵活而低成本的方案ATMEGA128AVR有整套的开发工具,包括C编译器,宏汇编,程序调试器/仿真器和评估板,ATMEGA128结构图如图21所示。图21ATMEGA128结构图22教学实验板的软件开发环境221AVRSTUDIO4软件的介绍本文采用的AVR开发软件是AVRSTUDIO4,它是一个完整的开发工具,包括仿真下载、调试等功能,可在AVR器件上运行,AVRSTUDIO4的界面如下所示。1创建一个新的项目启动AVRSTUDIO4的方式如下点击开始程序ATMELAVR工具。AVR兰州交通大学毕业设计(论文)10STUDIO启动后,你将看到一个对话框。我们需要创建一个新的项目,点击“CREATENEWPROJECT”按钮,创建新项目图如图22所示。图22创建新项目图这个步骤包括选择我们要创建什么类型的项目,设定名称以及存放的路径。这个过程包括五个步骤。在对话框左边选中ASSEMBLYPROGRAM,表明你要创建一个项目。输入项目的名称。项目的名称可以随意定义。我们需要AVRSTUDIO自动产生一个汇编文件。选择你要存放项目的路径。确认所有的选项,确认之后,按“NEXT”按钮。配置项目参数图如图23所示。图23配置项目参数图3选择调试平台兰州交通大学毕业设计(论文)11AVRSTUDIO4软件可以让客户选择多种开发调试工具。AVRSTUDIO4允许可以选择多种开发调试工具,在这里我们选用带有仿真功能的AVRSIMULATOR,选择调试平台图如图24所示。图24选择调试平台图4AVRSTUDIO4的用户图形界面GUIAVRSTUDIO4的用户图形界面图GUI,如图25所示。把用户图形界面划分成了6个部分,在AVRSTUDIO4系统中包括了AVRSTUDIO的帮助文件,并着重介绍AVRSTUDIO4的框架和一些要注意的事项。图25用户图形界面图1第一行是菜单栏。这与标准的WINDOWS程序差不多,包括打开/保存文件、剪贴/复制,这个栏目还包含了STUDIO的一些特殊功能,如仿真等。2第二行是快捷方式栏,这一栏存储了一些常用命令,包括保存/打开文件,设兰州交通大学毕业设计(论文)12置断点等等。3第三部分为工作台窗口,在这里显示项目文件、I/O状态以及项目选用AVR器件的信息。4第四是编辑窗口。在这里可以编辑你的源代码。对于熟练的用户,在这里也可以嵌入C代码。5第五是输出窗口,状态信息在这里显示。6第六是系统状态条。这里显示AVRSTUDIO软件工作的模式,例如我们选用了AT90S8515芯片在仿真模式下工作,这些信息就会在系统状态条中显示。222ICCAVR编译软件介绍IMAGECRAFT的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器MCU程序的一个工具,它有以下几个主要特点。1ICCAVR是一个综合了编辑器和工程管理器的集成工作环境IDE其可在WINDOWS9X/NT下工作。2源文件全部被组织到工程之中文件的编辑和工程的构筑也在这个环境中完成编译,错误显示在状态窗口中,并且当用鼠标单击编译错误时光标会自动跳转到编辑窗口中引起错误的那一行,这个工程管理器还能直接产生可以直接使用的INTELHEX格式文件,INTELHEX格式文件可被大多数的编程器所支持用于下载程序到芯片中去。3ICCAVR是一个32位的程序支持长文件名。ICCAVR中文件类型是由它们的扩展名决定的IDE和编译器可以使用以下几种类型的文件。1输入文件C扩展名表示是C语言源文件。S扩展名表示是汇编语言源文件。H扩展名表示是C语言的头文件。PRJ扩展名表示是工程文件这个文件保存由IDE所创建和修改的一个工程的有关信息。A扩展名库文件它可以由几个库封装在一起,LIBCAVRA是一个包含了标准C的库和AVR特殊程序调用的基本库如果库被引用链接器会将其链接到模块或文件中,也可以创建或修改一个符合需要的库。2输出文件S对应每个C语言源文件由编译器在编译时产生的汇编输出文件。兰州交通大学毕业设计(论文)13O由汇编文件汇编产生的目标文件多个目标文件可以链接成一个可执行文件。HEXINTELHEX格式文件其中包含了程序的机器代码。EEPINTELHEX格式文件包含了EEPROM的初始化数据。COFCOFF格式输出文件用于在ATMEL的AVRSTUDIO环境下进行程序调试。LST列表文件在这个文件中列举出了目标代码对应的最终地址。MP内存映象文件它包含了您程序中有关符号及其所占内存大小的信息。CMDNOICE2XX调试命令文件。NOINOICE3XX调试命令文件。DBGIMAGECRAFT调试命令文件。3附注和扩充PRAGMA编译附注这个编译器接受以下附注。PRAGMAINTERRUPT_HANDLER这个附注必须在函数之前定义它说明函数FUNC1FUNC2是中断操作函数所以编译器在中断操作函数中生成中断返回指令RETI来代替普通返回指令RET并且保存和恢复函数所使用的全部寄存器同样编译器根据中断向量号VECTORNUMBER生成中断向量地址。PRAGMACTASK这个附注指定了函数不生成挥发寄存器来保存和恢复代码它的典型应用是在RTOS实时操作系统中让RTOS核直接管理寄存器。PRAGMATEXT改变代码段名称使其与命令行选项相适应。PRAGMADATA改变数据段名称使其与命令行选项相适应这个附注在分配全局变量至EEPROM中时必须被使用读者可参考访问EEPROM的例子。PRAGMAABS_ADDRESS函数与全局数据不使用浮动定位、重定位而是从开始分配绝对地址这在访问中断向量和其它硬件项目时特别有用。PRAGMAEND_ABS_ADDRESS结束绝对定位使目标程序使用正常浮动定位。C注释如果选择了编译扩充PROJECTOPTIONSCOMPILER可以在源代码中使用C的/类兰州交通大学毕业设计(论文)14型的注释。二进制常数如果选择了编译扩充PROJECTOPTIONSCOMPILER你可以使用0B来指定二进制常数例如0B10101等于十进制数21。在线汇编可以使用ASM“STRING“函数来指定在线汇编代码读者可参考在线汇编。4代码转换IAR或其它ANSIC编译系统的代码转换。IAR编译器作为应用于AVR的第一个C编译器它有十分丰富的源代码当你从IAR编译系统转换到IMAGECRAFT编译系统时绝大多数符合ANSIC标准的程序代码不需要转换IARC中IO寄存器的定义与ICCAVR也是相同的中断操作描述ICCAVR使用PRAGMA附注描述中断操作函数而IAR引入了语法扩充INTERRUPT关键字下面是一个对照。在ICCAVR中PRAGMAINTERRUPT_HANDLERFUNC4/4是这个中断的向量号FUNC为中断处理函数名称ICCAVR可以使多个中断向量共用一个中断处理函数。在IAR中INTERRUPTVECTOR_NAMEFUNC/VECTOR_NAME是某一个中断向量的名称IARC的中断向量地址使用中断名称来代替以增加程序的可读性。扩充关键字IAR引入FLASH关键字将项目分配进入程序存贮空间FLASH存贮器ICCAVR使用CONST关键字来达到相同的目的。过程调用转换在两个编译系统之间函数参数传递使用的寄存器是不同的这仅影响手工写的汇编函数。在线汇编宏等IAR不支持在线汇编符号而ICCAVR支持在线汇编。ICCAVR向导1起步自启动IDE后,首先从PROJECT菜单系统选择OPEN命令,进入ICCEXAMPLESAVR目录并且选择打开LED工程,工程管理器显示在这个工程中只有一个文件LEDC。然后从PROJECT菜单中选择OPTIONS命令打开工程编译选项,在“TARGET“标号下选择目标处理器。兰州交通大学毕业设计(论文)15然后从PROJECT菜单中选择MAKEPROJECT命令,IDE将调用编译器编译这个工程文件,并且在状态窗口中显示所有的信息。如果没有错误,在与源文件同一个目录(在这个例子中是ICCEXAMPLESAVR)中输出一个文件LEDHEX。这个文件是INTELHEX格式,大多数能支持AVRMCU的编程器和模拟器都支持这种格式,并且能下载这个程序进入你的目标系统,这样就完成了一个程序的构筑。如果用支持COFF调试信息的工具来测试程序,比如AVRSTUDIO,那么需要从PROJECT菜单中选择OPTIONS命令,在编译标签下选择COFF输出文件格式。对一些常用的功能,使用工具条或鼠标右键弹出菜单。例如,在工程窗口单击鼠标右键选择编译选项。在工程窗口中双击文件名,IDE将使用编辑器打开这个文件。按这个方法打开LEDC,作为试验可设置一些错误,例如从一行中删除分号“;”。现在从PROJECT菜单中选择MAKEPROJECT命令IDE首先自动保存已经改变的文件,并且开始编译这个文件。这时在状态窗口中会显示错误信息,单击状态窗口中错误信息行,或单击其左边的错误符号,光标将移到编辑器中错误行的下面一行(基本上所有C编译器都是这样)。开始一个新的工程从PROJECT菜单中选择NEW命令,并且浏览至输出工程文件的目录,输出文件的名称工程文件名称。例如,如果创建一个名称为FOOPRJ的工程,那么输出文件名称为FOOHEX或FOOCOF等,创建工程后,可以开始写源代码C或汇编格式,并且将这个文件加入到工程文件排列中。单击工具栏中BUILD图标可以很容易地构筑这个工程。IDE输出与ATMEL的AVRSTUDIO4完全兼容的COFF文件使用ATMEL的AVRSTUDIO4来调试代码,为更容易地使用这个开发工具,应使用应用程序向导来生成一些使用有关硬件的初始化代码。2C程序的剖析一个C程序必须定义一个MAIN调用函数,编译器会将程序与启动代码和库函数链接成一个可执行文件,因此可以在目标系统中执行它。启动代码的用途在启动文件中有详细地描述。一个C程序需要设定目标环境,启动代码初始化这个目标使其满足所有的要求。通常,MAIN例程完成一些初始化后,然后是无限循环地运行。例子ICCEXAMPLES目录中的文件LEDC如下所示。INCLUDE/为使能够看清LED的变化图案延时程序需要有足够的延时时间/VOIDDELAY兰州交通大学毕业设计(论文)16UNSIGNEDCHARA,B_FORA1AAFORB1BBVOIDLED_ONINTIPORTBBITI/低电平输出使LED点亮/DELAYVOIDMAIN4INTIDDRB0XFF/定义B口输出/PORTB0XFF/B口全部为高电平对应LED熄灭/WHILE1/LED向前步进/FORI0I0ILED_ONI/LED跳跃/FORI0I0I2LED_ONI这个例子在初始化一些IO寄存器后,它运行在一个无限循环中,并且在这个循环中改变LED的步进图案。LED是在LED_ON例程中被改变的,在LED_ON例程中直兰州交通大学毕业设计(论文)17接写正确的数值到IO端口。因为CPU运行很快,为能够看见图案变化LED_ON例程调用了延时例程。因为延时的实际延时值不能被确定,这一对嵌套循环只能给出延时的近似延时时间如果这个实际定时时间,这个例程使用硬件定时器来完成延时。3数码管及串口的硬件电路设计31数码管接口模块电路在此时设计中主要用于显示定时器的计数,数码管的外观图如图31所示。数码管与CPU之间的硬件结构图如图32所示。图31数码管外观图32数码管硬件电路图兰州交通大学毕业设计(论文)18数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“A,B,C,D,E,F,G,DP“的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动,在轮流显示过程中,每位数码管的点亮时间为12MS,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。七段数码管是最常用的数字显示设备,EASYAVR有一个四位一体七段数码管,通过74HC595串转并驱动,节省IO口。段选接到PB4、5、6、7,位选通过74HC595接到SPI口PB0、1、2、3,注74HC595是一个8比特的串并转换器。32串口模块电路图设计串行接口SERIALINTERFACE是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但送速度慢;串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。RS232采取不平衡传输方式,即所谓单端通讯。由于其发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大15米,最高速率为20KB/S。RS232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37K,所以RS232适合本地设备之间的通信。EASYAVR引出了ATMEGA128的两路USART接口,使用了两片MAX232,一片在主板上,一片在底板,兰州交通大学毕业设计(论文)19MAX232外观图如图33所示。图33MAX232外观图MAX232芯片是美信公司专门为电脑的RS232标准串口设计的接口电路,使用5V单电源供电。内部结构基本可分三个部分第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生12V和12V两个电源,提供给RS232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道,MAX232电路图如图34所示。MAX22313141378541621112109615C1C1T1OUTR1INT2OUTR2INC2C2GNDVCCVT1INR1OUTT2INR2OUTVTXD0RXDOVCC图34MAX232电路图USART0通过核心板背面的MAX232引出到DB9座的第二脚和第三脚。ATMEGA128有两个串口USART0和USART1,所以焊了两片MAX232。USART1通过核心板背面的MAX232引出到DB9座的第七脚和第八脚。使用USART1时,需要注意跳线485和232的跳线选择,跳到232一边。除此之外EASYAVR拥有一路RS485通信接口,使用一片MAX485连接到USART0,使能端通过PG3控制。MAX485的功能与MAX232的功能类似,在此不再累述。RS232和RS485之间的通信选择,通过跳线JMP6和JMP7转换。USART0通过核心板背面的MAX232引出到DB9座的第二脚和第三脚。ATMEGA128有两个串口USART0和USART1,所以焊了两片MAX232。USART1通过核心板背面的MAX232引出到DB9座的第七脚和第八脚。使用USART1时,需要注意跳线485和232的跳线选择,跳到232一边。除此之外EASYAVR拥有一路RS485通信接口,使用一片MAX485连接到USART0,使能端通兰州交通大学毕业设计(论文)20过PG3控制。MAX485的功能与MAX232的功能类似,在此不再累述。RS232和RS485之间的通信选择,通过跳线JMP6和JMP7转换,MAX232与CPU之间的通信电路图如图35所示。MAX232MAX2321313147845162111210961513131478451621112109615VCCVCCCC1T1OUTR1INT2OUTR2INC2C2CC1T1OUTR1INT2OUTR2INC2C2VT1INR1OUTT2INR2OUTVGNDVT1INR1OUTT2INR2OUTVGNDVCCVCCTXD0TXD1RXD0RXD1ATMEGA128PE0PE1GNDMAX485D0D1PD2PD3图35MAX232与CPU之间的通信电路图串行通信接口标准经过使用和发展,目前已经有几种。本次设计用到的芯片是MAX232芯片,所以我们这里介绍的是232串口,但是所有的232串口是在RS232标准的基础上经过改进而形成的。我们以RS232C为主来讨论。RS232C标准是美国EIA电子工业联合会与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在020000B/S范围内的通信。这个标准对串行通信串口的有关问题,如信号线功能、电器特性都作了明确规定,在工程当中经常会用到232口,一般是圆头8针与D型9针两种串口这里我们用到是D型9针串口。在9针串口中真正用到的针兰州交通大学毕业设计(论文)21只有两根,如果左边串口的2发,右边的3。收,如果是右边串口2发那左边针3收。左右串口的针5接地。如图36针2针3。RS232的连接图如图36所示。串口实物图如37所示。图36串口连接图图37串口实物兰州交通大学毕业设计(论文)224AVR单片机模块的原理及结构41定时器原理及结构411AVR单片机定时器结构特点116位定时器/计数器(定时器/计数器1和定时器/计数器3)、16位的T/C可以实现精确的程序定时(事件管理)、波形产生和信号测量。其主要特点如下。真正的16位设计(即允许16位的PWM)3个独立的输出比较单元时器/计数器双缓冲的输出比较寄存器一个输入比较单元输入捕捉噪声抑制器比较匹配发生时清除寄存器(自动重载)无毛刺的相位修正PWM可变的PWM周期频率发生器外部事件计数器,10个独立的中断源TOV1、OCF1A、OCF1B、OCF1C、ICF1、TOV3、OCF3A、OCF3B、OCF3C和ICF32定时器/计数器TCNTN、输出比较寄存器OCRNA/B/C与输入捕捉寄存器ICRN均为16位寄存器。访问16位寄存器必须通过特殊的步骤。T/C控制寄存器TCCRNA/B/C为8位寄存器,没有CPU访问的限制。中断请求(图41中简写为INTREQ)信号在中断标志寄存器TIFRN与扩展定时中断标志寄存器ETIFR都有反映。所有中断都可以由中断屏蔽寄存器TIMSKN及扩展定时中断屏蔽寄存器ETIMSK控制。图中未给出ETIFRN与ETIMSKN。T/C可由内部时钟通过预分频器或通过由TN引脚输入的外部时钟驱动。引发T/C数值增加(或减少)的时钟源及其有效沿由时钟选择逻辑模块控制。没有选择时钟源时T/C处于停止状态。时钟选择逻辑模块的输出称为CLKTN。3双缓冲输出比较寄存器OCRNA/B/C一直与T/C的值做比较。波形发生器用比较结果产生PWM或在输出比较引脚OCNA/B/C输出可变频率的信号。参见“输出比较单元”。比较匹配结果还可置位比较匹配标志OCFNA/B/C,用来产生输出比较中断兰州交通大学毕业设计(论文)23请求。当输入捕捉引脚ICPN或模拟比较器输入引脚(模拟比较器)有输入捕捉事件产生边沿触发时,当时的T/C值被传输到输入捕捉寄存器保存起来。输入捕捉单元包括一个数字滤波单元(噪声消除器)以降低噪声干扰,T/C框图如图41所示。OCRXBOCRXAOCRXCICRXTCCRXAICPXTCNTX逻辑控制0TOPTTCRXCTTRXB波形发生器波形发生器波形发生器边沿检测边沿检测噪音消除TXOCXAOCXBOCXC数据总线计数清除方向来自分频器定时计数器TOVXOCFXAOCFXBOCFXCTOPBOTTOM图41T/C框图在某些操作模式下,TOP值或T/C的最大值可由OCRNA寄存器、ICRN寄存器,或一些固定数据来定义。在PWM模式下用OCRNA作为TOP值时,OCRNA寄存器不能用作PWM输出。但此时OCRNA是双向缓冲的,TOP值可在运行过程中得到改变。兰州交通大学毕业设计(论文)24当需要一个固定的TOP值时可以使用ICRN寄存器,从而释放OCRNA来用作PWM的输出,计数器定义如表41所示,计数器单元图如图42所示。表41计数器定义BOTTOMMAXTOP计数器计到0X0000时即达到BOTTM计数器计到0XFFFF(十进制的65535)时达到MAX计数器计到技术序列的最大值时即达到TOP。TOP值可以为固定值0X00FF、0X01FF或0X03FF,或是存储于寄存器OCRNA或ICRN里的数值,具体有赖于工作模式。TCNTNHTCNTNLTEMP8BIT逻辑控制边沿检测TN8位数据总线计数清除方向来自分频器时钟选择TOPBOTTOMTOVNCIKTCNTN16BIT42计数器单元图4信号描述(内部信号)COUNTTCNTN加1或减1。DIRECTION确定是加操作还是减操作。CLEARTCNTN清零。CLKTN定时器/计数器时钟信号。TOP表示TCNTN计数器到达最大值。BOTTOM表示TCNTN计数器到达最小值0。16位计数器映射到两个8位I/O存储器位置TCNTNH为高8位,TCNTNL为低8位。CPU只能间接访问TCNTNH寄存器。CPU访问TCNTNH时,实际访问的是临时寄存器TEMP。读取TCNTNL时,临时寄存器的内容更新为TCNTNH的数值;而兰州交通大学毕业设计(论文)25对TCNTNL执行写操作时,TCNTNH被临时寄存器的内容所更新。这就使CPU可以在一个时钟周期里通过8位数据总线完成对16位计数器的读、写操作。此外还需要注意计数器在运行时的一些特殊情况。在这些特殊情况下对TCNTN写入数据会带来未知的结果。根据工作模式的不同,在每一个CLKTN时钟到来时,计数器进行清零、加1或减1操作。CLKTN由时钟选择位设定CSN20,当CSN200计数器停止计数。不过CPU对TCNTN的读取与CLKTN是否存在无关。CPU写操作比计数器清零和其他操作的优先级都高。计数器的计数序列取决于寄存器TCCRNA和TCCRNB中标志位WGMN30的设置。计数器的运行(计数)方式与通过OCNX输出的波形发生方式有很紧密的关系。通过WGMN30确定了计数器的工作模式之后,TOVN的置位方式也就确定了。TOVN可以用来产生CPU中断。5输入捕捉单元T/C的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。外部事件发生的触发信号由引脚ICPN输入,也可通过模拟比较器单元来实现。时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。图43中不直接属于输入捕捉单元的部分用阴影表示。寄存器与位中的小写”N”表示定时器/计数器编号,输入捕捉单元方框图如图43所示。TEMP8BITTCNTNL8BITTCNTNH8BITICRNL(8BIT)ICRNH8BIT边沿检测消除噪音ICPN数据总线ACO模拟比较器ACICICNCICESICFNWRITICRN(16B)TCNTN(16B)图43输入捕捉单元当引脚ICPN上的逻辑电平(事件)发生了变化,或模拟比较器输出ACO电平发兰州交通大学毕业设计(论文)26生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉即被激发16位的TCNTN数据被拷贝到输入捕捉寄存器ICRN,同时输入捕捉标志位ICFN置位。如果此时TICIEN1,输入捕捉标志将产生输入捕捉中断。中断执行时ICFN自动清零,或者也可通过软件在其对应的I/O位置写入逻辑”1”清零。读取ICRN时要先读低字节ICRNL,然后再读高字节ICRNH。读低字节时,高字节被复制到高字节临时寄存器TEMP。CPU读取ICRNH时将访问TEMP寄存器。对ICRN寄存器的写访问只存在于波形产生模式。此时ICRN被用作计数器的TOP值。写ICRN之前首先要设置WGMN30以允许这个操作。对ICRN寄存器进行写操作时必须先将高字节写入ICRNHI/O位置,然后再将低字节写入ICRNL。6输出比较单元16位比较器持续比较TCNTN与OCRNX的内容,一旦发现它们相等,比较器立即产生一个匹配信号。然后OCFNX在下一个定时器时钟置位。如果此时OCIENX1,OCFNX置位将引发输出比较中断。中断执行时OCFNX标志自动清零,或者通过软件在其相应的I/O位置写入逻辑“1”也可以清零。根据WGMN30与COMNX10的不同设置,波形发生器用匹配信号生成不同的波形。波形发生器利用TOP和BOTTOM信号处理在某些模式下对极值的操作。输出比较单元图如图44所示。兰州交通大学毕业设计(论文)27TEMP8BITOGR8BITOGR8BIT16BIT比较器波形发生器OTGN8BITOGR8BITOGR8BITTGN8BITOCNX数据堆栈(8BIT)BOTTMTOPOCRND16BITTGNT16BITOCRND16BITWGMN30COMNX10图44输出比较单元42串口原理及结构421串口结构与特点1帧格式串行数据帧由数据字加上同步位开始位与停止位以及用于纠错的奇偶校验位构成。USART接受以下30种组合的数据帧格式1个起始位5、6、7、8或9个数据位无校验位、奇校验或偶校验位1或2个停止位数据帧以起始位开始,紧接着是数据字的最低位,数据字最多可以有9个数据位,以数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO 10406-1:2025 EN Fibre-reinforced polymer (FRP) reinforcement of concrete - Test methods - Part 1: FRP bars
- 车位租赁合同
- 中小型民营企业用工合同3篇
- 医院职工劳动合同书
- 2025年宣城广德市桃州初级中学编外教师招聘12名考试参考试题及答案解析
- 2025年合肥海恒教育管理有限公司幼儿园后勤服务岗招聘11名备考练习试题及答案解析
- 2025河南南阳内乡县启星学校招聘7人考试参考试题及答案解析
- 2025金华永康市融媒体中心招聘事业单位工作人员1人-统考备考练习试题及答案解析
- 电工培训答题题库及答案
- 2025年动态数列试题及答案
- GB/T 6344-2008软质泡沫聚合材料拉伸强度和断裂伸长率的测定
- GB/T 39201-2020高铝粉煤灰提取氧化铝技术规范
- GB/T 3836.4-2021爆炸性环境第4部分:由本质安全型“i”保护的设备
- GB/T 20801.6-2020压力管道规范工业管道第6部分:安全防护
- GB/T 19355.2-2016锌覆盖层钢铁结构防腐蚀的指南和建议第2部分:热浸镀锌
- 核心素养视角下教师专业发展课件
- 企业信用信息公告系统年度报告模板:非私营其他企业
- 施工员钢筋工程知识培训(培训)课件
- 质量管理体系审核中常见的不合格项
- 共用水电费分割单模板
- 《阿房宫赋》全篇覆盖理解性默写
评论
0/150
提交评论