指示灯数码管的中断控制
- 格式:doc
- 大小:236.00 KB
- 文档页数:7
学生实验报告
学院:软件与通信工程学院
课程名称:单片机系统设计
专业班级:
姓名:
学号:
学生实验报告(1)
一、实验综述
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
unsigned char
led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e ,0x79,0x71};
unsigned char count=0;
sbit P0_4=P0^4;
void INT_0SRV() interrupt 0 {
P0_4 = ~P0_4;
}
void INT_1SRV() interrupt 2 {
count++;
if(count==16)
count = 1;
P2 = led_mod[count];
}
void main(){
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不同数值。
四、指导教师评语及成绩:
评语:
成绩:指导教师签名:
批阅日期: