外部中断设计实验
姓名:许瀚博
学号:20132100089
班级:嵌入式3班
指导老师:谭琦
课程名称:单片机实验
时间:2015.12.5
一、 实验内容
通过P1.0端口以1HZ的频率输出信号,使用该信号点亮一个LED指示灯,并将信号接入到INT1,统计中断的次数。将中断的次数通过两个七段数码管采用十进制显示出来。当超过99次后,清零并重新计数。
二、 实验目的
进一步掌握8051外部中断的使用和编程方法
了解七段数码显示数字的原理,掌握用一个段锁存器、一个位锁存器同时显示多位数字的技术
三、 实验设备
DELL台式机 + proteus版本6 + keilC51版本7
四、 实验电路图(可打印)
五、 程序流程图
六、程序源码(可打印)
#include<reg51.h>
sbit P1_0=P1^0;
//数码管显示
unsigned char numcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char num=0;
void int2() interrupt 2//中断控制,2号中断方式
{
num++;
if(num==100)//计数到100则归零
num=0;
P0=numcode[num/10];//十位数
P2=numcode[num%10];//个位数
}
void main()
{
int i=0;
P0=numcode[0];
P2=numcode[0];
P1_0=0;
IT1=1;
EX1=1;
EA=1;
TH0=0x3c;
TL0=0xb0;
TMOD=0x01;
TR0=1;
while(1)
{
if(TF0==1)
{
TL0=0xb0;//计数初值
TH0=0x3c;
TF0=0;
i++;
if(i==10)//进位
{
P1_0=!P1_0;
i=0;
}
}
}
}