实验三、定时器实验

合集下载

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(io口和定时器实验)

实验三流水灯实验(I/O口和定时器实验)一、实验目的1.学会单片机I/O口的使用方法和定时器的使用方法;2.掌握延时子程序的编程方法、内部中断服务子程序的编程方法;3.学会使用I/O口控制LED灯的应用程序设计。

二、实验内容1.控制单片机P1口输出,使LED1~LED8右循环轮流点亮(即右流水),间隔时间为100毫秒。

2.控制单片机P1口输出,使LED1~LED8左循环轮流点亮(即左流水),间隔时间为100毫秒。

3.使用K1开关控制上面LED灯的两种循环状态交替进行;4. 用定时器使P1口输出周期为100ms的方波,使LED闪烁。

5.使用定时器定时,使LED灯的两种循环状态自动交替,每一种状态持续1.6秒钟(选作)。

三、实验方法和步骤1.硬件电路设计使用实验仪上的E1、E5和E7模块电路,把E1区的JP1(单片机的P1口)和E5区的8针接口L1~L8(LED的驱动芯片74HC245的输入端)连接起来,P1口就可以控制LED 灯了。

当P1口上输出低电平“0”时,LED灯亮,反之,LED灯灭。

E7区的K1开关可以接单片机P3.0口,用P3.0口读取K1开关的控制信号,根据K1开关的状态(置“1”还是置“0”),来决定LED进行左流水还是右流水。

综上,画出实验电路原理图。

2.程序设计实验1和实验2程序流程图如图3-1实验3程序流程图如图3-2所示。

图3-1 实验1,2程序流程图图3-2 实验3程序流程图实验4程序流程图如图3-3,3-4所示。

实验5程序流程图如图3-5,3-6所示。

图3-5 实验5主程序流程图图3-6 定时器中断服务子程序流程图图3-4 定时器中断服务子程序流程图图3-3 实验4主程序流程图编程要点:(1)Pl,P3口为准双向口,每一位都可独立地定义为输入或输出,在作输入线使用前,必须向锁存器相应位写入“1”,该位才能作为输入。

例如:MOV P1,A; P1口做输出MOV P1,#0FFHMOV A,P1;P1口做输入SETB P3.0MOV C,P3.1;从P3.1口读入数据(2)每个端口对应着一个寄存器,例:P1→90H(P1寄存器地址);P3→B0H(P3寄存器地址);寄存器的每一位对应着一个引脚,例:B0H.0→P3.0(3)对寄存器写入“0”、“1”,对应的外部引脚则输出“低电平”、“高电平”。

定时器的实验报告

定时器的实验报告

一、实验目的1. 理解定时器的基本原理和工作方式。

2. 掌握定时器的配置和使用方法。

3. 通过编程实现定时器的定时功能。

4. 学习定时器中断的应用。

二、实验环境1. 实验设备:单片机实验板、电源、连接线等。

2. 实验软件:Keil uVision 4、IAR EWARM等C语言开发环境。

三、实验原理定时器是一种用于实现时间延迟的硬件模块,它能够在预定的时间内产生中断或完成特定的操作。

定时器通常由计数器、控制寄存器、时钟源等组成。

定时器的工作原理是利用时钟源产生的时钟信号对计数器进行计数,当计数器达到预设值时,触发中断或完成特定操作。

四、实验内容1. 定时器基本配置(1)设置定时器模式:根据实验需求,选择定时器的工作模式(如模式0、模式1等)。

(2)设置定时器时钟源:选择定时器时钟源(如系统时钟、外部时钟等)。

(3)设置定时器计数初值:根据实验需求,设置定时器计数初值。

2. 定时器定时功能实现(1)编写程序初始化定时器:配置定时器模式、时钟源、计数初值等。

(2)编写定时器中断服务程序:在中断服务程序中实现定时功能,如控制LED闪烁、读取传感器数据等。

3. 定时器中断应用(1)配置定时器中断:设置定时器中断优先级、中断使能等。

(2)编写定时器中断服务程序:在中断服务程序中实现所需功能,如采集数据、发送数据等。

五、实验步骤1. 编写程序初始化定时器:设置定时器模式、时钟源、计数初值等。

2. 编写定时器中断服务程序:实现定时功能,如控制LED闪烁。

3. 编写定时器中断配置程序:设置定时器中断优先级、中断使能等。

4. 编译、下载程序:将编写好的程序编译生成HEX文件,通过编程器下载到实验板上。

5. 运行实验:观察实验现象,如LED闪烁频率、数据采集等。

六、实验结果与分析1. 定时器定时功能实现实验结果显示,定时器能够按照设定的定时时间产生中断,中断服务程序能够正确执行。

例如,LED闪烁频率与定时时间一致。

定时器实验报告

定时器实验报告

定时器实验报告
一、实验目的
学习如何在单片机中使用定时器,进一步理解定时器的工作
原理和使用方法。

二、实验器材
单片机开发板、电脑、LED灯或蜂鸣器等外部设备。

三、实验原理
定时器是一种内部的计时设备,可以通过设置定时器的工作
方式、计时单位和计时周期来完成不同的定时任务。

单片机上通常会有一个或多个定时器模块,我们可以通过配置和操作这些定时器模块来实现各种计时、延时、定时触发等功能。

四、实验步骤
1. 初始化定时器:设置定时器工作方式、计时单位和计时周期。

2. 启动定时器:开始计时。

3. 监测定时器中断:定时器计时完成后会触发中断。

