版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第3 3章章 c51c51語言編程基礎(chǔ)語言編程基礎(chǔ)1實用精品課件ppt1 1)機器語言)機器語言定義:處理器能直接執(zhí)行的二進制代碼定義:處理器能直接執(zhí)行的二進制代碼特點:效率高、但不易于使用特點:效率高、但不易于使用10110110 00000000 10110101 00000000add aadd a,#19#193.1 3.1 編程語言編程語言keilkeil c51 c51簡介簡介1、編程語言、編程語言2 2)匯編語言)匯編語言 定義:以助記符的形式表示機器語言定義:以助記符的形式表示機器語言 特點:速度快、體積小、但依賴于硬件體系特點:速度快、體積小、但依賴于硬件體系2實用精品課件
2、ppt3)高級語言)高級語言獨立于機器、面向過程的、接近于人的自然語言。獨立于機器、面向過程的、接近于人的自然語言。語言:語言:fortran、c語言語言特點:與硬件無關(guān)、易于交流和使用、運行效率低特點:與硬件無關(guān)、易于交流和使用、運行效率低x = x + 1;x = x + 1;編譯器編譯器鏈接器鏈接器x = x + 1;程序員程序員1001001010110010高級語言程序高級語言程序機器碼機器碼單片機如何執(zhí)行程序指令?單片機如何執(zhí)行程序指令?3實用精品課件pptkeilkeil c51 c51語言是在標準語言是在標準c c的基礎(chǔ)上,針對的基礎(chǔ)上,針對5151單片機的硬件特點進行單片機的
3、硬件特點進行擴展,并向擴展,并向5151單片機上移植的高效、簡潔的實用高級語言。單片機上移植的高效、簡潔的實用高級語言。 與匯編語言相比的特點:與匯編語言相比的特點:(1)可讀性好)可讀性好。(2)可模塊化開發(fā)。)可模塊化開發(fā)。(3)可移植性好。)可移植性好。(4)生成的代碼效率較低。)生成的代碼效率較低。2 2、keilkeil c51 c51語言簡介語言簡介對于對于5151單片機,目前廣泛使用的是單片機,目前廣泛使用的是keilkeil c51 c51語言,簡稱語言,簡稱c51c51語言。語言。4實用精品課件ppt3 3、c51c51與標準與標準c c的區(qū)別的區(qū)別(1 1)庫函數(shù)的不同。庫
4、函數(shù)的不同。例如庫函數(shù)例如庫函數(shù)printfprintf和和scanfscanf,在標準,在標準c c中,這中,這兩個函數(shù)通常用于屏幕打印和接收字符,而在兩個函數(shù)通常用于屏幕打印和接收字符,而在keilkeil c51 c51中,主要中,主要用于串行口數(shù)據(jù)的收發(fā)。用于串行口數(shù)據(jù)的收發(fā)。(3 3)c51c51的變量存儲模式與標準的變量存儲模式與標準c c中的變量存儲模式不一樣。中的變量存儲模式不一樣。標準標準c c是在通用計算機中只有一個程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間。是在通用計算機中只有一個程序和數(shù)據(jù)統(tǒng)一尋址的內(nèi)存空間。 5151單片機存儲區(qū)可分為內(nèi)部數(shù)據(jù)存儲區(qū)、外部數(shù)據(jù)存儲區(qū)以及程序單片機存儲
5、區(qū)可分為內(nèi)部數(shù)據(jù)存儲區(qū)、外部數(shù)據(jù)存儲區(qū)以及程序存儲區(qū)。存儲區(qū)。(4 4)標準標準c c語言沒有處理單片機中斷的方法。語言沒有處理單片機中斷的方法。c51c51中有專門處理中斷的中斷函數(shù)。中有專門處理中斷的中斷函數(shù)。(2 2)數(shù)據(jù)類型有一定的區(qū)別。數(shù)據(jù)類型有一定的區(qū)別。在標準在標準c c的基礎(chǔ)上又擴展了的基礎(chǔ)上又擴展了4 4種類型。種類型。5實用精品課件ppt(5 5)頭文件的不同。頭文件的不同。5151頭文件把單片機內(nèi)部的硬件資源如定時器、中斷、頭文件把單片機內(nèi)部的硬件資源如定時器、中斷、i/oi/o等所相等所相應(yīng)的功能寄存器寫入頭文件內(nèi)。應(yīng)的功能寄存器寫入頭文件內(nèi)。(6 6)程序結(jié)構(gòu)的差異。
6、程序結(jié)構(gòu)的差異。由于由于5151單片機硬件資源有限,編譯系統(tǒng)不允許太多的程序嵌套。單片機硬件資源有限,編譯系統(tǒng)不允許太多的程序嵌套。其次,其次,c51c51語言不支持標準語言不支持標準c c的遞歸特性。的遞歸特性。 4 4、keilkeil c51 c51的開發(fā)工具的開發(fā)工具keilkeil vision3vision3keilkeil vision3vision3是德國是德國keilkeil software software公司開發(fā)的公司開發(fā)的c51c51語言開發(fā)軟件。語言開發(fā)軟件。這個軟件集成了文件編輯處理、編譯鏈接等功能。這個軟件集成了文件編輯處理、編譯鏈接等功能。6實用精品課件ppt
7、3.2 c513.2 c51語言程序設(shè)計基礎(chǔ)語言程序設(shè)計基礎(chǔ)1 1、數(shù)據(jù)類型與存儲類型、數(shù)據(jù)類型與存儲類型1 1)數(shù)數(shù)據(jù)據(jù)類類型型7實用精品課件ppt2)c51擴展的數(shù)據(jù)類型(擴展的數(shù)據(jù)類型(4種擴展的數(shù)據(jù)類型)種擴展的數(shù)據(jù)類型)(1 1)位變量)位變量bitbit bit bit的值可以是的值可以是1 1(truetrue),或),或0 0(falsefalse)。)。 bit bit 變量名;變量名;格式:格式:例如:例如:bit flag;bit flag;flag = 0flag = 0;8實用精品課件ppt(2 2)特殊功能寄存器)特殊功能寄存器sfrsfr 地址單元地址單元80h8
8、0hffhffh之間的片內(nèi)數(shù)據(jù)存儲區(qū);之間的片內(nèi)數(shù)據(jù)存儲區(qū); “ “sfrsfr” ” 數(shù)據(jù)類型占用一個內(nèi)存單元;數(shù)據(jù)類型占用一個內(nèi)存單元; 利用它可以訪問利用它可以訪問5151單片機內(nèi)部的所有特殊功能寄存器。單片機內(nèi)部的所有特殊功能寄存器。sfrsfr p1 = 0 x90 p1 = 0 x90; /定義了定義了p1p1為片內(nèi)的為片內(nèi)的p1p1口寄存器;口寄存器;p1 = 0 xffp1 = 0 xff; /把把p1p1口的所有輸出引腳設(shè)置為高電平。口的所有輸出引腳設(shè)置為高電平。例如:例如:sfrsfr 寄存器變量名寄存器變量名 = = 字節(jié)地址常數(shù);字節(jié)地址常數(shù);格式:格式:9實用精品課件
9、pptsfrsfr sbuf = 0 x99 sbuf = 0 x99;習題:習題: 往串行發(fā)送數(shù)據(jù)緩沖寄存器往串行發(fā)送數(shù)據(jù)緩沖寄存器sbuf寫入寫入80sbuf = 80sbuf = 80;習題:習題: 從從p0口寄存器讀取數(shù)據(jù),存放到任意一個變量口寄存器讀取數(shù)據(jù),存放到任意一個變量x。sfrsfr p0 = 0 x80 p0 = 0 x80;intint x x; x = p0 x = p0;10實用精品課件ppt例如:例如:(3 3)特殊功能寄存器)特殊功能寄存器sfr16sfr16“sfr16”“sfr16”數(shù)據(jù)類型占兩個內(nèi)存單元;數(shù)據(jù)類型占兩個內(nèi)存單元;用于操作占兩個字節(jié)的特殊功能寄
10、存器。用于操作占兩個字節(jié)的特殊功能寄存器。sfr16 dptr = 0 x82sfr16 dptr = 0 x82;/定義了片內(nèi)定義了片內(nèi)1616位數(shù)據(jù)指針寄存器位數(shù)據(jù)指針寄存器dptrdptr, /低低8 8位字節(jié)地址為位字節(jié)地址為82h82h, /高高8 8位字節(jié)地址為位字節(jié)地址為83h83h。dptr=0 x1234;dptr=0 x1234;sfr16 sfr16 寄存器變量名寄存器變量名 = = 字節(jié)地址常數(shù);字節(jié)地址常數(shù);格式:格式:字節(jié)地址為字節(jié)地址為82h、83h存放的數(shù)據(jù)分別是多少?存放的數(shù)據(jù)分別是多少?11實用精品課件ppt(4 4)特殊功能位)特殊功能位 sbitsbit
11、 片內(nèi)特殊功能寄存器的可尋址位。片內(nèi)特殊功能寄存器的可尋址位?!啊薄啊鼻笆翘厥夤δ芗拇嫫鞯拿?;前是特殊功能寄存器的名字;“”的后面數(shù)字是特殊功能寄存器可尋址位在寄存器中的位置,的后面數(shù)字是特殊功能寄存器可尋址位在寄存器中的位置,取值必須是取值必須是0-70-7。 sbitsbit 位變量名位變量名 = = 特殊功能寄存器特殊功能寄存器 位位置;位位置;格式:格式:sfrsfr psw = 0 xd0 psw = 0 xd0; /定義定義pswpsw寄存器地址為寄存器地址為0 xd00 xd0sbitsbit fo = psw 5 fo = psw 5 ;/定義定義f0f0位為位為psw.5p
12、sw.5f0 = 0;f0 = 0;例如:例如:12實用精品課件ppt習題:片內(nèi)習題:片內(nèi)i/oi/o口口p1p1口的口的p1.0p1.0尋址位置成高電平尋址位置成高電平 sfr sfr p1 = 0 x90 p1 = 0 x90; sbitsbit p1_0 = p10 p1_0 = p10; p1_0 = 1p1_0 = 1;習題:習題: 從從p2口的口的p2.7讀取數(shù)據(jù),存放到任意一個位變量讀取數(shù)據(jù),存放到任意一個位變量x。 sfr sfr p2 = 0 xa0 p2 = 0 xa0; sbitsbit p2_7 = p27 p2_7 = p27; bit xbit x; x = p2_
13、7x = p2_7; 13實用精品課件pptsbitsbit 位變量名位變量名 = = 位地址常數(shù);位地址常數(shù); sbitsbit cy = 0 xd7 cy = 0 xd7; / /* * cy cy位地址為位地址為0 xd70 xd7* */ /sbitsbit ov = 0 xd2 ov = 0 xd2; / /* * ov ov位地址為位地址為0 xd20 xd2* */ /ifif(cy = = 1cy = = 1) 例如:例如:格式:格式:14實用精品課件ppt習題:片內(nèi)習題:片內(nèi)i/oi/o口口p1p1口的口的p1.0p1.0尋址位置成低電平尋址位置成低電平sbitsbit p1
14、_0 = 0 x90 p1_0 = 0 x90;p1_0 = 0p1_0 = 0;在頭文件在頭文件at89x51.hat89x51.h中定義了常用的特殊功能寄存器和可尋址位。中定義了常用的特殊功能寄存器和可尋址位。#include #include sfr sfr p1 = 0 x90 p1 = 0 x90; sbitsbit p1_0 = 0 x90 p1_0 = 0 x90; 兩者區(qū)別?兩者區(qū)別? 615實用精品課件ppt3 3)數(shù)據(jù)存儲類型數(shù)據(jù)存儲類型數(shù)據(jù)存儲類型是指數(shù)據(jù)存放在數(shù)據(jù)存儲類型是指數(shù)據(jù)存放在5151單片機的哪一個存儲器空間。單片機的哪一個存儲器空間。16實用精品課件pptbd
15、atadataidatapdataxdatacode17實用精品課件ppt(1 1)datadata區(qū)。區(qū)。 datadata區(qū)指片內(nèi)區(qū)指片內(nèi)ramram的低的低128128字節(jié)的空間,可直接尋址;字節(jié)的空間,可直接尋址; 尋址是最快的,應(yīng)該把經(jīng)常使用的變量放在尋址是最快的,應(yīng)該把經(jīng)常使用的變量放在datadata區(qū)。區(qū)。unsigned char unsigned char datadata system_status system_status=0;=0;unsigned intunsigned int datadata unit_id8; unit_id8;例如:例如:格式:格式: 數(shù)據(jù)
16、類型數(shù)據(jù)類型【存儲類型【存儲類型】變量名;變量名;18實用精品課件ppt(2 2)bdatabdata區(qū)。區(qū)。 bdatabdata區(qū)是內(nèi)部區(qū)是內(nèi)部ramram可位尋址的可位尋址的1616字節(jié)存儲區(qū)(字節(jié)地址為字節(jié)存儲區(qū)(字節(jié)地址為20h20h 2fh2fh)中的)中的128128個位。個位。 在這個區(qū)中聲明變量就可進行位尋址。在這個區(qū)中聲明變量就可進行位尋址。例如:例如:unsigned char bdata status_byte;unsigned int bdata status_word;sbit stat_flag= status_byte4;if( status_word15 )
17、stat_flag=1; 19實用精品課件ppt(3 3)idataidata區(qū)。區(qū)。 idataidata區(qū)是片內(nèi)區(qū)是片內(nèi)ramram的的0-2560-256字節(jié)的存儲區(qū),只能間接尋址,字節(jié)的存儲區(qū),只能間接尋址, 速度比直接尋址慢。速度比直接尋址慢。unsigned char idata system_status=0;float idata value; 例如:例如:20實用精品課件ppt(4 4)pdatapdata區(qū)和區(qū)和xdataxdata區(qū)。區(qū)。 pdatapdata區(qū)和區(qū)和xdataxdata區(qū)位于片外存儲區(qū);區(qū)位于片外存儲區(qū); pdatapdata區(qū)指的是外部數(shù)據(jù)存儲區(qū)區(qū)指的
18、是外部數(shù)據(jù)存儲區(qū)0 0256256字節(jié)。字節(jié)。 xdataxdata區(qū)指的是外部數(shù)據(jù)區(qū)區(qū)指的是外部數(shù)據(jù)區(qū)64kb64kb內(nèi)的任何地址。內(nèi)的任何地址。unsigned char xdata system_status=0;unsigned int pdata unit_id8;例如:例如:21實用精品課件ppt(5 5)程序存儲區(qū))程序存儲區(qū)codecode。 codecode區(qū)是程序存儲區(qū),儲存的數(shù)據(jù)是不可改變的。區(qū)是程序存儲區(qū),儲存的數(shù)據(jù)是不可改變的。unsigned char unsigned char codecode a9 a9 =0 x00,0 x01,0 x02,0 x03,0 x
19、04,0 x05,0 x06,0 x07,0 x08;=0 x00,0 x01,0 x02,0 x03,0 x04,0 x05,0 x06,0 x07,0 x08;例如:例如:22實用精品課件ppt4 4)數(shù)據(jù)存儲器模式)數(shù)據(jù)存儲器模式c51c51編譯器設(shè)定的存儲器模式:編譯器設(shè)定的存儲器模式: smallsmall、compactcompact和和largelarge三種模式。三種模式。若聲明若聲明 char var1char var1;在在smallsmall模式下,模式下, var1var1被定位在被定位在datadata存儲區(qū);存儲區(qū);在在compactcompact模式下,模式下,
20、var1var1被定位在被定位在idataidata存儲區(qū);存儲區(qū);在在largelarge模式下,模式下, var1var1被定位在被定位在xdataxdata存儲區(qū)中。存儲區(qū)中。23實用精品課件ppt2 2、c51c51語言的絕對地址訪問語言的絕對地址訪問c51c51語言提供了兩種比較常用的訪問絕對地址的方法,語言提供了兩種比較常用的訪問絕對地址的方法,對片內(nèi)對片內(nèi)ramram、片外、片外ramram及及i/oi/o進行訪問。進行訪問。絕對地址絕對地址24實用精品課件ppt1)絕對宏)絕對宏c51編譯器提供了一組宏定義對編譯器提供了一組宏定義對code、data、pdata和和xdata空
21、間空間進行絕對尋址。這組宏定義放在進行絕對尋址。這組宏定義放在absacc.h頭文件中:頭文件中:cbyte 以字節(jié)形式對以字節(jié)形式對code區(qū)尋址;區(qū)尋址;cword 以字形式對以字形式對code區(qū)尋址;區(qū)尋址;dbyte 以字節(jié)形式對以字節(jié)形式對data區(qū)尋址;區(qū)尋址;dword 以字形式對以字形式對data區(qū)尋址;區(qū)尋址;xbyte 以字節(jié)形式對以字節(jié)形式對xdata區(qū)尋址;區(qū)尋址;xword 以字形式對以字形式對xdata區(qū)尋址;區(qū)尋址;pbyte 以字節(jié)形式對以字節(jié)形式對pdata區(qū)尋址;區(qū)尋址;pword 以字形式對以字形式對pdata區(qū)尋址。區(qū)尋址。#define #define
22、 變量名變量名 絕對宏絕對宏 字節(jié)地址字節(jié)地址 格式格式絕對宏絕對宏25實用精品課件ppt【例】片內(nèi)【例】片內(nèi)ramram、片外、片外ramram定義的程序如下:定義的程序如下:#includeabsacc.h#include #define porte xbyte0 xffc0 #define porte xbyte0 xffc0 / /* *將將porteporte定義為外部定義為外部i/oi/o, 地址為地址為0 xffc00 xffc0* */ /#define nram dbyte0 x40 #define nram dbyte0 x40 / /* *將將nramnram定義為片內(nèi)定
23、義為片內(nèi)ramram, 地址為地址為0 x400 x40* */ /main( )main( ) porte=0 x3d; porte=0 x3d; nram=0 x01;nram=0 x01; / /* *數(shù)據(jù)數(shù)據(jù)3dh3dh寫入地址寫入地址0 xffc00 xffc0的外部的外部i/o i/o porte porte * */ / /* *將數(shù)據(jù)將數(shù)據(jù)01h01h寫入片內(nèi)寫入片內(nèi)ramram的的40h40h單元單元* */ /26實用精品課件ppt習題習題 使用絕對宏使用絕對宏將片將片內(nèi)內(nèi)ram 20hram 20h的字節(jié)地址單元全部置的字節(jié)地址單元全部置1 1。#includeabsac
24、c.h#include #define m dbyte0 x0020 #define m dbyte0 x0020 / /* *將將m m定義為外部定義為外部ramram, 地址為地址為0 x00200 x0020* */ /main( )main( ) m=0 xff; m=0 xff; 27實用精品課件ppt習題:習題: 使用絕對宏讀取片外使用絕對宏讀取片外ram f000hram f000h字節(jié)地址單元的內(nèi)容。字節(jié)地址單元的內(nèi)容。#includeabsacc.h#include #define wram xbyte0 xf000 #define wram xbyte0 xf000 mai
25、n( )main( ) char x char x; x = wram;x = wram; 728實用精品課件ppt2 2)_at_at_關(guān)鍵字關(guān)鍵字使用關(guān)鍵字使用關(guān)鍵字_at_at_可對指定的存儲器空間的絕對地址進行訪問??蓪χ付ǖ拇鎯ζ骺臻g的絕對地址進行訪問。格式:格式: 存儲類型存儲類型 數(shù)據(jù)類型數(shù)據(jù)類型 變量名變量名 _at_ _at_ 地址常數(shù);地址常數(shù);地址常數(shù):指定變量的絕對地址,位于存儲器空間之內(nèi);地址常數(shù):指定變量的絕對地址,位于存儲器空間之內(nèi);使用使用_at_at_定義的變量必須為全局變量。定義的變量必須為全局變量。29實用精品課件ppt【例】使用關(guān)鍵字【例】使用關(guān)鍵字_a
26、t_at_實現(xiàn)絕對地址的訪問。實現(xiàn)絕對地址的訪問。data unsigned char y1 _at_ 0 x50; /data unsigned char y1 _at_ 0 x50; /* *在在data data 區(qū)定義字節(jié)變量區(qū)定義字節(jié)變量 y1y1,地址為,地址為50h50h* */ /xdata unsigned intxdata unsigned int y2 _at_ 0 x4000; / y2 _at_ 0 x4000; /* *在在xdataxdata區(qū)定義字變量區(qū)定義字變量 y2y2,地址為,地址為4000h4000h* */ /void main(voidvoid ma
27、in(void) ) y1=0 xff; y1=0 xff; y2=0 x1234; y2=0 x1234; while(1); while(1); 30實用精品課件ppt習題:使用習題:使用關(guān)鍵字關(guān)鍵字_at_at_讀取片內(nèi)讀取片內(nèi)ram 60hram 60h單元的內(nèi)容。單元的內(nèi)容。data unsigned char m _at_ 0 x60;data unsigned char m _at_ 0 x60;void main(voidvoid main(void) ) unsigned char y ; unsigned char y ; y=m y=m; 31實用精品課件ppt【例【例】
28、使用關(guān)鍵字使用關(guān)鍵字_at_at_將片外將片外ram 2000hram 2000h開始的連續(xù)開始的連續(xù)2020個字節(jié)單元清個字節(jié)單元清0 0。void main(voidvoid main(void) ) unsigned char i; unsigned char i; for(i for(i=0; i20; i+)=0; i20; i+) bufferi bufferi=0=0; xdataxdata unsigned char buffer20 _at_ 0 x2000; unsigned char buffer20 _at_ 0 x2000;32實用精品課件pptdata unsign
29、ed char buffer8 _at_ 0 x40;data unsigned char buffer8 _at_ 0 x40;void main(voidvoid main(void) ) unsigned char j ; unsigned char j ; for(j for(j=0; j8; j+)=0; j y; r = x y;35實用精品課件ppt3 3)邏輯運算符)邏輯運算符邏輯表達式邏輯表達式intint x=0; x=0;intint y=1; y=1;intint r; r;r = x & y;r = x & y;36實用精品課件ppt4)位運算符)位運
30、算符01001000 01001000 & & 11111111 1111111100001000 00001000 2 201001001 01001001 | | 11111111 1111111137實用精品課件ppt01001000 01001000 & & 00110111 0011011101000000 01000000 | | 11111111 1111111100001000 00001000 y ) max=x; if( xy ) max=x; 比較變量比較變量x x和變量和變量y y,如果,如果xyxy,則把,則把 x x 賦給變量賦給變量
31、maxmax。習題:比較變量習題:比較變量x x和變量和變量y y,如果,如果x x和和y y相等,則把相等,則把0 0賦給變量賦給變量maxmax。if( x = = y ) max=0; if( x = = y ) max=0; 43實用精品課件ppt格式:格式:if(if(表達式表達式) ) 語句語句1 1; else else 語句語句2 2; 44實用精品課件pptif (xy) max=x; else max=y; 比較變量比較變量x x和變量和變量y y, 如果如果xyxy, 則把則把 x x 賦給變量賦給變量maxmax;否則把否則把 y y 賦給變量賦給變量maxmax。45
32、實用精品課件ppt習題:比較變量習題:比較變量x x和變量和變量y y,把二者最小值賦給變量,把二者最小值賦給變量minmin;if (xy) min=y; else min=x; 46實用精品課件ppt習題:如果變量習題:如果變量x x滿足關(guān)系滿足關(guān)系10 x2010 x10)&(x10)&(x20)) ) y=1 y=1; else else y=0; y=0; 947實用精品課件pptvoid main( )void main( ) sfr sfr p2=0 xa0 p2=0 xa0; sfrsfr p1=0 x90 p1=0 x90; sbitsbit p24=p24
33、p24=p24; sbitsbit p10=p10 p10=p10; 習題:如果讀取習題:如果讀取p2p2口的口的p2.4p2.4位為位為1 1,則把,則把p1p1口的口的p1.0p1.0置成置成0 0。 if(p24=1) if(p24=1) p10=0 p10=0; 48實用精品課件pptif(if(表達式表達式1) 1) 語句語句1 1;else if (else if (表達式表達式2) 2) 語句語句2 2; else if(else if(表達式表達式n) n) 語句語句n n;else else 語句語句n+1n+1;多分支多分支ifif語句語句0表達式表達式1 表達式表達式2
34、表達式表達式n語句語句n+100語句語句n 語句語句2 語句語句1 非非0 非非0 非非0 49實用精品課件ppt當成績當成績9090時,時, 輸出輸出verygoodverygood,當當8080成績成績9090時,時, 輸出輸出goodgood, 當當6060成績成績8080時,時, 輸出輸出passpass,當成績當成績60=90) printf(“veryif (score=90) printf(“very good); good);else if (score=80) printf(“goodelse if (score=80) printf(“good);); else if (s
35、core=60) printf(“pass else if (score=60) printf(“pass);); else printf(“fail else printf(“fail););50實用精品課件ppt多分支多分支switchswitch語句語句switch (switch (表達式表達式1) 1) case case 常量表達式常量表達式1 1: 語句語句1 1; break break; case case 常量表達式常量表達式2 2: 語句語句2 2; break break; case case 常量表達式常量表達式n n: 語句語句n n; break break; d
36、efaultdefault: 語句語句n+1n+1; 格式:格式:51實用精品課件pptswitchswitch表達式表達式1 1語句語句1 1語句語句2 2語句語句n n語句語句n+1n+1式式1 1式式2 2式式n ndefaultdefaultcasecase 52實用精品課件pptswitch ( key ) switch ( key ) case 1case 1: y=1y=1; breakbreak; case 2case 2: y=2; breaky=2; break;case 3case 3: y=4y=4; breakbreak; defaultdefault: ; ; 在單
37、片機程序設(shè)計中,常用在單片機程序設(shè)計中,常用switchswitch語句作為鍵盤中按鍵的判別。語句作為鍵盤中按鍵的判別。當按下鍵的鍵號變量當按下鍵的鍵號變量key=1key=1,則變量,則變量y=1y=1; 鍵號變量鍵號變量key=2key=2,則變量,則變量y=2y=2; 鍵號變量鍵號變量key=4key=4,則變量,則變量y=3y=3; 沒有按下鍵,沒有按下鍵, 則變量則變量y y不變。不變。53實用精品課件pptkey=2;key=2;switch ( key ) switch ( key ) case 1case 1: y=1y=1; case 2case 2: y=2; y=2; c
38、ase 3case 3: y=4y=4; defaultdefault: ; ; 習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?54實用精品課件ppt2 2)循環(huán)結(jié)構(gòu)控制語句)循環(huán)結(jié)構(gòu)控制語句whilewhile(表達式)(表達式) 循環(huán)體;循環(huán)體; 格式:格式:表達式表達式循環(huán)體循環(huán)體假假(0)真真(非非0)先判斷表達式,先判斷表達式,后執(zhí)行循環(huán)體后執(zhí)行循環(huán)體。whilewhile語句語句55實用精品課件pptmain()main() int int i=0; i=0; int int r; r; while while(i3i3) i+ i+ ; y=i; y=i; i+i+
39、執(zhí)行幾次?執(zhí)行幾次?y =y =?r = 3r = 3習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?56實用精品課件pptmain()main() int int i=3; i=3; int int r; r; while while(i6i6) i+ i+ ; y=i; y=i; y =y =?習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?57實用精品課件pptdodo 循環(huán)體;循環(huán)體; whilewhile(表達式);(表達式);格式:格式:表達式表達式循環(huán)體循環(huán)體假假(0)真真(非非0);不可省略!不可省略!切記!切記!先執(zhí)行循環(huán)體,先執(zhí)行循環(huán)體,后判斷表達式
40、后判斷表達式。do-whiledo-while語句語句58實用精品課件pptmain()main() int int i=0; i=0; int int y; y; do do i+ i+; while (i3); while (i3); y=i; y=i; i+i+執(zhí)行幾次?執(zhí)行幾次?y =y =?習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?59實用精品課件pptmain()main() int int i=0; i=0; int int y=0; y=0; do do i+ i+; y= y + i;y= y + i; while (y20); while (y20); 習
41、題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?60實用精品課件pptforfor(表達式(表達式1 1;表達式;表達式2 2;表達式;表達式3 3) 語句;語句; 格式:格式:forfor語句語句61實用精品課件pptmain()main() int int i, y; i, y; y=0; y=0; for(i for(i=1;i4;i+)=1;i4;i+) y = y + i y = y + i; y = y = ?習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?62實用精品課件pptmain()main() int int i, y; i, y; y=1; y=1
42、; for( i=2; i6 ; i+ ) for( i=2; i6 ; i+ ) y = y + i y = y + i; y = y = ?習題:讀程序執(zhí)行的結(jié)果習題:讀程序執(zhí)行的結(jié)果 y =y =?63實用精品課件ppt3 3)breakbreak語句和語句和continuecontinue語句語句breakbreak功能:功能: 跳出跳出switchswitch結(jié)構(gòu);結(jié)構(gòu); 在循環(huán)語句中在循環(huán)語句中, ,終止并跳出終止并跳出本層本層循環(huán)。循環(huán)。continuecontinue功能:功能: 結(jié)束本次循環(huán),跳過本層循環(huán)體中尚未執(zhí)行的語句,結(jié)束本次循環(huán),跳過本層循環(huán)體中尚未執(zhí)行的語句, 執(zhí)行
43、循環(huán)體的判斷。執(zhí)行循環(huán)體的判斷。64實用精品課件ppt#define pi 3.1415main( ) int r; float area; for(r=1;r100) break; printf(r=%d,area=%.2fn,r,area); 計算計算r=1r=1到到r=10r=10的圓面積,直到面積大于的圓面積,直到面積大于100100時停止。時停止。運行結(jié)果:運行結(jié)果:r=1,area=3.14r=2,area=12.57r=3,area=28.27r=4,area=50.26r=5,area=78.54結(jié)束整個結(jié)束整個for循環(huán)循環(huán)65實用精品課件ppt把把100100200200之
44、間不能被之間不能被3 3整除的數(shù)輸出整除的數(shù)輸出 。main( )main( ) int int n; n; for(n=100;n=200;n+) for(n=100;n=200;n+) if(n%3= =0) if(n%3= =0) continue;continue; printf(“%d printf(“%d ,n); ,n); 結(jié)束本次循環(huán)結(jié)束本次循環(huán),循環(huán)體的剩余語句被忽略循環(huán)體的剩余語句被忽略,執(zhí)行表達式執(zhí)行表達式3,進入下一循環(huán)。,進入下一循環(huán)。66實用精品課件pptmain( ) int n; for(n=100;n=200;n+) if(n%3=0) break; prin
45、tf(“%d ,n); 習題:讀程序執(zhí)行的結(jié)果?習題:讀程序執(zhí)行的結(jié)果?67實用精品課件ppt習題:循環(huán)檢測習題:循環(huán)檢測p1.0p1.0引腳,只有檢測引腳,只有檢測p1.0p1.0為低電平時,循環(huán)結(jié)束。為低電平時,循環(huán)結(jié)束。sfr p1=0 x90;sbit p10=p10;main( ) while(1) if(p10=0) break; 68實用精品課件ppt5 5、數(shù)組、數(shù)組數(shù)組是用來存儲一組相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)。數(shù)組是用來存儲一組相同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)。一維數(shù)組格式:一維數(shù)組格式:數(shù)據(jù)類型數(shù)據(jù)類型變量名變量名 n ;int a 10;intint a5 = 1, 2, 3, 4, 5 a5 = 1, 2, 3, 4, 5 ;初始化:初始化:char b 10;69實用精品課件ppt求下列數(shù)組的和。求下列數(shù)組的和。intint a5 = 1, 2, 3, 4, 5 a5 = 1, 2, 3, 4, 5 ;main()main() int int a5=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教版八年級數(shù)學寒假復(fù)習 專題03 軸對稱圖形(8個知識點回顧+10大題型歸納+過關(guān)檢測)
- 《產(chǎn)科超聲軟標記》課件
- 【創(chuàng)新設(shè)計】2020-2021學年高中物理人教版選修3-1(浙江專用)題組訓練-第三章-磁場-3-5
- 【同步輔導(dǎo)】2021高中數(shù)學北師大版選修1-1學案:《函數(shù)與導(dǎo)數(shù)的綜合性問題分析》
- 【創(chuàng)新設(shè)計】2021高考政治一輪復(fù)習提能檢測:第7課-個人收入的分配
- 全國2021屆高三英語試題8、9月分類解析:A單元-單項填空(A1名詞)
- 【2022屆走向高考】高三數(shù)學一輪(北師大版)基礎(chǔ)鞏固:第8章-第3節(jié)-空間圖形的基本關(guān)系與公理
- 【名師一號】2020-2021學年高中地湘教版必修1學案-3-2
- 我的銷售月度總結(jié):成果展示與反思
- 五年級數(shù)學(小數(shù)乘法)計算題專項練習及答案匯編
- 獨家投放充電寶協(xié)議書范文范本
- 第六章 綠色化學與科技課件
- 封窗安全事故免責協(xié)議書范文
- 北京市海淀區(qū)2023-2024學年高二上學期期末考試 生物 含解析
- 小學數(shù)學《比的認識單元復(fù)習課》教學設(shè)計(課例)
- 小學三年級下冊數(shù)學(青島54制)全冊知識點總結(jié)
- 汽車修理業(yè)務(wù)受理程序、服務(wù)承諾、用戶抱怨制度
- 河綜合治理工程竣工環(huán)保驗收監(jiān)測調(diào)查報告
- 2024年院感多重耐藥菌醫(yī)院感染預(yù)防與控制技術(shù)指南專項測試題有答案
- 2023-2024學年山東省泰安市高一下學期7月期末考試物理試題(解析版)
- 安徽省合肥市2023-2024學年七年級上學期期末數(shù)學試題(含答案)
評論
0/150
提交評論