找回密码
 立即注册

QQ登录

只需一步,快速开始

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

52单片机怎么把按键分别控制中断1和0

[复制链接]
跳转到指定楼层
楼主
ID:145536 发表于 2016-11-3 23:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
unsigned char aa,MENU=0;
sbit K1=P3^2;
sbit K2=P3^3;
void delay(unsigned int xms)
{
int m,n;
for(m=xms;m>0;m--)
for(n=112;n>0;n--);
}
void wai0() interrupt 0       //INT0中断入口
{
    {
    P1=0x7f;    //初始化 0111 1111
   for(j=0;j<7;j++)  //做一个循环
    {  delay();  //延时
       P1=P1>>1;  //右移
       P1=P1|0x08; }  //或上1000 0000
     delay();  //延时
  }
          MENU=1; //
}

//中断1服务程序
void wai1() interrupt 2       //INT1中断入口
{
     {
  P1=0xfe;       //初始化  1111  1110
  for(j=0;j<7;j++)    //做一个循环
{  delay();         //  延时
   P1=P1<<1;        //  左移
   P1=P1|0x01;}      //  或上 0000 0001
   delay();      //延时
  }
         MENU=2; //
}
main()
{       EA = 1;        //中断总开关
        EX1 = 1; //允许外部中断1中断   
        EX0 = 1; //禁止外部中断0中断
        IT1 = 1; //1:下沿触发  0:低电平触发
        IT0 = 1; //下沿触发  0:低电平触发

         while(1)
}怎么把按键分别控制中断1和0

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

使用道具 举报

沙发
ID:111634 发表于 2016-11-4 07:49 | 只看该作者
把按键一端分别接P3.2、P3.3,另一端接地就可,按键按下时,产生一个下跳变,触发中断1和0
回复

使用道具 举报

板凳
ID:7485 发表于 2016-11-4 09:34 | 只看该作者
还不如使用按键控制方式。
中断方式无法防止抖动或误触发。
回复

使用道具 举报

地板
ID:146124 发表于 2016-11-4 17:03 | 只看该作者
代码写好,然后直接在电路里面对应中断的端口各自连接一个按键就可以了
回复

使用道具 举报

5#
ID:144022 发表于 2016-11-4 22:59 | 只看该作者
可以直接用if语句啊,按键按下就则自动增减,定时器是设置中断的,不用按键控制
回复

使用道具 举报

6#
ID:146588 发表于 2016-11-7 13:22 | 只看该作者
好像可以在中断服务程序里面写入一个判断语句IF,判断是否有按键真正按下
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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