4. 处理定时器中断:在中断服务程序中进行相应的操作,如
控制LED灯闪烁、发出蜂鸣器声音等。

5. 关闭定时器:计时完成后关闭定时器。

五、实验结果和分析
在实验中,我们可以通过设置不同的计时器工作方式、计时
单位和计时周期来实现不同的定时效果。

例如,如果将定时器设置为周期性计时方式,计时单位为微秒,计时周期为1000,
那么定时器每隔1毫秒(1000微秒)就会触发一次中断,我
们可以在中断服务程序中控制LED灯或蜂鸣器进行响应操作。

六、实验心得
通过本次实验,我进一步了解了定时器的工作原理和使用方法。

定时器是单片机中常用的功能模块,可以实现各种时间相关的功能。

掌握了定时器的使用,有助于提高单片机系统的定时、延时、调度等能力,为后续的项目开发和应用打下良好的基础。

实验三 用定时器实现数字振荡器

实验三 用定时器实现数字振荡器

实验三 用定时器实现数字振荡器1 实验目的在数字信号处理中,会经常使用到正弦/余弦信号。

通常的方法是讲某个频率的正弦/余弦值余弦计算出来后制成一个表,DSP 工作时仅作查表运算即可。

在本实验中将介绍另一种获得正弦/余弦信号的方法,即利用数字振荡器用叠代方法产生正弦信号。

本实验除了学习数字振荡器的DSP 实现原理外,同时还学习C54X 定时器使用以及中断服务程序编写。

另外,在本实验中我们将使用汇编语言和C 语言分别完成源程序的编写。

2 实验要求本实验利用定时器产生了一个2kHz 的正弦信号,定时器被设置成每25uS 产生一次中断,(等效于采样速率未40k )利用该中断,在该中断服务程序中用叠代算法计算出一个SNT 值,病利用CCS 的图形显示功能查看波形。

3 实验原理(1)数字振荡器原理设一个传递函数为阵线序列sinkwT ,其z 变换为111BzAz 1Cz )z (H -----=其中,A =2coswT ,B =-1,C=sinwT 。

设初始条件为0,求出上式的反Z 变换得: y[k]=Ay[k-1]+By[k-2]+Cx[k-1]这是个二阶差分方程,其单位冲击响应即为sinkwT 。

利用单位冲击函数x[k-1]的性质,即仅当k=1时,x[k-1]=1,代入上式得:k=0 y[0]=Ay[-1]+By[-2]+0=0k=1 y[1]=Ay[0]+By[-2]+c=ck=2 y[2]=Ay[1]+By[0]+0=Ay[1]k=3 y[3]=Ay[2]+By[1]k=n y[n]=Ay[n-1]+By[n-2]在k ﹥2以后,y[k]能用y[k -1]和y[k-2]算出,这是一个递归得方法。

根据上面得说明,我们可以开始数字振荡器得设计。

设该振荡器得频率为2kHz,采样率为40kHz (通过定时器设置,每隔25us 中断一次,即产生一个y[n])则递归得差分方程系数为:A =2coswT=2cos(2×PI ×2000/40000)=2×0.95105652B=-1C=sinwT=sin(2×PI ×2000/40000)=0.3090169979BC 22A 15=⨯ C00022B 15=⨯ 13C722C 15=⨯ 为了便于定点DSP 处理,我们将所有系数除以2,然后用16为定点格式表示为: 这便是本实验中查生2kHz 阵线信号的三个系数。

PLC应用技术实验3 定时器和计数器器指令的应用

PLC应用技术实验3 定时器和计数器器指令的应用

PLC 应用技术实验指导书
1 实验3 定时器和计数器指令的应用
一、实验目的
1. 熟悉CPM2A 型PLC 的交流和直流电源的连接,熟悉输入开关板和I/O 端子的连接。

2. 通过实验程序熟悉定时器和计数器指令的基本应用方法。

二、实验内容
1. 认真阅读实验程序,理解并熟悉实验程序的功能。

2. 输入程序。

3. 调试并监控程序运行。

三、实验步骤
1. 正确连接PLC 所需的各种电源。

连接实验程序的需要的输入开关板和I/O 的接线端子。

2. 输入用定时器指令编写的延时10s 导通的定时程序(见图1)。

运行、监控并调试,观察结果。

3. 输入用计数器指令编写的计数10次的计数程序(见图2)。

运行、监控并调试,观察结果。

4. 用定时器和计数器器指令编写一个既有定时器,又有计数器的延时10s 导通的定时电路程序。

输入、修改、运行、监控并调试,观察结果。

●自编梯形图程序:
四、实验总结及思考
1. 总结本次实验中各个程序运行的结果。

2. 写出上述梯形图程序的指令语句表。

3. 若延时时间修改为50s ,应该修改定时器的什么值,如何修改?
4. 按现在的程序,计数电路中的1.02输入端子上应该接动合还是动断按钮?为什么?
00000 00002 00005
图1 延时10s 的定时电路的梯形图 00000 00004 00007 图2 计数10次的计数电路的梯形图。

实验三定时器及外部中断实验

实验三定时器及外部中断实验

实验三定时器及外部中断实验一、实验目的1)熟悉VC5416的定时器工作原理。

2)掌握VC5416定时器的编程控制方法。

3)学会使用定时器的中断方式来控制程序执行方法。

4)掌握外部中断的编程控制方法,理解DSP对于中断的响应的过程。

