當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]在上期連載中,我們已將C語言的一些基本知識通過表1~表3列出,希望初學(xué)者加強(qiáng)對上述表格內(nèi)容的記憶,在編制C語言程序時(shí),逐步學(xué)會(huì)其使用,直到靈活應(yīng)用。下面繼續(xù)介紹C語言中的循環(huán)語句及其應(yīng)用?! ?.for語句  

在上期連載中,我們已將C語言的一些基本知識通過表1~表3列出,希望初學(xué)者加強(qiáng)對上述表格內(nèi)容的記憶,在編制C語言程序時(shí),逐步學(xué)會(huì)其使用,直到靈活應(yīng)用。下面繼續(xù)介紹C語言中的循環(huán)語句及其應(yīng)用。

  3.for語句

  for語句在前面的程序?qū)嵗幸咽褂眠^一次。這里作進(jìn)一步介紹。

  一般形式:

  說明語句;

  for(初始化條件;條件表達(dá)式;自增量++)

  執(zhí)行語句;

  運(yùn)行過程如下:先求解初始化條件(初始化值由用戶設(shè)置);再判斷條件表達(dá)式,若其值滿足條件表達(dá)式,則執(zhí)行for的內(nèi)嵌語句(for以下的執(zhí)行語句);在執(zhí)行for的內(nèi)嵌語句之后,求自增量4-+;求解自增量++之后,返回運(yùn)行過程的第2)步繼續(xù)執(zhí)行。如果在繼續(xù)執(zhí)行過程中出現(xiàn)了不滿足條件表達(dá)式的值。則退出循環(huán)。

  for語句是組成延時(shí)函數(shù)的主要成分,即:

  對照本上期的程序?qū)嵗械膄or語句,由該程序中,點(diǎn)亮LED的延時(shí)是一個(gè)固定值,所以來用無參數(shù)延時(shí)(delay)函數(shù)voiddelay()。其for語句中的k是基本的整型變量int型,故取值上限不應(yīng)超過兩個(gè)字節(jié)(見本連載2009年11期的表3)。在該實(shí)例中,k=20000。k值越大,延時(shí)越長。

  上述for語句也可以改為:

  說明語句;

  for(初始化條件;條件表達(dá)式;自減量--)

  執(zhí)行語句;

  其功能是等效的。讀者可以按需選用。

  從上述for語句的組成可以看出,for語句實(shí)際上是一種按設(shè)計(jì)者要求編寫的循環(huán)計(jì)數(shù)器,利用它可使程序按指定的次數(shù)重復(fù)執(zhí)行一個(gè)語句或者一串語句,所以常常用作延時(shí)功能。在延時(shí)函數(shù)中,為了增加延時(shí)量,可將for語句按不同的變量組合使用,以下的延時(shí)函數(shù):

  其中,k1、k2是基本整型變量,其值按用戶需要的延時(shí)設(shè)定。

  該延時(shí)函數(shù)可替換本連載2009年1 0期實(shí)例中的void delay()函數(shù),來增加或細(xì)調(diào)延時(shí)時(shí)間。

  4.do—while語句

  功能:程序運(yùn)行時(shí),首先執(zhí)行do中的內(nèi)嵌語句,然后判斷while中的條件表達(dá)式。若條件表達(dá)式為非零,則回執(zhí)行do中的內(nèi)嵌語句,如此循環(huán),直到條件表達(dá)式的值等于零時(shí),才退出循環(huán),執(zhí)行while語句之后的程序。

  可見,do—while循環(huán)語句與循環(huán)語句while和for的不同點(diǎn)是,do—while的循環(huán)是先執(zhí)行d0中的內(nèi)嵌語句,然后進(jìn)行條件的判斷,即不管條件判斷的結(jié)果如何(即使為0),其do—while中的語句至少要執(zhí)行一次。。[!--empirenews.page--]

5.程序?qū)嵗?-一do-while語句的應(yīng)用

do-while語句看似簡單。但其應(yīng)用十分廣泛和靈活。在while(條件表達(dá)式)中的條件表達(dá)式是由do中的內(nèi)嵌語句執(zhí)行的,這里仍以本連載(1)中的圖1為例加以說明。從中讀者可以看到,點(diǎn)亮多個(gè)LED燈的C程序有多種編寫方式,均可達(dá)到相同的功能。

  該程序功能是給PIC16F84A的端口PORTB賦不同的值,使端13 PORTB各位外接的LED按所賦的值不斷點(diǎn)亮、熄滅,并重復(fù)循環(huán)。循環(huán)過程由do—whiIe語句中的內(nèi)嵌語句自增量進(jìn)行,循環(huán)次數(shù)由whiIe中的條件表達(dá)式?jīng)Q定。筆者將上述功能的do—while語句應(yīng)用程序命名為pic03.c,其清單如下:

