STC51单片机-中断控制LED-物联网应用系统设计项目开发

2023-05-16

目录

  • 一、说明
  • 二、重点
  • 三、实现
  • 四、下载

一、说明

单片机中“中断”处理主要是指单片机暂停当前主程序的执行,而去执行更重要或需急迫处理的事件请求的处理程序,处理完成后,再回到主程序暂停处继续执行。这个事件叫“中断源”,发出的中断信号叫“中断请求”,事件处理程序叫“中断处理程序”或“中断服务程序”,暂停主程序的程序位置叫“断点”。

中断技术主要用于实时监测与控制,避免单片机CPU花大量的时间去查询和判断需要处理的事件是否发生。有了中断系统,CPU就可以减少大量的查询时间而去处理其他工作,当事件发生提出处理要求,单片机能及时地响应中断请求源提出的服务请求,并快速响应与及时处理。

单片机对于中断的处理是由中断响应和中断服务二个部分组成。中断响应主要由单片机硬件实现,中断服务主要由软件(中断服务程序)完成。

一个中断源中断请求被响应,须满足以下必要条件:

  • (1)总中断允许开关接通,即IE寄存器中的中断总允许位EA=1。
  • (2)该中断源发出中断请求,即该中断源对应的中断请求标志为“1”。
  • (3)该中断的中断允许位=1,即该中断被允许。
  • (4)无同级或更高级中断正在被服务。

中断响应就是CPU对中断源提出的中断请求的判断和处理,只有满足上述条件时,就进行中断响应。

利用C51设计2个基本的I/O控制程序,编程实现以下功能:

  • 对外部按键的状态读取
  • 对多个按键的判断处理
  • 根据按键进行不同的输出控制LED显示
  • 8个LED的4-6种“花样”显示控制

二、重点

  • 51系列单片机的基本结构特点、引脚功能及其使用的基本方法
  • 掌握keil c51的程序设计特点及方法

三、实现

#include <reg52.h>
sbit INT_0 = P3^2;
sbit P26 = P2^6; 
unsigned  int i=0,count=0;
unsigned char kc1=0x01,kc2=0x0f,kc3=0x03,kc4=0;		//不同中断次数下LED显示的初值
void delay10ms(void)  				//约10ms延时子程序(12MHZ),用于防键抖动
   {	unsigned char  i,j,k;    
for(i=5;i>0;i--)   
for(j=4;j>0;j--)  
for(k=248;k>0;k--);  
}
void delay500ms(void)   			//约500ms延时子程序(12MHZ),用于显示变化的间隔
   {  unsigned char  i,j,k;   
      for(i=10;i>0;i--)  
for(j=132;j>0;j--)  
for(k=150;k>0;k--); 
}
void main() 
{	EA=1; EX0=1; IT0=1;		//允许/INT0中断,IT0=1为边沿触发
	while(1)
	{ 	
		switch (count) 
		  { case 0:P0=kc1; P26=1;P26=0; kc1<<=1;delay500ms();if (kc1==0) kc1=0x01;break; //0次
		    case 1: P0=kc2; P26=1;P26=0;kc2=~kc2;delay500ms(); break; 					 //1次
		    case 2: P0=kc3;P26=1;P26=0;kc3<<=1; kc3<<=1;delay500ms();				 	 //2次
                  if (kc3==0x00) kc3=0x03; break;
		    case 3: P0=kc4; P26=1;P26=0; delay500ms();kc4++; break; 					 //3次
		  }
	}
}
void int0(void) interrupt 0			///INT0中断服务函数
{
	delay10ms();					//防按钮抖动,可根据实际情况调整
	if (INT_0==0)
	 { count++;
	    if (count==4) count=0;
	 }
}	

在这里插入图片描述

四、下载

在这里插入图片描述

