ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:166.47KB ,
资源ID:21197238      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21197238.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验IRQ0IRQ1IRQ2中断Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验IRQ0IRQ1IRQ2中断Word文档格式.docx

1、 掌握IRQ0、IRQ1、IRQ2中断的编程方法。【实验设备】 装有Windows系统和nSP? IDE集成开发环境的PC机一台,nSP?十六位单片机实验箱一个。 本实验用到的实验箱硬件模块为:SPCE061A核心及周边电路模块(包含32个I/O口),发光二极管电路模块。【实验要求】 编程要求:编写一个C语言程序。 实现功能: 打开并设置TimerA和TimerB定时器,并且开TimerA的IRQ1中断和TimerB的IRQ2中断,当有TimerA的IRQ1中断或者TimerB的IRQ2中断请求时,响应相应的中断服务程序,在中断服务中翻转I/O端口输出电平,以控制接在I/O端口的发光二极管的亮

2、灭。 实验现象:TimerA定时长度为2s,当进入TimerA的IRQ1中断后,翻转IOA口低四位输出电平以控制接在IOA低四位端口的发光二极管;TimerB定时长度为1s,当进入TimerB的IRQ2中断后,翻转IOB 口低四位输出电平以控制接在IOB 低四位端口的发光二极管。程序运行时,可以观察到接在IOA低四位端口的发光二极管亮灭的周期为4s,而接在IOB低四位端口的为2s【实验原理】【实验原理】IRQ0_fosc/1024、IRQ1_TMA、IRQ2_TMB中断源,通过写P_INT_Ctrl来允许中断,通过IRQ ON、INT IRQ或者INT FIQ,IRQ开总中断,其中IRQ ON

3、的功能是打开IRQ中断;INT IRQ的功能是打开IRQ中断,关闭FIQ中断;INT FIQ,IRQ的功能是打开FIQ和IRQ中断。IRQ1_TMA和IRQ2_TMB中断源分别是通过定时器A、定时器B产生的,当计数溢出时产生中断请求信号TA_TIMEOUT_INT或TB_TIMEOUT_INT,CPU响应后进入对应的中断服务子程序。中断控制寄存器的设置在本章实验九有详细说明,不再赘述。在本实验中,利用TimerA定时器定时一个固定长度时间,当定时时间到时产生溢出信号,进入TimerA的IRQ1中断IRQ1_TMA,翻转一次I/O口输出电平以控制接在对应I/O口的发光二极管,TimerA重新开始

4、计数,当计数到定时时间溢出再响应一次IRQ1_TMA中断,翻转一次IOA口低四位输出电平以控制接在IOA低四位端口的发光二极管,如此循环;同样,利用TimerB定时器定时一个固定长度时间,当定时时间到时溢出,进入TimerB的IRQ2中断IRQ2_TMB,翻转I/O口输出电平以控制接在对应I/O口的发光二极管。程序运行时,可以观察到接在I/O端口的发光二极管亮灭状态周期性变化。【硬件连接】IOA口低四位IOA03连接发光二极管D4D7,IOB口低四位IOB03连接发光二极管D8D11,即用一根排线将J16的第03号排针和IOA口低8位的第03号排针依次连接起来;用另一根排线将J16的第47号排

5、针和IO8口低8位的第03号排针依次连接起来。硬件连接图如图1-38。1. 主程序流程图 在主程序中,初始化 A 口、B 口为同相低电平输入口,设置定时器的计数初值和时钟源频率以确定定时器溢出频率(本实验中 TimerA 和 TimerB 的时钟源频率都选为 4096Hz,设置 TimerA 的定时时间为2s,设置 TimerB 的定时时间为 1s) ,开 IRQ0、IRQ1、IRQ2 中断。主程序流程图如图 1-41。2. 中断服务子程序流程图 IRQ0、IRQ1、IRQ2 中断服务子程序的流程图如图 1-42。IRQ1_TMA 中断中,先进行寄存器压栈保护,IOA 口低四位输出电平翻转,以

