智能尋跡避障小車系統(tǒng)軟件設(shè)計(jì)方案_第1頁
智能尋跡避障小車系統(tǒng)軟件設(shè)計(jì)方案_第2頁
智能尋跡避障小車系統(tǒng)軟件設(shè)計(jì)方案_第3頁
智能尋跡避障小車系統(tǒng)軟件設(shè)計(jì)方案_第4頁
智能尋跡避障小車系統(tǒng)軟件設(shè)計(jì)方案_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、智能尋跡小車設(shè)計(jì)與制作(系統(tǒng)軟件設(shè)計(jì)方案)湖南信息職業(yè)技術(shù)學(xué)院信息工程系輔講:蒲 茂主講:雷道仲要點(diǎn) 系統(tǒng)任務(wù)和功能分析系統(tǒng)任務(wù)和功能分析 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 單片機(jī)軟件開放的一般流程介紹單片機(jī)軟件開放的一般流程介紹 設(shè)計(jì)出智能尋跡避障小車的整體軟件控制框圖設(shè)計(jì)出智能尋跡避障小車的整體軟件控制框圖(軟件設(shè)計(jì)方案)(軟件設(shè)計(jì)方案)湖南信息職業(yè)技術(shù)學(xué)院信息工程系 智能尋跡避障小車軟件控制系統(tǒng)的設(shè)計(jì)方案擬定從以下幾個(gè)方面著手進(jìn)行:1.1 系統(tǒng)任務(wù)和功能分析系統(tǒng)任務(wù)和功能分析湖南信息職業(yè)技術(shù)學(xué)院信息工程系 根據(jù)系統(tǒng)設(shè)計(jì)任務(wù)和要求可知,智能尋跡避障小車軟

2、件控制系統(tǒng)要完成以下功能: 尋黑線行走功能 避障功能 遇障礙物報(bào)警提示功能 行走狀態(tài)顯示功能1.1 系統(tǒng)任務(wù)和功能分析系統(tǒng)任務(wù)和功能分析湖南信息職業(yè)技術(shù)學(xué)院信息工程系 根據(jù)系統(tǒng)設(shè)計(jì)任務(wù)和要求可知,智能尋跡避障小車軟件控制系統(tǒng)要完成以下功能: 紅外傳感器踩黑線LED燈指示功能 電機(jī)調(diào)速功能 彩燈控制功能1.1.1 尋黑線行走功能 由于本設(shè)計(jì)中尋線采用紅外發(fā)射對(duì)管作為尋線工具。左右紅外接收控制引腳接單片機(jī)P3.5、P3.6;當(dāng)左右檢測(cè)到:P3.5=P3.6=0,尋黑線直走,如果:P3.5=1,P3.6=0,則右轉(zhuǎn)彎,如果:P3.5=0,P3.6=1,則左轉(zhuǎn)彎,湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.

3、2 避障功能 本設(shè)計(jì)中避障同樣采用紅外發(fā)射對(duì)管作為避障工具。避障由單片機(jī)P3.7端口控制,當(dāng)檢測(cè)到:P3.7=0,表示無障礙,小車前行,反之:P3.7=1,表示有障礙,單片機(jī)應(yīng)調(diào)用相應(yīng)避障函數(shù)進(jìn)行避障。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.3 遇避障物報(bào)警提示功能 報(bào)警電路由單片機(jī)的P0.6端口控制,當(dāng)沒有障礙物時(shí),P0.6=1,報(bào)警電路關(guān)閉,當(dāng)遇有障礙物時(shí),P0.6輸出一定頻率的方波,揚(yáng)聲器發(fā)生,因此,報(bào)警電路實(shí)際就是編寫某個(gè)頻率的方波信號(hào)??捎啥〞r(shí)器定時(shí)翻轉(zhuǎn)產(chǎn)生。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.4 行走狀態(tài)顯示功能 行走狀態(tài)顯示電路由單片機(jī)控制的共陽數(shù)碼管來完成,前進(jìn)、后退、左轉(zhuǎn)彎、

