单片机中断技术实验报告`.doc

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机中断技术实验报告`

实验名称 姓名_ 学号_ 实验班号_ 21_ 机器号_ 实验目的 掌握单片机 了解MSP430G2553基本时钟模块的工作原理,掌握其控制方法; 掌握利用时钟信号和中断技术实现定时功能的方法 实验基本任务 1. 中断响应过程的理解 阅读下面 C 语言中断程序,说明程序 L4_int.c执行的流程和实现功能。上机实践,回答下面问题,掌握用 C 语言编写中断程序的方法。 从程序如何判断用的是哪个中断源?其中断类型号是多少?将实验板上某一按键与该中断源对应的引脚相连,运行程序,操作按键,观察现象。 答:(注:源程序主函数中第7、8行有误,应为P1SEL =~ BIT5; P1SEL2 =~ BIT5; ) P1.1为中断源,中断类型号为2; 现象:LED灯一直在闪烁,按下按键后闪烁暂停,蜂鸣器响三声,然后LED灯继续闪烁; main 函数中无调用函数 Buzz 的语句, 函数 Buzz 如何能被执行?何时会被执行? 据此描述中断响应过程。 答: 当按下按键时函数Buzz被执行; 中断响应的过程:P1.1处发出中断请求→判断是否满足响应条件→若满足,则CPU在执行完当前指令后,硬件自动完成保护现场的操作→从中断向量表中取中断向量至PC→转去执行中断服务子程; 如果port_int 函数中不清分中断标志 P1IFG的后果是什么? 答:中断将一直重复进行下去; 如果 L4_int.c中的 PORT1_VECTOR 改为 PORT2_VECTOR, 其他不变,程序执行的后果是什么?为什么?(可在中断处加一断点,运行程序,看现象,分析原因) 答:PORT1_VECTOR改为PORT2_VECTOR,其他不变,程序将会无法进入中断。因为程序中的中断属于P1引脚的中断,中断向量与P2引脚的中断向量不同,所进行的的改动则是把中断程序写入到了P2引脚的中断向量对应的地址中,而P1引脚的中断向量对应的地址上没有程序,因此无法执行原先的中断子程。 如果中断源采用的是P1.5, 按键用K7,请设计连线,修改程序完成以中断方式响应K7的操作。 答: 只需将程序中对P1.1的操作改为对P1.5的操作即可,程序见附录程序1; 连线:将引脚与K6相连,其他连线不变; 2.中断程序编程练习 2寄存器上O振荡器控制 5. 掌握基本时钟模块的编程控制 参看附录 A实验板原理图,用跳线将 JP8 中的插针信号接到晶振 32.768Khz 侧,使晶振 与单片机的 P2.6 和 P2.7 相连。编程控制基本时钟模块,设置 ACLK 分别为下面时钟频 率,并通过 P1.0 输出 ACLK,用示波器观察: 1) ACLK=4096Hz; (时钟源外部晶振,32768Hz/8) 2) ACLK=3KHz;(时钟源 VLOCLK, 12KHz/4) 思考:可否编程在引脚 P2.0 上输出 ACLK? 为什么? 答: 1)中,应使单片机接外部晶振,并使ACLK的输出为8分频;具体程序见附录程序5之1) 2)中,应通过BCSCTL3寄存器选择时钟源VLOCLK,并使其输出为4分频,具体程序见附录程序5之2) 思考题 不能在引脚 P2.0 上输出 ACLK,因为,各引脚的特殊功能是由单片机结构所决定的,P2.0引脚不具有输出辅助时钟的功能. 6. DCO出厂校验值的频率检测 1)利用出厂校验值,编程使 DCO 分别为 1MHz、8MHz、12MHz、16MHz,通过 P1.4 输出,用示波器测量实际值。 答:经分析知 P1.4输出的是SMCLK; 1MHz、8MHz、12MHz、16MHz的情况类似,此处仅以1MHz为例,具体程序见附录程序6 测得真实值分别为1.002MHz、7.752MHz、12.08MHz、15.94MHz。 7. 利用输出的时钟信号做中断源,实现定时功能 将任务 3 中P1.0 输出的3KHz ACLK 时钟信号,作为 P1.5 的中断申请信号,用导线将 P1.5 与 P1.0相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数, 中断子程每被执行 3000 次表示一秒时间到。利用该定时功能,将 8 个发光二级管设计 成一个秒表,显示秒值,每秒改变一次 8 个发光二级管的显示。 答:根据分析可知 需要在实验5之2)的基础上进行编程; 须用跳线板将P2的引脚与LED灯相连; 具体程序见附录程序7 思考:如果要每隔 10 秒蜂鸣器响一声,如何在任务 5 的基础上编程实现? 答:将P1.7与蜂鸣器相连,增加一个延时函数以及每10秒操作一次P1.7上电位;具体程序见附录程序7之思考题 实验选做任务 1.中断响应的理解 (选做) 去掉 L4_int.c程序最后的那条无限循环语句, 看看有什么现象?可以去掉吗

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档