5)了解并学习混合编程的实现方法。

二、实验设备1)计算机一套,DSP硬件仿真器一台,实验箱一台。

2)CCS4.1-CCS5.5软件版本。

3)源程序及链接命令文件见:D:\ EXPER\EXP3目录下的.asm 、.cmd、.C 和.lib文件。

三、实验步骤(一)、连接仿真器,将仿真器插接到C5416的JTAG接口上,另一头插接到电脑的USB接口上,因为仿真器是金属外壳,容易和箱子内部的电路触碰造成短路,从而对实验箱造成损坏,这个要特别注意,也不允许在机箱打开电源情况下插拔仿真器。

(二)、实验箱配置及连线:C5416DSP核心板上的SW1的1-6的开始设置为off off off off on on(上电后工做于1/2分频器方式,其它实验也按照此设置不变,我试验过改为PLL*2方式仿真器就连接不上了),SW2设置为on on on on。

将DSP核心板所在试验箱引脚连线区的BCANRX(C54的XF)引脚,与指示灯连线区LAMP的L1连接起来,这样就可以通过XF控制这个L1这个方光管的亮灭了。

将DSP核心板所在试验箱引脚连线区的INT0(C54的外部中断0输入)引脚与单脉冲按键PAULSE的P-(按下输出负脉冲)连接起来,这样按下按键时,就会给DSP的INT0中断引脚发送一个负脉冲。

连线照片见程序目录中的图片文件。

(二)、打开实验箱电源开关。

(三)、使用给定的文件,按照实验一的步骤建立实验项目,例如工作区目录为D:\ exp3 中建立一个exp3的实验项目,添加所有的给定的文件。

(四)、仿真调试方法1、通过菜单Project- Build All 对项目进行编译和链接,如下:如果有错误会出现在problem 窗口中。

实验三定时器中断

实验三定时器中断

实验三定时器中断一.实验目的1.掌握定时器典型应用方法,了解相应寄存器的作用和编程应用;2. 了解TMS320F2812的中断结构和对中断的处理流程。

二.实验设备1.PC机一台,操作系统为WindowsXP (或Windows98、Windows2000),安装了ccs3.1;2.TI 2000系列的TMS320F2812 eZdsp开发板一块;3.扩展实验箱一台。

三.实验原理1.TMS320F2812器件上有3个32位定时器(图3.1)(TIMER0/1/2)。

CPU定时器1和2预留给系统(如DSP-BIOS)使用,CPU定时器0可以在用户应用程序中使用。

在F2812芯片中,定时器中断信号(TINT0、TINT1、TINT2)的连接如图3.2。

图3.1 CPU定时器图3.2 CPU定时器中断信号和输出信号CPU 定时器的通常操作如下:定时器时钟经过预定标计数器(PSCH:PSC)递减计数,预定标计数器产生溢出后向定时器的32位计数器(TIMH:TIM)借位,定时器计数器产生溢出后使定时器向CPU发送中断。

每次预定标计数器产生溢出后使用分频寄存器(TDDRH:TDDR)中的值重新装载,32位周期寄存器(PRDH:PRD)为32位计数器提供重新装载值。

表3.1中列出的寄存器用于配置定时器。

表3.1 CPU 定时器0、1、2 配置和控制寄存器2.中断响应过程一般分为四步:a.接受中断请求。

必须由软件中断(从程序代码)或硬件中断(从一个引脚或一个基于芯片的设备)提出请求去暂停当前主程序的执行。

b.响应中断。

必须能够响应中断请求。

如果中断是可屏蔽的,则必须满足一定的条件,按照一定的顺序去执行。

而对于非可屏蔽中断和软件中断,会立即作出响应。

c.准备执行中断服务程序并保存寄存器的值。

d.执行中断服务子程序。

调用相应得中断服务程序ISR,进入预先规定的向量地址,并且执行已写好的ISR。

中断类别分为可屏蔽中断、不可屏蔽中断。

实验三使用中断的定时器

实验三使用中断的定时器

实验三使用中断的定时器一、实验目的1、理解C2000芯片的CPU定时器和中断系统的工作原理;2、学会使用TMS320F28027芯片的定时器实现定时;3、掌握CPU定时器和PIE外设中断控制器相关寄存器的配置与使用。

二、概述本实验的程序实现了定时器Timer0定时1秒,对应LED灯D10状态翻转,由亮到灭,在由灭到亮,一致循环下去;定时器Timer1定时2秒,对应LED灯D12状态翻转;定时器Timer2定时4秒,对应LED灯D13状态翻转。

表1 输出引脚硬件配置表3D13GPIO237Timer2对应LED图1 LED灯连接电路图三、实验内容1、按照新建工程项目的方法进行实验(参考实验二)。