4、右轉(zhuǎn)彎可分別用字符“1”、“2”、“3”、“4”顯示,可以將顯示代碼存放在一個(gè)字符數(shù)組中,當(dāng)智能小車處于某個(gè)狀態(tài)便查相應(yīng)的顯示代碼顯示。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.51.1.5 紅外傳感器踩黑線紅外傳感器踩黑線LEDLED燈指示功能燈指示功能 左、右紅外傳感器踩黑線LED指示燈由單片機(jī)P1.0和P2.0分別控制,當(dāng)左、右傳感器未踩到黑線時(shí),P1.0=P2.0=1,LED指示燈滅,當(dāng)左傳感器踩到黑線時(shí),P1.0=0,左邊LED燈亮,右邊LED指示燈同理。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.61.1.6 電機(jī)調(diào)速功能電機(jī)調(diào)速功能 本設(shè)計(jì)中的電機(jī)調(diào)速有兩種控制方法,一種是利用單片機(jī)的定時(shí)

5、器,產(chǎn)生PWM電機(jī)調(diào)速脈沖完成電機(jī)調(diào)速;另一種是控制電機(jī)使能端,本設(shè)計(jì)中,左、右電機(jī)使能端由單片機(jī)P1.0、P1.1控制,開始時(shí),左右使能:P1.0=P1.1=1,電機(jī)全速旋轉(zhuǎn),隨后,使使能端間歇為0,這樣,電機(jī)的速度就會(huì)慢慢減下來。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.1.71.1.7 LEDLED彩燈控制彩燈控制 本設(shè)計(jì)中的彩燈電路由單片機(jī)的P1口控制,控制方法簡單,當(dāng)P1=0XFF時(shí),彩燈全滅;當(dāng)P1=0X00時(shí),彩燈全亮。用戶可以根據(jù)這一控制電平編寫出任意多種彩燈控制方式。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 為

6、了更好的了解單片機(jī)C語言程序的結(jié)構(gòu),我們先通過一個(gè)小小的設(shè)計(jì)實(shí)例加以說明。例如:如圖1所示為彩燈控制原理圖,圖中按下KEY時(shí),P3口彩燈熄滅;松開KEY時(shí),P3口彩燈點(diǎn)亮。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成圖1. 彩燈控制原理圖1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 根據(jù)以上要求設(shè)計(jì)出程序如下: /*

7、程序名:cdkz.c 功能:使用開關(guān)KEY控制P3的彩燈LED /* #include /包含單片機(jī)寄存器的頭文件 sbit KEY=P10; /*湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 函數(shù)功能:主函數(shù) * void main(void) P3=0 xff; while(1) if(KEY=1) P3=0 x00; /彩燈亮 else P3=0 xff; /彩燈滅 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序

8、構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 下面,我們通過分析上述程序來看看單片機(jī)C語言程序包括那些組成部分: 1、“文件包含”處理 程序的第一行是一個(gè)“文件包含”處理。所謂“文件包含”是指一個(gè)文件將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來。在上述程序中我們用到了P1口,但標(biāo)準(zhǔn)C中并沒有定義P1口,這就要求在使用P1口之前,必需對(duì)它進(jìn)行定義。由于此項(xiàng)工作已經(jīng)由編譯軟件KEIL C完成,因此,編程時(shí)只要將這種定義“包含”進(jìn)去即可。故程序中的第一行包含REG51.h文件的目的正是為了要使用P1這個(gè)端口,程序在編譯時(shí)由它告知C編譯器,程序中所寫的P1是

9、指MCS51單片機(jī)的P1端口而不是其它變量。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 下面,我們通過分析上述程序來看看單片機(jī)C語言程序包括那些組成部分: 1、“文件包含”處理 程序的第一行是一個(gè)“文件包含”處理。所謂“文件包含”是指一個(gè)文件將另外一個(gè)文件的內(nèi)容全部包含進(jìn)來。在上述程序中我們用到了P1口,但標(biāo)準(zhǔn)C中并沒有定義P1口,這就要求在使用P1口之前,必需對(duì)它進(jìn)行定義。由于此項(xiàng)工作已經(jīng)由編譯軟件KEIL C完成,因此,編程時(shí)只要將這種定義“包含”進(jìn)

10、去即可。故程序中的第一行包含REG51.h文件的目的正是為了要使用P1這個(gè)端口,程序在編譯時(shí)由它告知C編譯器,程序中所寫的P1是指MCS51單片機(jī)的P1端口而不是其它變量。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 包含文件:REG51.h在所有的MCS51單片機(jī)C程序中都必需用到,也就是說每一個(gè)MCS51單片機(jī)程序中都必需用到此包含文件。該包含文件包含了MCS51單片機(jī)內(nèi)部各寄存器的一些信息和定義,我們要用這些寄存器時(shí),就必需用到此包含文件。該文件包含

11、以下內(nèi)容: /*- REG51.H Header file for generic 80C51 and 80C31 microcontroller. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. -*/湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 #ifndef _REG51_H_ #define _REG51_H_ /*