详见:STC51单片机-中断控制LED-物联网应用系统设计项目开发

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STC51单片机-中断控制LED-物联网应用系统设计项目开发 的相关文章

  • 2:发行版本安装演示——Ubuntu、CentOS、Kali?-步入Linux的现代方法

    目录 2 1 先尝试Ubuntu2 2 VMware Tools2 3 Ubuntu 20 04设置2 4 Linux其他发行版本的安装指导2 5 下载指导 2 1 先尝试Ubuntu 详见 xff1a Linux Ubuntu 零基础体验
  • 3:步入Linux的世界-步入Linux的现代方法

    目录 3 1 Linux究竟需要我们学习什么 xff1f Linux四大组成部分3 2 Linux是命令还是图形界面 xff1f GUI 是什么 xff1f 那GNU是什么东西 xff1f GNU Linux 和Linux有什么区别 xff
  • Linux中 sudo su 和 su 区别

    su 直接切换root用户 xff0c 需输入root密码ubuntu xff0c 默认没有设置root密码 xff0c 使用sudo passwd root设置root密码 sudo su 当前用户暂时申请root权限 xff0c 需输入
  • Python 使用 Qt5 实现水平导航栏

    在 Qt5 中可以使用 QWidget 包含两个水平布局 xff0c 通过点击水平布局里的按钮 xff0c 实现下标滑动与页面的切换 可以按照以下步骤来实现上面图片中的功能 xff1a 导入必要的 Qt 包 xff1a span class
  • OOP上半部分-Java与生活

    目录 1 1 1 问题产生和引导1 1 2 烦人1 1 3 变换思维1 1 4 规划明确目标站在更高层次思考问题1 1 5 上代码 xff0c 设计体验面向对象编程 xff0c 实例和对象1 1 6 去你md成员变量行为类和this1 1
  • Centos7 搭建Jupyter NoteBook教程

    目录 1 Anaconda31 1 下载1 2 安装 2 环境配置2 1 添加PATH到 root bashrc文件中2 2 激活配置的环境变量 3 搭建虚拟环境3 1 创建虚拟环境3 2 开启环境3 3 查看已有的虚拟环境 4 jupyt
  • OOP下半部分-Java与生活

    目录 面向对象三大特性 xff1a 封装 继承 多态2 1 1 需求重定义2 1 2 继承2 2 2 饿狼传说之多层继承2 2 3 方法的重写2 2 4 super啃老2 2 5 啃老啃到彻底2 2 6 final2 2 7 提出新的问题2
  • Centos7 搭建单机Spark分布式集群

    目录 1 JDK Hadoop Spark安装与配置1 1 解压包1 2 配置环境变量 2 Scala安装与配置2 1 Scala安装2 2 配置环境变量 3 配置集群3 1 配置sprak3 2 启动spark 4 问题 xff1a 虚拟
  • 面向对象大胆向前 Java API 实战

    目录 0 xff1a Base API 引言API的定义和用处ScannerNumberMathRandomThreadLocalRandomDateDateFormat和SimpleDateFormatCalendarSystem 详见
  • Yeats_Liao的书单

    计算机软件类 大话计算机 冬瓜哥 架构师的自我修炼 李智慧 图解算法 xff1a 使用C语言 吴灿铭 胡昭民 编程原则 马克思 卡纳特 亚历山大 啊哈 xff01 算法 啊哈磊 Java Web框架开发技术 Spring 43 Spring
  • 0:Base API-Java API 实战

    目录 0 1 引言0 2 API的定义和用处0 3 Scanner xff08 普通类 xff09 0 4 Number xff08 包装类 xff09 0 5 Math xff08 工具类 xff09 0 6 Random xff08 父
  • 黑客与画家 [美] Paul Graham 读书摘录

    充分理解程序员带来的美和智慧 xff0c 这是本书做到的 P15 为什么书呆子不受欢迎 xff1f 平庸带来的严重后果 xff0c 直接导致学生的叛逆心理 我误解最深的一个词是 老成 tact 成年人使用这个词 xff0c 含义似乎就是 闭
  • 教育的真谛 [英] 尼古拉斯·泰特 读书摘录

    自柏拉图以来 xff0c 教育的目的与性质始终是西方哲学传统关注和探讨的问题 纵览2500年来的思想成果 xff0c 作者尼古拉斯 泰特博士在 教育的真谛 xff1a 伟大思想家的观点及其现实意义 中指出 xff0c 人类的教育活动至少应包
  • 1:Unit test and main function-Java API 实战

    目录 1 抛出企业问题 xff0c 脱离main测试 xff0c 模块化编程2 Junit单元测试的含义和用途3 怎么获取各种Jar包 xff1f Maven Repository 获取各类各个版本的jar xff0c 这就是仓库 脱离老师
  • CentOS 安装 Samba服务器(多用户组、多用户有不同的访问权限)

    增加smb用户 root 64 localhost sir01 smbpasswd a linuxsir 查看 smb 现有用户 pdbedit L 验证用户登录文件夹 smbclient 192 168 101 93 forlder U
  • 2:StringBuilder-Java API 实战

    目录 1 String存在的问题2 Stringbuilder以及链式调用的含义 1 String存在的问题 认识String 字符串广泛应用在编程中 xff0c 在 Java 中字符串属于对象 xff0c Java 提供了 String
  • 3:Throwable-Java API 实战

    目录 1 异常的介绍2 异常举例以及解决常见错误bug方案3 RuntimeException4 trycatch作用 xff0c 闲扯淡诱骗毕业设计5 NullPointerException空指针异常6 throws7 throws和t
  • 4:File-Java API 实战

    目录 1 引言2 绝对路径和相对路径 xff1f 先学送快递吧 xff01 3 绝对路径4 相对路径5 File类6 Linux上的绝对路径有所不同 1 引言 文件要区别绝对路径和相对路径 xff0c 在Win系统中的文件路径和Linux
  • 5:IO Stream-Java API 实战

    目录 1 相对论和IO流之说2 汉语文学理解IO流3 图解IO流4 俩亲爹 xff1a InputStream和OutPutStream5 FileInputStream字节流读取文件6 FileOutPutStream字节流写入文件7 b
  • 6:CharSet-Java API 实战

    目录 1 阶段2 字符集编码吹X3 转换字符编码 1 阶段 Java NIO File Java NIO中的Files类 xff08 java nio file Files xff09 提供了多种操作文件系统中文件的方法 Java File

