实验二时钟中断实验实验报告概要
中断技术实验报告-基本时钟和定时器

实验七、中断技术实验八、基本时钟和定时器实验报告实验七、中断技术一、实验目的1. 了解中断原理,包括对中断源、中断向量、中断类型号、中断程序以及中断相应过程的理解;2. 掌握单片机C语言中断程序设计方法。
二、实验任务1. 中断相应过程的理解(1)在中断子程序的定义之前,有一条预编译指令,观察其中的中断向量即可知道中断源。
如本程序中的预编译指令是“#pragma vector=PORT1_VECTOR”可知中断源是P1.0~P1.7的八个引脚(准确说应该是P1.3)。
在知道中断源的情况下,通过查表可以知道中断其对应的中断类型号是3。
从程序中看出中断标志位用的是Bit3,所以将P1.3与按键连接。
实验现象:当操作时,LED灯一直闪烁,当按下K4(与P1.3相连)时,灯停止闪烁,蜂鸣器响三声之后灯继续闪烁。
(2)port_ISR被在满足条件的时候被硬件执行,不受软件操控,所以程序中并没有调用这个函数的语句但是仍可以被执行。
中断响应过程:由于在该程序中用到的是可屏蔽中断,中断相应需要满足三个条件:中断总控位、中断分控位、中断源发出请求(即中断标志位置位)。
在程序中已经将中断总控位和分控位置于允许状态所以只需要中断标志位置位即可,所以当在按键的下降沿时(由P1.3作为中断源),中断标志位被置位,即P1IFG&BIT3被置位,则中断子程被硬件自动运行,也就是函数port_ISR被执行。
(3)当在运行完port_ISR时,如果中断标志位没有被清零则当跳出中断子程之后,由于依然满足中断相应的条件,所以中断会被继续执行,即中断将被一直运行下去。
(4)在将PORT1_VECTOR改为PORT2_VECTOR之后在单片机上运行,发现按键不再能够使蜂鸣器响起,但是按键时原来闪烁的LED灯会暂停非常短暂的时间。
这说明在按键时虽然程序暂时中断,但是并没有去执行中断子程里面的东西。
在main函数入口处加入一断点时,按键时原来闪烁的LED灯会停止闪烁,并且程序会停止在断点处。
单片机中断实验实训报告

一、实验背景随着电子技术的飞速发展,单片机因其体积小、成本低、功能强大等优点,在各个领域得到了广泛应用。
中断技术是单片机设计中非常重要的一部分,它允许单片机在执行程序的过程中,能够及时响应外部事件,从而提高系统的实时性和效率。
本实训旨在通过实验,加深对单片机中断系统的理解,掌握中断系统的使用方法,并学会在实际应用中灵活运用中断技术。
二、实验目的1. 熟悉单片机中断系统的基本概念和原理。
2. 掌握中断源、中断优先级、中断服务程序等基本概念。
3. 学会使用单片机的中断系统实现实时响应外部事件。
4. 培养动手实践能力和问题解决能力。
三、实验器材1. 单片机实验板2. 示波器3. 电源4. 连接线5. 逻辑分析仪(可选)四、实验内容1. 实验一:外部中断实验(1)实验目的:验证外部中断功能,实现按键控制LED灯的点亮和熄灭。
(2)实验步骤:a. 将外部中断0(INT0)引脚连接到按键,按键按下时产生低电平信号。
b. 编写中断服务程序,实现按键按下时点亮LED灯,按键释放时熄灭LED灯。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的点亮和熄灭情况。
2. 实验二:定时器中断实验(1)实验目的:验证定时器中断功能,实现LED灯的定时闪烁。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断,编写定时器中断服务程序,实现LED灯的定时闪烁。
c. 编译程序,下载到单片机实验板上。
d. 测试实验效果,观察LED灯的闪烁情况。
3. 实验三:中断嵌套实验(1)实验目的:验证中断嵌套功能,实现定时器中断和外部中断的嵌套。
(2)实验步骤:a. 配置定时器T0为模式1,设置定时器初值,使定时器溢出时间为1秒。
b. 开启定时器中断和外部中断,设置中断优先级。
c. 编写定时器中断服务程序和外部中断服务程序,实现中断嵌套。
d. 编译程序,下载到单片机实验板上。
单片机定时器及外部中断实验报告

