1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4019|回復(fù): 15
收起左側(cè)

單片機(jī)C語言程序最后的這個while起什么作用?

  [復(fù)制鏈接]
ID:761819 發(fā)表于 2020-5-26 17:48 | 顯示全部樓層 |閱讀模式
51hei.png


它這里的while起什么作用啊?
回復(fù)

使用道具 舉報

ID:761819 發(fā)表于 2020-5-26 17:50 | 顯示全部樓層
51hei截圖20200526174913.png
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2020-5-26 18:22 | 顯示全部樓層
等你松手
回復(fù)

使用道具 舉報

ID:761825 發(fā)表于 2020-5-26 18:35 | 顯示全部樓層
您好,意思是當(dāng)K1=0(!k1=1)的時候程序會在這里無限循環(huán),原地等待;當(dāng)k1=1時跳出循環(huán),返回主程序。
回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2020-5-26 18:39 | 顯示全部樓層
回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2020-5-26 18:58 | 顯示全部樓層
按鍵松手檢查  按鍵已抬起
回復(fù)

使用道具 舉報

ID:282850 發(fā)表于 2020-5-26 19:23 | 顯示全部樓層
當(dāng)kl口線為1時,什么都不做。沒有什么意義。
回復(fù)

使用道具 舉報

ID:342911 發(fā)表于 2020-5-26 19:57 | 顯示全部樓層
等待用戶松開按鍵

keypress是按鍵檢測函數(shù),k1 == 0時代表按鍵按下

while中判斷條件是“!k1”,也就是按鍵抬起k1 == 1時,!k為假,才會退出循環(huán),否則一直死循環(huán)等待用戶松開按鍵,沒有這個處理當(dāng)按下不放時就會造成不斷觸發(fā)。
回復(fù)

使用道具 舉報

ID:239611 發(fā)表于 2020-5-26 20:15 | 顯示全部樓層
等待按鍵釋放,當(dāng)按鍵一直按下,K1==0,循環(huán)等待;當(dāng)按鍵釋放,K1==1, 結(jié)束循環(huán)。
回復(fù)

使用道具 舉報

ID:307407 發(fā)表于 2020-5-26 21:00 | 顯示全部樓層
按鍵在按下的時候有大約幾個毫秒的抖動,
回復(fù)

使用道具 舉報

ID:760179 發(fā)表于 2020-5-26 21:19 來自觸屏版 | 顯示全部樓層
當(dāng)k1值不為零時,跳出循環(huán)
回復(fù)

使用道具 舉報

ID:307407 發(fā)表于 2020-5-26 21:24 | 顯示全部樓層
樓主你這應(yīng)該是獨立按鍵防抖動程序,我首先講一下獨立按鍵掃描原理:
  當(dāng)按鍵k1按下時會有幾個毫秒的抖動,也就是不會立馬為低電平,只有過了這個時間段才會徹底穩(wěn)定在低電平,當(dāng)按鍵松開時k1又會回到高電平。
我再啰嗦一下while語句用法:
  while是一個循環(huán)語句,如 while(1); 就是一個死循環(huán)語句,程序在里面出不來,我們知道在c語言里規(guī)定“0”為假,非“0”為真,這里括號里是“1”,也就是真,那么就相當(dāng)于 while(真); ,程序是出不來的。
while起什么作用?
  回到樓主的程序,假設(shè)程序從21行語句開始,當(dāng)按鍵k1按下時,k1為低電平,滿足if條件語句,程序進(jìn)而調(diào)到22行,這里的delay語句延時消抖,前面也講過為什么消抖,程序進(jìn)而到23行,這里又是一個if語句,但這個if語句不能少。此時按鍵還沒松開,但是已趨于穩(wěn)定,穩(wěn)定在低電平,運行的24行……然后到26行,由于此時K1為低電平,我用“0”代替,那么 !k1 為“1”,while(!k1)相當(dāng)于while(真),程序跳不出去,只有當(dāng)松開按鍵改變k1的電平才能跳出這個循環(huán)。如果不在這里設(shè)置while(!k1),那么程序會一直跑,24行的led會一直閃。
回復(fù)

使用道具 舉報

ID:452950 發(fā)表于 2020-5-26 21:28 | 顯示全部樓層
當(dāng)K1等于0時循環(huán),當(dāng)K1等于1時跳出循環(huán)。
回復(fù)

使用道具 舉報

ID:579397 發(fā)表于 2020-5-26 21:31 | 顯示全部樓層
等待按鍵釋放
回復(fù)

使用道具 舉報

ID:761989 發(fā)表于 2020-5-26 21:34 | 顯示全部樓層
最后這個while就是 檢測按鍵k1是否被釋放 的作用
回復(fù)

使用道具 舉報

ID:761989 發(fā)表于 2020-5-26 21:36 | 顯示全部樓層
最后這個while就是 檢測按鍵k1是否被釋放 的作用
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表