指示灯数码管的中断控制.docx
《指示灯数码管的中断控制.docx》由会员分享,可在线阅读,更多相关《指示灯数码管的中断控制.docx(8页珍藏版)》请在冰豆网上搜索。
![指示灯数码管的中断控制.docx](https://file1.bdocx.com/fileroot1/2022-12/29/7cb7d157-5c96-4b3a-ab8f-edce9ad8c572/7cb7d157-5c96-4b3a-ab8f-edce9ad8c5721.gif)
指示灯数码管的中断控制
学生实验报告
学院:
软件与通信工程学院
课程名称:
单片机系统设计
专业班级:
姓名:
学号:
学生实验报告
(1)
学生姓名
学号
同组人:
无
实验项目
实验4指示灯/数码管的中断控制
■必修□选修
□演示性实验□验证性实验■操作性实验□综合性实验
实验地点
H123
实验仪器台号
指导教师
朱华贵
实验日期及节次
2016年10月24日3、4节
一、实验综述
1、实验目的及要求
【实验目的】
掌握外部中断原理,学习中断编程与程序调试方法
【内容及要求】
(1)熟悉uvision3的软件调试方法;
(2) 完成c51语言编程
(3) 练习uvision3与ISIS的联机仿真方法
【实验原理】
在编程软件配合下,要求实现如下功能:
程序启动后,D1处于熄灯、LED1处于黑屏状态;单击K1,可使D1亮灯状态反转一次;单击K2,可使LED1显示值加1,并按十六进制数显示,达到F后重新从1开始。
软件编程原理为:
K1和K2的按键动作分别作为INT0和INT1的中断请求,在中断函数中进行指示灯与数码管的信息处理。
初始化后,主函数处于无限循环状态,等待中断请求
2、实验仪器、设备或软件
电脑,Keil uVision4,proteus7
二、实验过程(实验步骤、记录、数据、分析)
(1)在Keil uVision4中编写和编译C51程序,生成可执行文件;
(2)在uVision4中启动ISIS的仿真运行,并进行联机调试。
【实验代码】
#include
unsignedcharled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
unsignedcharcount=0;
sbitP0_4=P0^4;
voidINT_0SRV()interrupt0{
P0_4=~P0_4;
}
voidINT_1SRV()interrupt2{
count++;
if(count==16)
count=1;
P2=led_mod[count];
}
voidmain(){
P2=0x00;
P0_4=0x01;
EA=1;
EX0=1;
EX1=1;
IT1=1;
IT0=1;
while
(1);
}
【实验原理图】
三、结论
1、实验结果
(1)程序启动后,D1处于熄灯,LED1处于黑屏状态
(2)单击K1,使D1亮灯状态反转一次
(3)单击K2,使LED1显示值加1,
.
.
.
.
.
(4)达到F后重新从1开始
2、分析讨论
由运行结果可以看出,按键K1产生外部中断0控制D1的状态,使指示灯D1由亮到暗一次变化;按键K2产生外部中断1使LED显示0~F不同数值。
四、指导教师评语及成绩:
评语:
成绩:
指导教师签名:
批阅日期:
THANKS!
!
!
致力为企业和个人提供合同协议,策划案计划书,学习课件等等
打造全网一站式需求
欢迎您的下载,资料仅供参考