外部中断设计实验

来源:互联网 发布:最好的英汉翻译软件 编辑:程序博客网 时间:2024/06/05 02:42
要求:进一步掌握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); }


0 0
原创粉丝点击