12、BYTE Register */ sfr P0 = 0 x80; sfr P1 = 0 x90; sfr P2 = 0 xA0; sfr P3 = 0 xB0; sfr PSW = 0 xD0; sfr ACC = 0 xE0; sfr B = 0 xF0; sfr SP = 0 x81; sfr DPL = 0 x82;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 sfr DPH = 0 x83; sfr PCON = 0 x87; sfr TCON =

13、 0 x88; sfr TMOD = 0 x89; sfr TL0 = 0 x8A; sfr TL1 = 0 x8B; sfr TH0 = 0 x8C; sfr TH1 = 0 x8D; sfr IE = 0 xA8; sfr IP = 0 xB8; sfr SCON = 0 x98; sfr SBUF = 0 x99;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 /* TCON */ sbit TF1 = 0 x8F; sbit TR1 = 0 x8E;

14、 sbit TF0 = 0 x8D; sbit TR0 = 0 x8C; sbit IE1 = 0 x8B; sbit IT1 = 0 x8A; sbit IE0 = 0 x89; sbit IT0 = 0 x88; /* IE */ sbit EA = 0 xAF; sbit ES = 0 xAC; sbit ET1 = 0 xAB;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 sbit EX1 = 0 xAA; sbit ET0 = 0 xA9; sb

15、it EX0 = 0 xA8; /* IP */ sbit PS = 0 xBC; sbit PT1 = 0 xBB; sbit PX1 = 0 xBA; sbit PT0 = 0 xB9; sbit PX0 = 0 xB8;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 /* P3 */ sbit RD = 0 xB7; sbit WR = 0 xB6; sbit T1 = 0 xB5; sbit T0 = 0 xB4; sbit INT1 = 0 xB3

16、; sbit INT0 = 0 xB2; sbit TXD = 0 xB1; sbit RXD = 0 xB0;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 /* SCON */ sbit SM0 = 0 x9F; sbit SM1 = 0 x9E; sbit SM2 = 0 x9D; sbit REN = 0 x9C; sbit TB8 = 0 x9B; sbit RB8 = 0 x9A; sbit TI = 0 x99; sbit RI = 0 x98

17、; #endif湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 2.主函數(shù)main() C語言程序采用函數(shù)結(jié)構(gòu),每個(gè)C語言程序由一個(gè)或多個(gè)函數(shù)組成,在這些函數(shù)中至少應(yīng)包含一個(gè)主函數(shù)main(),也可以包含一個(gè)main()函數(shù)和若干個(gè)其它的功能函數(shù)。不管main()函數(shù)放于何處,程序總是從main()函數(shù)開始執(zhí)行,執(zhí)行到main()函數(shù)結(jié)束則結(jié)束。在main()函數(shù)中調(diào)用其它函數(shù),其它函數(shù)也可以相互調(diào)用,但main()函數(shù)只能調(diào)用其它的功能函數(shù),而不能被其它的

