版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年辦公復(fù)印機(jī)買賣協(xié)議詳細(xì)范本
- 2024年白字黑字無中介借款協(xié)議樣例
- GF2024年工程設(shè)計(jì)服務(wù)協(xié)議
- 2024年初級(jí)水產(chǎn)批發(fā)銷售協(xié)議樣本
- 2024員工加入?yún)f(xié)議詳細(xì)規(guī)定
- 2024年架子工承包協(xié)議
- 二手摩托車交易協(xié)議范本2024
- DB11∕T 1668-2019 輕鋼現(xiàn)澆輕質(zhì)內(nèi)隔墻技術(shù)規(guī)程
- 2024年醫(yī)療器械試驗(yàn)協(xié)議模板
- 2024年企業(yè)股權(quán)獎(jiǎng)勵(lì)實(shí)施細(xì)則協(xié)議
- 視頻制作保密協(xié)議版
- 幼兒園中班語言《有趣的象形字》課件
- 莎士比亞戲劇賞析智慧樹知到期末考試答案章節(jié)答案2024年北京師范大學(xué)
- 嚴(yán)重精神障礙患者年度健康體檢告知書
- 國培計(jì)劃培訓(xùn)成果匯報(bào)
- 醫(yī)療廢物泄露的應(yīng)急預(yù)案及處置流程
- 《研學(xué)旅行課程設(shè)計(jì)》課件-制訂研學(xué)課程目標(biāo)
- 基于幼小銜接的幼兒學(xué)習(xí)品質(zhì)培養(yǎng)研究以小學(xué)為例
- 2023版(五級(jí))脊柱按摩師技能認(rèn)定考試題庫(單選題部分)
- (正式版)SHT 3046-2024 石油化工立式圓筒形鋼制焊接儲(chǔ)罐設(shè)計(jì)規(guī)范
- 工程地質(zhì)剖面圖的繪制(正式)
評(píng)論
0/150
提交評(píng)論