




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
精品文檔-下載后可編輯PIC單片機C語言程序設(shè)計(3)-基礎(chǔ)電子接上期/data/html/2022-9-9/98339.html
在上期連載中,我們已將C語言的一些基本知識通過表1~表3列出,希望初學(xué)者加強對上述表格內(nèi)容的記憶,在編制C語言程序時,逐步學(xué)會其使用,直到靈活應(yīng)用。下面繼續(xù)介紹C語言中的循環(huán)語句及其應(yīng)用。
3.for語句
for語句在前面的程序?qū)嵗幸咽褂眠^。這里作進一步介紹。
一般形式:
說明語句;
for(初始化條件;條件表達式;自增量++)
執(zhí)行語句;
運行過程如下:先求解初始化條件(初始化值由用戶設(shè)置);再判斷條件表達式,若其值滿足條件表達式,則執(zhí)行for的內(nèi)嵌語句(for以下的執(zhí)行語句);在執(zhí)行for的內(nèi)嵌語句之后,求自增量4-+;求解自增量++之后,返回運行過程的第2)步繼續(xù)執(zhí)行。如果在繼續(xù)執(zhí)行過程中出現(xiàn)了不滿足條件表達式的值。則退出循環(huán)。
for語句是組成延時函數(shù)的主要成分,即:
對照本上期的程序?qū)嵗械膄or語句,由該程序中,點亮LED的延時是一個固定值,所以來用無參數(shù)延時(delay)函數(shù)voiddelay()。其for語句中的k是基本的整型變量int型,故取值上限不應(yīng)超過兩個字節(jié)(見本連載2022年11期的表3)。在該實例中,k=20000。k值越大,延時越長。
上述for語句也可以改為:
說明語句;
for(初始化條件;條件表達式;自減量--)
執(zhí)行語句;
其功能是等效的。讀者可以按需選用。
從上述for語句的組成可以看出,for語句實際上是一種按設(shè)計者要求編寫的循環(huán)計數(shù)器,利用它可使程序按指定的次數(shù)重復(fù)執(zhí)行一個語句或者一串語句,所以常常用作延時功能。在延時函數(shù)中,為了增加延時量,可將for語句按不同的變量組合使用,以下的延時函數(shù):
其中,k1、k2是基本整型變量,其值按用戶需要的延時設(shè)定。
該延時函數(shù)可替換本連載2022年10期實例中的voiddelay()函數(shù),來增加或細調(diào)延時時間。
4.do—while語句
功能:程序運行時,首先執(zhí)行do中的內(nèi)嵌語句,然后判斷while中的條件表達式。若條件表達式為非零,則回執(zhí)行do中的內(nèi)嵌語句,如此循環(huán),直到條件表達式的值等于零時,才退出循環(huán),執(zhí)行while語句之后的程序。
可見,do—while循環(huán)語句與循環(huán)語句while和for的不同點是,do—while的循環(huán)是先執(zhí)行d0中的內(nèi)嵌語句,然后進行條件的判斷,即不管條件判斷的結(jié)果如何(即使為0),其do—while中的語句至少要執(zhí)行。。
5.程序?qū)嵗?-一do-while語句的應(yīng)用
do-while語句看似簡單。但其應(yīng)用十分廣泛和靈活。在while(條件表達式)中的條件表達式是由do中的內(nèi)嵌語句執(zhí)行的,這里仍以本連載(1)中的圖1為例加以說明。從中讀者可以看到,點亮多個LED燈的C程序有多種編寫方式,均可達到相同的功能。
該程序功能是給PIC16F84A的端口PORTB賦不同的值,使端13PORTB各位外接的LED按所賦的值不斷點亮、熄滅,并重復(fù)循環(huán)。循環(huán)過程由do—whiIe語句中的內(nèi)嵌語句自增量進行,循環(huán)次數(shù)由whiIe中的條件表達式?jīng)Q定。筆者將上述功能的do—while語句應(yīng)用程序命名為pic03.c,其清單如下:
說明:該程序中,對B口的賦值(語句J,使用十六進制數(shù),也可用解釋中的二進制數(shù)進行賦值,它們是等效的。對于某一口外接點燈電路,使用二進制數(shù)賦值更直觀形象。
讀者在學(xué)習(xí)以上程序時。應(yīng)注意do—while語句中的自增量與while中條件表達式之間關(guān)系,特別是條件表達式值控制增量的循環(huán)次數(shù)。所以,在實驗該程序時,可將條件表達式的值進行多個變化,以便直接觀察相關(guān)量的功能。
八、C語言的數(shù)組和LED數(shù)碼顯示
C語言中的數(shù)組也是其重要內(nèi)容之一,在以下介紹的LED數(shù)碼管顯示時,大家會看到它的用途。
數(shù)組是由同種類型變量組成的集合體。在使用這些變量時??捎猛蛔远x的標識符命名,如在LED數(shù)碼管顯示字段時,用的數(shù)組自定義名為SEG7。數(shù)組可以是一維的,也可以是多維的。
這里主要介紹~維數(shù)組及其應(yīng)用。
1.一維數(shù)組表達式:類型說明符數(shù)組名[常量】;方括號中常量又稱下標,例如數(shù)組intx[10];說明數(shù)組(名)有10個元素,每個元素都是整型變量的int(類型說明符)。對于~維數(shù)組,在數(shù)組定義時還需對數(shù)組賦值,這種賦值稱為對數(shù)組的初始化。對數(shù)組初始化,常用三種方法。
(1)一維數(shù)組,可以全部賦值,其方法如下:
IntX[10]=0,1,2,3,4,5,6,7,8,9;注意:賦值時需用的花括號和賦值之后需用的分號,否則程序編譯無法通過。上述事句說明數(shù)組X的元素從X[0]=0開始至×[9]=9結(jié)束,共10元素。
(2)一維數(shù)組可以部分賦值,其方法如下:
X[10]:0,1,2,3,4;此句只對數(shù)組0到4共5個元素,即x[0]至X[4]賦值,對于沒有賦值的其他元素,其默認初始值為0。
(3)一維數(shù)組可以省略下標,其方法如下:
對一維數(shù)組,如果其全部元素都已賦值,可以省去方框號中的下標,以簡化其表達式。例如:
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ù)組的表達式。
圖2中的LED數(shù)碼管是共陽極的,若將它的筆段碼通過限流電阻R分別接到PIC單片機的某一口上,a段接端口的第0位,b段接端IZl的第1位,c段接以端13的第2位……,g段接端El的第6位。
圖2
只要注意共陽數(shù)碼管的某筆段為0(低電平)時,對應(yīng)筆段點亮;為1(高電平)則熄滅即可。此時,LED共陽數(shù)碼管的7段碼0-9的,一維組的完整表達式為:
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣州科技職業(yè)技術(shù)大學(xué)《建筑學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 溫州肯恩大學(xué)《中學(xué)物理專題訓(xùn)練與研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025河北省安全員考試題庫及答案
- 德宏職業(yè)學(xué)院《新媒體概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖南省五市十校教研教改共同體高一上學(xué)期12月月考歷史試卷
- 山東石油化工學(xué)院《工程結(jié)構(gòu)反分析理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 德宏職業(yè)學(xué)院《國際法與當(dāng)代中國》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《互聯(lián)網(wǎng)+大學(xué)生創(chuàng)新創(chuàng)業(yè)設(shè)計與實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年山西省建筑安全員《A證》考試題庫
- 桂林山水職業(yè)學(xué)院《幼兒教師職業(yè)道德與專業(yè)發(fā)展》2023-2024學(xué)年第二學(xué)期期末試卷
- (附件條款版)電話銷售員員工保密協(xié)議
- 2024年養(yǎng)老護理員(三級)資格理論考試題庫(濃縮500題)
- 鐵路專用線設(shè)計規(guī)范(試行)(TB 10638-2019)
- 濰坊環(huán)境工程職業(yè)學(xué)院單招職業(yè)技能測試參考試題庫(含答案)
- 2024年山東司法警官職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 物業(yè)客服課件培訓(xùn)模板
- 人教版PEP四年級英語下冊全冊教學(xué)設(shè)計表格教案
- 制造業(yè)面臨的挑戰(zhàn)與發(fā)展對策
- 高速公路綠化工程施工
- 發(fā)展?jié)h語-初級讀寫-第一課-你好
- 化工公司原址污染場地污染土壤治理修復(fù)方案
評論
0/150
提交評論