2、主函数(程序流程框图见图2所示)#include"DSP28x_Project.h"// Device Headerfile and Examples Include File // Prototype statements for functions found within this file.interrupt void cpu_timer0_isr(void);interrupt void cpu_timer1_isr(void);interrupt void cpu_timer2_isr(void);void InitTimerGpio(void);void main(void){// Step 1.系统初始化Initialize System Control:// PLL, WatchDog, enable Peripheral Clocks// This example function is found in the f2802x_SysCtrl.c file.InitSysCtrl();// Step 2.GPIO初始化 Initalize GPIO:// This example function is found in the f2802x_Gpio.c file and// illustrates how to set the GPIO to it's default state.// InitGpio(); // Skipped for this exampleInitTimerGpio();// Step 3. 清除(关闭)中断并初始化外设中断向量表 Clear all interrupts and initialize PIE vector table:// 关闭CPU中断 Disable CPU interruptsDINT;// Initialize the PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags// are cleared.// This function is found in the f2802x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:IER = 0x0000;IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt// Service Routines (ISR).// This will populate the entire table, even if the interrupt// is not used in this example. This is useful for debug purposes.// The shell ISR routines are found in f2802x_DefaultIsr.c.// This function is found in f2802x_PieVect.c.InitPieVectTable();// Interrupts that are used in this example are re-mapped to// 设置中断向量表 ISR functions found within this file.EALLOW; // This is needed to write to EALLOW protected registers0 = &cpu_timer0_isr;1 = &cpu_timer1_isr;2 = &cpu_timer2_isr;EDIS; // This is needed to disable write to EALLOW protected registers // Step 4. 初始化CPU定时器 Initialize the Device Peripheral. This function can be// found in f2802x_CpuTimers.cInitCpuTimers(); // For this example, only initialize the Cpu Timers#if (CPU_FRQ_60MHZ)//配置CPU定时器 Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 60MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 60, );ConfigCpuTimer(&CpuTimer1, 60, );ConfigCpuTimer(&CpuTimer2, 60, );#endif#if (CPU_FRQ_50MHZ)// Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 50MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 50, );ConfigCpuTimer(&CpuTimer1, 50, );ConfigCpuTimer(&CpuTimer2, 50, );#endif#if (CPU_FRQ_40MHZ)// Configure CPU-Timer 0, 1, and 2 to interrupt every second:// 40MHz CPU Freq, 1 second Period (in uSeconds)ConfigCpuTimer(&CpuTimer0, 40, );ConfigCpuTimer(&CpuTimer1, 40, );ConfigCpuTimer(&CpuTimer2, 40, );#endif// To ensure precise timing, use write-only instructions to write to the entire register. Therefore, if any// of the configuration bits are changed in ConfigCpuTimer and InitCpuTimers (in F2802x_CpuTimers.h), the// below settings must also be updated..all = 0x4001; //Use write-only instruction to set TSS bit = 0.all = 0x4001; // Use write-only instruction to set TSS bit = 0.all = 0x4001; // Use write-only instruction to set TSS bit = 0// Step 5.使能用到的中断 User specific code, enable interrupts:// Enable CPU int1 which is connected to CPU-Timer 0, CPU int13// which is connected to CPU-Timer 1, and CPU int 14, which is connected// to CPU-Timer 2:IER |= M_INT1;IER |= M_INT13;IER |= M_INT14;// Enable TINT0 in the PIE: Group 1 interrupt 7R1.7 = 1;// Enable global Interrupts and higher priority real-time debug events:EINT; // Enable Global interrupt INTMERTM; // Enable Global realtime interrupt DBGM// Step 6. 设置空循环(程序进入运行状态) IDLE loop. Just sit and loop forever (optional):for(;;);}//下面是中断服务程序interrupt void cpu_timer0_isr(void){ EALLOW;ruptCount++;.GPIO0 = 1;.GPIO34 = 1;// Acknowledge this interrupt to receive more interrupts from group 1 K.all = PIEACK_GROUP1;}interrupt void cpu_timer1_isr(void){ EALLOW;ruptCount++;.GPIO1 = 1;// The CPU acknowledges the interrupt.EDIS;}interrupt void cpu_timer2_isr(void){ EALLOW;ruptCount++;.GPIO2 = 1;// The CPU acknowledges the interrupt.EDIS;}// 下面是配置GPIOvoid InitTimerGpio(void){EALLOW;X1.34 = 0;R.34 = 1;X1.0 = 0;R.0 = 1;X1.1 = 0;R.1 = 1;X1.2 = 0;R.2 = 1;EDIS;}四、课外学习任务1、进一步理解实验内容,在实验板上找到GPIO34连接的LED灯,试解读下面的程序代码:X1.34 = 0;R.34 = 1;2、总结实验内容及步骤写出实验报告。

实验三定时器实验实验报告

实验三定时器实验实验报告

实验三定时器实验实验报告一、实验目的1. 掌握定时器的基本概念;2. 学会使用定时器;3. 了解定时器的各种使用方法。

二、实验原理1. 定时器:定时器是单片机中一个重要的外设,是用来控制时间的。

AT89C51单片机中有2个定时器,它们分别是定时器0和定时器1。

定时器0和定时器1可以看作计时器,其作用是在每个指令的执行周期内加1,当计数器的值超过计数器的初始值后,会产生相应的中断信号来通知CPU。

2. 定时器的通用计数器模式:此模式中,定时器是单纯的计数器,没有和任何外设相连接,它的原理就是在每个时钟周期中向计数器加1,当计数器溢出时,就会产生中断信号,可以用来进行时间的计数,确定时间精度等应用。

此模式中,定时器将会和外部的时钟源相连接,通过在计数器内部计数,从而控制波形的输出,这种模式的应用非常广泛,如计时器、计时器、PWM波产生器等。

三、实验内容在本次实验中,我们将使用定时器的通用计数器模式来进行操作,首先需要配置定时器的工作模式,因为单片机中的定时器还有其他的工作模式,所以需要进行选择。

2. 设置定时时间及启动定时器在定时器配置好之后,需要将定时时间设置成所需的时间,并且启动定时器开始计时。

