AVR 实验二-中断

AVR 实验二-中断

ID:38192277

大小:42.50 KB

页数:3页

时间:2019-05-24

AVR 实验二-中断_第1页
AVR 实验二-中断_第2页
AVR 实验二-中断_第3页
资源描述:

《AVR 实验二-中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、(一)實驗目的:本實驗目的為讓使用者熟悉中斷的使用方法。(二)程式動作:在此實習單元中需要使用中斷。我們使用了Timer1的溢位中斷。因此再程式中一開始要有Timer1的溢位中斷副程式,其程式規格為:interrupt[TIM1_OVF]voidtimer1_overflow(void){中斷副程式}。其餘尚需注意的部分為主程式中各暫存器的設定:1.DDRB:設定PORTB的資料流向2.TCCR1:Timer1的各種設定。3.TCNT1:計時暫存器。在此設定中斷時間。4.TIFR:中斷旗標暫存器。在此設定清除中斷旗標。5.TIMSK:中斷遮罩

2、暫存器。在此致能溢位中斷。程式中設定了多支接腳為輸出並接上LED,每一顆LED因中斷時間的設定及計數值的不同而顯示不同的閃爍速度。(三)電路圖(四)程式碼#include#defineaaaPORTB.0//定義aaa為PB0#definebbbPORTB.1#definecccPORTB.2#definedddPORTB.3#defineeeePORTB.4intcounter0=5;intcounter1=100;intcounter2=10;intcounter3=2;interrupt[TIM1_OVF]voidt

3、imer1_overflow(void){TCNT1=0x10000-775;//775為每100us中斷一次(每數775次時的時間(為100us)剛好產生一次中斷)aaa=~aaa;//100us工作區;每100us,led反相(PB0)counter0--;if(counter0==0){bbb=~bbb;//0.5ms(500us)工作區counter1--;counter0=5;}if(counter1==0){ccc=~ccc;//50ms工作區counter2--;counter1=100;}if(counter2==0){ddd

4、=~ddd;//500ms(0.5s)工作區counter3--;counter2=10;}if(counter3==0){eee=~eee;//1s工作區counter3=2;}}voidmain(void){DDRB=0xff;//將PORTB設為輸出TCCR1A=0;//Timer1的模式設定TCCR1B=1;//設定Timer1的時鐘脈波=外部震盪TCNT1=0x10000-775;//775為每100us中斷一次TIFR=0;//清除Timer1中斷旗標TIMSK=0x04;//設定Timer1溢位中斷致能工作#asmsei//中斷

5、致能#endasmwhile(1);}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。