随机推荐

  • 7:Multithreading-Java API 实战

    目录 1 问题的提出2 核心数 进程 线程3 进程和线程的区别以及对应应用4 多线程程序含义 多线程的作用5 多线程的执行过程6 Runnable7 简化操作以及线程名8 抢购鞋 多线程案例9 后台 守护进程的提出10 匿名内部类创建多线程
  • 8:Java Conllections FrameWork-Java API 实战

    目录 1 原生数组带来的问题 xff0c 抛出问题2 Conllections家族3 黑帮的帮规4 ArrayList第一讲5 ArrayList第二讲6 ArrayList第三讲7 Linked链表8 LinkedList一带而过9 提醒
  • 9:JDBC-Java API 实战

    目录 1 说明2 JDBC的由来以及定义3 JDBC体验 xff0c statement executeQuery 查询4 整理和释放5 封装JDBCUtils6 增删改 executeUpdate 7 字符编码问题8 PreparedSt
  • 10:Java人脸识别认证-Java API 实战

    目录 1 提出问题 xff0c 引入SDK的概念2 选择平台3 SDK下载和文档说明4 人脸检测5 人脸对比6 建议和结束语 1 提出问题 xff0c 引入SDK的概念 什么是SDK xff1f 我们并不具备开发人脸识别的能力 xff0c
  • 个人学习笔记附Markdown格式下载

    B S方向 文章链接 xff1a https blog csdn net qq 46207024 article details 114378676 spm 61 1001 2014 3001 5502 下载链接 xff1a https d
  • Ubuntu/Linux 访问 Windows 共享文件夹

    文章目录 Ubuntu Linux 访问 Windows 共享文件夹SMB 协议安装 samba 客户端访问共享文件夹参考资料 Ubuntu Linux 访问 Windows 共享文件夹 SMB 协议 Linux 操作系统与 Windows
  • Java 序列化与反序列化

    目录 一 说明二 理解三 实现1 实现接口2 序列化方法3 反序列化方法 一 说明 序列化与反序列化是什么 序列化 xff1a 将Java对象表示为一个字节序列 xff0c 存储对象数据到文件中 xff0c 可用于网络传输 反序列化 xff
  • JavaMail 使用POP3/SMTP服务发送QQ邮件

    目录 一 说明二 理解三 实现1 导入jar包2 用户认证3 发送邮件创建步骤简单的Email带HTML的E mail带图片的Email包含附件的邮件 一 说明 邮件服务器 为用户提供接收邮件的功能 xff0c 有发邮件的SMTP服务器 x
  • Java多线程 Callable和Future

    目录 一 说明二 理解三 实现1 实现接口2 执行线程 一 说明 Java 提供了三种创建线程的方法 实现 Runnable接口继承 Thread类本身通过 Callable和 Future 创建线程 Callable和Future的引入
  • Java多线程 Future和FutureTask的区别

    目录 一 说明二 理解三 实现1 实现接口2 使用Future3 使用FutureTask 一 说明 Future和FutureTask的关系 Future 是一个接口 xff0c 无法直接创建对象 xff0c 需配合线程池使用 submi
  • Java多线程 CompletionService和ExecutorCompletionService

    目录 一 说明二 理解三 实现1 使用Future2 使用ExecutorCompletionService3 take 方法4 poll 方法5 poll long timeout TimeUnit unit 方法 一 说明 Future
  • Java多线程 线程池Executor框架

    目录 一 说明二 理解ExecutorExecutorServiceExecutors 三 实现1 newSingleThreadExecutor2 newFixedThreadPool3 newCachedThreadPool4 newS
  • Java多线程 ThreadPoolExecutor自定义线程池

    目录 一 说明二 理解三 实现1 SynchronousQueue2 ArrayBlockingQueue3 LinkedBlockingQueue 一 说明 ThreadPoolExecutor Java提供的线程池Executor框架相
  • Java多线程 ThreadPoolExecutor-RejectedExecutionHandler拒绝执行策略

    目录 一 说明二 理解三 实现1 AbortPolicy2 DiscardPolicy3 DiscardOldestPolicy4 CallerRunsPolicy5 自定义拒绝执行策略 一 说明 RejectedExecutionHand
  • Java多线程 关闭线程池 shutdown() 、shutdownNow()、awaitTermination()

    目录 一 说明二 理解三 实现1 shutdown 2 shutdownNow 3 awaitTermination 一 说明 ThreadPoolExecutor 继承 Executor 接口它有多个构造方法来实现自定义创建线程池 xff
  • Java多线程 线程池的生命周期及运行状态

    目录 一 说明二 理解三 实现 一 说明 线程池的生命周期 线程池的状态runState和工作线程数量workerCount共同保存在 AtomicInteger 类型的控制变量 ctl 中ctl高三位保存运行状态 23 61 8 gt 5
  • Unable to determine the device handle for GPU 0000:02:00.0: GPU is lost.

    TITAN X Pascal 的显卡 xff0c 当 batch size 过大爆显存时 xff0c 就会出现 GPU丢失 的错误
  • Java文档注释 Intellij IDEA Generate JavaDoc

    目录 一 说明二 理解三 实现 一 说明 文档注释 Java Doc Comments 是指允许你在程序中嵌入关于程序的信息 xff0c 使你更加方便的记录你的程序的信息你可以使用Javadoc工具软件来生成信息 xff0c 并输出到HTM
  • Java 泛型

    目录 一 说明二 理解三 实现1 泛型类2 泛型方法3 类型通配符 一 说明 泛型 generics 本质是参数化类型 xff0c 所操作的数据类型被指定为一个参数提供编译时类型安全检测机制 xff0c 允许程序员在编译时检测到非法的类型
  • STC51单片机-中断控制LED-物联网应用系统设计项目开发

    目录 一 说明二 重点三 实现四 下载 一 说明 单片机中 中断 处理主要是指单片机暂停当前主程序的执行 xff0c 而去执行更重要或需急迫处理的事件请求的处理程序 xff0c 处理完成后 xff0c 再回到主程序暂停处继续执行 这个事件叫