3. 检测中断并作出响应当定时器达到所设的时间时,会产生相应的中断信号,CPU会检测该中断信号并作出响应。

四、实验步骤首先选择所需的定时器,并进行相应的设置,比如计数器的内部工作频率,计时模式等。

根据需要的计时时间,将计数器的初始值设为所需的时间,在程序中添加相应的启动定时器的指令。

五、实验结果本次实验中,我们学会了使用定时器,并掌握了定时器的基本原理和使用方法,以及具体的应用方法。

定时器的应用非常广泛,是单片机的一个重要外设,相信在今后的学习和工作中,我们将会用到它,并更好地掌握它的应用。

定时器的应用实验报告

定时器的应用实验报告

定时器的应用实验报告定时器的应用实验报告一、引言定时器是一种常见的电子元件,广泛应用于各种电子设备中。

本实验旨在通过实际操作,探究定时器在不同领域的应用,并了解其工作原理和特性。

二、材料与方法1. 实验材料:- Arduino开发板- 数字多用途电路板- 电阻、电容等元器件- 连接线2. 实验方法:- 搭建电路连接定时器和其他元器件- 编写Arduino代码,控制定时器的功能- 运行实验,观察实验结果并记录数据- 分析实验数据,总结定时器的应用特点三、实验过程与结果1. 实验一:闪烁LED灯搭建电路,将一个LED灯连接到定时器的输出引脚上。

编写代码,使定时器以一定频率输出高低电平,从而实现LED灯的闪烁效果。

运行实验,LED灯按照设定的频率闪烁,实验成功。

2. 实验二:蜂鸣器发声将蜂鸣器连接到定时器的输出引脚上。

编写代码,使定时器以一定频率输出高低电平,从而控制蜂鸣器的发声频率。

运行实验,蜂鸣器按照设定的频率发声,实验成功。

3. 实验三:控制电机转动将电机连接到定时器的输出引脚上。

编写代码,使定时器以一定频率输出高低电平,从而控制电机的转动速度。

运行实验,电机按照设定的频率转动,实验成功。

四、实验结果分析通过以上实验,我们可以得出以下结论:1. 定时器可以通过编程控制,实现不同频率的信号输出。

2. 定时器广泛应用于LED灯、蜂鸣器和电机等设备中,用于产生特定的时间间隔或频率。

3. 定时器的频率控制精度较高,可以满足多种应用需求。

4. 定时器的应用范围广泛,不仅仅局限于电子设备,还可以应用于工业自动化、通信等领域。

五、实验总结通过本次实验,我们深入了解了定时器的应用特点和工作原理。

定时器作为一种常见的电子元件,具有广泛的应用前景。

在今后的学习和工作中,我们可以利用定时器实现更多的创意和应用。

六、参考文献[1] Arduino官方网站[2] 电子技术实验教程以上是本次定时器的应用实验报告,通过实际操作和分析,我们对定时器的应用特点有了更深入的了解。

定时器指令实验报告

定时器指令实验报告

定时器指令实验报告定时器指令实验报告一、引言定时器指令是计算机科学中常用的一种指令类型,用于实现时间控制和计时功能。

在本次实验中,我们将学习并掌握定时器指令的使用方法,并通过实验验证其正确性和有效性。

二、实验目的1. 理解定时器指令的原理和功能。

2. 学习定时器指令的编程方法。

3. 掌握定时器指令在实际应用中的使用。

三、实验器材和方法1. 实验器材:计算机、编程软件。

2. 实验方法:通过编写程序,使用定时器指令进行计时和时间控制。

四、实验过程1. 初始化定时器:在程序开始时,需要对定时器进行初始化设置。

通过设定计时周期和工作模式等参数,确保定时器能够按照预定的时间间隔工作。

2. 编写定时器指令程序:根据实际需求,编写程序,使用定时器指令实现计时和时间控制功能。

例如,可以编写一个简单的程序,通过定时器指令实现每隔一秒钟在屏幕上显示一次当前时间。

3. 运行程序并观察结果:将编写好的程序在计算机上运行,并观察定时器指令的效果。

确保程序能够按照预期的时间间隔进行计时和时间显示。

五、实验结果与分析经过实验,我们成功使用定时器指令实现了计时和时间控制的功能。

每隔一秒钟,程序会在屏幕上显示一次当前时间,实现了时间的自动更新和显示。

这在实际应用中非常有用,比如在科学实验中需要精确计时,或者在工业自动化控制中需要按照一定时间间隔进行操作等。

六、实验总结通过本次实验,我们深入了解了定时器指令的原理和功能,并学会了如何使用定时器指令进行时间控制和计时。

定时器指令在计算机科学和工程技术中具有广泛的应用,可以用于实现各种时间相关的功能。

掌握定时器指令的使用方法对于我们提高编程能力和解决实际问题具有重要意义。

七、存在的问题与改进方向在本次实验中,我们成功实现了定时器指令的功能,但仍存在一些问题。

首先,定时器指令的精度可能受到计算机硬件和操作系统等因素的影响,需要进行更精确的测试和调整。

其次,定时器指令的编程方法可能较为复杂,需要更深入地学习和理解。

实验三 定时器实验 实验报告

实验三 定时器实验 实验报告

课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。

二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。

此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。

_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。

2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。

1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。

0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。

(3)GATE :门控位。

当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。

TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。

复位时,TMOD 所有位均置0。

2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。

定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。

实验三(一)(二)定时器与计数器功能认识与应用、扩展