6、翻转 D4D7 四个发光二极管亮灭状态,清 IRQ1_TMA 中断标志,寄存器出栈,中断返回;IRQ1_TMB 中断中,同样先进行寄存器压栈保护,IOB 口低四位输出电平翻转,以翻转 D8D11 四个发光二极管亮灭状态,清 IRQ1_TMB 中断标志,寄存器出栈,中断返回;IRQ0_fosc/1024 中断中,先进行寄存器压栈保护,清 IRQ0_fosc/1024 中断标志,寄存器出栈,中断返回。 【实验步骤】 1. 建立一个新工程 ex10_asm_IRQ0_IRQ1_IRQ2,根据程序流程图编写程序。2. Rebuild All。3. 按照硬件连接图连接电路。4. 下载程序,运行。5. 观

7、察发光二极管的状态,分析是否与实验要求的相统一。源程序如下:/main.c#include SPCE061A.hint main(void)/设置IOA、IOB低四位为同相输出,初始为低电平,*P_IOA_Dir = 0x000f;/0000 0000 0000 1111*P_IOA_Attrib =0x000f;*P_IOA_Data = 0x0000;*P_IOB_Dir = 0x000f;*P_IOB_Attrib = 0x000f;*P_IOB_Data = 0x0000;/设置定时器A、B的属性*P_TimerA_Ctrl = C_TMA1_4KHz | C_TMA2_1;*P_Ti

8、merA_Data = 0xf000;/1=(1/4096)*(0xffff+1-x)*P_TimerB_Ctrl = C_TMB_4KHz;*P_TimerB_Data = 0xe000;/2=(1/4096)*(0xffff+1-x)*P_INT_Ctrl = C_IRQ0_PWM | C_IRQ1_TMA | C_IRQ2_TMB;/设置中断 三个中断或起来asm(INT IRQ);/开IRQ中断while (1)*P_Watchdog_Clear = C_WDTCLR; return 0;/isr.cvoid BREAK(void) _attribute_ (ISR);void FIQ

9、(void) _attribute_ (ISR);void IRQ0(void) _attribute_ (ISR);void IRQ1(void) _attribute_ (ISR);void IRQ2(void) _attribute_ (ISR);void IRQ3(void) _attribute_ (ISR);void IRQ4(void) _attribute_ (ISR);void IRQ5(void) _attribute_ (ISR);void IRQ6(void) _attribute_ (ISR);void IRQ7(void) _attribute_ (ISR);voi

10、d BREAK(void)/add your code herevoid FIQ(void)void IRQ0(void)if (*P_INT_Ctrl & C_IRQ0_PWM )/判断是不是中断*P_INT_Clear = C_IRQ0_PWM;/清出中断void IRQ1(void)/对应定时器Aunsigned int uiData = 0; C_IRQ1_TMA )uiData = *P_IOA_Data;/读取A口的灯uiData = 0x000f;/0000 0000 0000 1111 =:表异或,与全1异或为反,与全0异或为同*P_IOA_Data = uiData;*P_I

11、NT_Clear = C_IRQ1_TMA;void IRQ2(void) C_IRQ2_TMB )uiData = *P_IOB_Data;/读取B口的灯*P_IOB_Data = uiData;*P_INT_Clear = C_IRQ2_TMB;void IRQ3(void)void IRQ4(void)void IRQ5(void)void IRQ6(void)void IRQ7(void)1、程序编写:实验箱硬件连接图:实验现象:根据设置不同的中断频率信号,左右各四个LED灯交替闪烁的频率就有所不同,由此得到中断设置的具体运用.【实验总结】1、实验中遇到的问题及解决办法答:1、问题:对

12、不同中断信号频率的设置需要符合程序运行的方式,LED灯的闪烁频率太快时就无法看见其在闪烁,交替闪烁的快慢也会随之变化,在程序的编写上要严格按照规则编写,否则就会出错,因此在实验中一定要弄清楚其缘由。2、解决方法:通过实际的计算测量。老师的引导,同学之间的相互交流沟通学习,一步步的完成了此实验,并在老师的详细讲解下熟悉了个窗口的功能及硬件的了解和正确的连接,做出与实验目的相符合的结果。2、自己在考虑本实验时的想法及实现情况对该实验的设计上,要追求用最简洁的程序代码编写,逻辑清晰明了,步骤少,条理清楚,用高级语言(C语言)完成编写,经过事先的计算测量,得到能肉眼观察的范围后再导入硬件进行运算展示。并在实验箱上看到LED等在不同设定频率下的闪烁情况,记录数据是否与理论相符合,最后完成本次实验。继续阅读

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1