您的位置:首页 > 编程语言

外部中断设计实验

2013-12-12 12:36 302 查看
要求:进一步掌握8051外部中断的使用和编程方法,了解七段数码显示数字的原理,掌握用一个段锁存器、一个位锁存器同时显示多位数字的技术
实验题目:通过P1.0端口以1HZ的频率输出信号,使用该信号点亮一个LED指示灯,并将信号接入到INT1,统计中断的次数。将中断的次数通过两个七段数码管采用十进制显示出来。当超过99次后,清零并重新计数。



#include<reg51.h>
sbit P1_0=P1^0;
sbit P1_7=P1^7;
unsigned int Count=0;
code char tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
time0() interrupt 1 using 1	 //T0中断服务
{
P1_7=!P1_7;
TH0=-50000/256;
TL0=-50000%256;
}

time1() interrupt 3 using 2		  //T1中断服务
{
P1_0=!P1_0;  // 第一次反向亮灯及输出1HZ频率(1s)
}

void Display()
{

if(Count==100)
Count=0;
P0=tab[Count/10];
P2=tab[Count%10];
Count++;
}

time2() interrupt 2 using 3   //中断调用输出
{
Display();
}

void main()
{
P1_7=1;
P1_0=1;               //保证第一次反向便开始计数
TMOD=0x61;           //T0方式1定时,方式二计数
TH0=-50000/256;          //设定计数初值
TL0=-50000%256;
TH1=-5;
TL1=-5;
IP=0x08;
EA=1;EX1=1;IT1=1;
ET0=1;ET1=1;
TR0=1;TR1=1;
while(1);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息