【单片机原理及应用】实验:数码管的中断控制

news2024/9/26 3:27:42

目录

一、实验目的

二、实验内容

三、实验步骤

四、记录与处理

五、思考

 六、成果文件提取链接


一、实验目的

 掌握外部中断的工作原理,学习中断编程与程序调试方法。


二、实验内容

【参照图表】

(1)创建一个包含80C51固件,采用Keil for 8051编译器的新项目;

(2)仿照图A.5和表A.4绘制电路原理图;

(3)编写C51源程序,要求采用中断方法实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。

(4)完成源程序编译和动态调试,实现实验4的控制功能要求;

(6)完成实验4报告的撰写。


三、实验步骤

(1)创建一个包含80C51固件,采用Keil for 8051编译器的新项目,创建的项目如下图所示;

(2)仿照图A.5和表A.4绘制电路原理图;

单击“新建工程”选项,在“名称”文本框内输入新建项目的名称,然后在“路径”文本框内输入新项目的文件保存路径,成功新建了一个不含单片机固件和PCB布板的新项目,根据图示中所给出的元件进行选择,输入元件名称,对照元件样式进行选择,添加至画布中,将其全部放置在图纸上。如图所示。

然后按照实验要求的图表进行连线可以得到下图所示的界面。关于总线的连接方法:鼠标左键单击即可,在图中需要的位置,鼠标左键单击一下。如需停止,鼠标左键双击,鼠标左键单击设置断点。

绘制完毕的线路图如下所示:

(3)编写C51源程序,要求采用中断方法实现如下功能:程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。

void main(){ 
	IT0=IT1=EX0=EX1=EA=1;
      // 设置中断相关控制位:  
      // IT0: 外部中断0的触发方式(1表示下降沿触发)  
      // IT1: 外部中断1的触发方式(1表示下降沿触发)  
      // EX0: 允许外部中断0  
      // EX1: 允许外部中断1  
      // EA: 全局中断允许  
	P2 = 0;
	while(1);  // 无限循环,让程序一直运行 
}

(4)完成源程序编译和动态调试,实现实验4的控制功能要求;

程序启动后,D1处于熄灯、LED1处于黑屏状态,如下图所示

单击K1,可使D1亮灯状态反转一次,如下图所示

单击K2,可使LED1显示值加1,并按十六进制数显示,如下图所示,从1开始。

不断点击K2,LED值可以不断加一,下图为b

达到F后重新从1开始。以下为f,继续按下K2后

达到F后重新从1开始,如下图所示,LED上面的值显示为1


四、记录与处理

程序启动后,D1处于熄灯、LED1处于黑屏状态,如下图所示

单击K1,可使D1亮灯状态反转一次,如下图所示

单击K2,可使LED1显示值加1,并按十六进制数显示,如下图所示,从1开始。

不断点击K2,LED值可以不断加一,下图为b

达到F后重新从1开始。以下为f,继续按下K2后

达到F后重新从1开始,如下图所示,LED上面的值显示为1


五、思考

1.本实验让我更深一步理解了中断的概念:中断使得单片机具有对外部或内部随机发生的时间实时处理的能力,是单片机最重要的功能之一。51单片机内部有一共5个中断源。4种中断控制:中断触发方式;中断允许控制;中断请求标志;中断优先级控制;

2.通过本次实验,我还成功掌握了外部中断的工作原理和中断编程方法。我不仅在理论上对中断有了更深入的了解,还在实际操作中学会了如何运用中断来实现特定的功能。IT0: 外部中断0的触发方式(1表示下降沿触发),IT1: 外部中断1的触发方式(1表示下降沿触发),EX0: 允许外部中断0,EX1: 允许外部中断1,EA: 全局中断允许。

3.同时我也认识到了实验在学习过程中的重要性。通过实验,我可以将理论知识与实际操作相结合,更好地理解和掌握知识,实验还培养了我的动手能力、思考能力和解决问题的能力,加深了对C51编程和Proteus x8软件的理解,还学会了如何运用理论知识解决实际问题,通过反复调试和网上查阅相关资料,最终解决了问题,实现了目标。

 
六、成果文件提取链接

链接:https://pan.baidu.com/s/1vih-osSS5LE-I0vk-Imugg?pwd=ugmx 
提取码:ugmx  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汽车乘客热舒适度大挑战,如何利用仿真技术提高汽车环境舒适度

舒适性在人们选择汽车的决定性方面占比越来越重,而汽车乘员舱环境的舒适性是指为乘员提供舒适愉快便利的乘坐环境与条件,包括良好的平顺性、车内的低噪声、适宜的空气环境以及良好的驾驶操作性能。 舒适性 经济性 安全性、动力性 典型的乘员舱热舒适性模…

git常见命令行及分支规范

文章目录 GIT常见命令行原理图基本设置初始化和克隆仓库文件管理提交更改查看状态和历史分支管理远程仓库交互高级功能GIT常见分支风格1. 单一主干分支(Single Main Branch)//极少使用优点:缺点:2. 多主干分支(Multiple Main Branches)//个人小型项目采用优点:缺点:3. …

OpenCV Jet颜色映射和HSV颜色空间对比

目录 一、概述 二、Jet颜色空间映射 2.1优势 2.2颜色变化范围 2.3应用场景 三、HSV 颜色空间 3.1优势 3.2颜色分布 3.3应用场景 四、Jet与HSV区别 4.1对比总结 4.2选择建议 OpenCV图像处理与应用实战算法汇总地址: OpenCV 图像处理应用实战算法列表汇总…

H264编码原理(二)帧内预测

