




已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I摘要本文主要介绍了基于AVR的移动小车通信与控制软件设计。AVR单片机是ATMEL公司推出的世界上著名的高性能低功耗非易失性存储器和数字集成电路的一流半导体,它的EEPROM电可擦除技术、闪速存储器技术和质量、高可靠性的生产技术,在COMS器件生产领域中,ATMEL的先进设计水平、优秀的生产工艺及封装技术一直处于世界的领先地位。软件设计的核心芯片选用8位的AVR单片机ATMEGA32。采用C语言设计单片机应用系统程序,C语言具有良好的程序结构,适用于模块化程序设计。通过C语言编译器ICCAVR和集成开发环境AVRSTUDIO编译和写入硬件。连接PC机进行程序调试,按下键盘“M”“N”和空格键,在PC机中中能正确显示。按下键盘“上”“下”“左”“右”键,小车能按照键盘的指示,左转、右转,或者前进、后退。软件编程主要是依据PS/2键盘协议的,它是一种双向同步串行协议。每次数据线上发送一位数据并且每在时钟线上发一个脉冲就被读入。键盘可以发送数据到主机,而主机也可以发送数据到设备,但主机总是在总线上有优先权,它可以在任何时候抑制来自于键盘的通讯,只要把时钟拉低即可。所有数据安排在字节中,每个字节为一帧,包含了1112个位。程序写入后,小车能按照键盘的指示正常运行。关键词AVR单片机;移动小车;C语言;PS/2键盘协议IIABSTRACTTHEARTICLEMAINLYINTRODUCEDBASEDONTHEAVRTRAVERSINGCRANECORRESPONDENCEANDTHECONTROLSOFTWAREDESIGNTHEAVRMICROCONTROLLERISINTHEWORLDWHICHATMELCORPORATIONPROMOTESTHEFAMOUSHIGHPERFORMANCELOWPOWERLOSSNONVOLATILESTORAGEANDDIGITALINTEGRATEDCIRCUITSFIRSTCLASSSEMICONDUCTOR,ITSEEPROMELECTRICITYMAYCLEANTHETECHNOLOGY,DODGETHEFASTMEMORYTECHNOLOGYANDTHEQUALITY,THEREDUNDANTRELIABLEPRODUCTIONTECHNOLOGY,INTHECOMSCOMPONENTREALMOFPRODUCTION,THEATMELADVANCEDDESIGNHORIZONTAL,THEOUTSTANDINGTECHNIQUEOFPRODUCTIONANDTHESEALTECHNOLOGYHASBEENINTHEWORLDTHELEADINGPOSITIONSOFTWAREDESIGNSCORECHIPSELECTS8BITAVRMICROCONTROLLERATMEGA32USESTHECLANGUAGEDESIGNMONOLITHICINTEGRATEDCIRCUITAPPLICATIONSYSTEMPROCEDURE,THECLANGUAGEHASTHEGOODPROGRAMSTRUCTURE,ISSUITABLEINTHEMODULARIZEDPROGRAMDESIGNTHROUGHCLANGUAGECOMPILERICCAVRANDINTEGRATEDDEVELOPMENTENVIRONMENTAVRSTUDIOTRANSLATESANDREADSINTHEHARDWARECONNECTSPCMACHINETOCARRYONTHEPROGRAMDEBUGGING,PRESSESDOWNTHEKEYBOARD“M”“N”ANDTHESPACEBAR,CANDEMONSTRATECORRECTLYINPCMACHINEPRESSESDOWNTHEKEYBOARD“UP”“DOWN”“LEFT”“RIGHT”THEKEY,THECARCANDEFERTOKEYBOARDSINSTRUCTION,ADVANCE,BACKLASH,ORLEFTTURN,RIGHTTURNTHESOFTWAREPROGRAMMINGISMAINLYBASEDONTHEPS/2KEYBOARDPROTOCOL,ITSABIDIRECTIONALSYNCHRONOUSSERIALPROTOCOLDATAISSENTONEBITATATIMEONTHEDATALINEANDISREADONEACHTIMECLOCKISPULSEDTHEKEYBOARD/MOUSECANSENDDATATOTHEHOSTANDTHEHOSTCANSENDDATATOTHEDEVICE,BUTTHEHOSTALWAYSHASPRIORITYOVERTHEBUSANDCANINHIBITCOMMUNICATIONFROMTHEKEYBOARD/MOUSEATANYTIMEBYHOLDINGCLOCKLOWALLDATAISARRANGEDINBYTESWITHEACHBYTESENTINAFRAMECONSISTINGOF1112BITSAFTERTHEPROCEDUREREADS,THECARCANDEFERTOKEYBOARDSINSTRUCTIONNORMALOPERATIONKEYWORDSAVRMICROCONTROLLERTRAVERSINGCRANECLANGUAGEPS/2KEYBOARDPROTOCOLIII目录1绪论111AVR单片机的发展过程及现状112基于AVR的移动小车设计原则113课题背景及意义214论文结构22AVR单片机简介421AVR单片机的主要特征422AVR单片机的选型623AVR单片机的型号标识解析73移动小车硬件与编程环境931硬件电路原理图932主要元器件的工作原理1033软件开发工具11331C编译器11332集成开发环境164PS/2简介1741PS/2键盘协议17411概述17412设备到主机的通讯17413主机到设备的通讯2042PS/2键盘接口22421PS/2接口简介22422扫描码23422通码、断码和机打重复率23423命令集245程序设计2651移动小车的结构框图2652单片机C语言的主要特点26IV53主流程图276运行结果2961程序下载方法2962系统运行结果32结论34致谢35参考文献36附录A英文原文37附录B中文翻译49附录C程序代码5811绪论11AVR单片机的发展过程及现状早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观;此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的做法。ATMEL公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。20世纪90年代初,ATMEL率先把MCS51内核与其擅长的FLASH技术相结合,推出轰动世界的AT89系列单片机。1997年,ATMEL挪威设计中心出于市场需求考虑,充分发挥其FLASH技术优势,推出全新配置的精简指令集(RISC)单片机,简称AVR。几年来,AVR单片机已形成系列产品,其ATTINY,AT90,ATMEGA分别对应为低、中、高档产品。电子技术如今迅猛发展,尤其是单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表、机器人制作等领域,使产品功能、精度和质量大幅度提高,且电路简单,故障率低,可靠性高,成本低廉。AVR单片机价格低廉、可擦除1000次以上,不再有报废品产生,且对掉电后数据的保存带来方便,来电时能记住掉电时的工作状态,给用户带来极高的可靠性,受到一致好评。12基于AVR的移动小车设计原则可靠性系统应保证长期安全地进行。系统中的硬软件及信息资源应满足可靠性的设计要求。安全性系统应具有必要的安全保护和保密措施。抗干扰性系统应具有较强的抗干扰性,对各类用户的误操作应有提示或自动消除的能力。适应性系统应对不断发展和完善的统计核算方法,调查方法和指标体系具有广泛的适应性。2可扩充性系统的硬件应具有扩充升级的余地,不可因硬软件扩充、升级或改型而使原有的系统失去作用。实用性注重采用成熟实用的技术,使系统建设的投入产出比最高,能产生良好的社会效益和经济效益。先进性在实用的前提下,应尽可能跟踪国内外最先进的计算机硬软件技术、信息技术及网络通信技术,使系统具有较高的性能指标。易操作性贯彻面向最终用户的原则,使用户操作简单直观,易于掌握。13课题背景及意义近十几年来,随着移动通信技术飞速发展,越来越多的信息采集和远程控制系统采用了无线数据传送技术,它与有线数传相比主要有布线成本低、安装简便、便于移动的优点,而且随着互联网技术的迅猛发展和快速普及,越来越多的基于单片机为微控制器的的测控设备或智能仪器仪表都需要通过互联网上进行数据交换或传输数据。随着技术的飞速发展,单片机的应用范围日益广泛,已远远超出了计算机科学的领域。小道玩具、信用卡,大到航天器、机器人,从实现数据采集、过程控制、模糊控制等智能系统到人类的日常生活,到处离不开单片机,而AVR的应用目前占主导地位,研究它的发展和应用具有现实意义。移动小车的设计也是对移动机器人技术的延伸,移动机器人是近年来发展起来的一门综合学科,集中了机械、电子、计算机、自动控制以及人工智能等多学科最新研究成果,代表了机电一体化的最高成就。移动机器人在工业生产中常用来完成运输和上下科等任务,同时也被广泛用于农业、医疗、军事等不同行业。虽然移动机器人的概念和工作硬件已经出现了几十年,但是近年又不断发生的自然灾害和持续的军事冲突,促使世界各国工程师以新的眼光去重视机器人技术。移动机器人技术的范围广泛,从带摄像头的独轮车,到携有军事装备的无人驾驶飞机,它可以挽救无数人的生命,因此成为最有希望的开发项目。本设计就是在ATMEGA32单片机的基础上将小车的通信与控制智能化,便于人们使用和改进,并能在此基础上做进一步的开发。14论文结构本论文主要介绍了基于AVR单片机的移动小车控制与通信软件设计,共从以下六3部分进行了介绍第一部分介绍了AVR单片机的发展过程及现状,设计原则以及课题相关的背景和意义;第二部分对于AVR单片机的主要特征、选型和型号标识做了介绍;第三部分介绍了小车的部分硬件和开发环境;第四部分对PS/2键盘协议和接口进行了说明;第五部分是程序设计部分,介绍了移动小车的结构框图,单片机C语言编程的主要特点和程序的主流程图;第六部分介绍了移动小车的程序下载方法和系统运行结果。42AVR单片机简介21AVR单片机的主要特征高可靠性、功能强、高速度、低功耗和低价位,一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。AVR单片机废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为其后盾的。AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1MIPS/MHZ),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。AVR单片机内嵌高质量的FLASH程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEPROM可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS51单片机那样扩展外部RAM。AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有多达10位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。AVR单片机独有的“以定时器/计数器(单)双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出PWM)”更是令人耳目一新。增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接5收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通讯。面向字节的高速硬件串行接口TWI、SPI。TWI与I2C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。AVR单片机具有多种省电休眠模式,且可宽电压运行(527V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口)于一身,充分体现了单片机技术的从“片自为战”向“片上系统SOC”过渡的发展方向。单片机已广泛地应用于军事、工业、家用电器、智能玩具、便携式智能仪表和机器人制作等领域,使产品功能、精度和质量大幅度提升,且电路简单,故障率低,可靠性高,成本低廉。单片机种类很多,在简易机器人制作和创新中,为什么选用AVR单片机呢1、简便易学,费用低廉首先,对于非专业人员来说,选择AVR单片机的最主要原因,是进入AVR单片机开发的门槛非常低,只要会操作电脑就可以学习AVR单片机的开发。单片机初学者只需一条ISP下载线,把编辑、调试通过的软件程序直接在线写入AVR单片机,即可以开发AVR单片机系列中的各种封装的器件。AVR单片机因此在业界号称“一线打天下”。其次,AVR单片机便于升级。AVR程序写入是直接在电路板上进行程序修改、烧录等操作,这样便于产品升级。2、高速、低耗、保密6首先,AVR单片机是高速嵌入式单片机(1)AVR单片机具有预取指令功能,即在执行一条指令时,预先把下一条指令取进来,使得指令可以在一个时钟周期内执行。(2)多累加器型,数据处理速度快。AVR单片机具有32个通用工作寄存器,相当于有32条立交桥,可以快速通行。(3)中断响应速度快。AVR单片机有多个固定中断向量入口地址,可快速响应中断。其次,AVR单片机耗能低。对于典型功耗情况,WDT关闭时为100NA,更适用于电池供电的应用设备。有的器件最低18V即可工作。再次,AVR单片机保密性能好。它具有不可破解的位加密锁LOCKBIT技术,保密位单元深藏于芯片内部,无法用电子显微镜看到。3、I/O口功能强,具有A/D转换等电路(1)AVR单片机的I/O口是真正的I/O口,能正确反映I/O口输入/输出的真实情况。工业级产品,具有大电流灌电流1040AM,可直接驱动可控硅SCR或继电器,节省了外围驱动器件。(2)AVR单片机内带模拟比较器,I/O口可用作A/D转换,可组成廉价的A/D转换器。ATMEGA48/8/16等器件具有8路10位A/D。(3)部分AVR单片机可组成零外设元件单片机系统,使该类单片机无外加元器件即可工作,简单方便,成本又低。(4)AVR单片机可重设启动复位,以提高单片机工作的可靠性。有看门狗定时器实行安全保护,可防止程序走乱飞,提高了产品的抗干扰能力。4、有功能强大的定时器/计数器及通讯接口定时/计数器T/C有8位和16位,可用作比较器。计数器外部中断和PWM也可用作D/A用于控制输出,某些型号的AVR单片机有34个PWM,是作电机无级调速的理想器件。AVR单片机有串行异步通讯UART接口,不占用定时器和SPI同步传输功能,因其具有高速特性,故可以工作在一般标准整数频率下,而波特率可达576K。22AVR单片机的选型7单片机是硬件系统的核心,它直接决定了整个系统的功能和性能,同时,不同封装形式的单片机芯片也会影响到系统的物理尺寸和重量,因此单片机的选型主要考虑两个因素。从ATMEL公司于1997年首次推出AVR单片机到现在,AVR单片机已经形成了一系列产品,其中TINY、AT90、ATMEGA系列单片机分别对应低、中、高档产品,根据不同的要求,有30多种型号可供用户选择。(1)低档的TINY系列。该系列是专门为需要小型微控制器的简单应用而优化设计的,有很高的性价比,主要有8个引脚的TINY11/12/13/15、20个引脚的TINY26和28个引脚的TINY28。其中TINY15和TINY26有10位的A/D转化器,TINY26还有128字节的RAM,TINY11和TINY28具有流水线特征。该系列的产品适用于家用电器和简单的控制,如空调、冰箱、微波炉、烟雾报警器等。(2)中档的AT90S系列。自2002年以来,ATMEL公司对AVR单片机产品线进行了调整,逐步停止了该系列产品的生产。主要有AT90S1200/2313/8515/8535等。(3)高档的ATMEGA系列。该系列是目前ATMEL公司的主流产品,它不仅性能优越,同时也有非常好的性价比。该系列主要有ATMEGA8/16/32/64/128(存储容量为8/16/32/64/128KB)以及ATMEGA8515/8535等。近年来,随着电子产业的发展和市场需求的变化,ATMEL公司不断调整生产线,在上述三个系列之外又相继退出了LCDAVR、USBAVR、CANAVR等系列产品。23AVR单片机的型号标识解析(1)型号紧跟的字母,表示电压工作范围。带“V”1855V;若缺省,不带“V”2755V。其中带“L”与不带“L”的区别“L”是“LOW”的缩写。“L”表示它可以支持低电压,它支持的电压范围为2755V。不带“L”的则表示支持电压范围为4555V。例ATMEGA4820AU,不带“V”表示工作电压为2755V。(2)后缀的数字部分,表示支持的最高系统时钟。例ATMEGA4820AU,“20”表示可支持最高为20MHZ的系统时钟。(3)后缀第一(第二)个字母,表示封装。“P”DIP封装,“A”TQFP封8装,“M”MLF封装。例ATMEGA4820AU,“A”表示TQFP封装。(4)后缀最后一个字母,表示应用级别。“C”商业级,“I”工业级(有铅)、“U”工业级(无铅)。例ATMEGA4820AU,“U”表示无铅工业级。ATMEGA4820AI,“I”表示有铅工业级。93移动小车硬件与编程环境31硬件电路原理图电路原理图包括主芯片部分和驱动电路模块,如图31所示。图31移动小车通信与控制电路原理图1032主要元器件的工作原理1、AVR单片机采用ATMEGA系列的ATMEGA32作为控制系统的核心芯片。ATMEGA32是基于增强的AVRRISC结构的低功耗8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATMEGA32的数据吞吐率高达1MIPS/MHZ,从而可以缓减系统在功耗和处理速度之间的矛盾。ATMEGA32的片内集成了32KB的系统内可编程FLASH(具有同时读/写的能力,即RWW)、1KBEEPROM、2KBSRAM、32个通用I/O口线、32个通用工作寄存器,具有用于边界扫描的JTAG接口,支持片内调试与编程,3个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,面向字节的两线串行接口,8路10位具有可选差分输入级可编程增益(TQFP封装)的ADC,具有片内振荡器的可编程看门狗定时器以及1个SPI串行端口。2、电机驱动模块选用SGS公司的L298N,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号。芯片L298属于H桥集成电路,其输出电流为2000MA,最高电流4A,最高工作电压36V,可以驱动感性负载,比如中性直流电机,驱动器、布进电机和开关电源晶体管,特别是其输入端可以与单片机直接相连,从而很方便地受单片机控制。当驱动小型直流电机时,可以直接控制两路电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。本模块加入多级驱动,超高输入阻抗,对输入信号没有驱动要求,适合各类I/O口,应用广泛。并且具有体积小,控制方便的特点。3、调试与编程工具选用ATMEL公司日前宣布推出针对AVRR微控制器的AVRDRAGONTM开发工具。AVRDRAGON为30多种不同的AVRFLASH微控制器提供了一种完备的片上调试与编程11工具,售价仅为49美元,是业界最完善的低成本开发工具。ATMEL凭借AVRDRAGON,为低成本开发工具树立了新的标准。AVRDRAGON支持所有AVR微控制器的各种编程模式,还支持高达32KB的FLASH程序存储器的片上调试。AVRDRAGON的售价远低于同类全功能工具的价格,却能满足各种编程和调试需求。AVRDRAGON与外部目标板以及板上原型区共同使用,可在不添加任何硬件的情况下,进行编程和调试。通过对质量的关注,让一个工具套件囊括整个AVR微控制器系列,工程人员只需运用几项平价工具,就可获得完整的开发环境。ATMEL的AVR开发工具总监DAGARNEBRAEND表示“低成本、应用广泛和优质,一直是我们AVR开发工具的宗旨。AVRDRAGON是又一个低成本工具,但功能强大,足以应付开发环境的日常需要。它支持30多种不同的AVR微控制器。”所支持的AVR编程和调试协议(1)在系统编程ISP3线AVR编程协议;(2)符合JTAG编程4线IEEER11491的JTAG接口;(3)高压串行编程;(4)平行编程;(5)可对高达32KBFLASH的设备进行JTAG调试;(6)DEBUGWIRE单线AVR调试协议。AVRDRAGON由USB线驱动,也可由高达300MA的外部目标驱动,进行编程或调试。如果该目标已由外部电源驱动,AVRDRAGON会对目标和AVRDRAGON之间的所有信号进行调适和电平转换。33软件开发工具331C编译器1、ICCAVR简介AVR系列单片机的集成开发环境有IMAGECRAFT公司的ICCAVR和ATMEL公司的AVRSTUDIO等。其中ICCAVR因支持标准C语言对AVR系列单片机的编程而得到了广泛的应用。ICCAVR严格来说只是支持AVR单片机程序设计的一12个C编译器,它并不提供对程序的软件仿真功能。然而ICCAVR对源程序编译输出的COF映像文件可以与AVRSTUDIO无缝地连接,通过AVRSTUDIO调试器来对程序进行软件仿真。自ATMEL公司的AT90系列单片机诞生以来有很多第三方厂商为AT90系列开发了用于程序开发的C语言工具,ICCAVR就是ATMEL公司推荐的第三方C编译器之一。图32是ICCAVR70版本的窗口设置,分为5大区图32ICCAVR70的窗口设置(1)菜单项包括文件、编辑、搜索、视图、工程菜单、工具菜单、电脑终端、帮助。(2)快捷菜单图标从左到右依次为新建,打开,保存,打印,剪切,复制,粘贴,查找,编译,停止,工程属性,到第一个错误,下一个错误,应用向导程序APPLICATIONBUILDER,ISP对话框。(3)程序编辑区所有的程序编辑工作在这里完成。13(4)编译状态显示栏显示编译状态,查看报错情况进行相应修改。(5)文件列表框文件分类管理查看,这里的分类只是为了方便管理,并没有实际的分开。文件分为C程序文件,H头文件,说明文档。ICCAVR是一种符合ANSI标准的C语言来开发MCU(单片机)程序的一个工具,功能合适、使用方便、技术支持好,它主要有以下几个特点(1)ICCAVR是一个综合了编辑器和工程管理器的集成工作环境(IDE);(2)源文件全部被组织到工程之中,文件的编辑和工程的构筑也在这个环境中完成,错误显示在状态窗口中,并且当你点击编译错误时,光标自动跳转到错误的那一行;(3)该工程管理器还能直接产生INTELHEX格式文件的烧写文件(该格式的文件可被大多数编程器所支持,可以直接下载到芯片中使用)和符合AVRSTUDIO的调试文件(COFF格式);(4)ICCAVR是一个32位的程序,支持长文件名;(5)ICCAVR是一个综合了编辑器和工程管理器的集成开发环境(IDE),是一个纯32位的程序,WIN2000、WINXP和WIN7环境下运行。2、ICCAVR中的文件类型及其扩展名文件类型是由它们的扩展名决定的IDE和编译器可以使用以下几种类型的文件。(1)输入文件C扩展名,表示是C语言源文件;S扩展名,表示是汇编语言源文件;H扩展名,表示是C语言的头文件;PRJ扩展名,表示是工程文件这个文件保存由IDE所创建和修改的一个工程的有关信息;A扩展名,库文件,它可以由几个库封装在一起LIBCAVRA是一个包含了标准C的库和AVR特殊程序调用的基本库,如果库被引用,链接器会将其链接到您14的模块或文件中,您也可以创建或修改一个符合你需要的库。(2)输出文件S对应每个C语言源文件,由编译器在编译时产生的汇编输出文件;O由汇编文件汇编产生的目标文件,多个目标文件可以链接成一个可执行文件;HEXINTELHEX格式文件,其中包含了程序的机器代码;EEPINTELHEX格式文件,包含了EEPROM的初始化数据;COFCOFF格式输出文件,用于在ATMEL的AVRSTUDIO环境下进行程序调试;LST列表文件,在这个文件中列举出了目标代码对应的最终地址;MP内存映象文件,它包含了您程序中有关符号及其所占内存大小的信息;CMDNOICE2XX,调试命令文件;NOINOICE3XX,调试命令文件;DBGIMAGECRAFT,调试命令文件。3、ICCAVR硬件访问的C编程(1)访问AVR的低层硬件AVR系列使用高级语言编程时有很高的C语言密度,它允许你对访问目标MCU的底层硬件进行访问。由于AVR性能,除了要最大程序地优化代码外很少使用汇编。偶然情况下目标MCU的硬件特点在C语言中不能很好地使用,很显然使用在线汇编和预处理宏能访问这些特点。头文件IOH(如IO8515HIOM603H)等定义了指定AVRMCU的IO寄存器细节。这些文件是从ATMEL官方发布的文件经过修改,以匹配这个编译器的语法要求文件。MACROSH定义了许多有用的宏,例如宏UART_TRANSMIT_ON()能使UART开始工作。这个编译器的效率很高,当访问由IO寄存器映射的内存时能产生单周期指令象IN、OUT、SBIS、SBI等。参考IO寄存器。注意老的头文件AVRH定义IO寄存器的BIT有一些模糊,尽管IOH定义了它15们的BIT的位置。因此使用IOH和IO寄存器的BIT,很多时候你将需要使用定义在MACROSH文件中的BIT()宏。例如AVRHDEFINESRE0X80/外部RAM使能(你的C程序)MCUCR|SREIO8515HDEFINESRE7(你的C程序)INCLUDEMCUCR|BIT(SRE)(2)位操作一个共同的任务是编程微控制器MCU打开或关闭IO寄存器的一些位(BIT)。很幸运,标准C有较好的和适用的位操作功能,而没有借助于汇编指令或其它非标准C结构,C定义了一些按位进行的运算是很有用的。A|B按位或,这个表达式指示中A被表达式中的B按位进行或运算。这惯用于打开某些位,尤其常用|的形式,例如PORTA|0X80;/打开位7(最高位)A/整型变量声明部份/FUNCTION1()/功能函数说明部份/C语言具有很强的功能性和结构性,可以缩短单片机控制系统的开发周期,而且易于调试和维护,已经成为目前单片机语言中最流行的编程语言。汇编语言是一种用文字助记符来表示机器指令的符号语言,是最接近机器码的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的CPU,其汇编语言可能有所差异,所以不易移植。对于目前普遍使用的RISC架构的8BITMCU来说,其内部ROM、RAM、STACK等资源都有限,如果使用C语言编写,一条C语言指令编译后,会变成很多条机器码,很容易出现ROM空间不够、堆栈溢出等问题。而且一些单片机厂家也不一定能提供C编译器。而汇编语言,一条指令就对应一个机器码,每一步执行什么动作都很清楚,并且程序大小和堆栈调用情况都容易控制,调试起来也比较方便。所以在资源较少单片机开发中,我们还是建议采用汇编语言比较好。而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。C语言是一种结构化程序设计语言,它支持当前程序设计中广泛采用的由顶向下结构化程序设计技术。此外,C语言程序具有完善的模块程序结构,从而为软件开发中采用模块化程序设计方法提供了有力的保障。因此,使用C语言进行程序设计已成为软件开发的一个主流。用C语言来编写目标系统软件,会大大缩短开发周期,且明显地增加软件的可读性,便于改进和扩充,从而研制出规模更大、性能更完备的系统。综上所述,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。所以作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的C语言编程。53主流程图28开始初始化开机自检键盘控制显示数据图52主流程图296运行结果61程序下载方法1、首先通过C语言编译器ICCAVR将程序进行编译(1)运行ICCAVR,运行PROJECTNEW,创建一个新的工程,保存为AVRCARPRJ;(2)新建一个C文件,将程序复制粘贴进去,运行FILESAVE,保存为CARC;(3)在当前编辑窗口中单击鼠标右键选择ADDTOPROJECT将文件加入已打开的工程列表中;(4)点击PROJECTOPTIONS,将DEVICECONFIGURATION改为ATMEGA32,其他不变,点击OK,如图61所示图61编译器环境配置(5)PROJECTREBUILDALL或者直接使用快捷键SHIFTF9,编译工程,编译完成后,30在状态区看到这样的代码CICCV7AVRBINIMAKEWFAVRCARMAKICCAVRCED_ICC_VERSION722DATMEGA32LGMLONGJUMPMHASMULMENHANCEDCARCICCAVROAVRCARGE0X8000UCRTATMEGAOBFUNC_LIT0X540X8000DRAM_END0X85FBDATA0X600X85FDHWSTK_SIZE30BEEPROM01024FIHX_COFFS2AVRCARLKLCATMEGDEVICE4FULLDONEWEDJUN081312072011(6)此时打开建立工程的文件夹,可以看到如图62所示的文件。图62编译工程后的文件列表2、AVRJTAG在线仿真调试(1)硬件连接;(2)运行AVRSTUDIO,打开AVRCARCOF文件;(3)工程文件保存为AVRCAR_COFAPS文件,方便下次打开;(4)选择相关硬件配置,选择目标板接口为AVRDRAGON,芯片类型为ATMEGA32;(5)硬件配置完成后,程序自动运行,点击停止按钮,程序停止运行后,点击显示31“连接”对话框,如图63所示。图63选择AVR设计的平台和端口(6)连接到选择好的平台,设置芯片类型为ATMEGA32,目标板接口为JTAG,选择FLASH模式下载程序,输入AVRCARHEX文件,点击“PROGRAM”按钮,程序下载成功,如图64所示。32图64程序成功下载到硬件62系统运行结果程序下载完成后,打开小车供电电源,将小车连接到台式机后,开机,完成自检。在桌面上新建一个文本文档,使用自制的键盘随意按下“M”“N”和“空格”键,在记事本上显示出相应的小写字母,如下图所示图65自制键盘的字母按键能在PC机上正确显示键盘功能实现后,断开键盘接口。分别按下自制键盘上的“上”、“下”、“左”、“右”键,小车会按照键盘的指示前进、后退、左转、右转。同时电路板上的八个LED灯会按照表61的规律闪烁(代表灯亮,代表灯灭)。表61LED灯的闪烁规律没有任何键按下按下“UP”键(上)按下“DOWN”键(下)按下“LEFT”键(左)按下“RIGHT”键(右)小车的车轮部分由3个车轮组成,前面1个,后面2个(左轮和右轮)。左轮和33MOTORL相连,右轮和MOTORR相连。小车根据键盘的指示,前进、后退、左转、右转时,左轮和右轮的转动方式如表62所示。表62小车移动时的车轮转动方式小车右轮左轮前进正转正转后退反转反转左转正转反转右转反转正转34结论单片机的出现是计算机技术发展史上的一个重要的里程碑,它让计算机从海量的数值计算进入到智能化控制领域。随着技术的发展,单片机作为小型智能化控制设备得到了越来越多的用途,特别是以单片机为核心的控制设备得到了实用性的发展,越来越用于社会和大众生活。本文主要论述了基于AVR的移动小车通信与控制软件设计。首先对AVR系列的单片机的概念进行了了解,明确了AVR单片机的发展过程及现状,阐述了移动小车的设计原则,并分析出课题的研究背景及意义。在PS/2键盘协议和接口方面的知识进行了介绍,并对AVR单片机的开发软件进行了详细的描述,讲解了用C语言编写单片机程序的优缺点。其中PS/2键盘协议和接口中的内容是整个系统完成通信与控制的关键。设计在PC机上主要完成自制键盘的编程、编译,将编译好的程序写入硬件,并作为一个终端接收和显示数据,完成自检和显示。其中在PC机上,主要是用ICCAVR编译器进行整个程序的开发,在AVRSTUDIO开发平台上将程序下载到单片机中,这两个集成开发环境都有很强的易用性,并且增强了程序的可读性。如上所述,PS/2键盘协议和接口的内容是编写程序的关键,但是PS/2接口也有它自身的缺点,如何优化和升级整个系统,是我们下一步要深入的研究课题。35致谢伴随着毕业设计的即将结束,我的大学生活也已经进入尾声。在完成毕业设计的三个月时间里,我首先要感谢我的导师王洪源老师,在我设计过程中遇到瓶颈的时候给了我很大的帮助。尤其是王老师严谨的教学精神、宽广的专业知识以及不失幽默的生活态度,给了我很大的鼓舞。从一开始选题的确定,到开题报告的完成、初稿的修改、定稿的调整,以及论文格式方面的问题,直至终稿,王老师都为我们提供了良好的设计条件,并且很细心的指出设计中出现的错误,给予了大量的关心与帮助,使我在完成论文的过程中受益匪浅。此次毕业设计既是对我大学四年所学知识的总结与运用,也是对我即将步入社会、走向工作岗位前的一次考验与检查。在这三个月里,我得到了巨大的收获。从对AVR单片机编程非常陌生,到现在了解很多相关知识;从不知何从下手,到现在能够流畅的使用软件工具;从一知半解的名词解释,到现在了解并且能够运用到实践中去,我都感到了很大的提升,体会到了创造的乐趣,也体会到了学习的意义,并且会在今后的生活中熟练运用,为将来的工作打下了良好的基础和极大的便利。光阴似箭,日月如棱。四年的时间,我们的自学能力在这里得提升,感谢所有的恩师是您赋予我们最有意义的收获,带领我们走进知识殿堂。我要感谢我的指导老师以及任课老师,感谢他们的教诲,让我知道在社会上懂得怎样去做好自己,端正自己的位置,为社会贡献出我自己的力量。最后再次感谢王老师对我的帮助,感谢帮助过我的同学,感谢所有的老师的悉心教诲。祝愿所有的老师生活一帆风顺,事业蒸蒸日上。36参考文献1朱飞,杨平AVR单片机C语言开发入门与典型实例北京人民邮电出版社,2009022张军,宋涛AVR单片机C语言程序设计实例精粹北京电子工业出版社,20093于正林AVR单片机原理及应用北京国防工业出版社,200914杨正忠,耿德根AVR单片机应用开发指南及实例精解北京中国电力出版社,20085周兴华AVR单片机C语言高级程序设计北京中国电力出版社,20086江志红AVR单片机系统开发实用案例精选北京北京航空航天大学出版社,201048ATMELATMEGA32DATASHEETOL2008HTTP/WWWATMELCOM9ATMELAVRSTUDIOUSERMANUALOL2009HTTP/WWWATMELCOM37附录A英文原文8BITMICROCONTROLLERWITH32KBYTESINSYSTEMPROGRAMMABLEFLASHATMEGA32,ATMEGA32LFEATURESHIGHPERFORMANCE,LOWPOWERAVR8BITMICROCONTROLLERADVANCEDRISCARCHITECTURE131POWERFULINSTRUCTIONSMOSTSINGLECLOCKCYCLEEXECUTION32X8GENERALPURPOSEWORKINGREGISTERSFULLYSTATICOPERATIONUPTO16MIPSTHROUGHPUTAT16MHZONCHIP2CYCLEMULTIPLIERNONVOLATILEPROGRAMANDDATAMEMORIES32KBYTESOFINSYSTEMSELFPROGRAMMABLEFLASHENDURANCE10,000WRITE/ERASECYCLESOPTIONALBOOTCODESECTIONWITHINDEPENDENTLOCKBITSINSYSTEMPROGRAMMINGBYONCHIPBOOTPROGRAMTRUEREADWHILEWRITEOPERATION1024BYTESEEPROMENDURANCE100,000WRITE/ERASECYCLES2KBYTEINTERNALSRAMPROGRAMMINGLOCKFORSOFTWARESECURITYJTAG(IEEESTD11491COMPLIANT)INTERFACEBOUNDARYSCANCAPABILITIESACCORDINGTOTHEJTAGSTANDARDEXTENSIVEONCHIPDEBUGSUPPORTPROGRAMMINGOFFLASH,EEPROM,FUSES,ANDLOCKBITSTHROUGHTHEJTAGINTERFACEPERIPHERALFEATURESTWO8BITTIMER/COUNTERSWITHSEPARATEPRESCALERSANDCOMPAREMODESONE16BITTIMER/COUNTERWITHSEPARATEPRESCALER,COMPAREMODE,ANDCAPTUREMODE38REALTIMECOUNTERWITHSEPARATEOSCILLATORFOURPWMCHANNELS8CHANNEL,10BITADC8SINGLEENDEDCHANNELS7DIFFERENTIALCHANNELSINTQFPPACKAGEONLY2DIFFERENTIALCHANNELSWITHPROGRAMMABLEGAINAT1X,10X,OR200XBYTEORIENTEDTWOWIRESERIALINTERFACEPROGRAMMABLESERIALUSARTMASTER/SLAVESPISERIALINTERFACEPROGRAMMABLEWATCHDOGTIMERWITHSEPARATEONCHIPOSCILLATORONCHIPANALOGCOMPARATORSPECIALMICROCONTROLLERFEATURESPOWERONRESETANDPROGRAMMABLEBROWNOUTDETECTIONINTERNALCALIBRATEDRCOSCILLATOREXTERNALANDINTERNALINTERRUPTSOURCESSIXSLEEPMODESIDLE,ADCNOISEREDUCTION,POWERSAVE,POWERDOWN,STANDBYANDEXTENDEDSTANDBYI/OANDPACKAGES32PROGRAMMABLEI/OLINES40PINPDIP,44LEADTQFP,AND44PADMLFOPERATINGVOLTAGES2755VFORATMEGA32L4555VFORATMEGA32SPEEDGRADES08MHZFORATMEGA32L016MHZFORATMEGA32POWERCONSUMPTIONAT1MHZ,3V,25CFORATMEGA32LACTIVE11MAIDLEMODE035MAPOWERDOWNMODEINCLUDEDEFINEPS2_CLK0X08DEFINEPS2_DATA0X10DEFINEPS2_DIRECTDDRDEFINEPS2_OUTPORTDDEFINEPS2_INPINDUNSIGNEDCHARPARART_BIT0UNSIGNEDCHARLAST_SEND0VOIDDELAY10US(UNSIGNEDINTTIMERS)UNSIGNEDCHARIWHILE(TIMERS)TIMERSFOR(I0I1UCTEMP0X01SEND_BITPS2(UCTEMPDELAY10US(1)62PS2_OUT|PS2_DATADELAY10US(2)PS2_OUTFOR(J0J1READ_DAT|READ_BITPS2()CHECK_PCHECK_PREAD_DATPARART_BITREAD_BITPS2()IF(CHECK_PIF(PARART_BIT)PARART_BIT0X01CHECK_PREAD_BITPS2()PS2_OUT|(PS2_DATA)PS2_DIRECT|(PS2_DATA)64DELAY10US(2)PS2_OUTDELAY10US(1)PS2_OUTDELAY10US(5)PS2_OUT|PS2_CLKDELAY10US(5)PS2_OUT|(PS2_CLKPS2_DATA)PS2_DIRECTRETURNREAD_DATUNSIGNEDCHARCHECK_READS(VOID)IF(PS2_INELSERETURN0VOIDREAD_SETTINGDAT(VOID)UNSIGNEDINTTIMERS_D0UNSIGNEDCHA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代教育技术对生物学教学进阶的影响与应用
- 推进危险住房改造实施方案
- 推动消费基础设施改造升级实施方案
- 旅游业推动农民增收的路径与影响
- 建筑施工企业金税四期下的风险分析与应对
- 加强建设用地土壤污染风险管控和修复实施方案
- 2024年内蒙古汇能控股集这一招聘真题
- 昆明市卫生健康委员会直属事业单位招聘笔试真题2024
- 广元市中医医院招聘笔试真题2024
- 2024年烟草宁夏公司笔试试题及答案
- 2025年高考全国二卷数学高考真题解析 含参考答案
- 2025年日历表全年(打印版)完整清新每月一张
- 2024年浙江省中考数学试题及答案
- MOOC 学术英语写作-东南大学 中国大学慕课答案
- WNS锅炉产品制造工艺检验流程卡
- 稀土产业园建设项目建议书(参考范文)
- Q∕GDW 12166-2021 换流站直流类设备质量评级技术导则
- 天津市成人高等教育毕业生登记表
- 型锅炉高硫无烟煤烟气袋式除尘湿式脱硫系统设计
- 《千克、克、吨》知识点归纳
- Z3040摇臂钻床课程设计
评论
0/150
提交评论