




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第4講完成一個(gè)流水燈實(shí)驗(yàn)流水燈設(shè)計(jì) 本講任務(wù): 分別用位輸出操作、移位操作、循環(huán)移位操作完成3個(gè)典型流水燈的設(shè)計(jì)。掌握下列C語言知識(shí)點(diǎn):宏定義、函數(shù)和函數(shù)調(diào)用、循環(huán)結(jié)構(gòu)、while語句、關(guān)系運(yùn)算和邏輯值 掌握流程圖繪制。 完成閃爍燈的設(shè)計(jì)。 如 何 完 成 函 數(shù) 調(diào) 用。完成一個(gè)典型流水燈的設(shè)計(jì)程序就是人的思想的反映,編程最重要的就是你的編程思路,有什么樣的思路就會(huì)編出什么樣的程序。 先看上一講的點(diǎn)一個(gè)發(fā)光管程序: 1、思路分析。流程圖是整理我們思路的好工具,同時(shí)也能保證若干年以后你還能輕易看懂自己編寫的程序。 2、程序講解(這個(gè)程序是利用了位輸出操作) 。 宏定義 函數(shù)和函數(shù)調(diào)用 如何熄滅
2、發(fā)光管 循環(huán)結(jié)構(gòu),while語句詳解、關(guān)系運(yùn)算和邏輯值 如何改變流水燈流動(dòng)的速度本講需要學(xué)習(xí)的新知識(shí) 數(shù)電、模電方面同上一講一樣,有不熟悉的同學(xué)也可回看上一講的內(nèi)容,本講在C語言方面增加了一個(gè)新的函數(shù)。 延時(shí)函數(shù)delay for循環(huán)語句了解一下延時(shí)函數(shù)了解一下延時(shí)函數(shù) 學(xué)過匯編你就會(huì)知道,每條指令都占一定的時(shí)間(或者機(jī)器周期)的,如果你讓機(jī)器什么都不做,即空指令的話,機(jī)器就會(huì)延時(shí),然后你在計(jì)算好每次延時(shí)到底有多長,外面套一個(gè)循環(huán)(或者多重循環(huán)),根據(jù)你想要的延時(shí)時(shí)間即可計(jì)算出來循環(huán)的次數(shù) ,延時(shí)函數(shù)基本上都是這種原理,它的參數(shù)就是用來控制循環(huán)次數(shù)的。怎樣編寫精確的延時(shí)函數(shù)怎樣編寫精確的延時(shí)函
3、數(shù)實(shí)現(xiàn)延時(shí)通常有兩種方法:一種是硬件延時(shí),要用到定時(shí)器/計(jì)數(shù)器,這種方法可以提高CPU的工作效率,也能做到精確延時(shí);另一種是軟件延時(shí),這種方法主要采用循環(huán)體進(jìn)行。 1 使用定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)精確延時(shí) 2 軟件延時(shí)與時(shí)間計(jì)算 在很多情況下,定時(shí)器/計(jì)數(shù)器經(jīng)常被用作其他用途,這時(shí)候就只能用軟件方法延時(shí)。下面介紹幾種軟件延時(shí)的方法。 2.1 短暫延時(shí) 2.2 在C51中嵌套匯編程序段實(shí)現(xiàn)延時(shí) 2.3 使用示波器確定延時(shí)時(shí)間 2.4 使用反匯編工具計(jì)算延時(shí)時(shí)間認(rèn)識(shí)一個(gè)認(rèn)識(shí)一個(gè)For 循環(huán)語句循環(huán)語句 For (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句(內(nèi)部可為空)執(zhí)行過程:1.求解一次表達(dá)式1.2.求解表
4、達(dá)式2,若其值為真(非0 即為真),則執(zhí)行for中語句。然后執(zhí)行第3步。否則結(jié)束for 語句,直接跳出,不再執(zhí)行第3步。3.求解表達(dá)式3.4.跳到第2步重復(fù)執(zhí)行。一個(gè)簡(jiǎn)單的延時(shí)函數(shù)一個(gè)簡(jiǎn)單的延時(shí)函數(shù)只需要了解一下,不需要記住,學(xué)會(huì)調(diào)用它就可以了。 /*- 延時(shí)函數(shù),含有輸入?yún)?shù) unsigned int t,無返回值 unsigned int 是定義無符號(hào)整形變量,其值的范圍是 065535 -*/ void Delay(unsigned int t) while(-t); 了解一下實(shí)驗(yàn)板初始化了解一下實(shí)驗(yàn)板初始化 初始化就是把變量賦為默認(rèn)值,把控件設(shè)為默認(rèn)狀態(tài),把沒準(zhǔn)備的準(zhǔn)備好。 但是如果是
5、整個(gè)系統(tǒng)初始化那就不一樣了。在匯編語言中,為變量分配空間時(shí),初始化過的變量的初值位于可執(zhí)行文件代碼段數(shù)據(jù)后,會(huì)占用一定空間,不必要的初始化會(huì)造成磁盤空間的浪費(fèi)。在C語言等高級(jí)語言中,為每一個(gè)變量賦初值被視為良好的編程習(xí)慣,有助于減少出現(xiàn)Bugs的可能性。因此,是否對(duì)不必要的變量初始化依情況而定。實(shí)驗(yàn)板初始化函數(shù) 只需要了解一下,不需要記住,學(xué)會(huì)調(diào)用它就可以了。 bst-m51.h bst-m51.c宏定義#號(hào)是預(yù)處理指令,用#開頭。 #define ON (新的名稱 ) 1(原來的名稱) 作用:在程序書寫時(shí)可用新的名稱代替原來的名稱書寫,以達(dá)到簡(jiǎn)化或直觀的效果。編譯器在預(yù)處理的時(shí)候,自動(dòng)將新的
6、名稱還原為原來的名稱。 書寫位置:源程序開頭,函數(shù)的外面3個(gè)流水燈程序框圖函數(shù)的引入函數(shù)是C語言的主要特點(diǎn),也是我們學(xué)習(xí)的一個(gè)重點(diǎn)。主函數(shù):主人,只有一個(gè)。從家里的電腦壞了說起。在實(shí)際編程中,我們會(huì)遇到兩種情況:1、需要使用別人的程序,現(xiàn)在是網(wǎng)絡(luò)共享時(shí)代,要學(xué)會(huì)在網(wǎng)絡(luò)中找到你需要的東西,例如 DS18B20功能函數(shù)2、某一段程序會(huì)反復(fù)用到,這時(shí),我們需要用到函數(shù)和函數(shù)調(diào)用其他功能函數(shù):工人(下屬,可以被調(diào)用完成某項(xiàng)工作的人),以有多個(gè),可實(shí)現(xiàn)某種功能的一段相對(duì)獨(dú)立的,可以被調(diào)用的代碼 。 相互間的調(diào)用關(guān)系 注意:我們一般所說函數(shù),指的都是功能函數(shù)實(shí)現(xiàn)函數(shù)調(diào)用的前提:調(diào)用者必須能看到被調(diào)用者調(diào)用
7、者必須能看到被調(diào)用者程序如何才能找到要 調(diào)用的函數(shù)呢?有三種方法: 第一種、將被調(diào)用函數(shù)寫在當(dāng)前代碼之前。 第二種、將被調(diào)用函數(shù)的函數(shù)聲明寫在當(dāng)前代碼 之前。 第三種:使用頭文件 。如何完成函數(shù)的調(diào)用 函數(shù)調(diào)用: 就是在一個(gè)函數(shù)體中引用另外一個(gè)已經(jīng)定義的函數(shù) 完成函數(shù)的調(diào)用三種方式: 1、函數(shù)語句。函數(shù)名(實(shí)際參數(shù)表);有參調(diào)用和無參調(diào)用 2、函數(shù)表達(dá)式。 3、函數(shù)參數(shù)。函數(shù)的調(diào)用注意掌握4個(gè)要點(diǎn):被調(diào)函數(shù)名稱、功能、參數(shù)、返回值。函數(shù)內(nèi)部語句不必了解!While循環(huán)語句 While (關(guān)系表達(dá)式或邏輯值); While (關(guān)系表達(dá)式或邏輯值)一條語句; While (關(guān)系表達(dá)式或邏輯值) 注
8、意:這里沒有分號(hào) 語句1; 語句2; 語句3; 語句n; 特點(diǎn):先判斷條件表達(dá)式,后執(zhí)行語句。 原則:若條件表達(dá)式的值為真,那么執(zhí)行語句。否則跳出 while 語句。關(guān)系運(yùn)算和邏輯值關(guān)系運(yùn)算12=0 邏輯值:真(1或非0),假(0) 計(jì)算機(jī)中三種運(yùn)算千萬不要搞混了: 1、算術(shù)運(yùn)算:參與運(yùn)算的對(duì)象是數(shù),結(jié)果也是數(shù),運(yùn)算符是加減乘除; 2、邏輯運(yùn)算:參與運(yùn)算的對(duì)象是邏輯量,結(jié)果也是邏輯量,運(yùn)算符是與或非; 3、關(guān)系運(yùn)算:參與運(yùn)算的對(duì)象是數(shù),結(jié)果是邏輯量,運(yùn)算符如下: = = =等于(注意:與賦值符=,完全不同?。?!= 不等于關(guān)系運(yùn)算和邏輯值關(guān)系運(yùn)算12=0 邏輯值:真(1或非0),假(0) 計(jì)算
9、機(jī)中三種運(yùn)算千萬不要搞混了: 1、算術(shù)運(yùn)算:參與運(yùn)算的對(duì)象是數(shù),結(jié)果也是數(shù),運(yùn)算符是加減乘除; 2、邏輯運(yùn)算:參與運(yùn)算的對(duì)象是邏輯量,結(jié)果也是邏輯量,運(yùn)算符是與或非; 3、關(guān)系運(yùn)算:參與運(yùn)算的對(duì)象是數(shù),結(jié)果是邏輯量,運(yùn)算符如下: = = =等于(注意:與賦值符=,完全不同?。?!= 不等于如何改變流水燈流動(dòng)的速度 1、改變調(diào)用延時(shí)函數(shù)的實(shí)參。 2、更換不同頻率的晶振。(復(fù)習(xí)以前講過的時(shí)鐘的快慢決定了程序運(yùn)行速度)左移和右移位運(yùn)算:按位對(duì)變量進(jìn)行運(yùn)算。左移和右移屬于位運(yùn)算。格式:P12;/*右移二位*/一般我們比較多的是對(duì)8位無符號(hào)數(shù)進(jìn)行移位操作,移出的數(shù)丟棄,空位自動(dòng)補(bǔ)0。注意點(diǎn):位運(yùn)算不改變參與運(yùn)算的變量的值,如果希望改變參與運(yùn)算的變量的值,應(yīng)利用相應(yīng)的賦值操作!用左移編寫第二個(gè)流水燈程序。例程循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但我們可以調(diào)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于深度神經(jīng)網(wǎng)絡(luò)的傳感器信號(hào)分類-洞察及研究
- 數(shù)字化戲劇創(chuàng)作與觀眾體驗(yàn)-洞察及研究
- 二零二五年專業(yè)班車租賃合同范本
- 2025版安全文明施工合同協(xié)議書
- 2025-2030發(fā)酵菌種產(chǎn)業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 中暑知識(shí)講座課件
- 擬聲詞認(rèn)知神經(jīng)-洞察及研究
- 中班健康眼睛的作用課件
- 中小服裝企業(yè)管理課件
- 海淀考王五下數(shù)學(xué)試卷
- 【中班幼兒分享行為現(xiàn)狀及其培養(yǎng)策略研究(數(shù)據(jù)圖表論文)5000字】
- 速凍隧道安全操作規(guī)程
- (骨科)維生素D水平評(píng)估在骨科的應(yīng)用及研究新進(jìn)展課件
- 煙草證遷移申請(qǐng)書范本
- 獅子王-中英文-劇本臺(tái)詞(全)
- 13G322-1~4《鋼筋混凝土過梁(2013年合訂本)》
- 商鋪?zhàn)赓U合同(有利于承租方)
- C語言開發(fā)基礎(chǔ)教程(Dev-C++)(第2版)PPT完整全套教學(xué)課件
- 寧波大學(xué)崗位設(shè)置管理實(shí)施辦法匯編-征求意見稿
- 外研版(2019)選擇性必修第三冊(cè) Unit 1-6 課文知識(shí)點(diǎn)語法填空(含答案)
- 施耐德ATS48軟啟動(dòng)器使用手冊(cè)
評(píng)論
0/150
提交評(píng)論