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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4710|回復: 7
打印 上一主題 下一主題
收起左側

為什么我按單片機矩陣按鍵時,蜂鳴器的功能卻都實現不了,求大神看看程序哪里錯了

[復制鏈接]
跳轉到指定樓層
樓主
當每按一次點陣按鍵的其中一個時,蜂鳴器都會響一次,為什么我按點陣按鍵時,蜂鳴器的功能卻都實現不了,求教。。。。


#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar key=0,ke=125,n;
uchar w;
uchar a;
uint j,k,m;

sbit keyin1=P1^0;
sbit keyin2=P1^1;
sbit keyout1=P1^2;
sbit keyout2=P1^3;
sbit s5=P1^7;
uchar code led1[8][8]=          
{

{0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0x7F,0x3F,0x7F,0xFF,0xFF,0xFF},
{0xFF,0x7F,0xBF,0x1F,0xBF,0x7F,0xFF,0xFF},
{0xFF,0xBF,0xDF,0x0F,0xDF,0xBF,0xFF,0xFF},
{0xFF,0xDF,0xEF,0x87,0xEF,0xDF,0xFF,0xFF},
{0xFF,0xEF,0xF7,0xC3,0xF7,0xEF,0xFF,0xFF},
{0xFF,0xF7,0xFB,0xE1,0xFB,0xF7,0xFF,0xFF},
{0xFF,0xFB,0xFD,0xF0,0xFD,0xFB,0xFF,0xFF}


};
  uchar code led2[8][8]=          
{

{0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF},
{0xFF,0xFF,0xFE,0xFC,0xFE,0xFF,0xFF,0xFF},
{0xFF,0xFE,0xFD,0xF8,0xFD,0xFE,0xFF,0xFF},
{0xFF,0xFD,0xFB,0xF0,0xFB,0xFD,0xFF,0xFF},
{0xFF,0xFB,0xF7,0xE1,0xF7,0xFB,0xFF,0xFF},
{0xFF,0xF7,0xEF,0xC3,0xEF,0xF7,0xFF,0xFF},
{0xFF,0xEF,0xDF,0x87,0xDF,0xEF,0xFF,0xFF},
{0xFF,0xDF,0xBF,0x0F,0xBF,0xDF,0xFF,0xFF}


};

          

void Delay(unsigned int i )
       
{
        unsigned int k ;
         for (k=0;k<i;k++);

}

uchar  keyscan(void)
  {
        keyout2=0;         keyout1=1;
          if(keyin1==0)
          {
                        Delay(10);
                if(keyin1==0)
                {
                 
                 s5=1;
                Delay(200);
                 s5=0;
                key=1;
                }
          }
          if(keyin2==0)
          {
                Delay(10);
                if(keyin2==0)
                {  
                  s5=0;
                  Delay(200);
                  s5=1;
                  if(ke==5) ke=5;
                  else ke=ke-40;       
                                                   
                }
          }
          while((keyin1==0)||(keyin2==0))        ;
          keyout2=1;         keyout1=0;
          if(keyin1==0)
          {
        Delay(10);
                if(keyin1==0)
                {
                 s5=0;
                 Delay(10);
                 s5=1;
                 key=3;
                }
          }
          if(keyin2==0)
          {
                        Delay(20);
                if(keyin2==0)
                {  
                  s5=1;
                  Delay(200);
                 s5=0;
                 if(ke==245)ke=245;
                 ke=ke+40;
                }
          }
           while((keyin1==0)||(keyin2==0))        ;
            return key;
  }


       


         void  main ()
{  

          while(1)
          {
                key=keyscan();
                  n=key ;
          
          if(n==1)
         {
                   s5=0;
                Delay(10);
                 s5=1;

                 a=0x01;
         
        for (k=0;k<8;k++)

         {       
            
                                 P0=~a;
                a=_crol_(a,1);
                for (m=0;m<20;m++);

         
           for (m=0;m<ke;m++)
      {w=0x01;
          for(j=0;j<8;j++)
          {         if(n==3)break;
                  key=keyscan();
                  n=key ;
            P2=w;
                P3=led2[k][j];
         Delay(50);
                w<<=1;
       
           }

          }
          
       }

         }         


          if(n==3 )
        {
                 s5=0;
                Delay(10);
                 s5=1;

                 a=0x01;
         
        for (k=0;k<8;k++)

         {                  
                                 P0=~a;
                a=_cror_(a,1);
                for (m=0;m<20;m++);

         
           for (m=0;m<ke;m++)
      {w=0x01;
          
          for(j=0;j<8;j++)
          {        if(n==1)break;
          key=keyscan();
                  n=key ;
            P2=w;
                P3=led1[k][j];
         Delay(50);
                w<<=1;
       
           }

          }
                 
       }                   
                    }


       
       
        }
         }




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:7485 發表于 2015-11-30 11:27 | 只看該作者
得看你的電路是怎么接的。
回復

使用道具 舉報

板凳
ID:83671 發表于 2015-11-30 20:44 | 只看該作者
ahshmj 發表于 2015-11-30 11:27
得看你的電路是怎么接的。

圖片 傳不上去
回復

使用道具 舉報

地板
ID:7485 發表于 2015-12-3 19:07 | 只看該作者
你那蜂鳴器響的時間太短了吧?而且是當K4是高電平時才響。89c52高電平好像驅動不了這個三極管,否則你一上電他就會不停地響。
回復

使用道具 舉報

5#
ID:7485 發表于 2015-12-3 19:09 | 只看該作者
你可以改一下,用低電平驅動。
回復

使用道具 舉報

6#
ID:79544 發表于 2015-12-4 12:55 | 只看該作者
把驅動蜂鳴器的三極管換成pnp型8550
回復

使用道具 舉報

7#
ID:153199 發表于 2016-12-31 15:28 | 只看該作者
結合電路分析
回復

使用道具 舉報

8#
ID:153199 發表于 2016-12-31 15:29 | 只看該作者
換一下三極管試試
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区在线观看 | 毛片a级毛片免费播放100 | 成人二区| 国产精品精品视频一区二区三区 | 成人在线观看中文字幕 | 久久久久99| 啪啪毛片 | 国产精品久久久久久久久久久久午夜片 | 亚洲毛片一区二区 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 欧美二级 | 亚洲激精日韩激精欧美精品 | 久久久精选 | a黄视频| 精品在线一区二区三区 | 国产精品观看 | 午夜久久av| 成人性生交大免费 | 91av视频在线观看 | 久久a久久 | 91亚洲一区 | 欧产日产国产精品国产 | 成人精品一区二区户外勾搭野战 | 日本免费黄色一级片 | 国产99久久精品一区二区永久免费 | 久久久精彩视频 | 国产精品一区二区在线 | 国产成人综合在线 | 久久久久久久久久久久久久国产 | 高清久久久 | 国产欧美精品一区二区色综合朱莉 | 99热精品国产 | 奇米久久久 | 欧美精品日韩精品国产精品 | 日日天天 | 国产精彩视频在线观看 | 亚洲视频一区在线观看 | 黄色大片在线播放 | 一级毛片免费完整视频 | 麻豆av在线免费观看 | 成人国产一区二区三区精品麻豆 |