要求:进一步掌握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=