下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 AVR单片机WinAVR及Proteus仿真外部中断

AVR单片机WinAVR及Proteus仿真外部中断.doc

AVR单片机WinAVR及Proteus仿真外部中断

陈幽茜
2017-10-16 0人阅读 举报 0 0 暂无简介

简介:本文档为《AVR单片机WinAVR及Proteus仿真外部中断doc》,可适用于综合领域

AVR单片机WinAVR及Proteus仿真外部中断本文主要以AVR单片机atmega的外部中断的在Proteus上仿真的例子介单AVR单片机C单言境单单单单WinAVR的使用如何包含文件,如何写中断服程序,如何配置生单单单单单单单单单单单单单单单单单单单单单单hex文件,,及其在Proteus上的仿真如何建立仿真,入单单单单单单单单单单单单单hex文件行仿真,单单单单单本例子完全单PC上件仿真所以不单单单单单单单单单单单单单单单单单及硬件,其全部所需件清如下:涉WinAVR、Proteus、atmegaDatasheet单单单单单单单单单单单单单单单单单单单单单单单单件的下安装,参考网上其他教程,有很多,很容易的。atmega单单单单片机的数据手册网上中英文的版本也都可以下到。下是笔者所使用的件截,不同版本可能稍有差异,但基本不影响使用。单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单下面我将在假您已安装好单单单单单单单个件当然目前您不需要知道它单单单单单单单单单单单单单单单是怎用的,,并且片机和单单单单单单单单单单单单C单单单单单单单单单单单言有基本了解的基上行例程的演示。let'sbegin。首先要明确我要完成的功能:片机始工作后,点亮单单单单单单单单单单单单单单单单单单单LED灯S,掉单单LED灯S,如此循单次,然后片机入无限循,等待外部按单单单单单单单单单单单单单单单单button按下,LED等再次点亮,当再次按下button单,LED等掉,如此循。单单单单单单单单接着画出要个功能的路,以便后仿真。单单单单单单单单单单单单单单单单单先在桌面建一个文件单HelloAVR,如。单单打件,单单单单单单单单个。在件界面上,右单单单单单单单单Place>Component>FromLibraries在Keywords里面入单单atmega,一个单单单单PIN管脚的片机放到上单单单单单单单同的方法,放置一个单单单单单单单单单LED灯,一个button,阻,容。单单单单单单放置POWER和GND单单完成,在文件HelloAVR下新建文件单Sim,保存在里单单单里用PB管脚来单单LED灯,芯片的数据手册或直接从中可以知道,外部中断单单单单单单单单单单单单单单单单单单单单单单单单INT,在PD管脚。而且Proteus的好是,里我片机画源的单单单单单单单单单单单单单单单麻也可以省去。单单单单单单单接下来要做的就是看数据手册和建立工程,程,的事了。单单单单单单单单单打单ProgrammersNotepadFile>New>Project新建工程HelloAVR,保存到HelloAVR文件单在工程下面建个文件单Sys、Drv、App、Makefile在HelloAVR文件下,建单单单单单mainc、avrextic、avrextih单个源代文件,些单单单单单单代什功能,我在程序中行了注,最重要的是参考芯片的手册。单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单其内容如下:mainc:#include<avrioh>通宏定,将包含单单单单单单单单单单iomph#include<avrinterrupth>包含中断函数的相函数定单单单单单单单单单#include<utildelayh>提供了个比准的延函数,自己得写就包含去单单单单单单单单单单单单单单单单单单#include"avrextih"自己写的外部中断的相函数的文件单单单单单单单单单单单intmain(void){unsignedchariDDRB|=(<<)PB此管脚外接LED灯for(i=i<i){PORTB|=(<<)PB置位点亮LED灯delayms()延单msfrom#include<utildelayh>PORTB=~(<<)PB清零掉单LED灯delayms()}ExintIint()初始化外部中断from#include"avrextih"sei()单全局中断from#include<avrinterrupth>while()无限循单return}***********************************************************************LED灯状志位,单单单单单代表目前LED灯状,单单单单代表LED灯目前状点亮单单单单unsignedcharledflg=ISR(INTvect)外部中断的中断服程序,单单单单INTvectfromiomph{EIFR=~(<<INTF)清除中断志位单单单delayms()延去掉干单单单单单if(!(PIND(<<)))确按按下单单单单单{if(==ledflg){PORTB=~(<<)ledflg=}else{PORTB|=(<<)ledflg=}}}avrextih:#ifndefAVREXTIH#defineAVREXTIH#include<avrioh>#include<avrinterrupth>#include<utildelayh>externvoidExintIint(void)#endifavrextiC:#include<avrextih>voidExintIint(void)外部中断初始化函数{DDRD=~(<<)MCUCR|=(<<PUD)PORTC|=(<<)上拉阻使能单单单单PORTC=~(<<)上拉阻禁止单单单单EICRA=(<<ISC)下降沿触单EIMSK=(<<INT)使能外部中断}将单个文件加入到工程文件中单文件iomph的位置是G:ProgramFilesWinAVRavrincludeavriomph,它包含了单个芯片外控制寄存器的地址映射和中断向量表,包含单单单单单单单单单单单单单单单单单单单单单来以后可以方便看拷寄存器和中断向量表。单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单单好源代后,就是了,跟一般的集成境有点不一,不仍旧是很好用的。先打个单单单MFile将它另存到HelloAVR下面,不要改它的名字,件只单单单单单Makefile单个名字,你若重命名了,单单单单单单单单单单单单单单单单单单单单单单得再改回来的。在另存之前,个界面下也可以做配置,可以配置完了再保存去,效果也是一的,单单单单单单单单单单单然后把它添加到工程文件单Makefile下,打单Makefile文件,行配置单单单单单单单单单单单单单单单单单单色字体是注,色和黑色的是配置。把MCU单改成atmagaFCPU就是AVR单单单单单单单单单单片机内核率,一般采用内部M的分系数单单单单单单单后,得到M,不单单单单单单里我直接M也可以。FORMATE代表出的格式,有单单单单单单单个可单单srec,ihex和binary,里用单单单ihex单出hex文件,用于proteus仿真TARGET代表你的main()函数所在源代文件的文件名,而且不需要再写单单单单单单单单单单单单单单单cOBJDIR是中生的文件,比如单单单单单单单单单单单单o和lst文件存放的目,单单表示当前工程的目,单单可以改成obj,把它放到当前工程下新建的obj文件下。它会自你建的,单单单单单单单单单单单单如果不存在。SRC代表你个工程包含的单单单单单单单C源文件,$(TARGET)c代表才的包含单单单单单main()函数的主文件,单单单单单单单在我需要包含avrextic单单单单单单单单单单个源文件,两者之用空格隔即可。avrextic和源文件同在工程直接目下直接写单单单单单avrextic,否单单单单单单单单单单单单单单就包含全路径是比保的做法,移单单单单单单单单单单单单的候要注意修改里。每个都有注表明它是干什的,有可以单单单单单单单单单单单单单单单单单单单单单单单单单单慢慢研究,里就只及到涉单单单单单单单单单单单单单单单单单几个就可以了。下面是配置好的然后点Tool下的MakeAll就会生成一单单单单单单单单单单单单单单单单单单单堆文件,其中就包括我需要的mainhex文件再点单MakeClean,所有生成的文件就会单单单单单单单单单单单单单单单单单单单单单单单单被消除干,省的看起来比乱,单在需要再MakeAll一次,以生需要的单单单单单mainhex打才画好的仿真,单单单单单单单单单单单单单单单单单单单单单单单单单单单左双片机出如下配置框,在ProgramFile一中加单单单单单才生成的mainhex,由于我采用单单单单单单M的CPU单单,故CLKDIV一要单单单单Unprogrammed,不要分,用内部单单单单单单单单M的RC振单单单单单单单单源,确后点OK。按左下角的黑色三角形就可以仿真啦。仿真的单单单单单单单单单候就可以按下那个button,看程序是否完成了有的功能。单单单单单单完成。

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/17

AVR单片机WinAVR及Proteus仿真外部中断

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利