18、函數(shù)所調(diào)用。 主函數(shù)main()后面一定有一對(duì)大括號(hào)“ ”,主程序的內(nèi)容就書寫在大括號(hào)里面。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 3.功能函數(shù) 功能函數(shù)可以是C語言編譯器提供的庫函數(shù),也可以是由用戶定義的自定義函數(shù)。 4.注釋 C語言程序中的注釋只是為了提高程序的可讀性。在編譯時(shí),注釋的內(nèi)容不會(huì)生成可執(zhí)行代碼。因此,該部分內(nèi)容是選擇性的,即編程時(shí)只需對(duì)有重要意義或關(guān)鍵性的語句加以注釋。注釋的方法有兩種:一種采用“/*/”的格式,另一種采用“/”的格

19、式。前者可以注釋多行,后者只能注釋一行內(nèi)容。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 總之,單片機(jī)C語言程序主要包括以上幾個(gè)部分;當(dāng)然,不是所有的程序一定都要包含以上四個(gè)部分,不同的程序之間稍微有些不一樣,比如:簡單一點(diǎn)的程序可能不需要功能函數(shù),而復(fù)雜一點(diǎn)又可能包含多個(gè)功能函數(shù),這主要視系統(tǒng)具體的設(shè)計(jì)要求而定。 另外在編制單片機(jī)C程序時(shí),程序的開始部分一般是預(yù)處理命令、函數(shù)說明和變量定義等。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .1 1.2 .1 單片

20、機(jī)單片機(jī)C C語言程序構(gòu)成語言程序構(gòu)成1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 在C51中,用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)有三種形式,分別是: 形式一形式一:if(表達(dá)式)語句 形式二:形式二:if (表達(dá)式)語句1; else 語句2; 形式三:形式三:if (表達(dá)式1)語句1; else if (表達(dá)式2)語句2; else if (表達(dá)式3)語句3; else if (表達(dá)式n-1)語句n-1; else 語句n;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語

21、言程序構(gòu)成及C C語言指令語言指令 例1: if語句的用法。 (1)if (P10!=1) y=8; 執(zhí)行上面語句時(shí),如果P10不等于1,則輸出y=8; (2)if (ab) a=10; else a=5; 執(zhí)行上面語句時(shí),如果a大于b成立,則把10賦給變量a,如a大于b不成立,則把5賦給變量a。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 (3)if (score=90) printf(“Your result is an An”); else if (score

22、=80) printf(“Your result is an Bn”); else if (score=70) printf(“Your result is an Cn”); else if (score=60) printf(“Your result is an Dn”); else printf(“Your result is an En”); 執(zhí)行上面語句后,能夠根據(jù)分?jǐn)?shù)score分別打出A、B、C、D、E五個(gè)等級(jí)。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令

23、 2、switch/case語句語句 switch/case語句的一般形式如下: switch(表達(dá)式) case 常量表達(dá)式1:語句1; break; case 常量表達(dá)式2:語句2; break; case 常量表達(dá)式n:語句n; break; default :語句n+1; 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 說明如下: (1)switch后面括號(hào)內(nèi)的表達(dá)式,可以是整型或字符型表達(dá)式; (2)當(dāng)switch括號(hào)內(nèi)表達(dá)式的值與某一“case”后面的常量

24、表達(dá)式的值相等時(shí),就執(zhí)行該“case”后面的語句,然后遇到break語句退出switch語句。若表達(dá)式的值與所有case后的常量表達(dá)式的值都不相同,則執(zhí)行default后面的語句,最后退出switch結(jié)構(gòu)。 (3)每一個(gè)case常量表達(dá)式的值必須不同,否則會(huì)出現(xiàn)自相矛盾的現(xiàn)象。 (4)case語句和default語句的出現(xiàn)次序?qū)?zhí)行過程沒有影響。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 (5)每個(gè)case語句后面可以有“break”,也可以沒有。有break語句

25、,執(zhí)行到break則退出switch結(jié)構(gòu),若沒有,則會(huì)順次執(zhí)行后面的語句,直到遇到break或結(jié)束。 (6)每一個(gè)case語句后面可以帶一個(gè)語句,也可以帶多個(gè)語句,還可以不帶。語句可以用花括號(hào)括起,也可以不括。 (7)多個(gè)case可以共用一組執(zhí)行語句。 例2 : switch/case語句的用法。 用開關(guān)控制彩燈,如果按下開關(guān)key1,對(duì)應(yīng)第一盞燈點(diǎn)亮;按下key2,對(duì)應(yīng)第二盞燈點(diǎn)亮;依次下去,按下key8,對(duì)應(yīng)第八盞燈點(diǎn)亮;可以通過下面的switch/case語句實(shí)現(xiàn)。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C

26、語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 switch(key) case 1;P1=0 xfe;break; case 2;P1=0 xfd;break; case 3;P1=0 xfb;break; case 4;P1=0 xf7;break; case 5;P1=0 xef;break; case 6;P1=0 xdf;break; case 7;P1=0 xbf;break; case 8;P1=0 x7f;break; default; break; 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C

27、語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 whilewhile循環(huán)語句循環(huán)語句 while語句的一般形式如下:while (條件表達(dá)式) 語句; while語句后面的表達(dá)式是能否循環(huán)的條件,后面的語句是循環(huán)體。當(dāng)表達(dá)式為真時(shí),就重復(fù)執(zhí)行循環(huán)體內(nèi)的語句;當(dāng)表達(dá)式為假時(shí),則中止while循環(huán),程序?qū)?zhí)行循環(huán)結(jié)構(gòu)之外的下一條語句。它的特點(diǎn)是:先判斷條件,后執(zhí)行循環(huán)體。在循環(huán)體中對(duì)條件進(jìn)行改變,然后再判斷條件,如條件成立,則再執(zhí)行循環(huán)體,如條件不成立,則退出循環(huán)。如條件第一次就不成立,則循環(huán)體一次也不執(zhí)行。 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基

28、本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 例3:while語句的用法。 while (i=10) /求110的和在sum中 sum=sum+i; i+; 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 do-whiledo-while循環(huán)語句循環(huán)語句 do-while語句的一般形式如下: do 語句; while (條件表達(dá)式); 它的特點(diǎn)是:先執(zhí)行循環(huán)體中的語句,后判斷表達(dá)式。如表達(dá)式的值為真,則再執(zhí)行循環(huán)體,然后又

29、判斷,直到有表達(dá)式為假時(shí),退出循環(huán),執(zhí)行dowhile結(jié)構(gòu)的下一條語句。dowhile語句在執(zhí)行時(shí),循環(huán)體內(nèi)的語句至少會(huì)被執(zhí)行一次。湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 【例4】do-while語句的用法。 do /求110的和在sum中 sum=sum+i; i+; while (i=10);湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令

30、語言指令 5、forfor(表達(dá)式(表達(dá)式1 1;表達(dá)式;表達(dá)式2 2;表達(dá)式;表達(dá)式3 3) 語句;語句; /*循環(huán)體*/ for語句后面帶三個(gè)表達(dá)式,它的執(zhí)行過程如下: (1)先對(duì)表達(dá)式1賦初值,進(jìn)行初始化; (2)判斷表達(dá)式2的值,若表達(dá)式2的值為真,則執(zhí)行循環(huán)休中的語句,然后執(zhí)行下一步(3)的操作,若表達(dá)式2的值為假,則結(jié)束for循環(huán),轉(zhuǎn)到第(5)步; (3)若表達(dá)式2的值為真,則執(zhí)行完循環(huán)體中的語句后,求解表達(dá)式3,然后轉(zhuǎn)到第(4)步; (4)轉(zhuǎn)到(2)繼續(xù)執(zhí)行; (5)退出for循環(huán),執(zhí)行下面一條語句;湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言

