精华内容
下载资源
问答
  • 外部中断实验报告

    2017-02-22 14:27:55
    外部中断实验报告
  • 实验三:中断实验

    千次阅读 2020-04-17 13:21:54
    实验三:中断实验强调:本文章为新手提供学习参考实验三:中断实验使用的开发板原理图及本次使用的模块数码管备注:中断实验三的代码部分 强调:本文章为新手提供学习参考 实验三:中断实验 编程中使用中断功能来...

    强调:本文章为新手提供学习参考

    实验三:中断实验

    编程中使用中断功能来实现数码管静态显示秒表的正计时。

    使用的开发板原理图及本次使用的模块

    进取者STC15开发板原理图

    进取者stc15开发板
    本实验采用拓展口连接数码管的八个引脚实现功能

    数码管

    在这里插入图片描述数码管正面

    在这里插入图片描述
    数码管背面

    在这里插入图片描述
    数码管内部原理
    以共阳极数码管为例,从图中可以看出,数码管由8个LED组成,共阳极他们的阳极接在了一起,只要外部给一个VCC就可以通过控制他们的阴极来控制数码管显示
    共阳极代码:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
    对应0 1 2 3 4 5 6 7 8 9 a b c d e f十六个符号
    共阴极代码:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
    对应0 1 2 3 4 5 6 7 8 9 a b c d e f十六个符号

    备注:

    本次实验使用的是P0_0到P0_78个管脚,实际开发板中用杜邦线接出来(图片来源网络,侵删)

    模块1个脚提供高电平,其余脚与单片机P0口连接

    中断

    在这里插入图片描述
    STC15w4k58s4与STC15W4k32s4为一个系列,只不过io口有点区别,K32s4的有62个io口,k58s4有48个io口,其余没有太多的差别,单片机所带的中断请求源如图示,有很多,所以说STC15系列芯片是很强大的,

    在这里插入图片描述

    这是中断执行的内部结构图,通过开关选择不同的模式,在此就不多说了,因为中断这些代码可以直接用相关软件生成。
    在这里插入图片描述
    本次使用到的就是T0的定时器中断,我们按照datasheet所示编写好代码就可以使用定时器中断功能了。

    (摘自STC15datasheet)

    实验三的代码部分

    #include <reg51.h>	//调用reg51头文件	
    
    #define	uchar	unsigned char//定义uchar类型为unsigned char	储存大小1字节,值范围:0 到 255
    #define uint unsigned int  //定义uint类型为unsigned int 储存大小2或4个字节,值范围:0~65536
    	
    uchar i,j,k;
    uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//一维数组表示数码管显示“0~F”共阳极
    
    void display()//显示函数
    {
    		P0=tab[j];//P0等于对应的一维数组中值,从而数码管显示相应的数值,例如:j=1,P0=tab【1】=0xc0;
    	if(j==10)//对j判断,使j始终保持在0~10循环。
    	{
    		j=0;//当j=10时,让j重新变为0,重新开始累加。
    	}
    }
    	
    void InitTimer0(void)//使用定时器0
    {
        TMOD = 0x01;//选择为定时器0模式,工作方式1,仅用TR0打开启动
        TH0 = 0xFC;//给定时器赋初值,定时1ms
        TL0 = 0x18;
        EA = 1;		//打开定时器0中断允许
        ET0 = 1;  //打开总中断
        TR0 = 1;  //打开定时器		
    }
    
    void main(void)//主函数
    {
    
    		InitTimer0();//定时器初始化
    		while(1)//死循环
    		{
    			display();
    		}
    	
    }
    
    void Timer0Interrupt(void) interrupt 1//定时器0中断函数
    {
        TH0 = 0xFC;//给定时器赋初值,定时1ms
        TL0 = 0x18;
    
    		i++;//每过1ms,i+1一次
    		if(i==100)//当i达到100时,及经历了0.1s,进入判断
    		{
    			i=0;//让i恢复初值
    			k++;//每次i=100时,k+1一次
    			if(k==10)//经历十次k+1,及到达1s
    			{
    				k=0;//让k恢复初值
    				j++;//给j+1,使其显示改变。
    			}
    		}
    }
    
    

    打字不易,各位少侠点个赞吧,感谢!!!

    展开全文
  • 实验四:中断实验

    千次阅读 2020-04-18 14:27:14
    实验三:中断实验强调:本文章为新手提供学习参考实验四:中断实验使用的开发板原理图及本次使用的模块数码管备注:中断实验四的代码部分 强调:本文章为新手提供学习参考 实验四:中断实验 使用定时器来实现延时,...

    强调:本文章为新手提供学习参考

    实验四:中断实验

    使用定时器来实现延时,编程实现数码管静态显示秒表的倒计时。(此实验与实验三相似,只需要几处代码稍加改动就行)

    使用的开发板原理图及本次使用的模块

    进取者STC15开发板原理图

    进取者stc15开发板
    本实验采用拓展口连接数码管的八个引脚实现功能

    数码管

    在这里插入图片描述数码管正面

    在这里插入图片描述
    数码管背面

    在这里插入图片描述
    数码管内部原理
    以共阳极数码管为例,从图中可以看出,数码管由8个LED组成,共阳极他们的阳极接在了一起,只要外部给一个VCC就可以通过控制他们的阴极来控制数码管显示
    共阳极代码:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
    对应0 1 2 3 4 5 6 7 8 9 a b c d e f十六个符号
    共阴极代码:0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
    对应0 1 2 3 4 5 6 7 8 9 a b c d e f十六个符号

    备注:

    本次实验使用的是P0_0到P0_78个管脚,实际开发板中用杜邦线接出来(图片来源网络,侵删)

    模块1个脚提供高电平,其余脚与单片机P0口连接

    中断

    在这里插入图片描述
    STC15w4k58s4与STC15W4k32s4为一个系列,只不过io口有点区别,K32s4的有62个io口,k58s4有48个io口,其余没有太多的差别,单片机所带的中断请求源如图示,有很多,所以说STC15系列芯片是很强大的,

    在这里插入图片描述

    这是中断执行的内部结构图,通过开关选择不同的模式,在此就不多说了,因为中断这些代码可以直接用相关软件生成。
    在这里插入图片描述
    本次使用到的就是T0的定时器中断,我们按照datasheet所示编写好代码就可以使用定时器中断功能了。

    (摘自STC15datasheet)

    实验四的代码部分

    #include <reg51.h>//调用reg51头文件	
    #define uchar unsigned char//定义uchar类型为unsigned char	储存大小1字节,值范围:0 到 255
    #define uint  unsigned int//定义uint类型为unsigned int 储存大小2或4个字节,值范围:0~65536
    uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//一维数组表示数码管显示“0~F”共阳极
    uchar i,j,k=9;//i,j开始为0.k开始为9
    
    void display()//显示函数
    {
    	
    	P0=tab[k];//P0等于对应的一维数组中值,从而数码管显示相应的数值,例如:k=1,P0=tab[k]=0xc0;
    }
    void InitTimer0(void)//使用定时器0
    {
        TMOD = 0x01;//选择为定时器0模式,工作方式1,仅用TR0打开启动
        TH0 = 0xFC;//给定时器赋初值,定时1ms
        TL0 = 0x18;
        EA = 1;//打开定时器0中断允许
        ET0 = 1;//打开总中断
        TR0 = 1; //打开定时器
    }
    
    void main(void)
    {
        InitTimer0();//定时器初始化
    		while(1)
    		{
    			display();
    		}
    }
    
    void Timer0Interrupt(void) interrupt 1//定时器0中断函数
    {
        TH0 = 0xfC;//给定时器赋初值,定时1ms
        TL0 = 0x18;
    		i++;//每过1ms,i+1一次
    		if(i==100)//当i达到100时,及经历了0.1s,进入判断
    		{
    			i=0;j++;//让i恢复初值,每次i=100时,j+1一次
    			if(j==10)
    			{
    				j=0;//让j恢复初值
    				k--;//k-1
    				if(k==0)
    				{
    					k=10;//让k恢复初值
    				}
    			}
    		}
    	
        
    }
    
    

    打字不易,各位少侠点个赞吧,感谢!!!


    与实验三相比,

    	k--;//k-1
    			if(k==0)
    				{
    					k=10;//让k恢复初值
    				}
    

    在这里,只是把之前实验三默认0改为十,自加改为自减就行了。

    还有一种写法就是把uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};里面代码的顺序改一下,其他的和实验三一样也可以。

    展开全文
  • 串口中断实验

    2020-11-05 14:21:38
    串口中断实验 实验现象 通过串口调试助手发送一串字符串,arduino板子接收到后返回给PC机 理论学习 中断就是停下来办理某些事情,如果没有中断的话,arduino会一直运行loop中的代码,一遍一遍的重复执行,当有中断的...

    串口中断实验

    实验现象

    通过串口调试助手发送一串字符串,arduino板子接收到后返回给PC机

    理论学习

    中断就是停下来办理某些事情,如果没有中断的话,arduino会一直运行loop中的代码,一遍一遍的重复执行,当有中断的时候,单片机会停止运行loop中的代码,开始运行中断服务函数中的代码,运行一遍中断服务函数后继续回到loop中接着运行刚才的代码
    arduino串口中断函数:SerialEvent();

    原理图

    在这里插入图片描述

    代码编写

    arduino UNO R3代码:

    //串口中断实验
    //arduino UNO R3板子代码
    String inputString = "";         // a String to hold incoming data
    bool stringComplete = false;  // whether the string is complete
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(9600);//初始化串口设置波特率
      pinMode(13, OUTPUT);
    }
    void loop() {
      digitalWrite(13, HIGH);
      delay(1000);
      digitalWrite(13, LOW);
      delay(1000);
    }
    void serialEvent() {
      while (Serial.available()) {
        // get the new byte:
        char inChar = (char)Serial.read();
        // add it to the inputString:
        inputString += inChar;
        // if the incoming character is a newline, set a flag so the main loop can
        // do something about it:
        if (inChar == '\n') {
          stringComplete = true;
        }
        if (stringComplete) {
          Serial.println(inputString);
          // clear the string:
          inputString = "";
          stringComplete = false;
        }
      }
    }
    

    上面的UNO的板子的代码用Leonardo验证上传会出一些问题。
    这是因为SerialEvent是基于硬件串口的,所以模拟的串口是不可以使用SerialEvent的。UNO的USB
    接口连接的串口(数字I/O的0和1)可以使用SerialEvent。Leonardo的USB接口连接的串口(使用USB虚拟的COM),所以不可以使用SerialEvent.
    arduino Leonardo板子代码:

    //串口中断实验
    //arduino Leonardo板子代码
    String inputString = "";         // a String to hold incoming data
    bool stringComplete = false;  // whether the string is complete
    void setup() {
      // put your setup code here, to run once:
      Serial1.begin(9600);//初始化串口设置波特率
      pinMode(13, OUTPUT);
    }
    void loop() {
      digitalWrite(13, HIGH);
      delay(1000);
      digitalWrite(13, LOW);
      delay(1000);
    }
    void serialEvent1() {
      while (Serial1.available()) {
        // get the new byte:
        char inChar = (char)Serial1.read();
        // add it to the inputString:
        inputString += inChar;
        // if the incoming character is a newline, set a flag so the main loop can
        // do something about it:
        if (inChar == '\n') {
          stringComplete = true;
        }
        if (stringComplete) {
          Serial1.println(inputString);
          // clear the string:
          inputString = "";
          stringComplete = false;
        }
      }
    }
    
    展开全文
  • 实验一 外部中断实验

    万次阅读 2019-01-18 11:01:23
    实验一 外部中断实验 一、实验要求 用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。 二、实验目的 1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。 三、实验原理 当89C51的...

    实验一 外部中断实验

    一、实验要求

    用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。

    、实验目的

    1、学习外部中断技术的基本使用方法。

    2、学习中断处理程序的编程方法。

    三、实验原理

    当89C51的CPU正在处理某件事情(如正在执行主程序)时,单片机外部或内部发生的某一事件(如外部设备产生的一个电平变化或脉冲跳沿的变化,或者是片内事件的发生,如计数器的计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。中断服务处理完该事件后,再回到原来被终止的地方,继续原来的工作(如继续执行被中断的主程序),这称为中断。

    而外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使CPU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后.又返回被中断的程序处,继续执行下去。

    四、实验内容

      单片机的INT0和INT1分别接了两个外部中断,当INT0引脚有中断时,点亮发光二极管D1,当INT1引脚有中断时,点亮发光二极管D2。SW1从高电平变为低电平时,点亮发光二极管D1;SW2从高电平变为低电平时,点亮发光二极管D2。调试程序,并运行。观察发光二极管点亮情况

    、实验程序框图

    、实验电路图

    七、实验程序

    ORG  0000H

    AJMP  MAIN

    ORG  0003H

    AJMP  SERVE

    ORG  0013H

    AJMP  SERVE1      

    MAIN:  ORL P1 ,#0FFH ;

    SETB IT0; 

    SETB EX0; 

    SETB IT1; 

    SETB EX1; 

    SETB EA;  

    AJMP $ ;

    SERVE: MOV A,#0F7H

    MOV P1,A

    RETI

    SERVE1: MOV A,#0EFH

    MOV P1,A

    RETI

    八、实验总结

    通过本次实验,我们学习了外部中断技术的基本使用方法,以及学习中断处理程序的编程方法,这为以后学习单片机的其他方面的内容打下了铺垫。

    展开全文
  • 实验二 外部中断实验

    千次阅读 2019-01-10 15:40:32
    实验二 外部中断实验(2学时)  实验目的: – 掌握中断控制的设置方法及中断服务程序编写方法。  实验内容及要求: – ⑴用单脉冲信号申请中断,在中断服务程序中对输出信号进行翻转(可通过P1.0接一发光二极管...
  • dsp28335串口中断实验

    热门讨论 2013-11-22 15:08:43
    dsp的28335的串口中断实验,亲测可用,详见我的博客:dsp--28335的使用fifo的串口中断实验(一)
  • 外部中断实验

    千次阅读 2017-10-09 15:19:31
    外部中断实验 STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F103 的19 个外部中断为: 线 0~15:对应外部 IO 口的输入中断。 线 16:...
  • 计算机系统(1)实验五 中断实验

    多人点赞 2021-05-31 11:09:33
    LC3 中断实验实验目的实验内容实验步骤实现用户程序(模块A部分):实现键盘中断服务程序(模块B部分):测试程序实验结论: 实验目的 1)学会分析和理解给定的编程问题; 2)掌握中断驱动的基本原理; 3)掌握键盘...
  • 目录串口中断实验设置FIFO中断触发条件中断控制器设置串口0中断处理函数 串口中断实验 我们之前做过串口的实验,使用的是启用FIFO功能,以轮询的形式发送和接收数据。采用一位起始位,八位数据位,零位校验位,一位...
  • zynq 的定时器中断实验

    千次阅读 2018-04-01 00:43:44
    本文通过定时器中断实验,介绍zynq 的中断和定时器的基本使用方法。本文是在helloworld 实验的基础上完成的,所以必须先完成了helloworld 的实验。这个可以学习本博客的helloworld 实验,或者开发板提供的helloworld...
  • 定时器中断实验

    2017-03-06 08:57:59
    定时器中断实验   STM32F1 的定时器功能十分强大,有TIME1 和 TIME8 等高级定时器,也有 TIME2~TIME5 等通用定时器,还有 TIME6 和 TIME7 等基本定时器。 高级控制定时器(TIM1和TIM8) 13.1 TIM1和TIM8简介 ...
  • WDT中断实验 提示:几乎每种处理器都支持特定的异常处理,中断也是异常的一种。 提示:本次实验我们需要做的是一个关于WDT中断实验,由于我缺少相关理论部分,就对理论不展开过多的解释。 文章目录WDT中断实验前言...
  • STM32CubeMX—定时器中断实验

    千次阅读 2019-07-15 15:33:32
    定时器中断实验 一、实验说明 平台:STM32F103RCT6 本实验为定时器中断实验,使用STM32cube max 配置TIM3定时中断。 注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。 二、实验操作 1、STM32...
  • stm32外部中断实验

    千次阅读 2017-07-11 15:06:31
    stm32外部中断实验
  • AVR单片机 实验二 数码管显示与外部中断实验 1 实验目的 掌握动态扫描与外部中断原理,以实现多位数码管显示及单一按键控制的应用。 2 实验内容 (1) 实现4位数码管的动态扫描。 (2) 设定外部中断,实现按下按键累加...
  • 通用定时器中断实验 定时器中断时钟源解析 教你如何看逻辑信号图 向上计数模式(时钟分频因子=1) 中央对齐计数模式(时钟分频因子=1,ARR=6) 相关寄存器简介 事件产生寄存器(TIMx_EGR) 状态寄存器(TIMx_SR)...
  • STM32CubeMX—外部中断实验

    千次阅读 多人点赞 2019-07-24 19:04:04
    STM32CubeMx 外部中断实验 一、实验说明 实验平台:STM32F103RCT6(正点原子mini 板) 实验内容:使用 按键(PC5) 触发外部中断 控制LED灯(PA8)的亮灭。(按一下亮,再按一下灭) 二、实验操作 1、基础配置 sys中,...
  • 按键中断实验: 实验内容: 通过简单事例说明猎户座4412处理器的GIC中断处理的应用,设置key2按键连接的引脚为中断模式,当识别按键被按下时进入相应的中断处理函数 实验目的: 熟悉开发环境的使用 掌握s5p6818...
  • 用汇编实现8259中断实验

    千次阅读 2020-05-08 21:02:28
    用汇编实现8259中断实验前言实现分别控制实现优先级控制写在最后 前言 网课划水俩月不知悔改就是我本人了 问了班级大佬才弄明白一点的代码和使用方法。 实现分别控制 NOUT equ 8000h ; 数码管输出地址 ICW1 equ ...
  • 操作系统软中断实验

    2019-05-03 13:56:53
        操作系统软中断实验是在Linux操作系统完成,我在实验过程中也是遇到了很多问题。我在这里记录一下,也可以和大家一起交流。 一、题目     使用C语言编写程序,实现当按下组合键Ctrl+\的时候,先打印出...
  • STM32单片机(5) 定时器中断实验

    千次阅读 2014-08-06 01:11:42
    定时器中断实验
  • zigbee CC2530 系列教程 5 外部中断实验

    千次阅读 2020-01-16 16:25:31
    4.4外部中断实验 4.4.1实验目的 了解使用外部中断的方法,在中断处理函数中切换LED的状态。 4.4.2 实验讲解 首先根据开发板硬件原理图确定LED与CC2530芯片的连接引脚,如图4-4所示。 图4-4开发板LED和按键原理...
  • 51单片机串口中断实验 串口向外部发送“齐鲁工业大学”六个字,一个汉字占用两个字节,六个字占用12个字节。 #include <reg51.h> unsigned char s[] = "齐鲁工业大学"; // 延时函数 void ...
  • stm32定时器中断实验

    千次阅读 2017-05-11 11:05:09
    //个人总结:所有的中断实验都是设置好中断的条件,编写中断处理函数;之前是串口通信,当串口发送数据时,将数据打印出;后来是外部中断,这里用到了外部时钟,发生外部输入中断时,进行处理;看门狗(独立看门狗和...
  • 相关函数 fork():创建一个新进程 wait():用于阻塞,控制子...进程的软中断实验 用fork创建两个子进程,在从系统调用signal让父进程捕捉键盘上的中断信号,当接收到软中断后,父进程用kill中断两个信号。 #include...
  • 按键中断实验

    千次阅读 2019-03-29 17:24:53
    一、实验目的 掌握自外设备中断原理及编写驱动的方法。 二、实验环境 1.PC微机。 2.ubuntu14.04 64位。 3. arm-linux-gcc,minicom,tftpd-hpa,uboot 三、实验内容与步骤 实验内容: 1. 编写程序1c.c 参考...
  • ARM基本接口之外部中断实验

    千次阅读 2018-05-26 18:05:30
    实验名称:ARM基本接口之外部中断实验实验目的: 1. 了解中断的作用; 2. 掌握嵌入式系统中断的处理流程; 3. 掌握ARM外部中断编程。 实验内容(含步骤):1. 总体步骤:先编译,启动目标机,待显示2440后,进行...
  • 用汇编实现8255中断实验要求1.按键亮灯2.跑马灯小结 要求 掌握并行接口芯片8255的结构及编程方法。 8255芯片A口输出接8个发光二极管,B口输入接8个开关,按下是低电平。 1.8255芯片A口、B口均工作在方式0,A口输出,...
  • ex9 EXTI外部中断实验 实验目的:掌握EXTI的使用方法。 实验内容:按下USER按键触发外部中断EXTI14。 实验现象:每按下一次USER按键,LD5灯显示反转一次。 中断概念 中断全过程 中断发生——当CPU在处理某一事件A...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,731
精华内容 28,692
关键字:

中断实验