实验三(一)(二)定时器与计数器功能认识与应用、扩展

实验三 定时器/计数器实验(一)一、实验目的通过实验了解定时器和计数器的不同应用。

进一步掌握定时器和计数器的编程和调试的方法。

二、实验内容要求学生自行设计并调试程序(教师可适当提示)1、自复位接通延时定时器电路(一个机器周期脉冲发生器电路)提示:先思考下面三个电路,根据定时器的刷新方式分析它们能否正常工作?不能工作的程序应如何修改?为了确保在每次定时器达到预置值时,自复位定时器的输出都能够接通一个程序扫描周期,用一个常闭触点来代替定时器位作为定时器的使能输入。

但一个程序扫描周期的脉冲过窄,在状态表中无法监视,为解决这种状况,可使用比较指令“LDW >= T33,+40”控制PLC 的某个输出点,再用状态图监视。

(思考:若想形成自复位计数器电路应如何编程?)知识回顾:定时器的刷新方式: 1ms 定时器每隔1ms 刷新一次与扫描周期和程序处理无关即采用中断刷新方式。

因此当扫描周期较长时,在一个周期内可能被多次刷新,其当前值在一个扫描周期内不一定保持一致。

10ms 定时器则由系统在每个扫描周期开始自动刷新。

由于每个扫描周期内只刷新一次,故而每次程序处理期间,其当前值为常数。

100ms 定时器则在该定时器指令执行时刷新。

下一条执行的指令,即可使用刷新后的结果,非常符合正常的思路,使用方便可靠。

但应当注意,如果该定时器的指令不是每个周期都执行,定时器就不能及时刷新,可能导致出错。

使用定时器本身的常闭触点作定时器的使能输入。

定时器的状态位置1时,依靠本身的常闭触点的断开使定时器复位,并重新开始定时,进行循环工作。

采用不同时基标准的定时器时,会有不同的运行结果,具体分析如下:(1)T32为1ms 时基定时器,每隔1ms 定时器刷新一次当前值,CPU 当前值若恰好在处理常闭触点和常开触点之间被刷新,Q0.0可以接通一个扫描周期,但这种情况出现的几率很小,一般情况下,不会正好在这时刷新。

若在执行其他指令时,定时时间到,1ms 的定时刷新,使定时器输出状态位置位,常闭触点打开,当前值复位,定时器输出状态位立即复位,所以输出线圈Q0.0一般不会通电。

51单片机定时器计数器汇编实验

51单片机定时器计数器汇编实验

实验三、定时器/计数器实验报告一、实验内容1、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.7接到示波器显示该方波波形;用T1作计数器对从P3.6输出的方波进行计数,计数结果通过P1口输出到发光二极管显示。

(计算机仿真)2、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.6输出的方波接到P3.5口通过T1作计数器对该方波进行计数,计数值由LED显示,用存储示波器显示P3.7输出的方波。

(实验台验证)3、设计一个60秒计时器,秒计时结果用两位LED数码管显示。

(计算机仿真)二、实验仿真图(1)脉冲计数实验程序ORG 0000HBEGIN:MOV TMOD,#51H MOV TL0,#0F0HMOV TH0,#0DBHMOV TH1,#00HMOV TL1,#00HMOV P1,#00HMOV P0,#00HMOV P2,#00HMOV R3,#00HMOV R4,#00HSETB TR0SETB TR1S1: MOV R1,#33HMOV A,R4MOV R5,TL1ADD A,R5MOV P1,AMOV R2,TL1CJNE R2,#10,S2MOV TH1,#00HMOV TL1,#00HINC R3MOV A,R3MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P2,AMOV P0,#3FHMOV A,R3MOV B,#0AHMUL ABMOV R4,AMOV P1,R4AJMP NEXTS2: MOV R1,#33HMOV DPTR,#TAB1MOV A,TL1MOVC A,@A+DPTRMOV P0,AAJMP NEXT LOOP: JBC TF0,NEXT AJMP LOOPNEXT: MOV TL0,#0F0HMOV TH0,#0DBHDJNZ R1,LOOPCPL P3.6CPL P3.7AJMP S1TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;(SW3,SW4为:00) END(2)60秒定时器实验程序ORG 0000HBEGIN:MOV TMOD,#51HTL0,#0F0HMOVMOVTH0,#0DBHTH1,#00HMOVTL1,#00HMOVR3,#00HMOVP0,#00HMOVP2,#00HMOVSETBTR0TR1SETBS1: MOV R1,#33HR2,TL1MOVR2,#10,S2CJNETH1,#00HMOVTL1,#00HMOVR3INCR3,#06H,S4CJNER3,#00HMOVS4: MOV A,R3DPTR,#TAB1MOVA,@A+DPTRMOVCP2,AMOVMOVP0,#3FHNEXTAJMPS2: MOV R1,#33HDPTR,#TAB1MOVA,TL1MOVA,@A+DPTRMOVCMOVP0,ANEXTAJMPLOOP: JBC TF0,NEXTLOOPAJMPNEXT: MOV TL0,#0F0HTH0,#0DBHMOVR1,LOOPDJNZP3.6CPLCPLP3.7S1AJMPTAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

实验三、定时器实验