[!--empirenews.page--]

說明:該程序中,對B 口的賦值(語句J,使用十六進(jìn)制數(shù),也可用注釋中的二進(jìn)制數(shù)進(jìn)行賦值,它們是等效的。對于某一口外接點(diǎn)燈電路,使用二進(jìn)制數(shù)賦值更直觀形象。

  讀者在學(xué)習(xí)以上程序時(shí)。應(yīng)注意do—while語句中的自增量與while中條件表達(dá)式之間關(guān)系,特別是條件表達(dá)式值控制增量的循環(huán)次數(shù)。所以,在實(shí)驗(yàn)該程序時(shí),可將條件表達(dá)式的值進(jìn)行多個(gè)變化,以便直接觀察相關(guān)量的功能。

  八、C語言的數(shù)組和LED數(shù)碼顯示

  C語言中的數(shù)組也是其重要內(nèi)容之一,在以下介紹的LED數(shù)碼管顯示時(shí),大家會(huì)看到它的用途。

  數(shù)組是由同種類型變量組成的集合體。在使用這些變量時(shí)??捎猛蛔远x的標(biāo)識符命名,如在LED數(shù)碼管顯示字段時(shí),用的數(shù)組自定義名為SEG7。數(shù)組可以是一維的,也可以是多維的。

  這里主要介紹~維數(shù)組及其應(yīng)用。

  1.一維數(shù)組表達(dá)式:類型說明符數(shù)組名[常量】;方括號中常量又稱下標(biāo), 例如數(shù)組intx[10];說明數(shù)組(名)有10個(gè)元素,每個(gè)元素都是整型變量的int(類型說明符)。對于~維數(shù)組,在數(shù)組定義時(shí)還需對數(shù)組賦值,這種賦值稱為對數(shù)組的初始化。對數(shù)組初始化,常用三種方法。

 ?。?)一維數(shù)組,可以全部賦值,其方法如下:

  Int X[10]= 0,1,2,3,4,5,6,7,8,9;注意:賦值時(shí)需用的花括號和賦值之后需用的分號,否則程序編譯無法通過。上述事句說明數(shù)組X的元素從X[0]=0開始至×[9]=9結(jié)束,共10元素。

 ?。?)一維數(shù)組可以部分賦值,其方法如下:

  X[10]: 0,1,2,3,4 ;此句只對數(shù)組0到4共5個(gè)元素,即x[0]至X[4]賦值,對于沒有賦值的其他元素,其默認(rèn)初始值為0。

 ?。?)一維數(shù)組可以省略下標(biāo),其方法如下:

  對一維數(shù)組,如果其全部元素都已賦值,可以省去方框號中的下標(biāo),以簡化其表達(dá)式。例如:

  x[10]= 0,1,2,3,4,5,6,7,8,9;可以簡寫成:X[]= 0,1,2,3。4,5,6,7,8,9 ;理解了一維數(shù)組的以上規(guī)范。便可理解圖2所示LED數(shù)碼管的7段碼數(shù)組的表達(dá)式。

  圖2中的LED數(shù)碼管是共陽極的,若將它的筆段碼通過限流電阻R分別接到PIC單片機(jī)的某一口上,a段接端口的第0位,b段接端IZl的第1位,c段接以端13的第2位…… ,g段接端El的第6位。

圖2

  只要注意共陽數(shù)碼管的某筆段為0(低電平)時(shí),對應(yīng)筆段點(diǎn)亮;為1(高電平)則熄滅即可。此時(shí),LED共陽數(shù)碼管的7段碼0-9的,一維組的完整表達(dá)式為:

  該七段碼數(shù)組,在后面的連載中將派上用場。

  在PIC單片機(jī)中,要用LED數(shù)碼管進(jìn)行相關(guān)的計(jì)數(shù)顯示時(shí),若用匯編語言編寫其計(jì)數(shù)程序,常用查表程序?qū)崿F(xiàn)LED的數(shù)碼顯示,若用C語言編寫,只需將上述段碼數(shù)組對PIC單片機(jī)某一口賦值,即可完成所需要的顯示功能。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