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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我把單片機main函數標紅的代碼放在KeyPros函數里再從主函數調用現象不對

[復制鏈接]
跳轉到指定樓層
樓主
ID:1013956 發表于 2022-4-1 13:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//問題:我把main函數標紅的代碼放在KeyPros函數里再從主函數調用現象不對,現象為按k1蜂鳴器響,按k2蜂鳴器不響,再按k1時蜂鳴器不響(正確現象是想要響),main函數標紅的代碼直接放在main現象正確

單片機源程序如下:
/*
實驗說明:
    此程序兼容了有源和無源蜂鳴器
實驗接線:
    獨立按鍵模塊-->單片機管腳
    K1-->P31
    K2-->P30
    蜂鳴器模塊-->單片機管腳
    BEEP-->P15
實驗現象:
    按下K1鍵,蜂鳴器發出聲音,按下K2鍵,蜂鳴器停止發聲
*/

#include "reg52.h"             //此文件中定義了單片機的一些特殊功能寄存器

typedef unsigned int u16;      //對數據類型進行聲明定義
typedef unsigned char u8;

sbit k1=P3^1;
sbit k2=P3^0;

sbit beep=P1^5;

u8 start;


/*******************************************************************************
* 函 數 名         : delay
* 函數功能           : 延時函數,i=1時,大約延時10us
*******************************************************************************/
void delay(u16 i)
{
    while(i--);   
}

void KeyJudge()    //判斷k1按下和k2按下
{
    if(k1 == 0)
    {
        delay(10);
        if(k1 == 0)
        {
            while(k1 == 1);
            delay(10);
            while(k1 == 1);
            start = 1;
        }
    }
   
    if(k2 == 0)
    {
        delay(10);
        if(k2 == 0)
        {
            while(k2 == 1);
            delay(10);
            while(k2 == 1);
            start = 0;
        }
    }
}

void KeyPros()
{
    if(start == 1)
    {
        beep = ~beep;
        delay(1000);
    }
    else
    {
        beep = 1;
    }
}


void main()
{
    while(1)
    {
        KeyJudge();
        if(start == 1)
        {
            beep = ~beep;
            delay(1000);
        }
        else
        {
            beep = 1;
        }
//        KeyPros();

    }
}

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

使用道具 舉報

沙發
ID:1013956 發表于 2022-4-1 13:19 | 只看該作者
//問題:我把main函數標紅的代碼放在KeyPros函數里再從主函數調用現象不對,現象為按k1蜂鳴器響,按k2蜂鳴器不響,再按k1時蜂鳴器不響(正確現象是想要響),main函數標紅的代碼直接放在main現象正確
回復

使用道具 舉報

板凳
ID:1013956 發表于 2022-4-1 13:20 | 只看該作者
把main函數標紅的代碼放在KeyPros函數里再從主函數調用KeyPros函數為什么現象回不一樣
回復

使用道具 舉報

地板
ID:318982 發表于 2022-4-1 15:39 | 只看該作者
你試一下將K1=1;K2=1;beep =1;放在main函數里,while(1)函數之前
回復

使用道具 舉報

5#
ID:844772 發表于 2022-4-1 16:19 | 只看該作者
   while(k1 == 1);   //應該是0才對,后邊的也要改成0
        
回復

使用道具 舉報

6#
ID:1013956 發表于 2022-4-1 16:24 | 只看該作者
glinfei 發表于 2022-4-1 16:19
while(k1 == 1);   //應該是0才對,后邊的也要改成0

可以了,謝謝大佬,估計是抖動的問題
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产在线一区二区 | 81精品国产乱码久久久久久 | 亚洲性视频 | 亚洲在线一区二区 | 欧美a区 | 最新日韩av | 国产一区二区影院 | 久久中文高清 | 国内自拍视频在线观看 | 黄视频在线网站 | 久草新视频 | 天天综合网天天综合 | 欧美一区二 | 亚洲男人网 | 99精品久久 | 中文字幕在线观看一区 | 欧美精品99 | 亚洲精品久久久蜜桃 | 99精品国产一区二区青青牛奶 | 在线看日韩| 国产亚洲精品美女久久久久久久久久 | 国产aⅴ精品 | 欧美一区二区三区久久精品视 | 免费观看的av毛片的网站 | 国产成人精品久久 | 久久久www成人免费无遮挡大片 | 国内91在线 | 精品国产18久久久久久二百 | 国产成人a亚洲精品 | 久久99精品久久久久子伦 | 成人网av | 奇米影视77 | 特级生活片 | 亚洲社区在线 | 日本 欧美 三级 高清 视频 | 精品自拍视频 | 欧美一卡二卡在线 | 五月天国产视频 | 午夜免费福利片 | 亚洲精品久久久久久一区二区 | 老牛影视av一区二区在线观看 |