找回密码
 立即注册

QQ登录

只需一步,快速开始

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

写了个简单的中断程序,目的是按下第一个按键数码管加1,第二个按键启用中断清零

[复制链接]
跳转到指定楼层
楼主
大神帮帮忙看哪里出错了

#include<reg51.h>


sbit button1=P2^5;
sbit button2=P2^7;




char j=0;
unsigned char duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


void delay()
{
int i=200;
while(i--);
}


void res() interrupt 0
{
        while(1)
        {
          if(button2==0)
        {
         delay();
        if(button2==0)
        j=0;
        while(!button2);
        }
        }
}


void main()
{         
   EA=1;
   EX0=1;
   IT0=1;       
  while(1)
{
        if(button1==0)
        {
         delay();
        if(button1==0)
        j++;
        if(j==10)
        j=0;
        while(!button1);
        }
        P0=duan[j];
}


}


360截图20161225230424387.jpg (118.71 KB, 下载次数: 52)

360截图20161225230424387.jpg

评分

参与人数 1黑币 +5 收起 理由
rock5442107 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:151047 发表于 2016-12-25 23:17 | 只看该作者
按键1的功能实现了,但按键2中断的功能没实现
回复

使用道具 举报

板凳
ID:149988 发表于 2016-12-26 09:05 | 只看该作者

RE: 写了个简单的中断程序,目的是按下第一个按键数码管加1,第二个按键启用中断清零

不难看出button2键是用外部中断进行控制,既然利用外部中断,那么IO口是不能随便的,外部中断INT0口是P3.2,所以button2键不能用P2.7口。大循环中的button1键用P2.5口是可以的。
回复

使用道具 举报

地板
ID:140371 发表于 2016-12-26 10:34 | 只看该作者
飞鸿之梦 发表于 2016-12-25 23:17
按键1的功能实现了,但按键2中断的功能没实现

p2.7 並不是外部中斷的輸入  ....at8c51 P3.2 才對
回复

使用道具 举报

5#
ID:139855 发表于 2016-12-26 16:57 | 只看该作者
本帖最后由 love105827 于 2016-12-26 16:58 编辑

看错了。。
回复

使用道具 举报

6#
ID:139855 发表于 2016-12-26 17:00 | 只看该作者
本帖最后由 love105827 于 2016-12-26 17:04 编辑

外部中断int0 按键需要接在P3.2口上才有效 int1P3.3,后边中断里面的语句你也没写
回复

使用道具 举报

7#
ID:151047 发表于 2016-12-27 18:51 | 只看该作者
谢谢各位大神的帮助问题已解决了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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