单片机独立式按键的外部中断扫描

k1~k4接p1.0~p1.3。8只LED灯接p2口,按键要求外部中断扫描,k1控制LED由上到下亮10次,k1控制由下到上亮十次,k3高低四位交替闪烁十次,k4八只LE... k1~k4接p1.0~p1.3。8只LED灯接p2口,按键要求外部中断扫描,k1控制LED由上到下亮10次,k1控制由下到上亮十次,k3高低四位交替闪烁十次,k4八只LED闪烁10次,求程序 展开
 我来答
zhxiufan
2018-11-13 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38379
国家科技进步奖

向TA提问 私信TA
展开全部
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
uchar key;
void ext0() interrupt 0
{
if(P1&0x01)key=1;
else if(P1&0x02)key=2;
else if(P1&0x04)key=3;
else if(P1&0x08)key=4;
else key=0;
}
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i<120;i++);
}
main()
{
uchar led,i,j;
while(1)
    {
    switch(key)
        {
        case 1:
        led=0xfe;
        for(i=0;i<10;i++)
        for(j=0;j<8;j++)
            {
            P1=led;
            led=_crol_(led,1);
            delay(200);
            }
            break;
        case 2:
        led=0x7f;
        for(i=0;i<10;i++)
        for(j=0;j<8;j++)
            {
            P1=led;
            led=_cror_(led,1);
            delay(200);
            }
            break;        
        case 3:
        led=0x0f;
        for(i=0;i<10;i++)
        {
        P1=led;
        delay(200);
        led=~led;
        P1=led;
        delay(200);
        led=~led;
        }
        break;
        case 4:
        for(i=0;i<10;i++)
        {
        P1=0x00;
        delay(200);
        P1=0xff;
        delay(200);
        }
        break;
        }
    }
}
11kxmx
2018-11-13 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2434万
展开全部
4个按键,共用一个中断,跟查询没什么区别呀。
主程序中:
EX0=1;EA=1; IT0=1;
while(1)
{
P1=0XF7;delayms(10);//扫描按键1
P1=0XFB;delayms(10);//扫描按键2
P1=0XFD;delayms(10);//扫描按键3
P1=0XFE;delayms(10);//扫描按键4
}
中断程序中:
EX0=0;//关中断
if(P1==0XF7){ 自上而下亮 }
if(P1==0XFB){ 自下而上亮 }
if(P1==0XFD){ 交替闪烁}
if(P1==0XFE){ 8只闪烁 }
EX0=1;//开中断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小灰狼Y
2018-11-12 · TA获得超过266个赞
知道小有建树答主
回答量:557
采纳率:81%
帮助的人:72.4万
展开全部
我觉得没人会专门为了回答问题而写个代码,除非刚好有现成。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-11-12 · TA获得超过6600个赞
知道大有可为答主
回答量:7455
采纳率:31%
帮助的人:1100万
展开全部
交通灯仿真实例,可以参考一下,下载附件仿真试试。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式