假设你去了一家餐厅吃饭,这家餐厅提供了一个有趣的点餐方式。服务员会根据餐厅最近最受欢迎的菜品组合,推荐九个套餐给你。你的任务是从这九个套餐中找到一个最接近你心中想要的菜品组合的套餐,然后告诉服务员你想替换哪些菜,以得…

PS快速如何抠图章?

1、选择--色彩范围--颜色选择(反相)--确定 2、选中范围后--按delete删除非选中内容--就能得到图章 3、图层叠加来加深颜色和补全缺失点

合宙低功耗4G模组Air780EQ——开发板使用说明

CORE-AIR780E 开发板是合宙通信推出的基于 Air780E 模组所开发的, 包含电源,SIM 卡,USB,天线,音频等必要功能的最小硬件系统。 以方便用户在设计前期对Air780E模块 进行性能评估,功能调试,软件…

Python__面向对象__多态学习

目录 一、多态 1.多态定义理解 2.实例属性和类属性 3.类相关的函数 (1) 实例方法 (2)类方法 (3)静态方法 一、多态 1.多态定义理解 在Python中,多态是一种特性,类似于一个接口,允许在一个对象中的一个操作可作用在不同类型的对象上…

OpenGL3.3_C++_Windows(36)

PBR_IBL镜面部分 镜面部分并不能像漫反射部分一样将BRDF部分像常量一样提取出来,因为它整个积分上不是常数,因为它受到wi和w0的影响,就比如一个x的等式,不能把x部分提取出来一样,他是随着等式变化的如果试图解算所有入…

uni-app开发日志:将schema2code生成的新增页和修改页整合成一页

有没有想过,add和edit页面其实没多大差别? 我之前自研的系统add和edit都是一个页面,只要判断一下当前有没有id传递来,为空来就是新增。 这样如果页面修改时,才能尽量少改动代码,少出错。 对比add.vue和edit…

企业海外新闻稿发布的转型之路:从纸媒到数字化

在全球化进程加速的今天,企业的传播渠道和方式也在经历着深刻的变革。曾经占据主导地位的纸质媒体,逐渐被灵活高效的海外媒体网站所取代。企业新闻稿发布形式的转变,不仅体现了技术进步和媒体环境的变化,也标志着企业全球传播战略…

日结兼职零工平台小程序系统开发制作方案

目前在大学生和自由职业者群体中,对短期兼职零工的需求日益增长。同时,企业与个人雇主也面临着季节性和临时性用工的需求。 日结兼职零工小程序系统为寻求日结工作的求职者和需要短期劳动力的企业提供一个快速匹配的平台。实现快速发布日结兼职工作信息…

5年经验社招后端面试经历分享

这是一位读者去年的面经,他在 2023 年在百度毕业,后面拿到了快手、滴滴和京东的 offer,最终选择了京东,薪资总包是 51w。 下面是正文。 背景介绍 大家好,本人 2018 年毕业于一所普通 211 学校,专业是软件…

【Redis】Redis 的消息队列 List、Streams—(六)

目录 一、消息队列二、List 方案三、Streams 方案 一、消息队列 我们一般把消息队列中发送消息的组件称为生产者,把接收消息的组件称为消费者,下图是一个通用的消息队列的架构模型: 消息队列在存取消息时,必须要满足三个需求&…

基于yolov10的PCB检测算法研究

内容:项目将YOLOV10创新后的PCB检测算法成功部署到GD32H757上,实现PCB缺陷的工业产线实时检测。 项目主要支持开源代码:HomiKetalys/gd32ai-modelzoo: Provide deployable deep learning models on gd32 (github.com) (想了解将…

群晖7.2.1 半洗白后安装AME

1. 群晖打开SSH 2. Xshell登录群晖 用管理员账户登录,然后使用sudo -i 获取root权限,sudo -i是要再次验证管理员密码 sudo -iSA6400还需要运行这个命令 /usr/syno/etc/rc.sysv/apparmor.sh stop #DSM7.2 AME版本3.1.0-3005强制解锁激活命令 curl -sk…

最常用集合 - ArrayList详解

ArrayList介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现。除该类未实现同步外,其余跟Vector大致相同。每个ArrayList都有一个容量(capacity)&…

MeshAnything V2来了!30秒生成建模师级Mesh!最大可生成面数提升至1600.

GitHub已揽星1.9k的MeshAnything项目上新了V2版本,由来自南洋理工大学、清华大学、帝国理工学院、西湖大学等研究人员完成。 MeshAnything V2相比V1,使用了最新提出的Adjacent Mesh Tokenization(AMT)算法,将最大可生…

mysql学习教程,从入门到精通,MySQL介绍(1)

1、MySQL 教程 本教程是为初学者准备的,以帮助他们理解与MySQL语言相关的基础知识和高级概念。 mysql MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系…

浏览器的高级搜索

一、背景 通常我们在浏览器搜索内容都是直接在输入框输入我们想要查询的内容,但是这样搜索出来的内容关联性不是很高,很多内容都是与我们搜索内容无关,会浪费我们大量的时间去查找内容。比如:我想要搜索网页中包含《游戏科学》这4…

kafak集群搭建-基于kRaft方式

kafak集群搭建-基于kRaft方式 1、服务器规划2、kafka集群部署配置2.1、解压三个kafka2.2、配置/config/kraft/server.properties 3、启动kafka集群4、SpringBoot集成kafka的kRaft集群4.1、消费者4.2、生产者4.3、配置类4.4、实体类4.5、JSON工具类4.6、项目配置文件4.7、测试类…