找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1413|回复: 5
打印 上一主题 下一主题
收起左侧

求各位大佬,关于51中断程序的问题

[复制链接]
跳转到指定楼层
楼主
ID:983998 发表于 2021-11-23 20:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机中断系统,一开始8个led闪烁循环,按键以后,变为流水循环,再按一次回到闪烁循环,我的程序只会到流水,回不去闪烁。这是我的程序include <reg51.h> void mDelay(unsigned int Delay)                  //延时1s子程序:由Dleay决定延时时间
{         unsigned int data i;                 
for(;Delay>0;Delay--)  {               
for(i=0;i<54;i++) ;  }}     
void main(){                IT0=1;                  //外部0中断边沿触发               
EA=1;                  //开总中断               
EX0=1;                  //开外部0中断               
while(1)
{ P1=0x00;                           //LED点亮                       
mDelay(1000);                   //延时1s                       
P1=0xff;                           //LED熄灭                        
mDelay(1000);                   //延时1s                              
}}void ex0_int() interrupt 0                  //外部0中断处理子程序
{ if(P3^2==0)      
{ unsigned char outdata=0xfe,i ;                 //初始选择最右边LED               
for(;;)        {
IE0=0 ;               
outdata=0xfe;               
for( i=0;i<8;i++ )              
  {  P1= outdata ; // LED选择码送P1口显示                 
mDelay (500);   //延时500ms               
outdata = (outdata << 1)+1 ;  //值左移一位              
  }        }                                                      
}        
else        return;}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:624769 发表于 2021-11-23 22:17 | 只看该作者
while(1)
{
      if(LED_Mode)
      {
              循环代码
       }
       else
       {
               闪烁代码。
        }
}

void ex0_int() interrupt 0   
{
     LED_Mode =  !LED_Mode;
}
回复

使用道具 举报

板凳
ID:983998 发表于 2021-11-23 22:20 来自触屏版 | 只看该作者
188610329 发表于 2021-11-23 22:17
while(1)
{
      if(LED_Mode)

感谢去试一试
回复

使用道具 举报

地板
ID:983998 发表于 2021-11-23 22:54 来自触屏版 | 只看该作者
188610329 发表于 2021-11-23 22:17
while(1)
{
      if(LED_Mode)

大佬,问一下,我在最前面 Int LED_Mode,然后出来的还是和我一开始一样,停在那个流水,不能会循环
回复

使用道具 举报

5#
ID:624769 发表于 2021-11-23 22:59 | 只看该作者
dfmj891234 发表于 2021-11-23 22:54
大佬,问一下,我在最前面 Int LED_Mode,然后出来的还是和我一开始一样,停在那个流水,不能会循环

最前面 不能 int  LED_Mode
要 bit LED_Mode;
回复

使用道具 举报

6#
ID:983998 发表于 2021-11-23 23:08 来自触屏版 | 只看该作者
可以了可以了,感谢大佬,感恩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表