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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STC89C52單片機(jī)問題,單個(gè)按鍵控制燈常亮和蜂鳴器響

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:601503 發(fā)表于 2019-8-19 10:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)教大家一個(gè)問題,我寫了一個(gè)程序用單個(gè)按鍵控制燈常亮和蜂鳴器響(警報(bào)狀態(tài)),另外一個(gè)按鍵按下后取消警報(bào)。可是下載后發(fā)現(xiàn),燈一開始就是閃爍狀態(tài),按下按鍵后才變常亮。請(qǐng)大家?guī)臀铱纯茨睦锏膯栴}。以下是源碼。



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

typedef unsigned int u16;          //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;

sbit k1=P3^1;
sbit k2=P3^0;
sbit P20=P2^2;

sbit beep=P1^5;

u8 start=0;

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

void sound()
{
        u8 i=100;
        while(i--)
        {
                beep=~beep;
                delay(100);        
        }
}
void keypros()
{
        if(k1==0)                         //開始
        {
                delay(1000);
                if(k1==0)
                {
                        start=1;               
                }
                while(!k1);
        }
        if(k2==0)                          //停止
        {
                delay(1000);
                if(k2==0)
                {
                        start=0;               
                }
                while(!k2);
        }
}
/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無(wú)
* 輸    出             : 無(wú)
*******************************************************************************/
void main()
{        
        P20=0;          //程序初始化,令二極管不發(fā)光
        while(1)
        {
               
                keypros();
                if(start==1)
//                if(k1==0)
                {        
                         delay(100);   //延時(shí)一下  

//               if(k1==0)  
                        sound();
                }
                else
                {
                        beep=1;
//                        while(k1==0);

                   delay(10000);
                 P20=~P20; //二極管轉(zhuǎn)換發(fā)光狀態(tài),返回繼續(xù)循環(huán)檢測(cè)
                }               
        }               
}


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

使用道具 舉報(bào)

沙發(fā)
ID:96682 發(fā)表于 2019-8-19 14:05 | 只看該作者
樓主應(yīng)該從主函數(shù)那里查找問題
回復(fù)

使用道具 舉報(bào)

板凳
ID:560467 發(fā)表于 2019-8-19 15:15 | 只看該作者
這個(gè)可能是你外部的電路連接的問題,按下按鍵才是將引腳拉高而不是拉低,不按下就是將引腳拉低
回復(fù)

使用道具 舉報(bào)

地板
ID:220936 發(fā)表于 2019-8-19 17:13 | 只看該作者
開始u8 start=0;不按按鍵就到else了, P20=~P20; 一直在取反。
回復(fù)

使用道具 舉報(bào)

5#
ID:588518 發(fā)表于 2019-8-19 18:06 | 只看該作者
主函數(shù)分析一下,燈閃爍的觸發(fā)條件,應(yīng)該是那里沒處理好。
回復(fù)

使用道具 舉報(bào)

6#
ID:437615 發(fā)表于 2019-8-20 09:40 | 只看該作者
這個(gè)程序我也有點(diǎn)看不懂,感覺樓主用start控制的輸出口,如果是輸出口的話start應(yīng)該有引腳定義,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕视频在线观看 | 久久精品中文字幕 | 午夜影院在线播放 | 精品国产鲁一鲁一区二区张丽 | 日本不卡高字幕在线2019 | 91久久久久久久久久久 | 日韩精品成人免费观看视频 | www.男人天堂.com | 亚洲精品国产电影 | 国产成人精品999在线观看 | 国产成人精品一区 | 日产精品久久久一区二区福利 | 911网站大全在线观看 | 亚洲 一区 | 视频一区在线 | 天堂av中文| 国产精品久久久久久久久久免费看 | 一区二区三区影院 | 在线观看成人小视频 | 成人超碰 | 国产精品美女久久久久aⅴ国产馆 | 久久成人久久 | 韩国av一区二区 | 美女久久| 一级一级一级毛片 | 国产1区2区在线观看 | 久久婷婷国产麻豆91 | 国产9999精品 | 日韩中文字幕视频在线观看 | 中文字幕在线精品 | 国内精品久久精品 | 特级特黄特色的免费大片 | 日本精品视频在线观看 | 日本久久黄色 | 一级黄在线观看 | 91婷婷韩国欧美一区二区 | 一区二区日本 | 成人午夜精品 | 草久久久 | 亚洲免费观看 | 国产一区二区欧美 |