实验五定时器中断方式实验

合集下载

汕头大学电子系DSP实验报告4(精)

汕头大学电子系DSP实验报告4(精)

汕头大学实验报告学院: 工学院系:电子工程系专业:电子信息工程年级:09 成绩:实验五定时器及中断实验一、实验目的1. 熟悉CCS开发环境2. 熟悉DSP 54X EVM板的硬件环境3. 了解DSP 54X定时器工作原理4. 了解DSP 54X中断原理及中断向量表建立5. 了解数码LED显示原理(动态扫描)6. 掌握键盘扫描原理7. 掌握DSP 54X I/O寻址方式8. 掌握长整型数的运算9. 掌握中断优先级设置10. 掌握全局变量、局部变量的概念二、实验原理1、定时器及中断实验用行扫描法,读取键值;定时器进行不断地刷新LED的显示;使用外部中断来实现功能的切换(正计数,倒计数,复位)。

2、AD/DA实验采用DSP McBSP串口原理设置,TLV2544ID为I/O模式,位操作控制。

构建SPI 协议进行传输。

三、实验内容与基本要求1、定时器及中断实验1 实验内容DSP初始化定时器0初始化中断寄存器初始化中断向量表定时器中断服务程序(LED扫描驱动程序键盘扫描驱动程序外部中断1中断服务程序2 基本要求通过定时器启动中断,在中断服务程序中扫描数码LED显示,由扫描键盘得到不同的键值,根据不同的键值完成正计数、倒计数、停止、复位等功能。

外部中断可终止计数。

2、A/D-D/A 实验实验内容DSP初始化LCD初始化LCD显示驱动A/D 芯片TLV2544初始化;D/A 芯片TLV5638初始化;DSP McBSP串口2初始化为I/O模式;按A/D、D/A芯片时序,用DSP构建SPI协议;基本要求设置串口2为I/O模式,用DSP构建SPI协议:输入直流信号,启动A/D采样,将采样数据显示在LCD上,比较采样数据与计算值应一致;(在EVM板上有3个按键,可分别产生0.8V,1.2V,1.6V直流电压),并修改原来程序,使扩展到可以在CCS观看波形。

四、实验程序框图1、定时器及中断实验初始化主程序DSP初始化调初始化程序定时器0初始化定时器0,外部中断1使能读键值并延时(100ms)消抖是空键?YLCD初始化、设置LCD显示N数码LED显示使能由不同的键值调不同的子程序结束EXIT1中断程序T0中断程序清标志寄存器调LED显示库函数设置LCD显示位码计数器+1结束N计数值=6?Y位码计数器=0结束正计数子程序调延时程序长型计数器+1NN标志寄存器=0?计数值=1000000?YY结束长型计数器=0长型数转换为BCD送显示缓存器2、A/D-D/A 实验主程序初始化程序调初始化程序DSP初始化Mcbsp2初始化读键值并延时(100ms)消抖AD/DA 初始化是空键?YNLCD初始化、设置LCD显示外部中断1使能由不同的键值调不同的子程序结束ADC程序DAC程序调LCD显示库函数调LCD显示库函数清DA输出值=0,启动ADC, 采样4次, 取平均值启动DAC结果转换为浮点数送显示缓存器调延时子程序设置LCD显示DA输出值+1调延时子程序N输出值=4096N标志寄存器=0?Y标志寄存器=0?YNY结束结束注:当输入为直流信号时:EXIT1中断程序AI=VCC*R0/(R0+RZ其中RZ=R1+R2+R3+R4S1按键:RZ=R1,AI= VCC*R0/(R0+R1清标志寄存器S2按键:RZ=R1+ R2,AI= VCC*R0/(R0+R1+R2设置LCD显示S3按键:RZ=R1+ R2+R3,AI= VCC*R0/(R0+R1+R2+R3结束五、问题1.请解释C54定时器初始化步骤,并解释定时器中断在该实验中的作用。

6个单片机实验设计报告

6个单片机实验设计报告
实验一:流水灯
程序:
#include<reg52.h>
sbit d0=P0^0;
sbit d1=P0^1;
sbit d2=P0^2;
sbit d3=P0^3;
sbit d4=P0^4;
sbit d5=P0^5;
sbit d6=P0^6;
sbit d7=P0^7;
void delay(unsigned int x);
{
unsigned int qwe;
for(qwe=t;qwe>0;qwe--);
}
实验五:定时器中断
利用定时器0工作方式1,实现发光管以1s亮灭闪烁
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
for(;z>0;z--)
for(y=1000;y>0;y--);
}
实验三:外部中断,数字循环终止,led闪烁报警持续20秒
#include<reg52.h>
unsigned int dulatable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//段码表
void delay(unsigned int t);//延时函数
double convert(unsigned char sixteen);
unsigned char dushu(void);//从AD读数
void show(double qqq);//数码管显示
void main()
{

5单片机中断定时器的使用

5单片机中断定时器的使用
0 PT1 1
0 PS 1
0




1


级 中断入口
中断源


0




级 中断入口
中断源
SCON
1、(P3.2)可由IT0(TCON.0)选择其为低电平 有效还是下降沿有效。当CPU检测到P3.2引脚上 出现有效的中断信号时,中断标志IE0(TCON.1) 置1,向CPU申请中断。
第5章 单片机中断及定时计数器控制
第5章 单片机中断及定时计数器控制
而80C52单片机有四个中断优先级,即可实现四级 中断服务嵌套。每个中断源的中断优先级由中断优 先级寄存器IP和IPH中的相应位的状态来规定的 。
▪PX0(IPH.0),外部中断0优先级设定位; ▪PT0(IPH.1),定时/计数器T0优先级设定位; ▪PX1(IPH.2),外部中断0优先级设定位; ▪PT1(IPH.3),定时/计数器T1优先级设定位; ▪PS (IPH.4),串行口优先级设定位; ▪PT2 (IPH.5) ,定时/计数器T2优先级设定位。
第5章 单片机中断及定时计数器控制
2、SCON的中断标志
▪RI(SCON.0),串行口接收中断标志位。当允 许串行口接收数据时,每接收完一个串行帧,由 硬件置位RI。注意,RI必须由软件清除。 ▪TI(SCON.1),串行口发送中断标志位。当 CPU将一个发送数据写入串行口发送缓冲器时, 就启动了发送过程。每发送完一个串行帧,由硬 件置位TI。CPU响应中断时,不能自动清除TI, TI必须由软件清除。


0




级 中断入口
中断源
第5章 单片机中断及定时计数器控制

实验五 交通灯、跑马灯轮换实验

实验五  交通灯、跑马灯轮换实验

实验五交通灯、跑马灯轮换实验
一、实验要求
1.以74LS273作为输出口,控制4个双色LED灯(可发红,绿,黄光),
模拟交通灯管理。

2.以K1为切换输入口,控制双色LED灯在交通灯、跑马灯两种状态切换。

二、实验目的
1.学习使用定时计数器进行定时中断控制的方法。

2.学习使用外部中断控制数据输出的设计方法。

3.进一步巩固中断程序的设计技巧。

4.掌握数据表的设计方法。

三、实验电路及连线
接线说明:K1接P3.2;PO0~PO3接DG1~DG4;
PO4~PO7接DR1~DR4。

/CS接8300H
四、实验说明
1.本实验涉及到交通灯控制和跑马灯控制两种状态。

交通灯的变化规律可以参考实验
四之描述。

跑马灯规律如下:四个双色LED灯在任意一时刻,只有两个灯亮,颜
色自定。

在跑马灯的运行中,按照顺时针的方向依次点亮相邻的两个双色LED灯,经过四次变化,跑马灯跑完一圈。

2.双色LED是由一个红色LED管芯和一个绿色LED管芯封装在一起,公用负端。

当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正
端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。

3.实验进行时,首先是跑马灯状态,在任意时刻,拨动一次KEY1键(自定中断触
发方式),由跑马灯状态切换为交通灯状态;任意时刻拨动一次KEY1键,又由交
通灯状态切换为跑马灯状态。

如此循环。

4.实验要求:程序必须用到定时计数器中断和外部中断。

五、实验框图
六、实验代码
七、实验数据
八、实验小结。

实验五 定时器应用实验

实验五 定时器应用实验

实验五定时器应用实验一、实验目的1、学习MCS-51单片机中定时器工作方式和定时/计数功能;2、掌握定时器用中断方式产生延时的编程方法,利用定时器控制产生占空比可变的PWM波。

二、实验内容1、编写程序,利用定时器定时,控制P1.0口输出PWM波,用D1区的按键KEY1和KEY2实现占空比的增加和降低。

用示波器查看P1.0口输出波形。

2、利用定时器定时产生控制P1.0口输出1Hz或250Hz的PWM波。

3、无示波器,可用产生的可变的PWM波,控制1位LED灯渐亮和渐暗控制效果。

三、编程提示1、51单片机有两个16位内部定时器/计数器。

若是计数内部晶振驱动时钟,则是定时器;若是计数8051的输入引脚的脉冲信号,则它是计数器。

定时器实际上也是工作在计数方式下,只不过对固定频率的脉冲计数。

由于脉冲周期固定由计数值可以计算出时间,有定时功能。

定时器有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。

TMOD用于设置定时器/计数器的工作方式0-3,并确定用于定时还是用于计数。

TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止等。

2、TMOD1)M1M0工作方式控制位2)定时器方式或计数器方式选择位若C/T=1时,为计数器方式;C/T=0时,为定时器方式。

3)GATE定时器/计数器运行门控标志位当GATE=1时,T/C的启动受双重控制,即要求INT0(或INT1)引脚为高电平且TR0(或TR1)置1时,相应的T/C才被选通工作。

若GATE=0,T/C的启动仅受TR0(或TR1)控制,即置1,T/C就被选通,而不管INT0(或INT1)的电平是高还是低。

3、TCONTF0、TF1分别是定时器/计数器T0、T1的溢出中断标志位,加法计数器计满溢出时置1,申请中断,在中断响应后自动复0。

TF产生的中断申请是否被接受,还需要由中断是否开放来决定。

TR1、TR0分别是定时器/计数器T1、T0的运行控制位,通过软件置1后,定时器/计数器才开始工作,在系统复位时被清0。

单片机原理与应用实验报告5——秒表定时器实验

单片机原理与应用实验报告5——秒表定时器实验

大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。

2. 学习74HC595、74HC138使用及与51单片机的控制方法。

实验要求1.通过按键控制,完成数码管的显示计数控制。

2. 用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。

2.使用定时器进行计时。

根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。

3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。

4.使用key1,key2两个按键,按下key1,开始计时。

按下key2,计时停止。

5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。

6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。

并进行循环上电,保证数字的亮度。

三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。

中断原理实验报告总结(3篇)

中断原理实验报告总结(3篇)

第1篇一、实验目的本次实验旨在通过实际操作,加深对中断原理的理解,掌握单片机中断系统的工作机制,学会外部中断和定时/计数器的使用,以及串口数据发送和接收的方法。

二、实验内容1. 外部中断原理及使用(1)实验原理:通过实验,了解外部中断的工作原理,掌握外部中断的使用方法,包括中断源的设置、中断服务程序的编写和中断请求的处理。

(2)实验步骤:设置外部中断源,编写中断服务程序,实现按键控制LED灯亮灭。

2. 定时/计数器的使用(1)实验原理:通过实验,了解定时/计数器的工作原理,掌握定时/计数器的使用方法,包括定时/计数器的初始化、定时/计数器的启动和停止、定时/计数器的中断处理。

(2)实验步骤:设置定时/计数器,实现LED灯的闪烁。

3. 串口数据发送和接收(1)实验原理:通过实验,了解串口通信的工作原理,掌握串口数据发送和接收的方法,包括串口初始化、发送和接收数据的流程。

(2)实验步骤:实现单片机与计算机之间的串口通信,发送和接收数据。

三、实验结果及分析1. 外部中断实验结果及分析实验中,通过按键控制LED灯亮灭,实现了外部中断的基本功能。

实验结果表明,当按键被按下时,外部中断请求信号被触发,中断服务程序被执行,LED灯状态发生改变。

2. 定时/计数器实验结果及分析实验中,通过定时/计数器实现LED灯的闪烁,实现了定时功能。

实验结果表明,定时/计数器能够按照设定的周期产生中断,中断服务程序能够按照要求执行。

3. 串口数据发送和接收实验结果及分析实验中,通过串口通信实现单片机与计算机之间的数据传输。

实验结果表明,单片机能够按照设定的波特率发送和接收数据,计算机端能够正确接收并显示数据。

四、实验总结1. 通过本次实验,加深了对中断原理的理解,掌握了单片机中断系统的工作机制。

2. 掌握了外部中断、定时/计数器和串口通信的使用方法,为后续学习和实践打下了基础。

3. 在实验过程中,培养了动手实践能力,提高了解决问题的能力。

跑马灯实验报告

跑马灯实验报告

一、实验目的1. 熟悉嵌入式系统硬件电路的搭建与调试;2. 掌握C语言编程,实现跑马灯功能;3. 理解并掌握GPIO口操作,学习定时器中断的使用。

二、实验环境1. 开发板:STM32F103C8T6开发板2. 编译器:Keil uVision53. 软件库:STM32标准外设库三、实验原理跑马灯实验是通过控制LED灯的亮灭,实现LED灯依次点亮的效果。

实验原理如下:1. GPIO口控制:将LED灯连接到开发板的GPIO口,通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;2. 定时器中断:定时器产生中断,实现LED灯点亮与熄灭的时间间隔;3. 循环控制:通过循环控制LED灯的点亮顺序,实现跑马灯效果。

四、实验步骤1. 硬件电路搭建(1)将LED灯的正极连接到开发板的GPIO口,负极接地;(2)将开发板的电源和地线连接到电源模块。

2. 软件编程(1)在Keil uVision5中创建项目,并导入STM32标准外设库;(2)编写程序,实现以下功能:a. 初始化GPIO口,将LED灯连接的GPIO口配置为输出模式;b. 初始化定时器,设置定时器中断周期,使LED灯点亮与熄灭的时间间隔为1ms;c. 编写定时器中断服务程序,控制LED灯的点亮与熄灭;d. 编写主函数,实现LED灯依次点亮的效果。

3. 编译与下载(1)编译程序,生成可执行文件;(2)将开发板连接到计算机,通过串口下载程序到开发板。

4. 实验调试(1)打开串口调试助手,观察LED灯的点亮与熄灭效果;(2)调整程序参数,优化跑马灯效果。

五、实验结果与分析1. 实验结果(1)LED灯依次点亮,实现跑马灯效果;(2)LED灯点亮与熄灭的时间间隔可调。

2. 实验分析(1)通过控制GPIO口的输出电平,实现LED灯的点亮与熄灭;(2)定时器中断实现LED灯点亮与熄灭的时间间隔控制;(3)循环控制实现LED灯依次点亮的效果。

六、实验总结本次实验成功实现了跑马灯功能,加深了对嵌入式系统硬件电路、C语言编程和GPIO口操作的理解。

单片机实验IRQ0IRQ1IRQ2中断

单片机实验IRQ0IRQ1IRQ2中断
*P_IOA_Attrib =0x000f;
*P_IOA_Data = 0x0000;
*P_IOB_Dir = 0x000f;
*P_IOB_Attrib = 0x000f;
*P_IOB_Data = 0x0000;
//设置定时器A、B的属性
*P_TimerA_Ctrl = C_TMA1_4KHz | C_TMA2_1;
asm("INT IRQ");//开IRQ中断
while (1){
*P_Watchdog_Clear = C_WDTCLR;
}
return 0;
}
//isr.c
#include "SPCE061A.h"
void BREAK(void) __attribute__ ((ISR));
void FIQ(void) __attribute__ ((ISR));
后,翻转IOB口低四位输出电平以控制接在IOB低四位端口的发光二极管。程序运行时,可以
观察到接在IOA低四位端口的发光二极管亮灭的周期为4s,而接在IOB低四位端口的为2s【实验原理】
【实验原理】
IRQ0_fosc/1024、IRQ1_TMA、IRQ2_TMB中断源,通过写P_INT_Ctrl来允许中断,通过IRQ ON、
1、实验中遇到的问题及解决办法
答:1、问题:对不同中断信号频率的设置需要符合程序运行的方式,LED灯的闪烁频率太快时就无法看见其在闪烁,交替闪烁的快慢也会随之变化,在程序的编写上要严格按照规则编写,否则就会出错,因此在实验中一定要弄清楚其缘由。
2、解决方法:通过实际的计算测量。老师的引导,同学之间的相互交流沟通学习,一步步的完成了此实验,并在老师的详细讲解下熟悉了个窗口的功能及硬件的了解和正确的连接,做出与实验目的相符合的结果。

51单片机定时器实验内容

51单片机定时器实验内容

51单片机定时器实验内容
51单片机定时器实验的内容可以根据不同的需求和目的进行调整,以下是
一些可能的实验内容:
1. 定时器初始化实验:实验目标是了解如何初始化51单片机的定时器,包括设置定时器的工作模式、计数值、初始值等。

实验中可以编写代码,让定时器在初始化后自动开始计时,并在达到指定时间后产生中断或输出信号。

2. 定时器中断实验:实验目标是了解如何使用51单片机的定时器中断功能,实现定时器在达到指定时间后自动触发中断,并在中断服务程序中执行特定的操作。

实验中可以编写代码,让定时器在达到指定时间后自动进入中断服务程序,并在其中执行特定的操作,如点亮LED灯等。

3. 定时器PWM输出实验:实验目标是了解如何使用51单片机的定时器PWM输出功能,实现定时器输出PWM波形。

实验中可以编写代码,让定时器输出不同占空比的PWM波形,并通过调整占空比来控制LED灯的亮
度等。

4. 定时器与外部事件同步实验:实验目标是了解如何使用51单片机的定时器与外部事件同步,实现定时器在外部事件发生时自动开始计时或停止计时。

实验中可以编写代码,让定时器在外部事件发生时自动开始计时或停止计时,并在达到指定时间后执行特定的操作。

以上是一些常见的51单片机定时器实验内容,通过这些实验可以深入了解51单片机的定时器工作原理和用法,并提高编程技能和硬件控制能力。

单片机流水灯闪烁实训报告

单片机流水灯闪烁实训报告

一、实验目的1. 熟悉单片机基本原理和组成,掌握单片机编程的基本方法。

2. 理解单片机I/O口控制LED灯的原理,实现流水灯闪烁功能。

3. 提高单片机实际应用能力,为以后从事相关领域工作打下基础。

二、实验原理1. 单片机简介:单片机(Microcontroller Unit,MCU)是一种将中央处理器(CPU)、存储器(RAM、ROM)、输入/输出接口(I/O)、定时器/计数器、串行通信接口等集成在一个芯片上的微型计算机。

2. LED灯简介:LED(Light Emitting Diode)是一种发光二极管,具有体积小、亮度高、寿命长、响应速度快等优点,广泛应用于各种显示、照明等领域。

3. 流水灯闪烁原理:通过单片机的I/O口控制LED灯的亮与灭,实现流水灯效果。

本实验中,采用定时器中断的方式,定时改变LED灯的状态,从而实现闪烁效果。

三、实验设备1. 单片机开发板:选用STC89C52单片机开发板。

2. LED灯:8个LED灯。

3. 电阻:8个220Ω电阻。

4. 连接线:若干。

5. 仿真软件:Proteus。

四、实验步骤1. 搭建电路:将8个LED灯依次连接到单片机的P1口,每个LED灯串联一个220Ω电阻,以保护LED灯。

2. 编写程序:使用C语言编写单片机程序,实现流水灯闪烁功能。

3. 编译程序:将编写好的程序编译成机器码。

4. 仿真测试:在Proteus中加载编译好的程序,观察LED灯的闪烁效果。

5. 实际测试:将程序烧录到单片机中,观察LED灯的闪烁效果。

五、程序设计1. 初始化:设置单片机的I/O口、定时器等。

2. 定时器中断:设置定时器中断,定时改变LED灯的状态。

3. 主循环:在主循环中不断读取定时器中断标志,根据标志改变LED灯的状态。

4. 代码示例:```c#include <reg51.h>#define LED P1void Timer0_Init(void) {TMOD = 0x01; // 设置定时器0为模式1TH0 = 0xFC; // 设置定时器0初始值TL0 = 0x66;ET0 = 1; // 开启定时器0中断EA = 1; // 开启全局中断TR0 = 1; // 启动定时器0}void main(void) {unsigned char i = 0;LED = 0xFF; // 初始化LED灯Timer0_Init(); // 初始化定时器while (1) {if (TF0) { // 定时器0溢出中断TF0 = 0; // 清除溢出标志TH0 = 0xFC; // 重新加载定时器0初始值TL0 = 0x66;for (i = 0; i < 8; i++) {LED = ~(1 << i); // 改变LED灯状态delay(1000); // 延时1秒}}}}void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 120; j++);}```六、实验结果与分析1. 实验结果:LED灯按照预设的规律闪烁,实现了流水灯效果。

实验五――电子秒表显示器

实验五――电子秒表显示器

实验五――电子秒表显示器中国石油大学(北京)单片机原理及应用试验。

电子秒表显示器!中国石油大学(北京)实验课程:实验名称:实验报告单片机原理及应用实验五――电子秒表显示器中国石油大学(北京)单片机原理及应用试验。

电子秒表显示器!一、实验目的掌握定时/计数器的工作原理,熟悉定时/计数器中断法编程与调试内容。

二、实验内容1、按照教材图A.65,绘制实验五电路原理图;2、采用12MHz晶振,50ms T0定时方式1+中断(20次中断为1s)法编程;3、实现如下功能:程序启动时显示“00”,以后每隔1秒显示值加1,显示到59后,自动从“00”开始,如此无限往复。

3、观察仿真结果,完成实验报告。

三、实验要求提交的实验报告中应包括:电路原理图,T0定时方式1工作原理阐述,源程序(编程思路说明与源程序),仿真效果(运行截图与讨论),实验小结(结论与体会)。

其中讨论内容为:当前编程方案的不足之处?可以如何改进?提交实验报告的电子邮件主题及存盘文件名格式如,20XX 年0*****马晓明实验五。

中国石油大学(北京)单片机原理及应用试验。

电子秒表显示器!1、电路原理图图1 电路原理图2、T0定时方式1工作原理阐述T1T0脚T0TF0查询/中断TR0图2 T0定时/计数方式1逻辑结构图CT原理时,T0为定时器工作方式。

逻辑开关CT向上接通,此时以振荡器的12分频信号作为T0的计数信号。

若GATE=0,定时器T0的启动和停止完全由TR1的状态决定,而与INT0无关。

中国石油大学(北京)单片机原理及应用试验。

电子秒表显示器!已知T0方式1由高8位THx和低8位TLx组成一个16位的加一计数器。

若想要产生一个长度为t的定时,则需要为计数器赋初值a。

a = 216 C t* fos / 12 ,将a值得高8位赋给THx,低8位赋给TLx。

如此,当晶振产生时间长度为t的脉冲时,计时器发生溢出,使得TF0=1,从而触发了中断响应。

单片机中断实验报告

单片机中断实验报告

一、实验目的1. 理解单片机中断的基本概念和工作原理。

2. 掌握单片机中断系统的初始化方法。

3. 学会编写中断服务程序,实现特定功能。

4. 熟悉中断优先级设置及其对系统性能的影响。

二、实验设备1. 单片机实验板:STC89C52单片机实验板2. 串口下载线:USB转串口下载线3. 电脑:一台运行Windows操作系统的电脑4. 软件工具:Keil uVision4集成开发环境三、实验原理单片机中断系统是单片机的重要组成部分,它允许单片机在执行主程序时,响应外部或内部事件的中断请求,暂停主程序执行,转而执行相应的中断服务程序。

中断系统由硬件和软件两部分组成。

1. 硬件部分:包括中断源(如定时器、外部中断等)、中断控制器、优先级寄存器、中断服务寄存器等。

2. 软件部分:包括中断初始化程序、中断服务程序等。

四、实验步骤1. 创建项目:在Keil uVision4中创建一个新项目,选择STC89C52单片机作为目标芯片。

2. 设计电路:根据实验要求,绘制电路原理图,连接单片机实验板上的相关元器件。

3. 编写程序:编写C语言程序,实现以下功能:(1)初始化单片机中断系统,包括设置中断优先级、启用中断等;(2)编写中断服务程序,处理中断请求;(3)编写主程序,实现特定功能。

4. 编译程序:将编写好的程序编译成hex文件。

5. 烧录程序:将编译好的hex文件烧录到单片机实验板中。

6. 运行实验:观察实验现象,验证程序功能。

五、实验内容1. 实验一:外部中断实验(1)功能:当外部中断0(INT0)或外部中断1(INT1)有信号输入时,触发对应的中断服务程序,使LED灯闪烁。

(2)步骤:a. 初始化外部中断0和外部中断1,设置中断优先级;b. 编写外部中断0和外部中断1的中断服务程序;c. 编写主程序,实现LED灯闪烁。

2. 实验二:定时器中断实验(1)功能:定时器0每隔1秒产生一次中断,触发中断服务程序,使LED灯闪烁。

单片机中断实验报告

单片机中断实验报告

单片机中断实验报告单片机中断实验报告引言:单片机是一种集成电路,具有微处理器、存储器和各种输入输出设备等功能模块。

中断是单片机中的一种重要机制,它可以使单片机在执行某个任务时,暂停当前操作,转而执行其他紧急任务。

本次实验旨在深入了解单片机中断的原理和应用,以及如何在程序中实现中断功能。

一、实验目的本次实验的目的是通过编写程序,实现单片机中断功能,并验证中断的正确性和可靠性。

具体而言,我们将使用单片机的外部中断和定时器中断功能,分别实现按键中断和定时中断。

二、实验器材1. 单片机开发板2. 按键模块3. 七段数码管模块4. 电源模块5. 连接线等三、实验原理1. 外部中断外部中断是通过外部中断引脚与外部电路连接来实现的。

当外部电路触发中断条件时,单片机将暂停当前操作,转而执行中断服务程序。

在本实验中,我们将按键模块连接到外部中断引脚,当按下按键时,触发外部中断,实现按键中断功能。

2. 定时器中断定时器中断是通过定时器模块来实现的。

定时器可以按照设定的时间间隔产生中断请求信号,从而实现定时中断功能。

在本实验中,我们将使用定时器模块来实现每隔一段时间触发一次中断,实现定时中断功能。

四、实验步骤1. 连接电路将按键模块的输出引脚连接到单片机的外部中断引脚,将七段数码管模块连接到单片机的IO口。

接通电源,确保电路连接正确。

2. 编写程序使用C语言编写程序,首先需要初始化单片机的中断向量表和相关寄存器。

然后编写中断服务程序,根据实验要求实现按键中断和定时中断功能。

最后,在主程序中设置中断使能位,使得中断能够正常触发。

3. 烧录程序使用烧录器将编写好的程序烧录到单片机中。

4. 实验验证按下按键,观察七段数码管的显示是否按照预期变化。

等待一段时间,观察定时中断是否按照设定的时间间隔触发。

五、实验结果与分析经过实验验证,按键中断和定时中断功能均能够正常运行。

按下按键时,七段数码管的显示会按照预期变化,定时中断也能够按照设定的时间间隔触发。

实验五TIM定时器实验

实验五TIM定时器实验

实验五 TIM定时器实验一、实验目的了解TIM定时器的原理与应用二、实验内容1.对TIM3定时器进行控制,使得PB5-TIM3通道2产生频率为12.5Hz的方波,该方波控制LED1的闪烁。

(特定频率产生)2.对周期进行设置,控制通用定时器3的2通道,实现1KHz的不同占空比波形,用于控制LED1亮度的明暗渐变。

(PWM脉冲宽度调制)三、实验仪器、设备计算机、开发板、keil软件四、软件程序设计1、频率产生控制LED闪烁实验根据任务要求,程序内容主要包括:①配置TIM3的通道2为输出比较模式(预分频系数设置为63),TIM3_CCR2=45000。

②在相应的TIM3定时器中断服务处理程序中根据定时器的值翻转输出电平。

以输出方波。

整个工程包含4类源文件:FWLIB--stm32f10x_gpio.c ST公司的标准库,包含了关于对通用IO口设置的函数。

stm32f10x_rcc.c ST公司的标准库,包含了关于对系统时钟设置的函数。

stm32f10x_USART.c ST公司的标准库,包含了关于对USART设置的函数。

stm32f10x_flash.c ST公司的标准库,包含了关于对flash设置的函数。

Misc.c ST公司的标准库,包含了关于中断设置的函数。

CM3—是关于CORETEX-M3平台的系统函数及定义App—main.c 例程的主函数。

App—tim.c 定时器3的设置。

App--stm32f10x_it.c 中断服务程序主函数如下://__________________________________________________________int main(void){/* System Clocks Configuration --72M*/RCC_Configuration();/* NVIC configuration *//*嵌套向量中断控制器说明了定时器3抢占优先级级别0(最多1位),和子优先级级别0(最多7位) */NVIC_Configuration();/*定时器3的初始化*/time_ini();while(1);}void time_ini(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB , ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);/* GPIOA Configuration: Channel 1 Output */GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; //PB5复用为TIM3的通道2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB, &GPIO_InitStructure);GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3 , ENABLE);//TIM3局部复用功能开启在TIM3的局部复用开启时,PB5会被复用为TIM3_CH2/* Time Base configuration *//*-------------------------------------------------------------------TIM3CLK=72MHz 预分频系数Prescaler=63 经过分频定时器时钟为1.125MHz捕获/比较寄存器2 TIM3_CCR2= CCR2_Val2通道产生的更新频率是=1.125MHz/CCR2_Val=25Hz-------------------------------------------------------------------*/TIM3_TimeBaseStructure.TIM_Prescaler = 63; //预分频器TIM3_PSC=63TIM3_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //计数器向上计数模式 TIM3_CR1[4]=0TIM3_TimeBaseStructure.TIM_Period =0xffff; //自动重装载寄存器TIM3_APRTIM3_TimeBaseStructure.TIM_ClockDivision = 0x0; //时钟分频因子 TIM3_CR1[9:8]=00TIM_TimeBaseInit(TIM3,&TIM3_TimeBaseStructure); //写TIM3各寄存器参数TIM3_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle ; //TIM3_CCMR1[14:12]=011 翻转当TIM3_CCR2=TIM3_CNT时,翻转OC2REF的电平 TIM3_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //输入/捕获2输出允许 OC2信号输出到对应的输出引脚PB5TIM3_OCInitStructure.TIM_Pulse =CCR2_Val; //若CC1通道配置为输出:CCR2是装入当前捕获/比较2 TIM3_CCR2寄存器的值(预装载值)。

定时计数器实验-单片机

定时计数器实验-单片机

单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。

二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。

它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。

T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。

作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。

计数的最高频率一般为振荡频率的1/24。

定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。

TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。

因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。

TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。

❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。

其格式如下:GATE:门控位。

GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。

实验五 24小时时钟显示控制实验

实验五  24小时时钟显示控制实验

实验五24小时时钟显示控制实验
一、实验要求
1..P0口的2个扩展口作为段控口和位控口,通过使用P2.6和P2.7对SN74HC573芯片的使能,设计一个24小时时钟显示控制电路,时间显示时只用左边6个LED数码管;
2.利用INT0按钮作为启动/停止键,INT1按钮作为清0键,并按键采用中断响应;
3.系统复位时,显示“000000”,当第一次按下启动/停止键时,开始计时,再按一次时钟停止,再按又从原来时间的基础上继续计时……;当按下清0键时,停止计数并将时间恢复到“000000”
4.画出AT89C51实现上述功能的完整电路图,包括单片机电源、复位电路、晶振电路、显示电路和控制电路;
5.完成全部程序和电路调试工作;
二、实验目的
1.掌握定时器工作原理和使用方法;
2.掌握单片机外部中断和定时中断的控制方法;
三、设计提示
1.按钮控制均在外部中断中进行,建议将外部中断的引脚输入电平设置为下降沿有效,同时将外部中断的优先级设置为高。

2. 定时用定时器中断实现。

3. 演示时,时间可提速(比如提速10倍,用0.1秒表示1秒)。

4. 实验前:请搭好电路&编好程序。

五、参考电路图
提示:图中的段码-位码都是用P0口控制,为了简化,可以使用不同的P口。

全局图
局部图1 局部图2。

实验5步进电机控制

实验5步进电机控制

实验五PWM配置及步进电机控制一、实验目的1. 了解步进电机驱动原理;2. 了解步进电机的控制原理;3. 熟悉使用PWM控制步进电机的运行。

二、实验主要内容1. DSP的初始化;2. ePWM模块初始化与配置;3. 步进电机的驱动程序。

三、实验基本原理1. 步进电机的驱动:图1 是单极性步进电机驱动的典型电路,图中的方块为驱动开关。

针对SEED-DEC 中直流电机系统的动作要求,步进电机驱动电路设计思路如下:1)电机采用15V直流电源供电;2)4路控制信号由DSP提供,信号为CMOS标准电平,通过排线接入并下拉;3)使用达林顿管TIP31C代替IRL549作为电机驱动开关,基级串接100欧电阻减小MOS管的寄生震荡;4)使用快速二极管IN4007完成保护功能,以免电机换向时烧毁电机;图 1 步进电机驱动电路2. 步进电机的控制一般分为四相四拍与四相八拍两种方式,其中前者称为全步,后者称为半步。

