注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

III = Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

C51 外部中断扩展  

2017-10-13 17:00:06|  分类: C51(C&ASM) |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
只有两个外部中断的51单片机,很多时候是不能满足我们的使用需求的,这个时候可以考虑使用扩展,通过硬件触发中断,软件检索的方式确定最终的中断来源。对于低电平或者下降沿触发,可以使用与门,而对于高电平或者上升沿触发,可以使用与非门。
以低电平的输入为例,可以使用一个74LS21,这是一种双四路与门芯片。
C51 外部中断扩展 - Lemniscate - 信息 灵感 创新
 代码:
#include <reg51.h>

//0,1,2,3
unsigned char SEGCODE[]={0x3F,0x06,0x5B,0x4F};
sbit FL=P1^0;
sbit FR=P1^1;
sbit RL=P1^2;
sbit RR=P1^3;
void main()
{
    EA=1;
    IT0=1;
    EX0=1;
    P2=0;
    while(1);
}

void INT_EX0() interrupt 0
{
    EX0=0;
    if(FL==0)
    {
        P2=SEGCODE[0];
        EX0=1;
        return;
    }
    if(FR==0)
    {
        P2=SEGCODE[1];
        EX0=1;
        return;
    }
    if(RL==0)
    {
        P2=SEGCODE[2];
        EX0=1;
        return;
    }
    if(RR==0)
    {
        P2=SEGCODE[3];
        EX0=1;
        return;
    }
}
对于高电平, 则可以使用与非门的逻辑电路,例如74LS08、74LS24等
  评论这张
 
阅读(25)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017