实验名称:单片机中断实验

实验环境:普中实验系统;Keil μVision 4软件;

实验目的:

(1)掌握单片机中断原理和中断响应过程。

(2)设计自己的中断程序具体实验内容,并通过程序设计控制实验箱上的2个按键,实现对应的中断内容。

硬件连线:

按键k3连接P3.2口
按键k4连接P3.3口
LED灯连接P2口

实验主要代码:

                                 /**************************************************************************************
*                     外部中断0实验                                                 *
实现现象:下载程序后按下K3按键可以对D1小灯状态取反。
注意事项:无。
***************************************************************************************/#include "reg52.h"             //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h>       //因为要用到左右移函数,所以加入这个头文件
typedef unsigned int u16;     //对数据类型进行声明定义
typedef unsigned char u8;sbit k3=P3^2; //定义按键K3
sbit k4=P3^3; //定义按键K3
#define led P2     //将P2口定义为led 后面就可以使用led代替P2口/*******************************************************************************
* 函 数 名         : delay
* 函数功能         : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{while(i--);
}/*******************************************************************************
* 函 数 名         : Int1Init()
* 函数功能         : 设置外部中断1
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
void Int0Init()
{//设置INT0IT0=1;//跳变沿出发方式(下降沿)EX0=1;//打开INT0的中断允许。   EA=1;//打开总中断
}/*******************************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 输    入       : 无
* 输    出         : 无
*******************************************************************************/
void main()
{   Int0Init();  // 设置外部中断0while(1);
}/*******************************************************************************
* 函 数 名         : Int0()    interrupt 0
* 函数功能         : 外部中断0的中断函数
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/void Int0() interrupt 0     //外部中断0的中断函数
{delay(1000);    //延时消抖if(k3==0){u8 i;led=0xfe;delay(50000); //大约延时450ms while(1){
/*      for(i=0;i<8;i++){P2=~(0x01<<i);     //将1右移i位,然后将结果取反赋值到P2口delay(50000); //大约延时450ms}
*/      for(i=0;i<7;i++)   //将led左移一位{led=_crol_(led,1);delay(50000); //大约延时450ms    }}
}if(k4==0){u8 i;led=0xfe;delay(50000); //大约延时450ms   while(1){
/*      for(i=0;i<8;i++){P2=~(0x01<<i);     //将1右移i位,然后将结果取反赋值到P2口delay(50000); //大约延时450ms}
*/      for(i=0;i<7;i++)  //将led右移一位{led=_cror_(led,1);delay(50000); //大约延时450ms }}
}
}

实验结果与心得:

实验现象:按下k3按键,LED灯从D1到D8从左到右实现流水灯依次点亮;按下k4按键,LED灯从D8到D1从右至左实现流水灯依次点亮

实验心得:1. INT0*—外部中断请求0,外部中断请求信号(低电平或负跳变有效)由INT0*引脚输入,中断请求标志为IE0。
2. IT0—选择外中断请求0为跳沿触发方式还是电平触发方式
3. IE对中断开放和关闭实现两级控制。两级控制就是有一个总的中断开关控制位EA(IE.7位),当EA=0,所有中断请求被屏蔽,CPU对任何中断请求都不接受;当EA=1时,CPU开中断,但5个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定
4. EX1—外部中断0中断允许位。
EX0=0,禁止外部中断0中断。
EX0=1,允许外部中断0中断。
5. 编写中断程序,应遵循以下规则:
1)中断函数没有返回值,如果定义一个返回值,将会得到不正确结果。建议将中断函数定义为void类型,明确说明无返回值。
2)中断函数不能进行参数传递,如果中断函数中包含任何参数声明都将导致编译出错。