实验三、定时器实验
实验三、定时器实验
实验报告本 指导老师: 班级: 姓名: 学号: 2011 ~2012 学年度第二学期广东石油化工学院计算机与电子信息学院 实验三、定时器实验 一、实验目的 1、熟悉DSP的定时器 2、掌握DSP定时器的控制方法 3、学会使用定时器中断方法控制程序流程 二、实验设备 计算机、ZYE1801C实验箱 三、实验原理 TMS320VC5402有两个16位的定时器,每个定时器带有一个4位预分频器PSC和16位定时计数器TIM。CLKOUT时钟先经 PSC预分频后,用分频的时钟再对TIM作减1计数,当TIM减为0时,将在定时器输出管脚TOUT上产生一个脉冲,同时产生定 时器中断请求,并将定时器周期寄存器PRD的值装入TIM。因此,定时器的工作受到三个寄存器的控制,即TIM、PRD、定时 器控制寄存器TCR。两个定时器分别有3个寄存器和相应的输出管脚TOUT。 TMS320VC5402的定时器可以被特定的状态位实现停止、重新启动、重新设置或禁止。可以使用该定时器产生周期性的CPU 中断。 1、TIMER REGIS算机与ZYE1801C 实验箱通过并口P1相连,运行CCS 软件。 2. 编写定时器中断程序,实现实验箱插板上红色指示灯的闪烁。
3. 调整定时延时系数TIMER ,观察指示灯闪烁延时的变化。 4. 调整寄存器PRD0,TCR0的值,观察指示灯的闪烁周期的变化。 五、思考题 1、本实验的定时时间是如何计算的? ()()11 ()(1)(1) c c c c TIN T RATE t u v t TD D R PRD = = ???+?+ 注:()c c t 是DSP 芯片时钟周期。 2、本实验系统采用的外部时钟输入,f=11.0592MHZ ,采用的是5倍频模式,请问该系统定时器的最大定时周期? 11.59ms 六、实验心得体会 通过本次实验,熟悉DSP 的定时器的原理和定时时间的计算,学会使用定时器中断方法控制程序流程,及DSP 开发板的使 用,以及要延时比较长时间的处理方法。

定时器应用实验报告

定时器应用实验报告

定时器应用实验报告定时器应用实验报告引言:定时器是一种广泛应用于各个领域的电子设备,它能够精确地测量时间间隔,并在特定时间点触发相应的操作。

本文将介绍定时器的原理和应用,并通过实验验证其功能和性能。

一、定时器的原理定时器是一种基于时钟信号的计时器件,它通常由一个计数器和一个控制逻辑组成。

计数器用于记录时钟信号的脉冲数量,而控制逻辑则根据设定的时间参数来判断何时触发相应的操作。

二、定时器的应用领域1. 工业自动化:在工业生产过程中,定时器被广泛应用于控制设备的启停、周期性操作以及时间计量等方面。

例如,定时器可以用于控制机器的定时开关,以实现自动化的生产线。

2. 电子设备:在电子设备中,定时器常常用于实现延时操作、定时测量和时序控制等功能。

例如,手机中的闹钟功能、照相机中的自动对焦功能以及微波炉中的定时加热功能等,都离不开定时器的应用。

3. 科学实验:在科学实验中,定时器被用于控制实验的时间间隔和触发实验的操作。

例如,生物实验中的药物注射、物理实验中的数据采集以及化学实验中的反应时间测量等,都需要借助定时器来实现。

三、定时器实验设计为了验证定时器的功能和性能,我们设计了以下实验:实验一:延时触发LED灯材料:- Arduino开发板- LED灯- 面包板- 连接线步骤:1. 将Arduino开发板连接到电脑,并打开Arduino IDE软件。

2. 将LED灯的正极连接到Arduino开发板的数字引脚13,负极连接到地。

3. 在Arduino IDE软件中编写以下代码:```void setup() {pinMode(13, OUTPUT);}void loop() {digitalWrite(13, HIGH);delay(1000);digitalWrite(13, LOW);delay(1000);}```4. 将编写好的代码上传到Arduino开发板中。

5. 观察LED灯的闪烁情况,每隔1秒钟亮灭一次。

单片机 实验三中断及定时器实验

单片机  实验三中断及定时器实验

实验三:中断及定时器实验一、实验目的:1、弄清中断的概念、基本原理,掌握中断技术的应用2、了解中断初始化的方法,中断向量安装和中断服务子程序的设计方法。

3、了解定时/计数器的工作原理及MCS51单片机的定时器内部结构4、掌握时间常数计算方法5、掌握定时器初始化方法和定时中断程序设计方法二、实验内容:定时器实验1、这个是一个电子钟走时程序,利用定时器T0产生50ms中断,中断计数器中断20次为1秒,利用秒信号进行电子钟计时。

先读懂下面程序段,然后编辑、编译程序,并在伟福仿真器上模拟调试该程序。

程序清单如下:COUNT EQU 7FHCOUNT1 EQU 7EHS_MEM EQU 73HM_MEM EQU 72HH_MEM EQU 71HORG 0000HLJMP MAINORG 000BHLJMP INT_T0 ;“*1”MAIN: MOV SP,#2FHMOV TMOD,#BMOV TH0,#03CH ;50毫秒中断时间常数MOV TL0,#0BHMOV IE,#B ;开放T0MOV IP,#0MOV S_MEM,#0MOV M_MEM,#0MOV H_MEM,#0MOV COUNT,#20SETB TR0;______________________________________________________ W AIT:NOPSJMP W AITINT_T0: MOV TL0,#0BHMOV TH0,#3CHDJNZ COUNT,EXT_T0MOV COUNT,#20 ;恢复中断计数器INC S_MEM ;“*2”MOV A,S_MEMCJNE A,60,EXT_T0MOV S_MEM,#0INC M_MEMMOV A,M_MEMCJNE A,#60,EXT_T0MOV M_MEM,#0INC H_MEMMOV A,H_MEMCJNE A,#13,EXT_T0MOV H_MEM,#0EXT_T0: RETI2、按下列要求修改程序或回答问题。

