久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3341|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

如何使用單片機(jī)外部中斷執(zhí)行四位數(shù)碼管的動態(tài)顯示?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:439261 發(fā)表于 2018-12-21 23:00 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
基于單片機(jī)的三路搶答器的設(shè)計
設(shè)計內(nèi)容:
1.具有3路搶答輸入(由獨立按鍵實現(xiàn) )            
2.顯示搶答剩余時間,初始為10秒,最小量化單位為1秒;
3.搶答結(jié)束后,成功的那一路,并顯示搶答成功的號碼;失敗的其他路,并顯示F;
4.如果沒有人搶答,報警,并重新進(jìn)入開始搶答狀態(tài)。


我不知道如何該在外部中斷執(zhí)行第三條要求

#include<reg51.h>
#include <intrins.h>
#define uint unsigned int                 
#define uchar unsigned char
uchar code table[]={0xc0,0x90,0x80,0xF8,0x82,0x92,0x99,0xb0,0xa4,0xf9};
uchar code table1[]={0x71,0x06,0x00,0x71};//一搶
uchar code table2[]={0x06,0x71,0x00,0x71};        // 二搶
uchar code table3[]={0x71,0x71,0x00,0x06};        //        三搶
uchar code address[]={0x08,0x04,0x02,0x01};      
void delayms(uint);
sbit w=P3^6;
sbit p=P3^0;
sbit a=P3^2;
int n;
uint m;
void delay(uint z)          //延時子程序
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void delayms(uint m)
{
        while(m--);      
}
void main()
{        
        EA=1;
    EX0=1;
        IP=0X04;
    IT0=1;
        EX1=1;
        IT1=1;
        while(1);
}
void INT_0() interrupt 0
{        
        if(p==0)                                   //中斷0,按下p3.2開始,d9亮并開始倒計時
        w=0;                                            
        EX0=0;
        delay(20);
        EX0=1;
        while(1)
        {
        if(m==10)
                {
                        P0=0x89;
                        a=0;
                        delayms(20);
                }
        else
                {P0=table[m];
                delay(1000);
                m++;}         
        }        
}
void INT_1() interrupt 2
{
    EX1=0;
        delay(20);
        EX1=1;
        while(1)
        if(w==0)
  {if(P2=0xfe)
     while(1)
    {
          if(m==4)m=0;
      P1=address[m];
          P0=table1[m++];delayms(500);
    }
        else if(P2=0xfd)
            {
             if(m==4)m=0;
         P1=address[m];
             P0=table2[m++];delayms(500);
                }
                else
                {
                 if(m==4)m=0;
         P1=address[m];
             P0=table3[m++];delayms(500);
                }

           }


}

255.PNG (50.27 KB, 下載次數(shù): 20)

255.PNG
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:21069 發(fā)表于 2018-12-22 02:19 來自觸屏版 | 只看該作者
在按鍵按下后做一個判斷函數(shù),因搶答有一個時間差,在這其中你要判斷只有一個按鍵按下的為通過,道時將按鍵置為0狀態(tài)并給延時,當(dāng)?shù)诙谌齻按鍵下時,由于低電平不是唯一的,都判定無效。

評分

參與人數(shù) 1黑幣 +15 收起 理由
刀刀見紅 + 15 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:393699 發(fā)表于 2018-12-22 10:26 | 只看該作者
樓主的中斷函數(shù)不要放循環(huán),容易死機(jī)。應(yīng)該在外部中斷放一個變量flag,當(dāng)中斷啟動時,flag置1,主程序內(nèi)放循環(huán)if判斷檢查標(biāo)志位,然后放你要做的事情即可,第三點可按照上述思路改進(jìn)
回復(fù)

使用道具 舉報

地板
ID:439261 發(fā)表于 2018-12-22 13:44 | 只看該作者
1092648746 發(fā)表于 2018-12-22 10:26
樓主的中斷函數(shù)不要放循環(huán),容易死機(jī)。應(yīng)該在外部中斷放一個變量flag,當(dāng)中斷啟動時,flag置1,主程序內(nèi)放 ...

bit flag;

void main()
{       
        EA=1;
    EX0=1;
        IP=0X04;
    IT0=1;
        EX1=1;
        IT1=1;
        while(1);
        {
          if(flag==1)
          {          if(m==4)m=0;
      P1=address[m];
          P0=table1[m++];delayms(500);

          }
          if(flag==2)
          {   if(m==4)m=0;
         P1=address[m];
             P0=table2[m++];delayms(500);
          }
          if(flag==3)
          {    if(m==4)m=0;
         P1=address[m];
             P0=table3[m++];delayms(500);
          }
       
       
        }
}

void INT_1() interrupt 2
{
    EX1=0;
        delay(20);
        EX1=1;
        if(P2=0xfe)flag=1;
        if(P2=0xfd)flag=2;
        if(P2=0xfb)flag=3;
   
     

}
我把主程序和外部中斷int1修改了一下,但還是不能亮
flag我也不是很了解,你能看看哪里出錯了嗎
回復(fù)

使用道具 舉報

5#
ID:451718 發(fā)表于 2018-12-22 16:31 | 只看該作者
bit是位,怎么能賦值1,2,3呢,只能賦值0或者1兩種狀態(tài)?如果要實現(xiàn)多狀態(tài),你需要設(shè)置多個標(biāo)志,并且在使用完標(biāo)志后,記得還原標(biāo)志位。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产亚洲一区二区三区 | 在线观看亚洲专区 | 国产美女久久 | 国产亚洲精品一区二区三区 | av乱码| 午夜影院视频在线观看 | 国产精品久久久久久婷婷天堂 | 日韩欧美一级精品久久 | 国产激情一区二区三区 | 久久精品亚洲精品国产欧美 | 亚洲精品一区二区三区蜜桃久 | 国产精品久久久久av | 91传媒在线观看 | 97伦理影院| 欧美精品区 | 九九av | 国产欧美精品 | av电影一区 | 精品国产乱码久久久久久丨区2区 | 成人福利在线观看 | 日本欧美在线 | 久久久久国 | 欧美日韩国产一区二区三区 | 亚洲精品www | 成人激情免费视频 | 在线中文字幕国产 | 精品国产一区二区三区久久久四川 | 成人精品一区亚洲午夜久久久 | 日韩在线一区二区三区 | 精品亚洲一区二区三区 | 久视频在线观看 | 777zyz色资源站在线观看 | 亚洲欧美中文日韩在线v日本 | 爱爱免费视频网站 | 天天搞天天操 | 日本一区二区高清视频 | 日韩精品免费 | 日日射夜夜骑 | 国产91久久精品一区二区 | 麻豆视频在线免费看 | 午夜影院中文字幕 |