找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1194|回复: 8
收起左侧

51单片机本身存在错误报警系统吗?

[复制链接]
ID:653298 发表于 2020-7-20 20:47 来自手机 | 显示全部楼层 |阅读模式
为什么我的程序输入单片机,通电之后蜂鸣器一直响,我编的是与按键有关的,当我按下按键,蜂鸣器才停止响
回复

使用道具 举报

ID:716656 发表于 2020-7-21 08:24 | 显示全部楼层
把蜂鸣器引脚初始化一下。
回复

使用道具 举报

ID:653298 发表于 2020-7-21 09:03 来自手机 | 显示全部楼层
压着我头发啦 发表于 2020-7-21 08:24
把蜂鸣器引脚初始化一下。

初始了啊
回复

使用道具 举报

ID:653298 发表于 2020-7-21 09:10 | 显示全部楼层
压着我头发啦 发表于 2020-7-21 08:24
把蜂鸣器引脚初始化一下。

那个写的第一个矩阵按键按下P2^0亮。
第二个矩阵按键按下流水灯。
第三个矩阵按键按下蜂鸣器响
第四个矩阵按键按下数码管显示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
        }
}
回复

使用道具 举报

ID:716656 发表于 2020-7-21 11:23 | 显示全部楼层
看见定义beep为P1^5,没见beep=1;或beep=0;啊?发下蜂鸣器原理图看看?
回复

使用道具 举报

ID:716656 发表于 2020-7-21 11:34 | 显示全部楼层
压着我头发啦 发表于 2020-7-21 11:23
看见定义beep为P1^5,没见beep=1;或beep=0;啊?发下蜂鸣器原理图看看?

矩阵按键里的  P1=0x0f;P1^5为o。是不有影响
回复

使用道具 举报

ID:653298 发表于 2020-7-21 11:59 | 显示全部楼层
压着我头发啦 发表于 2020-7-21 11:34
矩阵按键里的  P1=0x0f;P1^5为o。是不有影响

应该是这个,那应该怎么改呢,不会
回复

使用道具 举报

ID:653298 发表于 2020-7-21 12:14 | 显示全部楼层
fengbaobaohaha 发表于 2020-7-21 11:59
应该是这个,那应该怎么改呢,不会

已解决,谢谢帮忙
回复

使用道具 举报

ID:88256 发表于 2020-7-21 12:32 | 显示全部楼层
fengbaobaohaha 发表于 2020-7-21 11:59
应该是这个,那应该怎么改呢,不会

如果IO口有多余,将beep改到别的口,这样编程简单一点;
不动的话,将beep与准备送往P1口的第5位进行或运算(假设蜂鸣器是低电平响)后才送往P1口,让P1.5不受影响就行了。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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