找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機本身存在錯誤報警系統(tǒng)嗎?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:653298 發(fā)表于 2020-7-20 20:47 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
為什么我的程序輸入單片機,通電之后蜂鳴器一直響,我編的是與按鍵有關(guān)的,當(dāng)我按下按鍵,蜂鳴器才停止響
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:716656 發(fā)表于 2020-7-21 08:24 | 只看該作者
把蜂鳴器引腳初始化一下。
回復(fù)

使用道具 舉報

板凳
ID:653298 發(fā)表于 2020-7-21 09:03 來自手機 | 只看該作者
壓著我頭發(fā)啦 發(fā)表于 2020-7-21 08:24
把蜂鳴器引腳初始化一下。

初始了啊
回復(fù)

使用道具 舉報

地板
ID:653298 發(fā)表于 2020-7-21 09:10 | 只看該作者
壓著我頭發(fā)啦 發(fā)表于 2020-7-21 08:24
把蜂鳴器引腳初始化一下。

那個寫的第一個矩陣按鍵按下P2^0亮。
第二個矩陣按鍵按下流水燈。
第三個矩陣按鍵按下蜂鳴器響
第四個矩陣按鍵按下數(shù)碼管顯示666程序

下面是程序,大神幫忙看看


#include"reg52.h"
#include"intrins.h"
typedef unsigned int u16;    //typedef±èdefine¸ü°2è«
typedef unsigned char u8;
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit led=P2^0;
sbit beep=P1^5;
u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
                   0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
u16 num;     //¶¨òåò»¸ö諾ֱäá¿
//¶¨òåÑóê±oˉêy
void delay_ms(u16 i)
{
  int n;
  while(i--)
  {
  for(n=0;n<125;n++)
  {
    ;
  }
  }
}
//¾ØÕó°′¼üé¨Ãèoˉêy
void zhshaomiao()
{
        u16 a;
        P1=0x0f;
        if(P1!=0X0F)delay_ms(6);//Ïû¶¶
          {if(P1!=0X0F)
                switch(P1)         //è·¶¨áD
                {
                        case(0X07):num=1;break;
                  case(0X0b):num=2;break;
                  case(0X0d):num=3;break;
                  case(0X0e):num=4;break;
                }
                P1=0XF0;
                if(P1!=0XF0)
                switch(P1)         /*ÔúáDè·¶¨μÄÇé¿öÏÂè·¶¨DD£¬2¢è·¶¨×¼è·Î»Öã¬èç1ûêÇμú
                                         ò»DDÔònum2»±ä£¬èôêÇμú¶tDDÔònum¼ó4£¬òà′ÎààíÆ*/
                {
                        case(0X70):num=num;break;
                        case(0Xb0):num=num+4;break;
                        case(0Xd0):num=num+8;break;
                        case(0Xe0):num=num+12;break;
                }
       
    while((a<100)&&(P1!=0xf0))  //¼ì2aËéêÖ
        {
          delay_ms(1);
          a++;
        }
                }
}
//μãááá÷Ë®μÆoˉêy
void liushuiled()
{
        int i;
        P2=0xfe;
        delay_ms(20);
        for(i=0;i<7;i++)
        {
                P2=_crol_(P2,1);
                delay_ms(20);
        }
        for(i=0;i<7;i++)
        {
                P2=_cror_(P2,1);
                delay_ms(20);
        }
}
//êyÂë1üÏÔê¾666oˉêy
void suma666()
{
        int i;
        int a=2;
        while(a--)
        {
        for(i=0;i<3;i++)
        {
                switch(i)
                {
                        case(0):LSA=0;LSB=0;LSC=0;break;
                        case(1):LSA=1;LSB=0;LSC=0;break;
                        case(2):LSA=0;LSB=1;LSC=0;break;
          }
                P0=smgduan[6];
                delay_ms(1);
        }
}
}
//·äÃùÆ÷Ïìoˉêy
void fengming()
{
        int a=5;
                beep=~beep;
                delay_ms(100);
}

void main()
{
        while(1)
        {
                zhshaomiao();//ÅD¶ÏÄĸö°′¼ü°′ÏÂ
           if(num==1)
                 {P0=0x00;P2=0xff;;led=0;}//Ïû3y֮ǰ°′¼üμÄó°Ïì2¢Ö′DD¸Ã°′¼ü°′ÏÂó|óDμĽá1û
           else if(num==2)
                 {P0=0x00;P2=0xff;;liushuiled();}
                   else if(num==3)
                         {P0=0x00;P2=0xff;fengming();}
             else if(num==4)
                         {P0=0x00;P2=0xff;;suma666();}
                   else
                            delay_ms(1);//èç1ûêÇÆäËû°′¼ü°′ÏÂÔòÑóê±1ms£¬Ïàμ±óú2»Ö′DD
        }
}
回復(fù)

使用道具 舉報

5#
ID:716656 發(fā)表于 2020-7-21 11:23 | 只看該作者
看見定義beep為P1^5,沒見beep=1;或beep=0;?發(fā)下蜂鳴器原理圖看看?
回復(fù)

使用道具 舉報

6#
ID:716656 發(fā)表于 2020-7-21 11:34 | 只看該作者
壓著我頭發(fā)啦 發(fā)表于 2020-7-21 11:23
看見定義beep為P1^5,沒見beep=1;或beep=0;?發(fā)下蜂鳴器原理圖看看?

矩陣按鍵里的  P1=0x0f;P1^5為o。是不有影響
回復(fù)

使用道具 舉報

7#
ID:653298 發(fā)表于 2020-7-21 11:59 | 只看該作者
壓著我頭發(fā)啦 發(fā)表于 2020-7-21 11:34
矩陣按鍵里的  P1=0x0f;P1^5為o。是不有影響

應(yīng)該是這個,那應(yīng)該怎么改呢,不會
回復(fù)

使用道具 舉報

8#
ID:653298 發(fā)表于 2020-7-21 12:14 | 只看該作者
fengbaobaohaha 發(fā)表于 2020-7-21 11:59
應(yīng)該是這個,那應(yīng)該怎么改呢,不會

已解決,謝謝幫忙
回復(fù)

使用道具 舉報

9#
ID:88256 發(fā)表于 2020-7-21 12:32 | 只看該作者
fengbaobaohaha 發(fā)表于 2020-7-21 11:59
應(yīng)該是這個,那應(yīng)該怎么改呢,不會

如果IO口有多余,將beep改到別的口,這樣編程簡單一點;
不動的話,將beep與準(zhǔn)備送往P1口的第5位進行或運算(假設(shè)蜂鳴器是低電平響)后才送往P1口,讓P1.5不受影響就行了。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表