电气控制与PLC编程实验三 定时器实验

电气控制与PLC编程实验三 定时器实验

实验二定时器实验
一、实验目的
l. 掌握定时指令的使用。

2. 掌握由计数器构成的典型环节。

3. 熟悉软件的调试方法,监控模式的使用。

二、实验器材
1. DICE-PLC02-A/B型可编程序控制器实验台/箱l台
2. FX一l0P-E编程器(可选)l只
3. 编程电缆l根
4. 连接导线若干
三、实验内容与步骤
一)实验原理
FX2N系列PLC有定时器256个(T0~T199),定时器的时基脉冲为l00ms(T25~T199、T250~T255)、10ms(T200~T245)、1ms(T246~T249),其中1ms(T246~T249)和l00ms(T250~T255)为累计(积算)型定时器。

每个定时器的定时范围从1×T~32767×Ts,T为时基脉冲周期。

二)实验内容与步骤:
1、编程实现按键按下后1s后接通LED,然后2s后断开LED,记录梯形图和指令表,然后打开监控模式,观察各元件的动态表现。

监控模式下的现象记录:
2)改变定时器的编号(地址)观察累计型和非累计型定时器的区别,然后打开监控模式,观察各元件的动态表现。

监控模式下的现象记录,累计型与非累计型的区别:
3)编写由定时器构成的闪烁(震荡)程序
分析:振荡器的高低电平/频率分别由什么控制。

4)编写8 LED流水灯程序;
实验报告
一、记录实验步骤
二、记录对应程序(梯形图和指令表)
三、记录实验现象
四、实验现象分析。

嵌入式系统 流水灯、按键、定时器实验报告

嵌入式系统 流水灯、按键、定时器实验报告

嵌入式系统应用实验报告姓名:学号:学院:专业:班级:指导教师:实验1、流水灯实验1.1实验要求编程控制实验板上LED灯轮流点亮、熄灭,中间间隔一定时间。

1.2原理分析实验主要考察对STM32F10X系列单片机GPIO的输出操作。

参阅数据手册可知,通过软件编程,GPIO可以配置成以下几种模式:◇输入浮空◇输入上拉◇输入下拉◇模拟输入◇开漏输出◇推挽式输出◇推挽式复用功能◇开漏式复用功能根据实验要求,应该首先将GPIO配置为推挽输出模式。

由原理图可知,单片机GPIO输出信号经过74HC244缓冲器,连接LED灯。

由于74HC244的OE1和OE2都接地,为相同电平,故A端电平与Y端电平相同且LED灯共阳,所以,如果要点亮LED,GPIO应输出低电平。

反之,LED灯熄灭。

1.3程序分析软件方面,在程序启动时,调用SystemInit()函数(见附录1),对系统时钟等关键部分进行初始化,然后再对GPIO进行配置。

GPIO配置函数为SZ_STM32_LEDInit()(见附录2),函数中首先使能GPIO 时钟:RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE);然后配置GPIO输入输出模式:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;再配置GPIO端口翻转速度:GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;最后将配置好的参数写入寄存器,初始化完成:GPIO_Init(GPIO_PORT[Led], &GPIO_InitStructure)。

初始化完成后,程序循环点亮一个LED并熄灭其他LED,中间通过Delay()函数进行延时,达到流水灯的效果(程序完整代码见附录3)。

实验程序流程图如下:硬件方面,根据实验指南,将实验板做如下连接:1.3实验结果实验二、按键实验2.1实验要求利用STM32读取外部按键状态,按键按下一次产生一次外部中断在中断处理函数中使按键所对应的灯亮起。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三、定时器实验
1 实验目的
通过实验,掌握定时器的使用方法。

着重掌握定时中断的使用!
2 实验内容
1、使用Mega16单片机的timer0产生1ms间隔的定时中断(建议采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定时中断中实现4位数码管的动态刷新。

(2)在1ms的定时中断中设计100mS的时间标志位,在主程序中查询时间标志位,实现LED闪烁。

2、重新配置TImer0工作在PWM模式,用按键改变PWM的占空比,调节电机转速;
3 实验预习要求
仔细阅读教材中定时中断的范例;
4实验步骤
1、启动ICCAVR,创建一个工程文件,配置timer0,实现10ms的定时中断,采用Application
Builder来生成初始化代码。

注意:本次实验使用的IO口也要初始化,包括数码管驱动所使用的IO,按键等。

2、在定时中断中实现四位数码管的定时刷新(注:要使用上次实验课的HC595的驱动),
并在定时中断中实现100ms的时间标志(时标),在主程序中查询时标,实现led(PORTC 口任何一个LED都可)闪烁;
3、重新配置TImer0工作在PWM模式,初始占空比设置为10%,然后使用按键INT1(在原理图中为SW8,连接到了单片机的PD3引脚上』来改变占空比,例如每按一次按键,占空比增加10%。

注:实验中要使用的管脚有:PD4、PD5、PD6、PD7、PB0、PB1、PA0,PD3,各管脚连接请参照原理图。

实验三定时器应用实验。

相关文档
最新文档