C51单片机-定时器实验,设置两个外中断的优先级相同

keil uVision4界面:

#include<reg51.h>
 #define uchar unsigned char                         
 void delay(int x)     //延时函数    
{
    int i,j;
    for(i=x;i>0;i--)
    for(j=120;j>0;j--);
}
void main()
{
    uchar seg1[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};    //8流水灯显示数据组
    unsigned int a;
    for(;;)
    {
       EA=1;                                  //总中断允许
       EX0=1;                                  //允许外部中断0中断
       EX1=1;                                  //允许外部中断1中断
       IT0=1;                                  //选择外部中断0为跳沿触发方式
       IT1=1;                                  //选择外部中断1为跳沿触发方式
       IP=0;                                  //两个外部中断均为低优先级
       for(a=0;a<9;a++)
       {
          delay(800);
          P0=seg1[a];                          //将已经定义的流水灯显示数据送到P0口
       }
    }
}
void int0_isr(void)  interrupt 0 using 1      //外部中断0的中断服务函数
{
    uchar seg2[]={0xc0,0xf9,0xa4,0xb0,0x99,   //01234
                  0x92,0x82,0xf8,0x80,0x90};  //56789
    unsigned int b;
    for(b=0;b<10;b++)                          //依次显示0到9
    {
        delay(500);
        P1=seg2[b];                              //将已经定义的数码管显示数据送到P1口
    }
}
void int1_isr(void)  interrupt 2 using 2      //外部中断1的中断服务函数
{
    uchar c;                                  //闪烁显示5次
    for(c=0;c<5;c++)
    {
        P0=0xff;                             //全灭
        delay(500);
        P0=0;                                 //全亮
        delay(500);
    }
}

proteus仿真界面:

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值