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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

制作的單片機(jī)音樂門鈴程序應(yīng)該是陷入死循環(huán)了,引入的按鍵無法關(guān)閉音樂

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
功能是當(dāng)家中有人,來訪客人按下門鈴按鍵K2,此時(shí)液晶顯示屏?xí)崾究腿思抑杏腥说男畔?/font>,與此同時(shí),蜂鳴器播放音樂,客人進(jìn)入等待過程;若家中無人,客人按下門鈴后,此時(shí)液晶屏將提示客人家中無人的信息。在此過程中,主人可在家中用K3隨時(shí)停止客人等待過程,即停止音樂播放及液晶顯示。
四個(gè)按鍵標(biāo)識在圖上了,K 1是主人選擇他是否在家的按鈕,現(xiàn)在無法利用K3關(guān)閉

單片機(jī)程序在下邊
  1. #include "reg52.h"    //´
  2. #include "lcd1602.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit BEEP = P2^7;
  6. sbit k1=P3^0;
  7. sbit k2=P3^3;
  8. sbit k3=P3^6;

  9. uchar code SONG_TONE[]= {   212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0 }; uchar code SONG_LONG[]= {   9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0 };
  10. uchar code tab1[]="Sorry";  //ÎÞÈË uchar code tab2[]="master is not";
  11. uchar code tab3[]="Yes"; //ÓÐÈË uchar code tab4[]="master at home";
  12. uchar feng; uchar k1_flg=1;

  13. void delayms(uint i) { uchar j; for(i;i>0;i--)   for(j=125;j>0;j--); }

  14. void anjian()
  15. {
  16. if(k1==0)
  17. {
  18.    delayms(5);
  19.    if(k1==0)
  20.    {
  21.     k1_flg=0;//=0ʱÎÞÈË£¬Ä¬ÈÏÓÐÈË
  22.    }
  23.    while(!k1);
  24. }
  25. else if(k2==0)
  26. {
  27.    delayms(5);
  28.    if(k2==0)
  29.    {
  30.     if(k1_flg==1)
  31.     {
  32.      feng=1;
  33.      lcd_str(3,0,tab3);
  34.      lcd_str(0,1,tab4);
  35.     }
  36.     else if(k1_flg==0)
  37.     {
  38.      lcd_str(5,0,tab1);
  39.      lcd_str(0,1,tab2);
  40.      
  41.     }
  42.    }
  43.    while(!k2);
  44. }
  45. else if(k3==0)
  46. {
  47.    delayms(5);
  48.    if(k3==0)
  49.    {
  50.     feng=0;
  51.     lcd_wcom(0x01);
  52.    }
  53.    while(!k3);
  54. }
  55. }
  56. void PlayMusic()
  57. {
  58.    uint i =0,j,k;
  59. while(SONG_LONG[ i]!=0||SONG_TONE[ i]!=0)
  60. {
  61.     for(j=0;j<SONG_LONG[ i]*20;j++)
  62.    {
  63.      BEEP = ~BEEP;
  64.     for(k=0;k<SONG_TONE[ i]/3;k++);
  65.    }
  66.    delayms(10);
  67.    i++;
  68. }
  69. }
  70. void main()
  71. {

  72. lcd_init();
  73. lcd_wcom(0x01);
  74. while(1)
  75. {
  76.    if(feng==1)
  77.    {
  78.     PlayMusic();
  79.    }
  80.    
  81.    
  82.    
  83.    anjian();
  84. }  
  85. }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:670716 發(fā)表于 2020-1-1 21:16 | 只看該作者
這是原理圖

捕獲.PNG (195.98 KB, 下載次數(shù): 22)

捕獲.PNG
回復(fù)

使用道具 舉報(bào)

板凳
ID:110606 發(fā)表于 2020-1-3 09:55 | 只看該作者
你這個(gè)肯定是停不了的吧,主要是你main里面如果想要他停止,不僅要做feng=0這一步,還要把BEEP置位,要不然即使feng=0,BEEp還會保持原來的狀態(tài)
回復(fù)

使用道具 舉報(bào)

地板
ID:347759 發(fā)表于 2020-1-3 11:23 | 只看該作者
在while()括號里面添加條件判斷,這樣就可以通過按鍵跳出循環(huán)
回復(fù)

使用道具 舉報(bào)

5#
ID:706302 發(fā)表于 2020-3-29 20:39 | 只看該作者
shengkai540 發(fā)表于 2020-1-3 11:23
在while()括號里面添加條件判斷,這樣就可以通過按鍵跳出循環(huán)

添加什么條件啊
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看视频黄 | 免费成人高清在线视频 | 亚洲高清在线观看 | 国产你懂的在线观看 | 欧美在线视频观看 | 亚洲精品在线免费观看视频 | 欧美久久久久久 | 一区二区三区四区av | 国产成人免费视频 | 欧美性猛交一区二区三区精品 | 亚洲午夜精品一区二区三区 | 99re6在线视频精品免费 | 成年人网站免费视频 | 国产精品亚洲一区二区三区在线 | 成人性生交大免费 | 日韩高清中文字幕 | 精品一区二区在线观看 | 特黄色毛片 | 欧美日韩在线一区二区 | 在线免费观看毛片 | h在线免费观看 | 精品一区二区三区在线观看 | 日日干日日 | 午夜影院| 久久久亚洲一区 | 欧美日产国产成人免费图片 | 人人种亚洲| 九九国产在线观看 | 午夜无码国产理论在线 | av大片在线观看 | 在线观看www视频 | 综合国产第二页 | 亚洲精品国产成人 | 91免费观看国产 | 欧美精品一区在线 | 日本国产一区二区 | 久久久久亚洲av毛片大全 | 久久精品成人热国产成 | 久久国内精品 | 谁有毛片 | 久久不卡|