C51单片机实验——中断实验相关推荐

  1. 单片机原理及其应用——单片机外部中断实验(八段数码管通过按键依次显示0~9数字)

    目录 一.实验要求 二.知识要点 (一)数码管 (二)八段数码管的字形编码 (三)C51变量定义的四要素 (四)中断源 (五)相关的特殊功能寄存器 1.定时器/计数器控制寄存器TCON 2.中断允许控 ...

  2. 单片机原理及其应用——单片机定时器中断实验(八段数码管依次显示0~9数字)

    目录 一.实验要求 二.知识要点 (一)单片机定时器/计数器 (二)相关的特殊功能寄存器 1.工作方式寄存器TMOD 2.定时器/计数器控制寄存器TCON (三)定时器/计数器的工作方式 1.工作方式 ...

  3. 单片机外部中断实验C语言程序,STC89C52单片机外部中断0实验

    原标题:STC89C52单片机外部中断0实验 / 实现功能: 设置,然后通过点亮与P1口第一个引脚相连的D1来 显示系统进入了外部中断0 实验板型号:BS-XYD-C52 实验名称: 外部中断0测试 ...

  4. 51单片机 | 外部中断实验

    文章目录 一.外部中断介绍 二.外部中断配置 三.硬件设计 四.软件设计 五.实验现象    51 单片机外部中断有 2 个,外部中断 0 和外部中断 1,它们的使用方法是一样的,所以只要学会一个即可 ...

  5. AVR16单片机--外部中断实验

    一.实验目的 1. 理解单片机中断的概念. 2. 掌握外部中断的编程方法. 二.实验内容 1. 验证课堂例题 编译下载运行课堂例题--"按键次数显示"(INT_EX1)和" ...

  6. 51单片机外部中断实验 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序). #inc ...

  7. ARM接口实验—中断实验

    一.实验原理分析 实验板:stm32mp157a-fsmp1a 本次中断是检测按键的下降沿信号,接收到信号进入异常处理,进行相应的异常处理流程 二.电路分析 分析三个按键对应的GPIO接口: KEY1 ...

  8. 中断实验计算机组成原理,计算机组成原理 中断实验 实验五

    <计算机组成原理 中断实验 实验五>由会员分享,可在线阅读,更多相关<计算机组成原理 中断实验 实验五(6页珍藏版)>请在技术文库上搜索. 1.深深 圳圳 大大 学学 实实 验 ...

  9. AT89C51单片机外部中断

    C51单片机外部中断调用P3_2 ,P3_3口. 中断方式有两种,分别为电平方式和脉冲方式. 中断请求有0和1.中断总允许为EA=1, IE0:外部中断请求0标志位: IT0:外部中断0触发方式设置位 ...

  10. c语言编程流水灯与交通灯实验,C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟.doc...

    C51单片机实验报告_流水灯_交通灯_定时器_双机交互_时钟 学 号: 班 级: 自动化10班 姓 名: 张 指导老师: 胡 2012.12 单片机核心板实验要求 流水灯实验 实验目的: 简单I/O引 ...

最新文章

  1. ant 接口返回文件流,前端自动下载实现
  2. 每天一个JavaScript实例-获取元素当前高度
  3. Easyui textbox 组件设置css样式
  4. 只靠开源的时代已经过去,BAT都在这样做!
  5. C# 选择按钮 数字排序 找最大值最小值
  6. php抓取页面生成html,PHP smiple html dom抓取页面内容
  7. 图像处理笔记(十八):模板匹配
  8. Ionic4 Camera插件在iOS13上选取视频失败 上传时候提示权限不足
  9. Linux-管道(day09)
  10. Qt 学习之路 :信号槽
  11. Flowable官方指定中国社区成立了
  12. [Render] Unity SRP 概述:可编写脚本的渲染管道
  13. c#获取软件版本、windows用户名、windows用户目录、.net版本、windows版本等
  14. Debian11 安装Chromium浏览器
  15. 收藏 一句话问答 linux
  16. CityEngine学习资料——split分割
  17. Android手机ERP开发(二)
  18. 数据结构:查找与排序
  19. python如何爬虫股票数据_如何抓取股票数据_用Python抓取新浪的股票数据
  20. 路由器工作原理及其主要部件详解

热门文章

  1. F200——搭载基于模型设计的国产开源飞控系统无人机
  2. 飞控计算机的作用,自动飞控计算机测试系统
  3. C# CAD批量转换为图片
  4. 微信小程序下拉刷新在真机上不回缩问题的解决方法
  5. 生活记录:给枯燥的心灵浇浇水
  6. 计算机工程ei是不是不检索了,EI检索的期刊一定是EI吗
  7. python分页查询_python | MySQL分页查询优化
  8. ADI公司与B-Secur携手开发面向汽车工业的生物特征识别技术
  9. Java_GPS经纬度转坐标
  10. 【Java编程】模拟帐户存取和转账操作