




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于JTAGICE的AVR单片机开发系统的软件设计1基于JTAGICE的AVR单片机开发系统的软件设计摘要本课题介绍基于JTAGICE的AVR单片机开发系统的软件设计。系统采用C语言编程方法。课题以自主研发的AVR单片机开发平台为基础。使用了ICCAVR、AVRSTUDIO和串口调试等软件,为系统各个模块及整体开发程序,进而讲述了本系统的各项功能。其中串口调试软件是使用VC自主开发。整个开发平台有显示、按键、ADC、DAC、蜂鸣器、红外、串行通信、I2C通信、SPI通信等模块。各个模块都编写有相应的例程。通过这些例程结合开发系统可以很容易地学会AVR的各种功能。另外,在学会各个模块化功能的基础上,编写了一个开发系统整体程序。把系统上面所有的资源尽量都用上,使读者对此系统有更深入的了解。经过对此AVR单片机开发系统的讲解,读者会对中高档单片机有一个深刻的了解,对以后工作或学习ARM等更高端产品都会有很大帮助。在以后的推广中,可以替代51单片机的位置。使用户在单片机领域提高一个档次。关键词AVR单片机;ICCAVR;AVRSTUDIO;开发平台;串口调试基于JTAGICE的AVR单片机开发系统的软件设计2THEAVRJTAGICEBASEDMICROCONTROLLERDEVELOPMENTSYSTEMSOFTWAREDESIGNAUTOMATIONSPECIALTYZHANGZHAOWEIABSTRACTTHISTOPICDESCRIBESTHEAVRJTAGICEBASEDMICROCONTROLLERDEVELOPMENTSYSTEMSOFTWAREDESIGNSYSTEMUSESTHECLANGUAGEPROGRAMMINGSUBJECTTOINDEPENDENTRESEARCHANDDEVELOPMENTOFTHEAVRMICROCONTROLLERDEVELOPMENTPLATFORMUSETHEICCAVR,AVRSTUDIOANDSERIALDEBUGGINGSOFTWAREMODULESFORTHESYSTEMANDTHEOVERALLDEVELOPMENTPROCESS,ANDTHENDESCRIBEDTHEFEATURESOFTHISSYSTEMONESERIALPORTDEBUGGINGSOFTWAREISDEVELOPEDUSINGVCSHOWINGTHEENTIREDEVELOPMENTPLATFORM,BUTTONS,ADC,DAC,BUZZERS,INFRARED,SERIALCOMMUNICATION,I2CCOMMUNICATION,SPICOMMUNICATIONMODULETHEPREPARATIONOFEACHMODULEHASACORRESPONDINGROUTINEDEVELOPMENTSYSTEMTHROUGHTHECOMBINATIONOFTHESEROUTINESCANEASILYLEARNVARIOUSFUNCTIONSOFAVRINADDITION,LEARNTHEVARIOUSMODULARFEATURESBASEDONTHEPREPARATIONOFADEVELOPMENTSYSTEMASAWHOLEPROGRAMTHESYSTEMALLOFTHEABOVERESOURCESHAVETOSPENDASMUCHASPOSSIBLE,SOTHATREADERSHAVEADEEPERUNDERSTANDINGOFTHESYSTEMAFTERTHISBRIEFAVRMICROCONTROLLERDEVELOPMENTSYSTEM,HIGHGRADEREADERSWILLHAVEAPROFOUNDUNDERSTANDINGOFMICROCONTROLLER,AFTERWORKORSTUDYONARMANDOTHERMOREHIGHENDPRODUCTSWILLBEOFGREATHELPPROMOTIONINTHEFUTURE,YOUCANREPLACE51SINGLECHIPLOCATIONALLOWSTHEUSERTOIMPROVEAGRADEINTHESCMAREAKEYWORDSAVRMICROCONTROLLERICCAVRAVRSTUDIODEVELOPMENTPLATFORMSERIALDEBUG基于JTAGICE的AVR单片机开发系统的软件设计3目录1引言111课题背景及意义112国内外研究现状113论文组织结构213本章小结22关键技术分析221系统所用到的软件介绍222ICCAVR软件介绍223AVRSTUDIO软件介绍524串口调试软件的介绍825本章小结93系统主要功能模块设计931系统包含的模块932按键扫描程序1033模数转换(ADC)程序1134数模转换程序113512864液晶程序123624C02IIC通信协议程序1237串口通信程序1438本章小结154系统软件架构1541系统整体程序12864液晶显示1542系统整体程序1602液晶显示1743本章小结185系统测试1851系统测试工具1852系统测试方法及分析1953本章小结19结束语20参考文献21基于JTAGICE的AVR单片机开发系统的软件设计4附录22致谢29基于JTAGICE的AVR单片机开发系统的软件设计11引言11课题背景及意义国内高等院校的单片机教学与研究已经走过了20多年的历程从最早的Z80单片机到MCS51的流行;从8位AVR单片机32位ARM的推广演变;从人工编译到紫外线擦除EPROM;从ISP在线编程到计算机模拟仿真。而目前大部分学校开设的“单片机原理及嵌入式应用”一类的课程还是以20世纪80年代开始流行的MCS51系列单片机为蓝本,以汇编语言(或C语言)为编程工具,以并行扩展为核心,讲述单片机的接口技术及单片机的嵌入式应用。尽管MCS51在实际应用中还占据着相当大的市场,但随着微电子技术和信息技术的迅猛发展,以及各种新型数据传输接口技术的出现和新器件的推出,传统的MCS51由于自身结构原因,在数据通信和系统扩展的能力方面开始显得捉襟见肘,与各种新技术的发展和应用产生脱节。AVR是最近10年见发展起来的新型的、基于增强型RISC(精简指令集)结构的单片机。AVR在运行速度,内存容量,内部功能模块的集成化(SOC),以串行接口为主的外围扩展,适合使用高级语言编程,以及在开发技术和仿真调试技术的应用等诸多方面都比MCS51先进,比较充分和全面地代表了当前8位单片机和嵌入式应用技术的发展方向。因此,一个好的开发平台可以让人们更全面、更容易的了解和学习AVR单片机。本课题研究出的SMART开发系统,体积小,携带方便,内容丰富,经济实用,而且对以后的工作和学习高端产品会有很大帮助。12国内外研究现状在国内,1999年ATMEL公司与华东师范大学电子系合作,建立了国内第一个AVR实验室,并首次在高校中开设了AVR课程。然而AVR相关资料的翻译、编辑、出版花费了大量的时间。以至于到目前为止,国内大多数高校还在以MCS51系列单片机为蓝本,引领学生进入单片机领域。在国外,AVR单片机由ATMEL公司于1997年强势推出后,很快就得到了市场的认可,并迅速推广开来,成为MSC51强有力的竞争者。与此同时,国外的许多高校,如美国的麻省理工学院、耶鲁大学工程系、康奈尔大学、加拿大的多伦多计算机大学工程系等,也纷纷跟进市场需求,更新课程内容体系,在开设的相关课程中选择和使用AVR。在国内虽然也有AVR开发系统,但并没有得到推广。本课题研究的开发系统集合相应功能的前提下,做到了真正的SMART。在国内产品中是最小、最高效的一个开发系统。基于JTAGICE的AVR单片机开发系统的软件设计213论文组织结构论文分五部分介绍整个设计过程第一部分主要介绍课题来源和研究的现实意义;国内外与课题类似项目的研究状况;概述论文的整体结构和各章节内容要点。第二部分结合图示,讲解各种软件的使用方法。第三部分主要采用程序流程图的方式,讲述开发系统上各个模块的编程方法。第四部分采用程序流程图的方式,介绍了开发系统整体程序。第五部分介绍了系统的测试与实现过程。13本章小结本章主要介绍了课题研究的背景和意义、国内外的研究现状以及论文的组织结构。随着时代的发展,科技的进步,AVR单片机的广泛推广。基于AVR的开发系统正逐步体现出了其价值。下面对本课题关键技术进行分析。2关键技术分析21系统所用到的软件介绍本系统主要用到三个软件,分别是ICCAVR、AVRSTUDIO和串口调试软件。ICCAVR是一个编程软件,用来编写系统程序。支持汇编和C语言,本课题以C语言为主讲述ICCAVR使用方法。AVRSTUDIO为下载调试软件,结合JTAG仿真器,可以在线调试,是使用者能够清楚程序每一步运行的情况,加深使用者对AVR内部运行机制的了解。串口调试软件是在VC平台上开发后使用INSTALLSHIELD2008打包生成的应用程序。主要用于串口调试实验。(本课题主要研究AVR单片机开发平台,所以对VC及INSTALLSHIELD2008软件不做过多介绍。)22ICCAVR软件介绍自ATMEL的AT90系列单片机诞生以来,有很多第三方厂商为AT90系列开发了用于程序开发的C语言工具。ATMEL公司推荐的第三方C编译器有(1)IAREMBEDDEDWORKBENC(2)IMAGECRAFTICCAVR/ICCTINY(3)GNUCCOMPILER(4)CODEVIDIONCCOMPILER1本课题推荐IMAGECRAFT的ICCAVR编译器,理由有一下几点基于JTAGICE的AVR单片机开发系统的软件设计3(1)免费提供30天的试用版软件,可以生产烧录文件,而IAR免费提供的使用版软件,只生产调试文件,不能生产烧录软件。而且网上有许多对ICCAVR的破解方法,可以长期使用(对于学生推荐使用,对于其他人建议使用正版软件);(2)功能适合,使用方便,技术支援好;(3)不端增加新功能模块,如单总线,SPI,UART,IIC总线,LCD,LED等;IMAGECRAFT的ICCAVR是一种使用符合ANSI标准的C语言来开发微控制器(MCU)程序的一个工具,它有以下几个主要特点ICCAVR是一个综合了编译器和工程管理器的集成工作环境(IDE),其可在WINDOWS9X/NT/XP下工作。源文件全部被组织到工程中,文件的编译和工程的构筑也在这个环境中完成。编译错误显示在状态窗口中,并且当你用鼠标单击编译错误时,光标会自动跳转到编译窗口中起错误的那一行。这个工程管理器还能直接产生您希望得到的可以直接使用的INTELHEX格式文件,INTELHEX格式文件可被大多数的编程器所支持,用于下载程序到芯片中去。ICCAVR是一个32位的程序,支持长文件名2,3。ICCAVR有一个强大的应用程序生成器(APPLICATIONBUILDER)功能,让你在对AVR内部寄存器和相应配置不太熟悉的情况下,快速地编写程序。以图形化界面选择式配置,有软件自动生成代码。对于项目开发来说,大大的缩短了开发时间。对于ICCAVR的安装可参考一般程序的安装步骤,下面介绍ICCAVR的界面以及使用方法。图1ICCAVR631版本的窗口如图1,ICCAVR编程界面主要分为5部分。基于JTAGICE的AVR单片机开发系统的软件设计4第一部分为菜单项;第二部分为快捷菜单图标;第三部分为程序编辑区;第四部分为编辑状态显示栏;第五部分为文件列表框;上文已经提到应用程序生成器(APPLICATIONBUILDER),这个功能对于刚接触AVR的人有用。使用此功能有两种方法第一种在菜单项中选TOOLSAPPLICATIONBUILDER。第二种在快捷菜单图标栏中点击图标。会弹出图2视图框。图2应用程序生成器窗口如图2为应用程序生成器窗口,最上面有CPU、PORTS、TIMER0、TIMER1、TIMER2、UART、SPI、ANALOG标签。(1)在CPU标签下可以选择CPU类型、晶振、看门狗、中断、EEPROM等功能,特别注意,当选择不共的CPU时,后面相关配置的标签中的内容会不一样,此处选择M16;(2)在PORTS标签下可以配置IO口的输入输出状态,以及是否带上拉电阻等功能;基于JTAGICE的AVR单片机开发系统的软件设计5(3)在TIMER0标签下可以配置定时器0的相关功能;(4)在TIMER1标签下可以配置定时器1的相关功能;(5)在TIMER2标签下可以配置定时器2的相关功能;(6)在UART标签下可以配置UART的相关功能;(7)在SPI标签下可以配置SPI和TWIIIC通信协议的相关功能;(8)在ANALOG标签下可以配置ADC的相关功能;注由于篇幅限制,不再给出每个标签下的视图。当上面个种功能配置好后,点击OPTIONSINCLUDE“MAIN”,然后点击OK。编译器就会自动生成程序的大致框架,只需填写相应的程序就可完成想要实现的功能,非常方便、快捷。23AVRSTUDIO软件介绍ATMELAVRTOOLS在线硬件仿真极大的减轻了设计者在程序查错时的负担。本开发系统配带的仿真器,可实现程序的在线调试,程序的每一步都可在开发板上看到效果。在调试程序问题时,明白每一步的功能一切尽在掌控中,可在一定程度上达到人机对话。通过该软件也可在电脑界面上显示单片机IO口的配置状态和实际状态,使设计高效便捷。对已经运行的TOOLS/AVRSTUDIO4进行如图3示操作。点击打开文件夹快捷方式,或着点击FILEOPENFILE。图3AVRSTUDIO初始界面软件会弹出如图4的界面(此界面为选择正确的文件夹路径后的界面)。选择正确文件夹的路径,找到要在线仿真的程序文件夹,在文件夹中选择COF文件并点击打开。即可把在线仿真的可执行文件添加到软件中。基于JTAGICE的AVR单片机开发系统的软件设计6图4AVRSTUDIO选择COF文件经过以上操作后会弹出新的对话框,直接点保存即可。如图5操作。图5生成并保存APS文件左侧调试方式窗口里选/JTAGICE,右侧设备窗口里选/ATMEGA16,然后点击FINISH完成操作。如图6操作所示。基于JTAGICE的AVR单片机开发系统的软件设计7图6选择仿真模式进入其工作界面,右上方的按钮为常用操作按钮,开始按钮,停止按钮,全速运行功能,暂停按钮,跳入单步运行,单个程序整体运行,跳出所在程序,将光标放在程序的某一位置,点击此按钮可直接运行到光标处,该按钮具有单步自动运行功能,中断按钮,取消所有中断该界面可以清晰的看出IO口电平分布情况,每运行一步骤,相应的端口都会产生相应的变化,界面的电位情况即为开发板上IO口电平分布。图中黄色箭头代表程序运行到的位置。如下图7所示。图7AVRSTUDIO进入在线仿真模式下的界面基于JTAGICE的AVR单片机开发系统的软件设计8特别注意的一点是,在使用JTAGICE在线仿真前,必须把硬件连接好,否则将无法进入在线仿真界面。正确的连接方法如图8所示。图8JTAGICE的正确连接图24串口调试软件的介绍本课题研究的开发系统,摒弃了传统的串口模式,使用PL2303将串口转换为USB口后与PC进行通信。大大缩小了开发平台的体积。使开发平台达到功能丰富,但体积更小的目的。在做串口实验时,需要一个串口调试助手来帮住我们。通过自学,在VC环境下成功开发出了一个属于自己的串口调试软件4,5,6。下图9为自主研发的串口调试软件界面。图9串口调试软件界面基于JTAGICE的AVR单片机开发系统的软件设计9此串口调试软件有端口选择、波特率选择、奇偶校验、数据位、停止位等串口调试的基本设置和状态显示(在最下面STATUS后显示以上选择的状态)。有一个显示区和一个数据输入区。还包括发送接收模式的选择(十六进制还是字符型,默认为字符型)。这些都是一般串口软件所有的功能。本软件还有显示区数据保持功能,可以让串口接收到大量数据后以TXT格式保存到设置的目录中。默认目录为CCOMDATA。点击更改按钮,可以改变其保存目录。此软件还可以自动发送数据,并可设置起发送周期。还可以发送文件,把大量数据保持在文本文件中,以文件的方式发送。这些功能在一些项目调试中将会起到很大的作用。25本章小结本章主要讲述了本课题所需用到的各种软件及其操作方法,从各种软件的使用可以看出本开发系统编程方便,调试简单,应用性强。了解了变成软件的功能后,我们再来了解一下系统各个主要功能模块及其功能。3系统主要功能模块设计31系统包含的模块下图10为开发平台各模块示意图。图10AVR开发平台模块示意图开发平台上可以做的实验有很多。如显示部分有四位数码管、1602液晶显示、基于JTAGICE的AVR单片机开发系统的软件设计1012862液晶显示、8个发光二极管显示。还有ADC模数转换实验,红外接收实验,按键扫描实验,24C02存储器可练习IIC通信,93C46可练习SPI通信,USB口可用来为系统提供电源和串口通信实验,如图10所示。而且主控芯片ATMEGA16的4组IO口都有预留接口,可以通过杜邦线链接其他期间进行实验。总之,次开发平台可以做的实验有很多。由于篇幅的限制下面我简单介绍几个具有代表性模块程序。32按键扫描程序作为开发平台的核心控制器,AVR单片机就有丰富的输入输出接口。而本开发平台上面,最主要的输入模块就是按键模块。此开发系统除了复位按键外有3行,2列按键。考虑到板子空间和功能使用,最终决定了只在开发平台上留下6个按键。这6个按键就可以做按键扫描程序,也可满足一定的功能应用7。图11矩阵按键原理图系统初始PD3,PD4输出为低电平PD5,PD6,PD7是否都为高电平PD5,PD6,PD7输出低电平PD3,PD4配置为输出模式PD5,PD6,PD7配置为输入模式PD3,PD4配置为输入模式PD5,PD6,PD7配置为输出模式读取PD3,PD4IO口高低电平状态结合判断PD5PD6,PD7的IO状态和PD3,PD4的IO状态返回按键值YN图12矩阵按键扫描程序流程图基于JTAGICE的AVR单片机开发系统的软件设计11如图11为开发平台上的32矩阵按键原理图,图12为程序流程图8。以上程序流程图是一般的按键扫描流程图,如需有特殊功能(如加按键去抖动功能,按键释放功能),可另行修改。33模数转换(ADC)程序作为开发平台的另一个重要的输入模块,ADC模块用来实现数模转换实验。它主要是使用AVR单片机的内部ADC对电压进行检测。然后在系统内部进行相应处理。对于ADC的编程很简单,参考22ICCAVR软件介绍。使用ICCAVR的应用程序生成器功能。在ANALOG标签下对ADC进行相应配置后,可以让软件自动生产程序框架,然后在主函数中编写相应换算程序即可9。下图13为ADC程序流程图。系统初始配置检测ADC的值对ADC返回值,进行换算,并进行其他操作(如显示)图13ADC程序流程图34数模转换程序与模数转换相对应,虽然AVR单片机内部没有专门的DAC模块,但我们可以通过其定时器产生PWM波来模拟DAC的效果。从而使其相当于既有ADC功能又有DAC功能。关于DAC程序可以参考定时器的应用。在ICCAVR的APPLICATIONBUILDER功能中,把定时器配置成PWM模式,即可让软件自动生成大致程序框架,让后填写自己要要实现的其它程序即可。基于JTAGICE的AVR单片机开发系统的软件设计123512864液晶程序12864作为一款图形液晶,既可以显示汉字,有可以显示图形,而且价格便宜,使用范围广。想要熟练掌握12864液晶,就要认真学习12864数据手册,在了解其时序、指令、及数据传输方式后,可以编写驱动程序。当然由于目前12864已经是一款非常成熟的产品,其驱动程序在网上很容易找到。要想快速使用12864,可以直接导入其驱动程序到工程中,并进行相应IO口是配置,然后就可直接对12864进行操作,让其显示你想要显示的结果了10。如图14所示为12864程序路程图。程序初始化配置12864初始化配置把想要显示的内容传入12864结束WHILE(1)等待图1412864程序流程图3624C02IIC通信协议程序(1)IIC总线是PHILIPS公司提出的串行总线,但现在实际上已成为一个国际标准,在超过100种不同的IC上实现并得到超过50家公司的许可。它只用两根总线(时钟线SCL和数据线SDA)实现了多主的总线连接。它有3种模式标准模式(100KBITS/S),快速模式(400KBITS/S)和高速模式(34MBITS/S),寻址方式有7位和10位方式。(2)SCL和SDA都是双向线路,都通过一个上拉电阻连接到正的电源电压,如下图15所示。当总线空闲时这两条线路都是高电平。基于JTAGICE的AVR单片机开发系统的软件设计13图15IIC通信总线图完整的IIC数据传输如下图16所示图16IIC数据传输时序图它包括起始条件、地址传送、数据传送、响应位、停止条件组成。起始条件是指在SCL线是高电平时,SDA从高电平向低电平切换。停止条件是指当SCL是高电平时,SDA从电平向高电平切换。接下来的一个字节包含7位地址和一位读/写控制位。接下来是主发到从或从发到主的数据,紧跟着的是响应位,由接收数据的设备发出。最后是停止位表示数据传输的完成。整个过程中传输的1或0是在SCL为高时SDA的电平决定的。而SDA线的高或低电平状态只有在SCL为低电平时才能改变11。(3)三种典型的数据传输模式。A主机只发送数据给从机指定地址。B主机寻址从机,只从从机读取数据。C以上两种的复合模式,即主机既想向从机写数据又需要从机反馈数据。三种模式的示意图如下图17、18、19、20所示基于JTAGICE的AVR单片机开发系统的软件设计14图17主机只发送数据图18主机只接收数据图19主机即发送又接收数据图20以上三个图中图示及字母表示的含义对于24C02的程序主要是熟练IIC通信协议,只要按照图的时序,就可以对24C02的存储空间进行读写12。这里不在专门画其程序流程图。37串口通信程序串口通信是大多数产品和PC间的通信方式。本课题专门为串口通信设计了串口调试软件。串口程序的编写可以使用ICCAVR的APPLICATIONBUILDER功能,对串口进行配置后,让软件自动生产中断函数,自动计算相应波特率下的初始配置。不用在翻书寻找其需要配置的寄存器,计算波特率的公式13。如下图21所示,配置波特率为9600,数据位为8位,无奇偶校验,使用接收和发送中断。基于JTAGICE的AVR单片机开发系统的软件设计15图21UART串行通信的配置38本章小结本章讲述了各个功能模块的功能及其变成方法。以程序流程图的方式演示了按键扫描模块、数模转换、12864液晶等几个典型的程序编写思路。从这几个模块程序的编写方法上可以看出其他模块的使用方法。本章还讲述了IIC协议和串行通信协议的使用方法,为MCU与其外设通信指明了方向。下面介绍系统整体程序的架构和实现方法。4系统软件架构本系统程序集合了开发系统上大部分功能。由于数码管显示、1602液晶显示、12864液晶显示公用I/O口。所以,显示部分只能有一个来显示。整板测试分为两种,一种为开发板12864液晶,一种为开发板1602液晶。41系统整体程序12864液晶显示开发板12864功能介绍上电初始化,数码管显示时钟,从30分30秒开始。12864上显示南阳理工学院和校徽。(注意请把12864与开发板连接,若不连接会造成初始化不能通过,整个程序无法运行)。如图22是12864整体程序流程图。按下按键1数码管显示时钟。基于JTAGICE的AVR单片机开发系统的软件设计16按下按键212864液晶显示南阳理工学院和校徽。按下按键3清屏液晶。按下按键4在数码管上显示红外键值。按下按键5在12864上显示红外键值(关闭数码管)(注意如果液晶上显示右校徽,按下此键时,中间的四个位会显示按键值,而把原来的部分图形覆盖,所以建议按下此键之前,对液晶清屏)。按下按键6循环播放两首歌曲(生日快乐歌,一千年以后)。系统初始化让12864显示校徽数码管显示初始化时间(有定时器产生)按键扫描判断是那个按键按下按键去抖动YN是按键1吗数码管显示时钟Y是按键2吗N是按键3吗是按键4吗12864液晶显示南阳理工学院和校徽是按键4吗是按键4吗液晶清平NYY数码管显示红外键值在12864上显示红外键值循环播放生日快乐和一千年以后NYNYNY图22整体程序12864显示基于JTAGICE的AVR单片机开发系统的软件设计1742系统整体程序1602液晶显示开发板1602功能介绍上电初始化,数码管显示时钟,从30分30秒开始。1602上显示WELCOMTONANYANGLIGONG。(注意请把1602与开发板链接,若不链接会造成初始化不能通过,整个程序无法运行)。如图23所示,是1602程序流程图。按下按键1数码管显示时钟。按下按键21602液晶显示WELCOMTONANYANGLIGONG。按下按键3清屏液晶。按下按键4在数码管上显示红外键值。按下按键5循环播放生日快乐歌。按下按键6循环播放一千年以后。系统初始化在1602上显示WELCOMETONANYANGLIGONG数码管显示初始化时间(有定时器产生)按键扫描判断是那个按键按下按键去抖动YN是按键1吗数码管显示时钟Y是按键2吗N是按键3吗是按键4吗1602上显示WELCOMETONANYANGLIGONG是按键4吗是按键4吗液晶清平NYY数码管显示红外键值循环播放生日快乐歌循环播放一千年以后NYNYNY图23整体程序1602显示基于JTAGICE的AVR单片机开发系统的软件设计1843本章小结通过整体程序的编写,使我对AVR单片机有了很深刻的认识,同时对软件的操作也更加得心应手。对整个系统的程序的编写有了一些心得体会。在编写一个整体项目程序时,如上面的两个整体程序。要先规划AVR内部资源。如ATMEGA16中有3个定时器,每个定时器都用来做什么,各个I/O口都用来做什么。还有都用到了哪些功能,哪些中断。这些都确定好后,可以使用ICCAVR的APPLICATIONBUILDER功能生成系统程序框架,让后把这个框架填充起来。这样可以省去很多不必要的麻烦,同时也节省了很多开发时间。在程序编写过程中要增加某个功能,而一开始的时候没有规划,也可以APPLICATIONBUILDER的PREVIEW功能获取该功能的相关配置,并把其复制到你的工程文件中。对于一个具有很多功能的程序,不要感觉无从下手。其实一个功能强大的程序都是由许多小程序堆积而成的。从最简单的功能开始写起,一步一步往上添加功能。到最后,所有功能就全部实现了。遇到问题多思考,查找资料,逛逛论坛。不要因为一个现象、问题自己没见过就觉得很奇怪,无法解决。任何问题都是有原因的,都会有办法解决的。5系统测试51系统测试工具(1)数字万用表DT9205本仪表以大规模集成电路、双积分A/D模/数转换器为核心,配以全功能过载保护电路,可用来测量直流和交流电压、电流、电阻、电容、二极管、三极管、温度、频率、电路通断等。精确度读数第四位上的字数。注意括号内的第2部分,为精确度的修正值,应放在该档位的最后一位数字上。精确度保证期为1年。环境温度230C50C;相对湿度75。(2)SMARTAVR开发平台A以ATMEGA16芯片为核心主控制器;B显示部分由4个数码管,一个1602液晶接口,一个12864液晶接口组成,使得显示的方案可任意组合;C其他资源具有键盘模块,蜂鸣器,红外显示,模数转换,IIC通信方式的存储器,SPI通信方式的存储器,复位电路,JTAG接口,ISP接口,JTAG仿真器;(3)自制直流稳压电源输入电压交流220V,5060HZ,允许电压变化10输出电压直流024V,01A,可调基于JTAGICE的AVR单片机开发系统的软件设计19调整范围001V电压稳定度5103负载稳定度5103输出文波1MV52系统测试方法及分析整个开发板硬件完成后软件的测试主要分两方面。一方面是各个模块的编程调试。另一方面是整体程序的编程调试。各模块是测试思想为借助数码管的显示功能,来判断各个模块的功能是否实现。例如,键盘可以通过编码在数码管上显示,按下哪个按键数码管就显示几。红外接收到的数据经过处理后也可在数码管上显示出来。模数转换后的数值经过处理后可在数码管上显示电压值。这个电压值在测试的时候,与用万用表测的电压值有一定的偏差(显示值比测得的值大)。经过分析,这个现象的原因是因为使用了电脑上面的USB给开发平台提供电源。其带负载时的电压会下降,而模数转换显示的数值是以5V电压为标准转换的。若换上自制的带负载能力强的电源就会很准确了。当然除了使用数码管外还可以使用液晶,在液晶上显示相应的数据。也可通过八个发光二极管来表现各部分工作情况。整体程序的测试整体程序的测试首先通过不断的调试,完善各个功能。在功能实现的前提下,追求程序的稳定性,程序的执行效率。通过不端改善,整体程序可以按照前文所述的功能运行。特别注意的是此开发系统虽然可以使用计算机上的USB口直接供电,但一些对电压要求比较高的实验(如数模转换,模数转换实验)最好用带负载能力强的电源。这样会减少不必要的干扰,达到理想的效果。53本章小结本章主要介绍了系统测试所用到的工具、系统测试的方法。对以一个系统来说,软硬件是无法分割的,特别是在整体调试的过程中。软件的良好运行建立在硬件工作正常的前提下。硬件离开了软件也就没有了意义。在整体调试过程中,软件主要负责实现预定是功能,所以没有测试结果,只有最后工作正常系统。基于JTAGICE的AVR单片机开发系统的软件设计20结束语本开发系统基于ATMEGA16L单片机及其外围元器件配合JTAGICE仿真器的开发平台,板载模块有八个可控发光二极管,四个数码管、1602、12864液晶显示接口、32键盘、IIC总线电路、SPI总线电路、红外、蜂鸣器、USB转串口等电路,组成了一个功能强大的开发平台,开发了配套的JTAGICE仿真器,使软件开发周期缩短,成本降低。在如此完善的功能的前提下,做成了最小开发板。本系统有以下特点人机界面友好、体积小、灵活性好、稳定性高、下载程序方便、抗干扰能力强。在整个系统的开发,调试,整理中有如下几点心得(1)ICCAVR是一个功能强大的开发平台。特别是其应用程序生成器功能,可以使初学者找到自信,让学习变得简单。让开发项目的人节省开发时间,提高开发效率。(2)ICCAVRAVRSTUDIO的配合非常经典,ICCAVR的强大就不用多说,AVRSTUDIO可以结合JTAG仿真器,让程序在开发平台上的运行透明化。让使用者明白程序的每一步实现什么样的功能。让BUG无处藏身。(3)当然拥有强大的开发工具并不代表你就学会了所有东西。知识还是需要自己去认真琢磨研究才能参透。只有付出的越多,才能得到的越
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论