步进电机在这个实验中选择的时M35SP-7N,其步进角为7.5°,是一种单极性步进电机。

它的结构如图2:图 2 步进电机结构四、实验过程和关键程序解读1. 启动CCS,进入CCS的操作环境,并导入stepmotor工程。

2. 加载stepmotor工程,添加xml文件3. 阅读源代码1)初始化系统控制寄存器与要使用的GPIO:2)关中断、初始化PIE、初始化PIE向量表3)关ePWM时钟,配置后打开时钟,并更新中断向量表4)ePWM初始化函数(以EPwm1为例):EPWM2的其他配置与1相同,不用的在于一些事件产生的动作不同:其产生的pwm波为CMPAABCD线圈按照ACBD的次序导通步进电机接线示意图(2b-A、1b-B、1a-C、2a-D):则步进电机顺时针旋转4. 按照老师要求修改源代码1)改变步进电机的转速在使用直流电机时,通常是用占空比来调节转速的,但是在步进电机中,是通过改变PWM的频率来调整的,因为在一个PWM周期中,步进电机改变的相位是一样的,所以PWM频率越高,改变相同相位就越快,所以转速也越快,程序中我们只需改变TBPRD的值即可。

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

中断标志寄存器IFR和中断屏蔽寄存器IMR
IMR:屏蔽外部或内部中断。 如果ST1中的INTM=0,IMR寄存器某位为1,就开
放相应的中断。(INTM:中断模式,屏蔽或使能所有 中断,INTM=0所有非屏蔽中断使能,INTM=1所有可 屏蔽中断无效)
IFR和IMR寄存器位定义
详见:TMS320C54x DSP Reference Set:CPU and Peripherals SPRU131G.pdf
C54DSP最多支持16个用户可屏蔽中断,见IMR内容。 第二类:非屏蔽性中断。
包括所有的软件中断或两个外部硬件中断RS#和 NMI#(这两中断也可以使用软件进行中断)
中断标志寄存器IFR和中断屏蔽寄存器IMR
IFR和IMR都是MMR寄存器。 IFR:当出现中断时,IFR相应中断标志位置1。 有4中情况中断标志位清0: (1)DSP复位(RS#为低电平); (2)中断得到处理; (3)将1写如IFR中的相应位(则相应位变成0),中断 没有处理完就被清除。 (4)利用适当的中断号执行INTR指令,相应的中断 标志清0。
3.中断向量地址的重新安排
DSP复位后,中断向量地址是可以更改的。 54x中断向量地址组成: 中断向量地址由IPTR(中断向量指针,9位,在PMST中) 和左移2位后的中断向量序号(0~31,左移2位变成7位) 组成。见131.pdf第189页Table 6–26. TMS320C5402 Interrupt Locations and Priorities。
K是中断向量位置,属不可屏蔽中断不受ST1的INTM影响。 CPU响应INTR时,INTM置1关闭其他可屏蔽中断。 TRAP K:区别于INTR在于,不影响INTM。 RESET:不可屏蔽,影响ST0和ST1,不影响PMST。
第二个阶段:响应中断
对于软件中断或其他非屏蔽中断 ,CPU立即响应。 对于可屏蔽中断,只有满足如下条件才能响应: (1)优先级最高(同时出现的中断) (2)ST1中INTM=0(所有非屏蔽中断使能) (3)IMR中相应位=1(开放相应的中断)
1.DSP中断
中断是由硬件或软件驱动的信号,使DSP暂停主程序 而执行中断服务程序(ISR)。 软件驱动:来自程序指令(由INTR、TRAP或RESET产生) 硬件驱动:来自外部硬件中断;
或片上外设的内部硬件中断。 当多个硬件中断同时触发时,DSP按照优先级别响应。
1.DSP中断(续)
中断按可屏蔽性分类: 第一类:可屏蔽性中断,可以用软件进行屏蔽。
count++;
if (count= =50)
//50*10=500ms
{
board_led_toggle(BRD_LED0); //LED0 flash every 500ms
count=0;
}
}
2.中断处理的过程(续)
将上述C程序编写的中断服务程序进行反汇编,可 以看得出,在中断服务程序中加入了22个MMR寄存器 的保存(压栈)和恢复(出栈)指令。其中包括状态寄 存器ST1。
实验五 定时器中断方式实验
➢一、实验目的 ➢二、实验原理 ➢三、实验内容 ➢四、实验思考题
一、实验目的
➢1.掌握5402 DSP中断和中断的处理过程; ➢2. 掌握5402 DSP中断向量地址的修改; ➢3. 学习中断初始化编写方法 ➢4. 学习中断向量表的编写
二、实验原理
➢1.DSP中断 ➢2.中断处理过程 ➢3.中断向量地址的重新安排 ➢4.DSP定时器中断的初始化方法 ➢5.中断向量表的编写
中断操作的流程图
2.中断处理的过程(续)
本实验中的C语言编写定时器中断服务程序:
interrupt void timer0_isr(void) {
if (xf_flag) { asm(" SSBX XF"); xf_flag=0; }
{ asm(" RSBX XF"); xf_flag=1;
}
2.中断处理的过程(续)
中断向量地址的重新安排(续)
例如:如果IPTR=0001h,DSP响应INT0#,PC得到的中 断向量地址计算。 由于INT0#的序号为16(10h),左移2位后变为40h, 所以中断向量地址0000 0000 1 100 0000B,即00C0h
4. DSP定时器中断的初始化方法
根据中断处理的过程(三个阶段),可以对定时器中 断进行初始化。一般包括以下步骤: (1)清除中断标志寄存器IFR中的中断标志; (2)设置中断屏蔽寄存器IMR中的相应屏蔽位为1,开 放相应的中断; (3)如果需要,重新设置处理器工作模式寄存器PMST 中的中断指针IPTR进行中断向量的重新定位; (4)设置INTM=0,开放全部可屏蔽中断。
CPU相应中断时,PC转向适当的地址取出中断向量, 并发出中断响应信号IACK#,清除相应的中断标志。
第三个阶段:执行中断服务程序
响应中断后,CPU执行如下动作: (1)入栈。将PC值(返回地址)存储到数据存储器堆栈 的栈顶; (2)将中断向量的地址加载到PC中; (3)在中断向量地址上取指,执行分支指令转到中断 服务程序,并执行中断服务程序; (4)出栈。中断返回,从堆栈中弹出返回地址到PC。 (5)继续执行被中断了的程序。 C语言中断服务程序中(1)~(3)由C编译器自动完成。
4. DSP定时器中断的初始化方法(续)
C语言编写Timer0的中断初始化
void interrupt_init(void) {
IFR|=0x0ffff; //clear all interrupt flag IMR|=0x0008; //enable timer0 interrupt PMST=0x4020;//set IPTR,new interrupt entry=0x4000 asm(" RSBX INTM "); //enable all interrupt }
2.中断处理的过程:三个阶段
54x DSP处理中断分3个阶段: 第一个阶段:接受中断请求 第二个阶段:响应中断 第三个阶段:执行中断服务程序
第一个阶段:接Leabharlann 中断请求(1)当硬件或软件指令请求中断时,IFR中的相应位置1 (2)硬件中断名称见IFR,软件中断:INTR、TRAP和RESET。 INTR K:可用来执行任何一个中断服务程序。
相关文档
最新文档