【单片机原理及应用】实验:数码管的中断控制
目录
一、实验目的
二、实验内容
三、实验步骤
四、记录与处理
五、思考
六、成果文件提取链接
一、实验目的
掌握外部中断的工作原理,学习中断编程与程序调试方法。
二、实验内容
【参照图表】
(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