




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/17硬件实验报告三(8000字)实验6中断技术一、实验目的1.了解中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断过程的理解;2.掌握汇编语言中断程序的设计方法;3.了解C语言中断程序设计方法二、实验基本任务1.中断过程的理解阅读下面汇编语言中断程序L6_P1_,说明程序执行的流程和实现功能。上机实践,回答下面问题,了解用汇编语言编写中断程序的方法。1)阅读程序L6_P1_,从程序中判断用的是哪个中断源?其中断类型号是多少?设计将实验板上某一按键与该中断源对应的引脚相连。运行程序,操作按键,观察现象。2)在L6_P1_中,无CALL调用语句,中断程序如何能被执行?何时会被执行?3)在L6_P1_中,如果中断子程中不清分中断标志P1IFG的后果是什么?4)如果L6_P1_中的PORT1_VECTOR改为2/17PORT2_VECTOR,其他不变,程序执行的后果是什么?为什么?5)如果去掉L6_P1_程序最后的那条无限循环语句,程序执行的结果是怎样?为什么?6)如果中断源采用的是,按键用Key7,请设计连线,修改L6_P1_程序,完成以中断方式响应Key7的操作注意:1)查看文件末尾处有关中断向量偏址的符号定义。2)为便于了解程序执行流程,可以在中断子程入口处设置一个断点,然后运行程序,观察按下K1和不按K1时程序执行的流程。1)程序中使用的中断源是引脚,类型号是4。将按键Key2与引脚相连如下所示1)当中断源发出中3/17断申请且满足响应条件时,CPU将暂停当前的程序,去执行中断程序。在执行完当前语句后,中断程序将被执行2)由于引脚中断标志位始终为1,故反复执行中断程序3)无法执行中断子程,因为0FFE0h+PORT2_VECTOR与P1引脚对应的中断向量不统一4)将会导致CPU在执行到中断子程RETI语句时,返回到一个实际并不存在的主程的中断断点,使程序跑飞,无法实现程序预想的功能5)连线时,将Key7键与口相连;、口与LED1LED2、LED4LED8灯对应相连修改后的程序代码如下4/17#includeNAMEmainPUBLICmainORG0FFFEhDC16initORG0FFE0h+PORT2_VECTORDC16intP2RSEGCSTACKRSEGCODEinit:MOV#SFE,SPmain:NOP#WDTPW+WDTHOLD,&WDTCTLDINT#0,&P2SEL#0,&P2OUT#0xFB,&P2DIR#BIT2,&P2IES#BIT2,&P2IFG#BIT2,&P2IEEINTJMP$intP2:#BIT2,&P2IFG5/17JZexit&P2OUT#BIT2,&P2IFGexit:RETIEND2.用汇编语言写在实验板上用跳线版将按键Key5、Key6分别与单片机的和相连,编程以中断方式处理按键Key5、Key6的请求,当Key5上有一个下降沿信号时,实验板上蜂鸣器发出一声警报;当Key6上有一个上升沿信号时,实验板上的发光二极管L1闪3次。实验原理电路图如下所示:实验的流程图如下所示:主程序中断子程程序代码如下:#includeNAMEmainPUBLICmainORG0FFFEhDC166/17initinit:main:ORG0FFE0h+PORT1_VECTORDC16intP1RSEGCSTACKRSEGCODEMOV#SFE,SPNOP#WDTPW+WDTHOLD,&WDTCTLDINT#BIT4+BIT5,&P1IE#0,&P2SEL#0xFF,&P2OUT#0xFF,&P2DIR#BIT4+BIT5,&P1SEL#BIT4+BIT5,&P1DIR#BIT4,&P1IES#BIT5,&P1IES#BIT4+BIT5,&P1IFG#BIT4+BIT5,&P1IEEINTJMP$intP1:#BIT4,&P1IFGJZnext#BIT1,&P2OUT7/17CALL#delay#BIT1,&P2OUT#BIT4,&P1IFGnext:#BIT5,&P1IFGJZexitMOV#3,R4again:#BIT0,&P2OUTCALL#delay#BIT0,&P2OUTCALL#delayDECR4JNZagain#BIT5,&P1IFGexit:RETIdelay:PUSHR14PUSHR15MOV#4h,R15ww2:MOV#0xFFFF,R14ww1:DECR14JNZww1DECR15JNZww28/17POPR15POPR14RETEND思考题:如果用长导线将按键Key5、Key6分别连接在、上如何修改程序以实现上述中断响应?可否将按键Key5、Key6分别连接在、上来完成任务2?为什么答:将中断的入口地址改为0FFE0h+PORT1_VECTOR;且将上程序中的、改为、不能,因为P4的引脚不是中断源三、已完成的选做任务1.学习C语言中断程序设计方法参看“补充讲义C语言的中断程序设计”,阅读下面C语言中断程序L6_P1_,说明程序执行的流程和实现功能。为便于了解程序执行流程,在连续执行程序前,仍在中断子程入口处设置一个断点。上机实践,回答下面问题,了解用C语言编写中断程序的方法。该C语言程序实现的功能与汇编语言程序L6_P1_完全相同,即每次中断源触发后,P2口的输出值取9/17反一次思考题:如果程序中没有#pragmavector=PORT1_VECTOR的后果?为什么?答:程序中没有#pragmavector=PORT1_VECTOR后,仍能正常运行。因为此句前有注释标志“/”,表示此句为注释句,与程序无关,可以删除2.用C语言编写中断程序用C语言完成任务2同样功能实验原理电路图和程序流程图同实验基本任务2程序代码如下所示:#include#includevoiddelay;intmain/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;_disable_interrupt;P1IE_4=0;P1IE_5=0;10/17P2SEL=0;P2OUT=0xFF;P2DIR=0xFF;P1SEL_4=0;P1SEL_5=0;P1DIR_4=0;P1DIR_5=0;P1IES_4=1;P1IES_5=0;P1IFG_4=0;P1IFG_5=0;P1IE_4=1;P1IE_5=1;_enable_interrupt;while;/#pragmavector=PORT1_VECTOR#pragmavector=4*2_interruptvoidport_intunsignedinti=3;ifP2OUT_1=0;delay;P2OUT_1=1;P1IFG_4=0;ifwhileP2OUT_0=0;delay;P2OUT_0=1;delay;i=i-1;P1IFG_5=0;voiddelayunsignedinti;for;实验7基本时钟模块和定时功能一、实验目的1.了解MSP430基本时钟模块的工作原理,掌11/17握其控制方法2.了解利用时钟信号和中断技术实现定时功能的方法3.巩固C语言程序设计方法二、实验基本任务1.1)测量示波器自带的周期性方波信号,掌握测量周期、频率、峰峰值的方法测量得到下组数据2)用孔孔导线将实验板的地信号与示波器的地信号相连,测量实验板上5V、电源信号是否正常测量的两电源信号分别为、2.掌握基本湿重模块的编程参看附录A实验板原理图,从图中可以看得,在单片机的引脚XIN和XOUT、XT2IN和XT2OUT上分别连接着、8MHz的晶振,编程控制基本时钟模块,使ACLK=4096Hz,并通过或输出该ACLK.利用示波器观察输出的ALCK时钟信号测量其频率实验原理电路图如下所示程序代码如下所示:#includeNAMEmainPUBLICmainORG0FFFEhDC16initRSEGCSTACKRSEG12/17CODEinit:MOV#SFE,SPmain:NOP#WDTPW+WDTHOLD,&WDTCTL#BIT6,&P5SEL;设置口为ALCK的输出#BIT6,&P5DIR#DIVA_3,&BCSCTL1;设置ALCK4分频JMP$END运行上程序,用示波器测量出口输出的ALCK频率为思考题:1)可否编程在引脚上输出ALCK?为什么?答:不行。由实验原理图可以看出辅助时钟的输出只有和2)上电复位后,CPU工作的时钟信号MLCK频率值是多少?是8MHz吗?编程在上输出MCLK,用示波器测量该频率值,并记录该频率值答:程序代码如下所示#includeNAMEmainPUBLICmainORG0FFFEhDC16initRSEGCSTACKRSEGCODEinit:MOV#SFE,SPmain:NOP#WDTPW+WDTHOLD,&WDTCTL13/17#BIT4,&P5SEL#BIT4,&P5DIRJMP$END运行上程序,并用示波器测量上输出的MCLK频率值为,由此可以判断上电复位后,CPU工作的时钟信号MCLK选用的是DC数字控制振荡器3.利用输出的时钟信号做中断源,实现定时功能将任务2中输出的4096HzACLK时钟信号,作为的中断申请信号,用导线将与相连即可,在中断子程中设置一个计数变量,计数中断子程被执行的次数,中断子程每被执行4096次表示一秒时间到。利用该定时功能,将8发光二级管设计成一个秒表,显示秒值,每秒刷新一次8个发光二极管的显示实验原理电路图如下所示程序的流程图如下所示主程序中断子程程序代码如下所示#includeNAMEmainPUBLICmainORG0FFFEhDC16initORG0FFE0h+PORT1_VECTOR14/17DC16intP1RSEGCSTACKRSEGCODEinit:MOV#SFE,SPmain:NOP#WDTPW+WDTHOLD,&WDTCTLDINT#DIVA_3,&BCSCTL1#BIT6,&P5SEL#BIT6,&P5DIRMOV#4096,R4#0,R5MOV#10,R6#0,&P2SEL#0FFh,&P2DIR#0FFh,&P2OUT#BIT0,&P1SEL#BIT0,&P1DIR#BIT0,&P1IES#BIT0,&P1IEEINTJMP$intP1:#BIT0,&P1IFGJZexitDECR4JNZnextMOV#4096,R4R5R5,R7R7R7,&P2OUTnext:#BIT0,&P1IFGexit:RETIEND思考题:如果要每隔10秒钟蜂鸣器响一次,如何在任务3的基础上编程实现?答:原理图如下所示:程序的流程图如下所示:修改后的程序代码如下:#include15/17NAMEmainPUBLICmainORG0FFFEhDC16initORG0FFE0h+PORT1_VECTORDC16intP1RSEGCSTACKRSEGCODEinit:MOV#SFE,SPmain:NOP#WDTPW+WDTHOLD,&WDTCTLDINT#DIVA_3,&BCSCTL1#BIT6,&P5SEL#BIT6,&P5DIRMOV#4096,R4#0,R5MOV#10,R6#0,&P2SEL#0FFh,&P2DIR#0FFh,&P2OUT#BIT5,&P6SEL#BIT5,&P6DIR#BIT5,&P6OUT#BIT0,&P1SEL#BIT0,&P1DIR#BIT0,&P1IES#BIT0,&P1IEEINTJMP$intP1:#BIT0,&P1IFGJZexitDECR4JNZnext#BIT5,&P6OUTMOV#4096,R4R5R5,R7R7R7,&P2OUTDECR6JNZnextMOV#10,R6#BIT5,&P6OUT16/17next:#BIT0,&P1IFGexit:RETIEND三、已完成的选做任务1.用C语言编程实现任务2功能实验的原理电路图同实验基本任务2程序代码如下所示:#includeintmain/StopwatchdogtimertopreventtimeoutresetWDTCTL=WDTPW+WDTHOLD;P5SEL_6=1;P5DIR_6=1;BCSCTL1_=1;BCSCTL1_=1;while;2.掌握基本时钟模块及其相关控制寄存器L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酒店外包厨房合同范本
- 自如长租房合同范本
- 合同范本真实
- 社区安全网格员培训课件
- 月城镇租房合同范本
- 物业小区平台合同范本
- 经典房屋租赁合同范本
- 药方保密合同范本
- 材料如何订购合同范本
- 代租车协议合同范本
- 软件项目突发事件应急预案
- 湖南省安仁县2025年上半年事业单位公开招聘试题含答案分析
- 2025年潍坊市中考数学试题卷(含标准答案)
- 调酒小摊设计方案(3篇)
- 虚拟现实在初中化学教学产品中的应用效果与设计创新(2025年)
- 2025年高速公路防汛应急演练方案(带演练脚本可直接使用)
- 2025年职业健康卫生知识培训考试试题及答案
- 游泳培训招生讲解
- 清洁生产审核报告模板
- 社区2025年开展的党委会议记录范文
- 药事管理培训课件
评论
0/150
提交评论