单片机实验报告(二)实验名称:定时器及外部中断姓名:张昊学号:110404247班级:通信2班时间:2013.11南京理工大学紫金学院电光系一、实验目的1、学习定时/计数器的应用;2、学习外部中断技术的基本使用方法;3、学习中断处理程序的编程方法。
二、实验原理(1)以P1口作为输出口,定时器实现1s定时,实现显示数的1s加1,外部中断0键盘外接BUTTON,实现对显示数快速加1的控制。
(2)系统板上硬件连线把“单片机系统”A2区的J61接口的P1.0~P1.6端口与D1区的J52接口相连。
把“单片机系统”A2区的INT0端口用导线连接到D1区的KEY1端口上;三、实验内容利用定时器中断控制1s的输出,使用外部中断0使得显示的数加1. 程序如下:#include<reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(){uint x,y;for(x=100;x>0;x--)for(y=110;y>0;y--);}uchar m,flag;void main(){uchar a,b;TMOD=0x01;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EX0=1; EX1=1; PX1=1; ET0=1; EA=1; 中断开启TR0=1;m=0; P1=0;while(1){while(flag==0); flag=0;if(m==100) m=0;m++;a=m/10;b=m+a*6;P1=b;}}void timer0() interrupt 1 using 0{uchar t;TH1=(65536-50000)/256;TL1=(65536-50000)%256;if(t<20) t++;else { flag=1; t=0; }}void exter0() interrupt 0 using 1{if(INT0==0) delay();if(INT0==0) flag=1;}void exter1() interrupt 2 using 2{if(INT1==0) delay();if(INT1==0) m=0;}将编译好的程序下载到仿真电路中四、小结与体会通过本次定时器中断实验,我对定时器的工作原理有了更加深入的理解,这也是建立在向同学请教的基础上。
中断原理实验报告总结(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对中断原理的理解,掌握单片机中断系统的工作机制,学会外部中断和定时/计数器的使用,以及串口数据发送和接收的方法。
二、实验内容1. 外部中断原理及使用(1)实验原理:通过实验,了解外部中断的工作原理,掌握外部中断的使用方法,包括中断源的设置、中断服务程序的编写和中断请求的处理。
(2)实验步骤:设置外部中断源,编写中断服务程序,实现按键控制LED灯亮灭。
2. 定时/计数器的使用(1)实验原理:通过实验,了解定时/计数器的工作原理,掌握定时/计数器的使用方法,包括定时/计数器的初始化、定时/计数器的启动和停止、定时/计数器的中断处理。
(2)实验步骤:设置定时/计数器,实现LED灯的闪烁。
3. 串口数据发送和接收(1)实验原理:通过实验,了解串口通信的工作原理,掌握串口数据发送和接收的方法,包括串口初始化、发送和接收数据的流程。
(2)实验步骤:实现单片机与计算机之间的串口通信,发送和接收数据。
三、实验结果及分析1. 外部中断实验结果及分析实验中,通过按键控制LED灯亮灭,实现了外部中断的基本功能。
实验结果表明,当按键被按下时,外部中断请求信号被触发,中断服务程序被执行,LED灯状态发生改变。
2. 定时/计数器实验结果及分析实验中,通过定时/计数器实现LED灯的闪烁,实现了定时功能。
实验结果表明,定时/计数器能够按照设定的周期产生中断,中断服务程序能够按照要求执行。
3. 串口数据发送和接收实验结果及分析实验中,通过串口通信实现单片机与计算机之间的数据传输。
实验结果表明,单片机能够按照设定的波特率发送和接收数据,计算机端能够正确接收并显示数据。
四、实验总结1. 通过本次实验,加深了对中断原理的理解,掌握了单片机中断系统的工作机制。
2. 掌握了外部中断、定时/计数器和串口通信的使用方法,为后续学习和实践打下了基础。
3. 在实验过程中,培养了动手实践能力,提高了解决问题的能力。
北理计算机原理与接口技术实验2利用中断方式设计数字时钟

本科实验报告实验名称:利用中断方式设计数字时钟课程名称:计算机原理与接口技术实验实验时间:2014.5.19任课教师:实验地点:信息系统及安全对抗实验中心实验教师:实验类型:□原理验证■综合设计□自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:实验二利用中断方式设计数字时钟一、实验目的1.掌握PC 机中断处理系统的基本原理。
2.熟悉定时/计数器8254 工作原理及其编程方法。
3.利用实验板上的8254 定时器为中断源发中断申请,中断请求用IRQ3(系统总线区的IRQ)。
4.熟悉数码管显示原理,掌握数码管显示接口技术。
5.学习数字时钟原理,实现数字时钟。
6.掌握中断控制器8259 管理。
二、实验内容与步骤1.接线:三、实验原理1. PC 机用户可使用的硬件中断只有可屏蔽中断,由8259 中断控制器管理。
中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU 发出可屏蔽中断请求。
IBMPC、PC/XT 机内有一片8259 中断控制器对外可以提供8 个中断源:中断源中断类型号中断功能IRQ0 08H 时钟IRQ1 09H 键盘IRQ2 0AH 保留IRQ3 OBH 串行口2IRQ4 0CH 串行口1IRQ5 0DH 硬盘IRQ6 0EH 软盘IRQ7 0FH 并行打印机8 个中断源的中断请求信号线IRQ0~IRQ7 在主机的62 线ISA 总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。
对于PC/AT 及286 以上微机内又扩展了一片8259 中断控制,IRQ2 用于两片8259 之间级连,对外可以提供16 个中断源:中断源中断类型号中断功能IRQ8 070H 实时时钟IRQ9 071H 用户中断IRQ10 072H 保留IRQ11 O73H 保留IRQ12 074H 保留IRQ13 075H 协处理器IRQ14 076H 硬盘IRQ15 077H 保留实验系统总线区的IRQ 接到了3 号中断IRQ3 上,即进行中断实验时,所用中断类型号为0BH。
中断及定时器实验报告

一、实验目的1. 理解中断和定时器的基本概念及工作原理。
2. 掌握51单片机中断系统和定时器的配置方法。
3. 学会使用中断和定时器实现特定功能,如延时、计数等。
4. 培养动手实践能力和问题解决能力。
二、实验原理中断是计算机系统中的一种机制,允许CPU在执行程序过程中,暂停当前程序,转去执行另一个具有更高优先级的程序。
51单片机具有5个中断源,包括两个外部中断(INT0、INT1)、两个定时器中断(定时器0、定时器1)和一个串行口中断。
定时器是51单片机内部的一种计数器,可以用于产生定时中断或实现定时功能。
51单片机有两个定时器,即定时器0和定时器1。
定时器可以工作在模式0、模式1、模式2和模式3。
三、实验内容及步骤1. 实验内容一:外部中断实验(1)实验目的:掌握外部中断的使用方法,实现按键控制LED灯的亮灭。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置外部中断,实现按键控制LED灯的亮灭。
2. 实验内容二:定时器中断实验(1)实验目的:掌握定时器中断的使用方法,实现LED灯闪烁。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断,实现LED灯闪烁。
3. 实验内容三:定时器与外部中断结合实验(1)实验目的:掌握定时器与外部中断结合使用的方法,实现按键控制LED灯闪烁频率。
(2)实验步骤:- 使用Keil for 8051编译器创建项目。
- 根据电路原理图连接电路。
- 编写程序,配置定时器中断和外部中断,实现按键控制LED灯闪烁频率。
四、实验结果与分析1. 外部中断实验:成功实现了按键控制LED灯的亮灭。
当按下按键时,LED灯亮;松开按键时,LED灯灭。
2. 定时器中断实验:成功实现了LED灯闪烁。
LED灯每隔一定时间闪烁一次,闪烁频率可调。
3. 定时器与外部中断结合实验:成功实现了按键控制LED灯闪烁频率。
定时器及中断实验报告
实验十二定时器及中断(1秒基时)一、实验内容及实验电路及步骤1.产生1S延时的设计:(11.0592MHZ)方案1:定时器0定时加软件计数。
1)采用定时器0,方式1,定时50MS中断。
当1S 时间到后,使P1.0 闪亮。
一个机器周期为=(1/11.0592Mhz)*12us。
定时器0的定时初值=(65536-50000/(1/11.0592Mhz*12us))=(65536-46080)=19456=4C00H软件计数:计数器采用R2,计数20 次。
实验电路如图4-4所示:用导线将A2区的P10与D1区的LED1相连。
图4-4 定时器0实验接线图参考程序:ORG 8000HAJMP MAINORG 800BHAJMP T0SMAIN:MOV SP,#60HMOV TMOD,#01HMOV TH0,#4CHMOV TL0,#00HMOV R2,#00HMOV IE,#10000010BSETB TR0CLR P1.0SJMP $T0S: MOV TH0,#4CHMOV TL0,#00HINC R2CJNE R2,#20,NEXTCPL P1.0MOV R2,#00HNEXT:RETIEND定时器0定时,软件计数:定时50ms,发生溢出,产生中断;R2控制循环次数,R2=#20,即循环20次,定时时间间隔为:50×20=1000ms=1S.2)采用定时器0,方式1,定时50MS,查询方式,当1S 时间到后,使P1.0 闪亮。
用导线将A2区的P10与D1区的LED1相连。
参考程序:ORG 8000HAJMP MAINMAIN: MOV TMOD,#01H ;T/C0定时,方式1。
MOV TH0,#4CH ;T0 定时50MS。
MOV TL0,#00HMOV R2,#00H ;软件计数器初值SETB TR0LOOP:JBC TF0,T0SSJMP LOOPT0S: MOV TH0,#4CHMOV TL0,#00HINC R2CJNE R2,#20,NEXT ;1S使P1.0取反一次。
中断实验报告
中断实验报告中断实验报告引言:实验是科学研究的重要手段之一,通过实验我们可以验证假设、探索未知,从而推动科学的发展。
然而,在科学研究中,有时我们需要中断实验,即提前终止实验的进行。
本文将探讨中断实验的原因、影响以及如何合理应对中断实验。
一、中断实验的原因1. 实验设计不合理:有时实验设计可能存在缺陷,导致实验无法顺利进行。
例如,实验中所使用的仪器设备出现故障,无法正常进行测量,或者实验所需的材料无法获得等等。
2. 实验目的达成:有时实验可能提前达到预设的目标,进一步的实验将无法为研究提供更多有意义的信息。
在这种情况下,中断实验是合理的决策。
3. 实验数据异常:实验数据的异常可能是由于实验操作错误、外界干扰等原因引起的。
当数据异常严重影响实验结果的可靠性时,中断实验是必要的。
二、中断实验的影响1. 时间和资源浪费:中断实验将导致之前投入的时间和资源白白浪费。
这对于实验室、研究团队以及资金支持者来说都是不可忽视的损失。
2. 数据不完整:中断实验可能导致实验数据不完整,无法得出准确的结论。
这对于科学研究的可靠性和有效性产生负面影响。
3. 研究进展受阻:中断实验可能会延缓研究进展,使得科学研究的推进受到限制。
这对于科学家和研究机构来说是一种挑战。
三、合理应对中断实验1. 重新评估实验设计:在中断实验后,需要重新评估实验设计,找出问题所在,并进行改进。
这有助于避免类似问题再次发生。
2. 数据分析和总结:对已经获得的数据进行分析和总结,尽可能提取有用的信息。
这有助于在中断实验后仍能得出一定的结论。
3. 寻找替代方案:在中断实验后,可以考虑寻找替代方案,以达到原本实验的目的。
这有助于减少时间和资源的浪费,并继续推进研究工作。
4. 合作与交流:与其他研究团队进行合作和交流,分享经验和资源,有助于克服中断实验带来的困难,推动科学研究的进展。
结论:中断实验是科学研究中常见的情况,它可能由多种原因引起,并对研究工作产生不可忽视的影响。
实验二 中断实验
一、实验目的1、学习外部中断指令的基本使用方法;2、学习外部中断处理程序的编程方法。
二、实验内容1、在试验一的内容的基础上增加允许急救车优先通过的要求;2、急救车到达时(产生外部中断),交通信号为全红,以便让急救车通过;3、急救车通过路口的时间为10秒(四个红灯亮10秒)。
急救车通过后,交通灯恢复原状态(中断前的状态)实验说明:交通灯的亮灭规律同实验一;执行中断程序时,应注意保护现场(保护中断前的状态),使中断程序执行完毕后交通灯能返回中断前的状态。
所谓保护现场,即保护有关的寄存器;主程序的延时程序和中断处理程序所使用的寄存器不应该混用;主程序中,每次经74LS273端口输出数据时,要先将输出数据保存、再输出,否则显示容易出错,而无法返回中断前状态。
例如:MOV A, #0F0H (0)MOVX R1,A (1)MOV SR1,A (2)假设程序执行(1)时发生中断,而中断结束返回主程序前执行了一条MOV A, SR1 的指令,则由于主程序没有执行(2),故SR1的内容应该是上次操作存入的数据,而不是(0)指令中的0F0H,容易出错。
(1)、(2)条指令的顺序可以颠倒。
三、实验参考电路图(如下)图1:实验接线图实验程序框图开始初始化定时器、送计时初值东西南北红灯亮、绿灯黄灯灭、延时南北红灯亮、绿灯黄灯灭,东西绿灯亮、红灯黄灯灭、开定时器中断,开定时器计时NY南北红灯亮、黄灯灭,东西绿灯红灯灭、黄灯闪烁计时NY东西红灯亮、黄灯绿灯灭,南北绿灯亮、绿灯黄灯灭 N计时Y东西红灯亮、黄灯绿灯灭,南北绿灯灭、黄灯闪烁计时NY图2:主函数流程图关中断保护现场开中断中断处理关中断现场恢复开中断中断返回图3:中断服务程序流程图实验步骤1、根据实验要求进行硬件电路的设计和搭建;2、在Keil软件下进行程序设计,并调试;3、检查硬件电路是否安全正确,硬件无误时接通电源和下载线;4、利用MEFlash烧写软件把程序烧写进单片机中;5、进行软硬件整体调试,直到符合实验要求为止;6、断开电源,收拾实验仪器,关掉电脑,书写实验报告;六、程序清单ORG 0000HLJMP MAINORG 0013HLJMP INT_EX0ORG 0050HMAIN: MOV SP,#60HSETB EASETB IT1SETB EX1MOV A,#7BHMOV P0,AMOV P2,ALCALL DELAY2A1: MOV A,#0DEHMOV P0,AMOV A,#7BHMOV P2,ALCALL DELAY2LCALL SHAN1MOV A,#7BHMOV P0,AMOV A,#0DEHMOV P2,ALCALL DELAY2LCALL SHAN2LJMP A1DELAY1: MOV R7,#250 L11: MOV R6,#250L12: DJNZ R6,L12DJNZ R7,L11RETDELAY2: MOV R1,#10 L21: MOV R2,#250L22: MOV R3,#250L23: DJNZ R3,L23DJNZ R2,L22DJNZ R1,L21RETSHAN1: MOV R4,#5S1: MOV A,#0BDH MOV P0,ALCALL DELAY1MOV A,#0FFHMOV P0,ALCALL DELAY1DJNZ R4,S1RETSHAN2: MOV R5,#5S2: MOV A,#0FFHMOV P2,ALCALL DELAY1MOV A,#0BDHMOV P2,ALCALL DELAY1DJNZ R5,S2RETINT_EX0:PUSH ACCPUSH PSWMOV A,#7BHMOV P0,AMOV P2,AMOV 20H,#10EX001: LCALL DELAY2DJNZ 20H,EX001POP PSWPOP ACCRETIEND实验分析1、电路接通电源时,一定要再次检查电路,特别是确定单片机是否放置正确,位置是否放反,以免烧毁单片机或者调试不出结果。
定时器中断实验报告
定时器中断实验报告一、实验目的通过定时器中断实验,掌握定时器的基本原理和应用,了解中断的概念和实现,学习如何使用汇编和C语言编写中断服务程序。
二、实验原理1. 定时器的基本原理定时器是一种能够精确控制时间的功能模块,其主要功能是在一定的时间间隔内产生一次中断信号。
定时器一般由计数器和控制逻辑电路组成。
计数器向控制逻辑电路传递计数值,控制逻辑电路对计数器进行控制,当计数值达到设定值时,控制逻辑电路会产生中断信号。
2. 中断的概念和实现中断是指CPU在执行某个程序的过程中,由于某些特定事件的发生,需要立即停止正在执行的程序,转而去执行与特定事件相关的处理程序的过程。
中断信号通常是由外部设备产生的,例如定时器中断、串口中断等,也可以由软件产生。
中断的实现需要安装中断服务程序,中断服务程序是指与中断处理相关的程序段。
中断发生时,CPU会暂停当前的执行,转而执行中断服务程序。
中断服务程序完成处理后,CPU会返回到原来的执行状态。
中断服务程序通常由汇编或C语言编写,需要遵循一定的规则和约定。
三、实验材料1. STC89C52单片机板;2. 电脑、Keil μVision5软件;3. 串口调试助手软件。
四、实验过程1. 硬件连接将STC89C52单片机板上的P3口与LED灯连接,通过拨码开关设定定时器的时钟频率。
2. 编写程序在Keil μVision5软件中编写程序,在程序中设置定时器的时钟频率和中断周期。
在中断服务程序中控制LED灯的闪烁。
3. 烧录程序将编写好的程序烧录到STC89C52单片机板中。
4. 测试启动单片机板,观察LED灯是否按照预定的周期闪烁。
通过串口调试助手软件,可以实时观察定时器中断的触发情况。
五、实验结果经过测试,程序能够正常运行,LED灯按照预定的周期闪烁,定时器中断触发正常,符合预期要求。
六、实验总结通过本次实验,我掌握了定时器的基本原理和应用,了解了中断的概念和实现,学习了如何使用汇编和C语言编写中断服务程序。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《时钟中断实验》实验报告姓名: 赵广元学号: 1428403058学院: 电子信息学院班级: 电子信息工程时钟中断实验一实验目的1.熟悉定时器初始化的步骤2.熟悉定时器控制寄存器(TCR)的含义和使用3.熟悉定时器中断的原理和使用二实验设备本实验设备包括:PC机、CCS2.1和5416DSK开发板三实验内容本实验要求编一个简单的定时器中断程序,设置一定的周期控制XF引脚输出电平周期性变化。
当定时器中断产生时可以观察到XF引脚输出电平周期性变化。
四实验原理中断处理:接受中断请求→应答中断→执行中断服务程序ISR定时器中断:19号中断当发生时钟中断时,PC值将指向时钟中断的中断向量地址中断向量地址的计算方法:(1)取PMST寄存器的IPTR的值(中断向量指针,9位);(2)查DSP的中断表得到时钟中断向量序号19;(3)将中断向量序号19左移2位(4)将IPTR值左移7位(占高9位)与(3)相加,得到中断向量地址。
中断向量表程序设计:(1)TI54系列DSP最大支持序号0~31的32个中断(存在复用)(2)根据中断向量表地址计算方法,每四个中断向量占四个字(序号左移两位),整个中断向量表共占128个字(3)硬件复位后,其中断向量表首地址为0xFF80(0号中断地址)(4)软件设置IPTR后,其中断向量表地址发生变化,为使高速响应中断,应在片内RAM中运行定时器:C54X系列的DSP都具有一个或者两个预定标的片内定时器,这种定时器是一个倒数定时器,它可以被特殊的状态位实现停止,重启动,重设置或者静止。
定时器在复位后就处于运行状态,为了降低功耗可以禁止定时器工作。
应用中可以用定时器来产生周期性的CPU中断或者脉冲输出。
定时器的功能方框图如5.1所示,其中有一个主计数器(TIM)和一个预定标计数器(PSC)。
TIM用于重装载周期寄存器(PRD)的值,PSC用来重装载周期寄存器(TDDR)的值。
图5.1 定时器的功能方框图图5.1是定时器的功能方框图, SRESET 是在器件复位时,DSP 向外围电路(包括定时器)发送的一个信号,此信号将在定时器上产生以下效果:寄存器TIM 和PRD 装载最大值(0FFFFH );TCR 的所有位清0;结果是分频值为0,定时器启动,TCR 的FREE 和SOFT 为0。
定时器实际上是有 20bit 的周期寄存器。
它对 CLKOUT 信号计数,先将 PSC (TCR 中的 D6~D9 位)减 1,知道 PSC 为 0,然后把 TDDR (TCR 中的低 4 位)重新装载入 PSC ,同时将 TIM 减 1,直到 TIM 减为 0。
这是 CPU 发出 TINT 中断,同时在 TOUT 引脚输出一个脉冲信号,脉冲宽度与 CLKOUT 一致,然后将 PRD 重新装入 TIM ,重复下去直到系统或定时器复位。
定时器产生中断的计算公式如下:)tc (1111tc 1的周期为其中的频率CLIKOUT PRD TDDR TINT +⨯+⨯=定时器有三个寄存器组成:TIM 、PRD 、TCR 。
TIM :定时器寄存器,用于装载周期寄存器数值并自减1。
PRD :周期寄存器,用于装载定时器寄存器。
TCR :定时器控制寄存器,包含定时器的控制状态位。
定时器是一个在片内减计数器,用于周期地产生CPU 中断。
定时器被预订标器驱动,后者每个CPU 时钟周期减1,每当计数器减至0时,会产生一个定时器中断,同时在下一周期计数器被定时周期值重新装载。
在正常操作模式下,当TIM 自减至0时,TIM 将被PRD 内的数值重装载。
在硬件复位或定时器单独复位(TCR 中TRB 位置1)的情况下,TIM 也会装载PRD 值。
TIM 被预定标模块定时。
每个来自预定标模块的输出时钟都将使TIM 自减1,主定时器模块的输出是定时器中断(TINT )信号。
该中断被发送至CPU ,同时由TOUT 引脚输出。
TOUT 脉冲的宽度等于CLKOUT 的时钟宽度。
预定标模块由两个类似TIM 和PRD 的单元构成。
它们是预定标计数器(PSC )和定时器分频寄存器(TDDR )。
PSC 、TDDR 是TCR 寄存器的字段。
在正常操作时PSC 自减为0,TDDR 值装入PSC ,同样在硬件复位或定时器单独复位的情况下,TDDR 也被装入PSC 。
PSC 被CPU 时钟定时,即每个CPU 时钟使PSC 自减1。
PSC 可被TCR 读取,但不能直接写入。
当TSS 置位时,定时器停止工作。
若不需要定时器,终止定时器操作,可是芯片工作与低功耗模式,并且可以使用与定时器相关的两个寄存器(TIM 和PRD )作为通用的存储器单元,可以在如意周期对它们进行读或写操作。
TIM 的当前值可被读取,PSC 也可以通过TCR 。
因为读取这两个寄存器需要花两个指令,而在两次读取之间因为自减,数值可能改变,因此,PSC 两次读的结果可能有差别,不够准确。
若要准确测量时序,在读这两个寄存器值之前可先中止定时器,对TSS 置1,清0后,可重新开始定时。
通过TOUT 信号或中断,定时器可以用于产生周边设备的采样时钟,如模拟接口。
对于有多个定时器的DSP ,在寄存器GPIOCR 中的第15位控制使用哪一个定时器产生的TOUT 信号。
定时器初始化定时器初始化步骤如下: (1)TCR 的TSS 位写1以停止定时器 (2)装载PRD(3)初始化TCR 中的TDDR ,并对TCR 中的TSS 置0,对TRB 置1来重装载定时器周期 设置定时器中断方法(INTM=1)如下:(1)FIR 中的TINT 写1,以清除挂起的定时器中断。
(2)IMR 中的TINT 值1,启动定时器中断。
(3)启动全部中断,INTM置0。
(4)在RESET后,TIM和PRD被设置为最大值(FFFFh),TCR中的TSS置0。
定时控制寄存器TCR为一个映射到片内的16位寄存器,它可以控制:(1)定时器的工作方式;(2)设定预定标计数器中的当前数值;(3)启动或停止定时器;(4)重装载定时器;(5)设置定时器的分频值;TCR 的位描述如图 5.2 所示。
图 5.2 Array TCR 寄存器第15~12位Reserved:保留位。
总是0。
第11~10位SOFT、FREE:特殊的仿真位。
高级语言调试程序中出现一个断点时,该仿真位决定定时器的状态。
如果FREE位设为1,则当遇到一个断点时,定时器继续运行(即自由运行),在这种情况下, SOFT被忽略。
但是,如果FREE为0,则SOFT有效。
在此情况下,如果SOFT=0,则定时器停止,下一次TIM的值递减;如果SOFT=1,则当TIM减到0,定时器停止工作。
第9~6位PSC:定时器预定标计数器。
这4位用来保存定时器的当前预定标计数器。
每个CLKOUT周期内,若PSC值大于0,PSC减1,在PSC减到0后的下一个CLKOUT周期内,装载TDDR的内容,并且TIM 减1。
每当软件设置了定时器重载位(TRB)时,PSC也被重新装载。
可通过TCE检测PSC,但PSC 不能直接设置,PSC值必须从TDDR中提取。
复位时,PSC设为0。
第5位TRB:定时器重载位,当TRB写入1时,TIM装载PRD中的值,并且PSC装载TDDR中的值。
TRB 位总被读为0。
第4位TSS:定时器停止状态位。
TSS停止或重新启动定时器。
复位时,TSS清零,并且立即启动定时器。
TSS=0,启动或重新启动定时器;TSS=1,停止定时。
注意,此位为只写位,读出的值永远为0。
第3~0位TDDR:定时器分频比寄存器。
每经过(TDDR+1)个CLKOUT周期,TIM减1。
复位时,TDDR 位清0。
如果想通过一个整数因子增加总的定时计数值,则将整数因子减1后写入这4位。
当PCS值为0 时,在随后的一个CLKOUT周期内,TDDR内容将被重新装入PSC,并且TIM减1,并且TIM减1。
每当TRB重载入时,TDDR也将被PSC重新装载。
定时器的应用定时器中断控制XF周期性变化的源代码详见实验程序示例。
五实验步骤1.连接好目标板,选择相应的CCS运行环境2.如实验三所示,建立时钟中断DSP程序(图片内容如实验一,不再赘述,只简要概括大概步骤)(1)选择Project→new命令新建一个工程并命名,选择file→new→source file建立源代码文件,输入程序代码后保存(2)新建源程序文件mydft,输入代码并保存(3)新建cmd文件my5416,输入代码并保存(4)保存源文件到当前工程所在的文件夹,然后在当前工程窗口选择当前工程,调用右键菜单,选择add files to project命令,打开一个文件选择对话框,选择刚保存的源文件加入到工程中之后编译文件(5)在工程名上右击选择options设置includes libraries(-1)为 rts.lib,csl5416.lib,采用分号分隔各个库名。
在complier选项卡中设置为advanced(6)在build options对话框中的compiler选项页的 Preprocessor选项中Pre-define symbol (-d)中输入CHIP_5416宏名;(7)file →load program下载程序并运行程序;(8)利用菜单view→CPU registers→CPU registers,观察累加器A数值变化。
3.主要注意以下几项内容。
(1)利用C54XREGS.h定义了访问TMS320VC5416 DSP的存储器映射寄存器的宏,在源程序中调用宏对DSP的Register进行了初始化。
(2)Timer属于片内外设,采用了DSP的片级支持库的方式对Timer的寄存器进行处理,包括定时器终端的处理,详细见程序。
(3)所谓片级支持库是TI公式设计的一个标准库文件,用于弥补利用C怨言设置DSP片内外设不方便的缺点,达到利用C编写快速高效的片内外设应用程序的目的。
在使用的时候主要要注意以下几点:①选择Project→Build Options命令,打开Build Options对话框,在Linker选项卡的 Include Libraries (-l)项输入csl5416.lib选用运行时支持库,csl5416.lib在编译时使用近调用(默认选项)。
注意如果已有其它库定义(如rts.lib),采用分号分隔各个库名。
注意:如果程序选用远调用,必须使用csl5416x.lib文件。
②由于片级支持库与芯片型号息息相关,所以在使用片级支持库的程序中必须利用宏定义芯片型号,具体方法可以在build options对话框中的compiler选项页的 Preprocessor选项中Pre-define symbol(-d)中输入CHIP_5416宏名。