实验名称:中断技术、基本时钟和准时功能姓名 _ 学号 _实验班号 _ 21_ 机器号 _<实验4、5)一、实验目的1.认识中断原理,包括对中断源、中断向量、中断种类号、中断程序以及中断响应过程的理解;2.掌握单片机 C语言中断程序设计方法;3.认识 MSP430G2553基本时钟模块的工作原理,掌握其控制方法;4.掌握利用时钟信号和中断技术实现准时功能的方法二、实验基本任务1. 中断响应过程的理解阅读下面 C 语言中断程序,说明程序 L4_int.c 执行的流程和实现功能 . 上机实践,回答下面问题,掌握用 C 语言编写中断程序的方法.6zNcZrhD4Jb5E2RGbCAP1) 从程序如何判断用的是哪其中断源?其中断种类号是多少?将实验板上某一按键与该中断源对应的引脚相连,运行程序,操作按键,观察现象.6zNcZrhD4Jp1EanqFDPw答: <注:源程序主函数中第 7、8 行有误,应为 P1SEL &=~ BIT5 P1SEL2 &=~ BIT5 )6zNcZrhD4JDXDiTa9E3d① P1.1 为中断源,中断种类号为 2;② 现象: LED灯素来在闪烁,按下按键后闪烁暂停,蜂鸣器响三声,尔后LED灯连续闪烁;2) main 函数中无调用函数 Buzz 的语句, 函数 Buzz 如何能被执行?何时会被执行? 据此描述中断响应过程 .6zNcZrhD4JRTCrpUDGiT答:① 当按下按键时函数 Buzz 被执行;② 中断响应的过程: P1.1 处发出中断央求→判断可否满足响应条件→若满足,则 CPU在执行完当前指令后,硬件自动完成保护现场的操作→从中断向量表中取中断向量至 PC→转去执行中断服务子程; 6zNcZrhD4J5PCzVD7HxA3) 若是 port_int 函数中不清分中断标志 P1IFG 的结果是什么?答:中断将素来重复进行下去;4) 若是 L4_int.c 中的 PORT1_VECTOR改为 PORT2_VECTOR, 其他不变,程序执行的结果是什么?为什么? <可在中断处加一断点,运行程序,看现象,解析原因) 6zNcZrhD4JjLBHrnAILg答: PORT1_VECTOR改为 PORT2_VECTOR,其他不变,程序将会无法进入中断 . 由于程序中的中断属于 P1 引脚的中断,中断向量与 P2 引脚的中断向量不相同,所进行的的改动则是把中断程序写入到了 P2 引脚的中断向量对应的地址中,而 P1 引脚的中断向量对应的地址上没有程序,因此无法执行本来的中断子程 . 6zNcZrhD4JxHAQX74J0X5) 若是中断源采用的是 P1.5, 按键用 K7, 请设计连线,更正程序完成以中断方式响应 K7 的操作 .答:① 只需将程序中对 P1.1 的操作改为对 P1.5 的操作即可,程序见附录程序1;6zNcZrhD4JLDAYtRyKfE② 连线:将引脚与 K6 相连,其他连线不变;2. 中断程序编程练习在实验板上用跳线将按键 K5、K6 分别与单片机的 P1.4、P1.5 相连,编程以中断方式响应按键 K5 和 K6 的央求:当按一次 K5 键,实验板上的蜂鸣器发出一声警报声;当按下一次 K6键,实验板上的发光二极管 L1 闪 3 次. 主循环中控制 L7 循环闪亮 .6zNcZrhD4JZzz6ZB2Ltk思虑:若是用长导线将按键 K5 、K6 分别连接在 P2.2 和 P2.5 上,如何更正程序以实现任务 2 功能? 6zNcZrhD4JdvzfvkwMI1答:经过解析,① 本程序需要有四个函数,分别是延时函数、 L1 闪烁 3 次的函数、 L7 循环闪烁、以及蜂鸣器响一声的函数;② 其次 P2 端口为输出端口,分别控制 L1、L7 和蜂鸣器,本程序中采用P2.1、P2.3、P2.4 引脚; P1.4 与 P1.5 作为中断源; 6zNcZrhD4Jrqyn14ZNXI③ 应注意到本程序有两其中断源,须利用 P1IFG判断产生中断的中断源引脚 .④ 程序见附录程序 2.思虑题:若是用长导线将按键 K5 、K6 分别连接在 P2.2 和 P2.5 上,则应设置P2.2、P2.5 为中断源,设置中断向量时也应注意将对 P1 端口的操作改为对P2端口操作 . 详尽程序见附录程序 2 之思虑题 .6zNcZrhD4JEmxvxOtOco3. 数字示波器的使用1)将信号源的波形在示波器上显示出来,掌握测量周期、频率、峰峰值的方法;2)用孔孔导线将实验板的地信号与示波器的地信号相连,测量实验板上的 Vcc 电源信号可否正常 .答:1>a. 信号源的峰峰值为 3.20V;b. 周期为 1.000ms;c. 频率为 1.000kHz.2>经测量, Vcc=3.64V,正常4. 测试上电复位系统的 ACLK、和 SMCLK时钟频率编程输出单片机上电复位后的 ACLK、 和 SMCLK时钟, 用示波器测量其频率,并记录下来 .思虑:上电复位后, CPU工作的时钟信号 MCLK频率值是多少?答:经解析① 本程序需要置引脚 P1.0 、P1.4 分别输出 ACLK、SMCLK;② 需要确认外面晶振连上;③ 详尽程序见附录程序 5 测试程序 .④ 测得 f(ACLK>=32.79kHz,f(SMCLK>=1.044MHz.思虑题上电复位后,经过观察寄存器,发现 BCSCTL2寄存器上 SELM位为 00,SELS位为则 0,说明 MCLK与 SMCLK均由 DCO振荡器控制,因此 MCLK的频率与 SMCLK相同,也为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? 为什么?答:a. 1)中,应使单片机接外面晶振,并使 ACLK的输出为 8 分频;详尽程序见附录程序 5 之 1)6zNcZrhD4J6ewMyirQFLb. 2)中,应经过 BCSCTL3寄存器选择时钟源 VLOCLK,并使其输出为 4 分频,详尽程序见附录程序 5 之 2)6zNcZrhD4JkavU42VRUs思虑题不能够在引脚 P2.0 上输出 ACLK,由于,各引脚的特别功能是由单片机结构所决定的, P2.0 引脚不拥有输出辅助时钟的功能 .6zNcZrhD4Jy6v3ALoS896. DCO 出厂校验值的频率检测1)利用出厂校验值,编程使 DCO 分别为 1MHz、8MHz、12MHz、16MHz,经过P1.46zNcZrhD4JM2ub6vSTnP输出,用示波器测量实质值 .答:经解析知① P1.4 输出的是 SMCLK;② 1MHz、8MHz、12MHz、16MHz的状况近似,此处仅以 1MHz为例,详尽程序见附录程序 66zNcZrhD4J0YujCfmUCw③ 测得真实值分别为 1.002MHz、7.752MHz、12.08MHz、15.94MHz.7. 利用输出的时钟信号做中断源,实现准时功能将任务 3 中 P1.0 输出的 3KHz ACLK时钟信号,作为 P1.5 的中断申请信号,用导线将P1.5 与 P1.0 相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数,中断子程每被执行 3000 次表示一秒时间到 . 利用该准时功能,将 8 个发光二级管设计成一个秒表,显示秒值,每秒改变一次 8 个发光二级管的显示 .答:依照解析可知a.b.c.需要在实验 5 之 2)的基础进步行编程;须用跳线板将 P2 的引脚与 LED灯相连;详尽程序见附录程序 7思虑:若是要每隔 10 秒蜂鸣器响一声,如何在任务答:将 P1.7 与蜂鸣器相连,增加一个延时函数以及每5 的基础上编程实现?10 秒操作一次 P1.7 上电位;详尽程序见附录程序 7 之思虑题 6zNcZrhD4JeUts8ZQVRd三、实验选做任务1. 中断响应的理解6) <选做) 去掉 L4_int.c 程序最后的那条无量循环语句, 看看有什么现象?能够去掉吗? 6zNcZrhD4JsQsAEJkW5T 答:① 现象:程序很快运行结束,无法响应中断;② 不能去掉无量循环语句注意 : 1> 查察 io430G2553.h 文件尾端处有关中断向量偏址的符号定义 . 2)为便于认识程序执行流程,可在中断子程入口处设置一断点,尔后连续运行程序 采用事件标志办理中断阅读程序 L4_intA.c 和 L4_intB.c< 见后页) ,描述其实现功能 . 在实验板上将 P1.0 与 6zNcZrhD4JGMsIasNXkA一个按键的控制端相连, P1.7 与蜂鸣器的控制端相连 . 比较 L4_intA.c 和 L4_intB.c两者在编程实现上有何不相同 . 注意各自中断子程执行时间的长短 . 用 L4_intB.c 的方法,改写任务 2 的编程 .答:不相同之处:① 采用事件标志办理中断时,按键此后机器做出的反应相对较慢,这是由于它需要现在中断子程中设置 flag ,再回到主程序依照 flag 做相应改动,耗费时间较长 .6zNcZrhD4JTIrRGchYzg② 但是采用事件标志中断的一个好处就是,由于它在中断子程中可是进行了一个标志,你能够在标志 flag 在主程序中发挥作用从前再次进行中断,将 flag 改为其他值 . 它相当于解决了一般中断过程中“中断执行时,障蔽其他中断”的问题 .6zNcZrhD4J7EqZcWLZNX任务 2 改写后的程序程序 33.( 选做 > 按键抖动办理程序 L4_Key.C 见后页, 其功能是用中断方式相应与 P1.2 连接的按键,计数按键的次 6zNcZrhD4Jlzq7IGf02E数,并将所计的次数用 8 个发光二极管显示出来 . 运行该程序,并操作按键,观察实质操作的次数与显示值之间的关系 . 编程改进 L4_Key.C 程序,用软件方式去除按键抖动的影响 .答:依照解析,需要在响应了第一次下降沿后,加入必然的延时 , 躲过其他电压毛刺的产生时间 . 详尽程序见附录程序 46zNcZrhD4JzvpgeqJ1hk经过实验观察能够发现,改进从前,二进制显示的数值。