91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

第4章 C語言基礎以及流水燈的實現(4.5 4.6)

137933yu ? 來源:137933yu ? 作者:137933yu ? 2025-11-06 11:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

4.5while循環(huán)語句
單片機C語言編程的時候,每個程序都會固定的加一句while(1),這條語句就可以起到死循環(huán)的作用。對于while語句來說,他的一般形式是:
while (表達式)
{
循環(huán)體語句;
}
在C語言里,通?!氨磉_式”符合條件叫做真,不符合條件,叫做假。比如前邊i<30000,當i等于0的時候,那這個條件成立,就是真;如果i大于30000的時候,i<30000條件不成立,就叫做假。
while(表達式)這個括號里的表達式,為真的時候,就會執(zhí)行循環(huán)體語句,當為假的時候,就不執(zhí)行。
還有另外一種情況,就是C語言里邊,除了表達式外,還有常數,習慣上,把非0的常數都認為是真,只有0認為是假,所以程序中使用了while(1),這個數字1,可以改成2、3、4......等等都可以,都是一個死循環(huán),不停的執(zhí)行循環(huán)體的語句,但是如果把這個數字改成0,那么就不會執(zhí)行循環(huán)體的語句了。
通過學習for循環(huán)和while循環(huán),是不是會產生一個疑問?為何有的循環(huán)加上{},而有的循環(huán)卻沒加呢?什么時候需要加,什么時候不需要加呢?
前邊講過,在C語言中,分號表示語句的結束,而在循環(huán)語句里{}表示的是循環(huán)體的所有語句,如果不加大括號,則只循環(huán)執(zhí)行一條語句,即第一個分號之前的語句,而加上大括號后,則會執(zhí)行大括號中所有的語句,舉個例子看一下,上節(jié)課的閃爍小燈程序如下所示。
程序(1): 程序(2):
while (1) while (1)
{ LED = 0;
LED = 0; for(i=0;i<30000;i++);
for(i=0;i<30000;i++); ? ? ? ? ? ? LED = 1;
LED = 1; for(i=0;i<30000;i++);
for(i=0;i<30000;i++);
}
程序(1)可以實現閃爍功能。而程序(2)沒有加大括號,從語法上來看是沒有任何錯誤的,寫到Keil里編譯一下也不會報錯。但是從邏輯上來講,程序(2)只會不停的循環(huán)“LED = 0;”這條語句,實際上和程序(3)效果是相同的。
程序(3):
while(1)
{
LED = 0;
}
for(i=0;i<30000;i++);
LED = 1;
for(i=0;i<30000;i++);
程序執(zhí)行到while(1)已經進入死循環(huán)了,所以后邊三條語句是一輩子也執(zhí)行不到的。因此為了防止出類似的邏輯錯誤,推薦不管循環(huán)語句后邊是一條還是多條語句,都加上{}以防出錯。
4.6函數的簡單介紹
函數定義的一般形式如下:
函數值類型 函數名 (形式參數列表)
{
函數體
}
1、函數值類型,就是函數返回值的類型。在后邊章節(jié)的部分例程中,會有很多函數中有return x這條語句,這個返回值也就是函數本身的類型。還有一種情況,就是這個函數只執(zhí)行操作,不需要返回任何值,那么這個時候它的類型就是空類型void,這個void按道理來說是可以省略的,但是一旦省略,Keil軟件會報一個警告,所以通常也不省。
2、函數名,可以由任意的字母、數字和下劃線組成,但數字不能作為開頭。函數名不能與其他函數或者變量重名,也不能是關鍵字。什么是關鍵字呢,后邊慢慢接觸,比如char這類,都是關鍵字,是程序中具備特殊功能的標志符,這種東西不可以命名函數。
3、形式參數列表,也叫做形參列表,這個是函數調用的時候,相互傳遞數據用的。有的函數不需要傳遞參數給它,那么可以用void來替代,void同樣可以省略,但是那個括號是不能省略的。
4、函數體,包含了聲明語句部分和執(zhí)行語句部分。聲明語句部分主要用于聲明函數內部所使用的變量,執(zhí)行語句部分主要是一些函數需要執(zhí)行的語句。特別注意,所有的聲明語句部分必須放在執(zhí)行語句之前,否則編譯的時候會報錯。
5、一個工程文件必須有且僅有一個main函數,程序執(zhí)行的時候,都是從main函數開始的。
6、關于形參和實參的概念,后邊再總結,如果遇到程序里有,大家再跟著抄一段時間。先用,后講解,這樣更有利于理解。
來回顧一下閃爍LED程序中的主函數,根據注釋再認真分析一遍,是不是對函數的認識就清楚多了。
void main() //void即函數類型
{
//以下為聲明語句部分
unsigned int i = 0; //定義一個無符號整型變量i,并賦初值0

//以下為執(zhí)行語句部分
ENLED = 0; //U3、U4兩片74HC138總使能
ADDR3 = 1; //使能U3使之正常輸出
ADDR2 = 1; //經U3的Y6輸出開啟三極管Q16
ADDR1 = 1;
ADDR0 = 0;
while (1)
{
LED = 0; //點亮小燈
for (i=0; i<30000; i++); ?//延時一段時間
LED = 1; //熄滅小燈
for (i=0; i<30000; i++); ?//延時一段時間
}
}
代碼中的“//”是注釋符,意思是說在這之后的內容都是注釋。注釋是給程序員自己或其他人看的,用于對程序代碼做一些補充說明,對程序的編譯和執(zhí)行沒有任何影響。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    183

    文章

    7644

    瀏覽量

    145550
  • 流水燈
    +關注

    關注

    21

    文章

    435

    瀏覽量

    61771
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    GD32開發(fā)實戰(zhàn)指南(基礎篇) 3 GPIO流水燈的前世今生

    上一通過控制GPIO的高低電平實現流水燈,但只是告訴了大家怎么做,如何實現流水燈,本文將深入剖析的GPIO
    的頭像 發(fā)表于 05-10 08:58 ?6894次閱讀
    GD32開發(fā)實戰(zhàn)指南(基礎篇) <b class='flag-5'>第</b>3<b class='flag-5'>章</b> GPIO<b class='flag-5'>流水燈</b>的前世今生

    如何使用c語言實現LED流水燈

    單片機實驗:使用c語言實現LED流水燈目的:實現一個簡單的流水燈程序仿真軟件:Portues編程軟件:KeilPortues 原理圖繪制:需
    發(fā)表于 11-30 07:52

    LED流水燈程序【C語言版】

    LED流水燈程序【C語言版】LED流水燈程序【C語言版】LED
    發(fā)表于 12-29 11:05 ?0次下載

    LED流水燈程序【C語言+匯編版】

    LED流水燈程序【C語言+匯編版】,感興趣的朋友可以學習。
    發(fā)表于 12-31 10:36 ?0次下載

    關于C語言流水燈驗證的介紹

    使用C語言編寫流水燈程序。
    的頭像 發(fā)表于 07-10 06:01 ?3721次閱讀
    關于<b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>流水燈</b>驗證的介紹

    C語言的基礎知識及流水燈實現程序免費下載

    本文檔的主要內容詳細介紹的是C語言的基礎知識及流水燈實現程序免費下載。
    發(fā)表于 04-15 18:24 ?2次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的基礎知識及<b class='flag-5'>流水燈</b>的<b class='flag-5'>實現</b>程序免費下載

    使用單片機實現流水燈C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現流水燈C語言程序免費下載。
    發(fā)表于 08-15 17:32 ?1次下載
    使用單片機<b class='flag-5'>實現</b><b class='flag-5'>流水燈</b>的<b class='flag-5'>C</b><b class='flag-5'>語言</b>程序免費下載

    使用51單片機實現流水燈C語言的程序實例免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現流水燈C語言的程序實例免費下載。
    發(fā)表于 07-19 17:38 ?9次下載
    使用51單片機<b class='flag-5'>實現</b><b class='flag-5'>流水燈</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>的程序實例免費下載

    使用51單片機實現流水燈C語言程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現流水燈C語言程序免費下載。
    發(fā)表于 05-27 08:00 ?3次下載
    使用51單片機<b class='flag-5'>實現</b><b class='flag-5'>流水燈</b>的<b class='flag-5'>C</b><b class='flag-5'>語言</b>程序免費下載

    使用單片機實現24C02存儲花樣流水燈C語言實例免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現24C02存儲花樣流水燈C語言實例免費下載。
    發(fā)表于 03-24 13:52 ?20次下載

    基于AT89C51的單片機簡易流水燈設計(C語言

    基于AT89C51的單片機簡易流水燈設計(C語言)文章目錄一、功能介紹二、代碼展示三、仿真四、總結(一)思考題(二)注意的問題文章目錄一、功能介紹此程序是基于
    發(fā)表于 11-05 11:06 ?19次下載
    基于AT89<b class='flag-5'>C</b>51的單片機簡易<b class='flag-5'>流水燈</b>設計(<b class='flag-5'>C</b><b class='flag-5'>語言</b>)

    單片機實驗:使用c語言實現LED流水燈

    單片機實驗:使用c語言實現LED流水燈目的:實現一個簡單的流水燈程序仿真軟件:Portues編程軟件:KeilPortues 原理圖繪制:需
    發(fā)表于 11-21 10:51 ?11次下載
    單片機實驗:使用<b class='flag-5'>c</b><b class='flag-5'>語言實現</b>LED<b class='flag-5'>流水燈</b>

    C語言查詢按鍵控制8個流水燈

    C語言查詢按鍵控制8個流水燈一.仿真電路圖注意發(fā)光二極管的方向以及接的電阻的大小。二.C語言代碼
    發(fā)表于 11-21 16:51 ?14次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>查詢按鍵控制8個<b class='flag-5'>流水燈</b>

    4 C語言基礎以及流水燈實現(4.3 4.4)

    4.3 C語言基本運算符 小學數學學過加、減、乘、除等運算符號以及四則混合運算,而這些運算符號在C語言中也有,但是有些表達方法不一樣,并且還
    的頭像 發(fā)表于 10-29 15:30 ?331次閱讀

    4 C語言基礎以及流水燈實現(4.7 4.8)

    1.1?Keil軟件延時 C語言常用的延時方法,有如圖4-2所示4種。 圖4-2 ?C
    的頭像 發(fā)表于 11-19 17:20 ?795次閱讀
    <b class='flag-5'>第</b><b class='flag-5'>4</b><b class='flag-5'>章</b> <b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎<b class='flag-5'>以及</b><b class='flag-5'>流水燈</b>的<b class='flag-5'>實現</b>(4.7 4.8)