31、的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語言指令語言指令 在for循環(huán)中,一般表達(dá)式1為初值表達(dá)式,用于給循環(huán)變量賦初值;表達(dá)式2為條件表達(dá)式,對(duì)循環(huán)變量進(jìn)行判斷;表達(dá)式3為循環(huán)變量更新表達(dá)式,用于對(duì)循環(huán)變量的值進(jìn)行更新,使循環(huán)變量能不滿足條件而退出循環(huán)。 例5: 用for語句實(shí)現(xiàn)計(jì)算110的累加和。 int i,sum; sum=0; for (i=1;i=10;i+) sum=sum+i; /累加110之和在sum中湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及

32、語言程序構(gòu)成及C C語言指令語言指令 6、轉(zhuǎn)向語句、轉(zhuǎn)向語句 (1)break 該語句主要用在循環(huán)語句和switch語句中,它的功能是:終止執(zhí)行循環(huán)語句。通常break語句總是與if語句一起使用,即滿足if語句中給出的條件時(shí)便跳出循環(huán)。Break語句對(duì)if-else的條件語句不起作用。在循環(huán)嵌套中,一個(gè)break語句只能向外跳一層。 例6:下面一段程序用于計(jì)算110的累加和,當(dāng)和大于40時(shí),由break語句跳出循環(huán)。 sum=0; for (i=1;i40) break; printf(“%fn”,sum); 湖南信息職業(yè)技術(shù)學(xué)院信息工程系1.2 .2 C1.2 .2 C語言的基本語句語言的基本語句1.2 1.2 單片機(jī)單片機(jī)C C語言程序構(gòu)成及語言程序構(gòu)成及C C語

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論