第6講完成一個流水燈項目ppt課件_第1頁
第6講完成一個流水燈項目ppt課件_第2頁
第6講完成一個流水燈項目ppt課件_第3頁
第6講完成一個流水燈項目ppt課件_第4頁
第6講完成一個流水燈項目ppt課件_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第6講完成一個流水燈工程亞博科技 51單片機開發(fā)板28課配套視頻教程流水燈設(shè)計 本講義務(wù): 分別用位輸出操作、移位操作、循環(huán)移位操作完成3個典型流水燈的設(shè)計。掌握以下C言語知識點:宏定義、函數(shù)和函數(shù)調(diào)用、循環(huán)構(gòu)造、while語句、關(guān)系運算和邏輯值 掌握流程圖繪制。 完成閃爍燈的設(shè)計。 如 何 完 成 函 數(shù) 調(diào) 用。亞博科技 51單片機開發(fā)板28課配套視頻教程完成一個典型流水燈的設(shè)計程序就是人的思想的反映,編程最重要的就是他的編程思緒,有什么樣的思緒就會編出什么樣的程序。 先看上一講的點一個發(fā)光管程序: 1、思緒分析。流程圖是整理我們思緒的好工具,同時也能保證假設(shè)干年以后他還能隨便看懂本人編寫

2、的程序。 2、程序講解這個程序是利用了位輸出操作 。 宏定義 函數(shù)和函數(shù)調(diào)用 如何熄滅發(fā)光管 循環(huán)構(gòu)造,while語句詳解、關(guān)系運算和邏輯值 如何改動流水燈流動的速度亞博科技 51單片機開發(fā)板28課配套視頻教程亞博科技 51單片機開發(fā)板28課配套視頻教程本講需求學(xué)習(xí)的新知識 數(shù)電、模電方面同上一講一樣,有不熟習(xí)的同窗也可回看上一講的內(nèi)容,本講在C言語方面添加了一個新的函數(shù)。 延時函數(shù)delay for循環(huán)語句了解一下延時函數(shù) 學(xué)過匯編他就會知道,每條指令都占一定的時間或者機器周期的,假設(shè)他讓機器什么都不做,即空指令的話,機器就會延時,然后他在計算好每次延時究竟有多長,外面套一個循環(huán)或者多重循環(huán)

3、,根據(jù)他想要的延時時間即可計算出來循環(huán)的次數(shù) ,延時函數(shù)根本上都是這種原理,它的參數(shù)就是用來控制循環(huán)次數(shù)的。亞博科技 51單片機開發(fā)板28課配套視頻教程怎樣編寫準確的延時函數(shù)實現(xiàn)延時通常有兩種方法:一種是硬件延時,要用到定時器/計數(shù)器,這種方法可以提高CPU的任務(wù)效率,也能做到準確延時;另一種是軟件延時,這種方法主要采用循環(huán)體進展。 1 運用定時器/計數(shù)器實現(xiàn)準確延時 2 軟件延時與時間計算 在很多情況下,定時器/計數(shù)器經(jīng)常被用作其他用途,這時候就只能用軟件方法延時。下面引見幾種軟件延時的方法。 2.1 短暫延時 2.2 在C51中嵌套匯編程序段實現(xiàn)延時 2.3 運用示波器確定延時時間 2.4

4、 運用反匯編工具計算延時時間亞博科技 51單片機開發(fā)板28課配套視頻教程認識一個For 循環(huán)語句 For (表達式1;表達式2;表達式3) 語句內(nèi)部可為空執(zhí)行過程:1.求解一次表達式1.2.求解表達式2,假設(shè)其值為真非0 即為真,那么執(zhí)行for中語句。然后執(zhí)行第3步。否那么終了for 語句,直接跳出,不再執(zhí)行第3步。3.求解表達式3.4.跳到第2步反復(fù)執(zhí)行。亞博科技 51單片機開發(fā)板28課配套視頻教程一個簡單的延時函數(shù)只需求了解一下,不需求記住,學(xué)會調(diào)用它就可以了。 /*- 延時函數(shù),含有輸入?yún)?shù) unsigned int t,無前往值 unsigned int 是定義無符號整形變量,其值的范

5、圍是 065535 -*/ void Delay(unsigned int t) while(-t); 亞博科技 51單片機開發(fā)板28課配套視頻教程了解一下實驗板初始化 初始化就是把變量賦為默許值,把控件設(shè)為默許形狀,把沒預(yù)備的預(yù)備好。 但是假設(shè)是整個系統(tǒng)初始化那就不一樣了。在匯編言語中,為變量分配空間時,初始化過的變量的初值位于可執(zhí)行文件代碼段數(shù)據(jù)后,會占用一定空間,不用要的初始化會呵斥磁盤空間的浪費。在C言語等高級言語中,為每一個變量賦初值被視為良好的編程習(xí)慣,有助于減少出現(xiàn)Bugs的能夠性。因此,能否對不用要的變量初始化依情況而定。亞博科技 51單片機開發(fā)板28課配套視頻教程實驗板初始化

6、函數(shù) 只需求了解一下,不需求記住,學(xué)會調(diào)用它就可以了。 bst-v51.h bst-v51.c亞博科技 51單片機開發(fā)板28課配套視頻教程宏定義#號是預(yù)處置指令,用#開頭。 #define ON 新的稱號 1原來的稱號 作用:在程序書寫時可用新的稱號替代原來的稱號書寫,以到達簡化或直觀的效果。編譯器在預(yù)處置的時候,自動將新的稱號復(fù)原為原來的稱號。 書寫位置:源程序開頭,函數(shù)的外面亞博科技 51單片機開發(fā)板28課配套視頻教程3個流水燈程序框圖亞博科技 51單片機開發(fā)板28課配套視頻教程開場詳細講解流水燈工程開發(fā)設(shè)計目的 從實踐工程運用出發(fā),在實際和實際上掌握流水燈系統(tǒng)的根本組成,任務(wù)原理。對設(shè)計

7、流水燈有一個完好的概念,使設(shè)計出來的流水燈到達本設(shè)計義務(wù)書的技術(shù)要求。亞博科技 51單片機開發(fā)板28課配套視頻教程8位流水燈開發(fā)過程亞博科技 51單片機開發(fā)板28課配套視頻教程 一、義務(wù)描畫:這次開發(fā)的目的是什么 如要實現(xiàn)什么功能,運用在什么地方,對性能、功耗、實時性等有什么要求 任何一個運用單片機開發(fā)的產(chǎn)品,從客戶提出要求到完成方案設(shè)計,再到產(chǎn)品樣機的調(diào)試,直至正式投入試運轉(zhuǎn),這個過程稱為單片機運用系統(tǒng)得開發(fā)。單片機運用系統(tǒng)開發(fā)過程所用的設(shè)備統(tǒng)稱為開發(fā)工具。由于單片機的軟件資源有限,并且本身沒有調(diào)試才干,因此必需配備相應(yīng)的開發(fā)工具來排除開發(fā)過程中的軟件錯誤,生成目的程序。 本義務(wù)經(jīng)過左移亮燈

8、電路來講解單片機系統(tǒng)開發(fā)設(shè)計時電路原理圖的設(shè)計方法和步驟。經(jīng)過本義務(wù)的學(xué)習(xí),掌握單片機運用電路和程序的開發(fā)過程。二、義務(wù)分析 根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,而且每個模塊能夠會用許多項選擇擇,這就要根據(jù)價錢,性能,功耗,實時性等方面的要求來選擇了 8只發(fā)光二極管亮燈數(shù)據(jù)左移一位。 首先對單片機任務(wù)條件(電源、時鐘和復(fù)位電路)進展設(shè)計,然后根據(jù)設(shè)計義務(wù)要求對I/O接口電路進展設(shè)計;本義務(wù)學(xué)慣用DZ-80C52集成的串口模塊燒寫器器進展單片機程序下載。亞博科技 51單片機開發(fā)板28課配套視頻教程三、義務(wù)演示 分配義務(wù),由于,有些開發(fā)工程能夠不是一個人可以完成的,是要一個團隊來做,那么就

9、要根據(jù)每個人的特點來分配義務(wù)了。如,硬件,軟件,算法,調(diào)度,測試,界面,采購等。亞博科技 51單片機開發(fā)板28課配套視頻教程四、工程開發(fā)相關(guān)知識一單片機產(chǎn)品開發(fā)流程 1、工程評價:出初步技術(shù)開發(fā)方案,據(jù)此出預(yù)算,包括能夠的開發(fā)本錢、樣機本錢、開發(fā)耗時、樣機制造耗時、利潤空間等 2、工程實施: 1設(shè)計電原理圖 2設(shè)計印刷電路板PCB圖 3把PCB圖發(fā)往制版廠做板 4定購開發(fā)系統(tǒng)和元件 5裝配樣機:PCB板拿到后開場樣機裝配,設(shè)計中的錯漏會在裝配過程開場顯現(xiàn),盡量去補救。亞博科技 51單片機開發(fā)板28課配套視頻教程樣機調(diào)試6樣機調(diào)試:這個過程需求用到電烙鐵、刻刀、不同參數(shù)的元件、各種調(diào)試和仿真軟件

10、、樣機的模擬任務(wù)環(huán)境等。 7整理數(shù)據(jù):研發(fā)過程中得到的重要數(shù)據(jù)記錄保管下來,比如更新電原理圖里的元件參數(shù)、PCB元件庫里的三維模型,還要記錄暴顯露來的設(shè)計上的失誤、分析失誤的緣由、采用的補救方案等等。亞博科技 51單片機開發(fā)板28課配套視頻教程完善樣版機8假設(shè)工程進入消費階段或確有需求,可以根據(jù)修正后的技術(shù)方案按以上各個步驟重做一臺完善的V1.1版樣機。9編寫設(shè)備文檔:包括編寫產(chǎn)品闡明書、拍攝外觀圖片等。10溝通和修正,在開發(fā)過程中 ,不能完全的根據(jù)義務(wù)來區(qū)分,團隊之間要有適當?shù)臏贤?,根?jù)需求來對方案做相應(yīng)的修正,如:中斷的分配,GPIO的分配,算法的復(fù)雜性,接口的定義之類的。亞博科技 51單

11、片機開發(fā)板28課配套視頻教程測試和更改11測試和更改,最終,各個模塊是要組合起來的,這時能夠會碰到許多問題。如,代碼太大而內(nèi)存不夠,時效呼應(yīng)不夠靈敏,代碼執(zhí)行構(gòu)成中出現(xiàn)死循環(huán),模塊優(yōu)先級的選擇出現(xiàn)不妥,臨界點沒有糾錯功能等,這就要不斷的整合,反復(fù)的更改,調(diào)試,能夠會出現(xiàn)許多方案,再根據(jù)實踐情況 最后定奪 小提示:開發(fā)過程中做好備案,代碼寫好注釋,假設(shè)允許,不同模塊、不同系統(tǒng)層次的接口分別來寫,合理分配資源。亞博科技 51單片機開發(fā)板28課配套視頻教程一個完好實驗源碼/*- 稱號:IO口高低電平控制 內(nèi)容:左移,直至LED全部點亮,左移符號 - */ #include /包含頭文件,普通情況不需

12、求改動,頭文件包含特殊功能存放器的定義 void Delay(unsigned int t); / 函數(shù)聲明 /*- 主函數(shù) - */ void main (void) unsigned char i; / 定義一個無符號字符型部分變量 i 取值范圍 0255 Delay(50000); P1=0 xfe; / 賦初始值 for(i=0;i8;i+) / 參與 for循環(huán),闡明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次 Delay(50000); P1=1; while (1) / 主循環(huán) / 主循環(huán)中添加其他需求不斷任務(wù)的程序 /*- 延時函數(shù),含有輸入?yún)?shù) unsigned int t,無前往值

13、 unsigned int 是定義無符號整形變量,其值的范圍是 065535 - */ void Delay(unsigned int t) while(-t); 亞博科技 51單片機開發(fā)板28課配套視頻教程函數(shù)的引入函數(shù)是C言語的主要特點,也是我們學(xué)習(xí)的一個重點。主函數(shù):主人,只需一個。從家里的電腦壞了說起。在實踐編程中,我們會遇到兩種情況:1、需求運用他人的程序,如今是網(wǎng)絡(luò)共享時代,要學(xué)會在網(wǎng)絡(luò)中找到他需求的東西,例如 DS1302時鐘的功能函數(shù),DS18B20功能函數(shù)2、某一段程序會反復(fù)用到,這時,我們需求用到函數(shù)和函數(shù)調(diào)用其他功能函數(shù):工人下屬,可以被調(diào)用完成某項任務(wù)的人,以有多個,可

14、實現(xiàn)某種功能的一段相對獨立的,可以被調(diào)用的代碼 。 相互間的調(diào)用關(guān)系 留意:我們普通所說函數(shù),指的都是功能函數(shù)亞博科技 51單片機開發(fā)板28課配套視頻教程實現(xiàn)函數(shù)調(diào)用的前提:調(diào)用者必需能看到被調(diào)用者調(diào)用者必需能看到被調(diào)用者程序如何才干找到要 調(diào)用的函數(shù)呢?有三種方法: 第一種、將被調(diào)用函數(shù)寫在當前代碼之前。 第二種、將被調(diào)用函數(shù)的函數(shù)聲明寫在當前代碼 之前。 第三種:運用頭文件 。亞博科技 51單片機開發(fā)板28課配套視頻教程如何完成函數(shù)的調(diào)用 函數(shù)調(diào)用: 就是在一個函數(shù)體中援用另外一個曾經(jīng)定義的函數(shù) 完成函數(shù)的調(diào)用三種方式: 1、函數(shù)語句。函數(shù)名實踐參數(shù)表;有參調(diào)用和無參調(diào)用 2、函數(shù)表達式。

15、以后講 3、函數(shù)參數(shù)。以后講函數(shù)的調(diào)用留意掌握4個要點:被調(diào)函數(shù)稱號、功能、參數(shù)、前往值。函數(shù)內(nèi)部語句不用了解!亞博科技 51單片機開發(fā)板28課配套視頻教程While循環(huán)語句 While 關(guān)系表達式或邏輯值; While 關(guān)系表達式或邏輯值一條語句; While 關(guān)系表達式或邏輯值 留意:這里沒有分號 語句1; 語句2; 語句3; 語句n; 特點:先判別條件表達式,后執(zhí)行語句。 原那么:假設(shè)條件表達式的值為真,那么執(zhí)行語句。否那么跳出 while 語句。亞博科技 51單片機開發(fā)板28課配套視頻教程關(guān)系運算和邏輯值關(guān)系運算12=0 邏輯值:真1或非0,假0 計算機中三種運算千萬不要搞混了: 1、

16、算術(shù)運算:參與運算的對象是數(shù),結(jié)果也是數(shù),運算符是加減乘除; 2、邏輯運算:參與運算的對象是邏輯量,結(jié)果也是邏輯量,運算符是與或非; 3、關(guān)系運算:參與運算的對象是數(shù),結(jié)果是邏輯量,運算符如下: = = =等于留意:與賦值符=,完全不同! != 不等于亞博科技 51單片機開發(fā)板28課配套視頻教程關(guān)系運算和邏輯值關(guān)系運算12=0 邏輯值:真1或非0,假0 計算機中三種運算千萬不要搞混了: 1、算術(shù)運算:參與運算的對象是數(shù),結(jié)果也是數(shù),運算符是加減乘除; 2、邏輯運算:參與運算的對象是邏輯量,結(jié)果也是邏輯量,運算符是與或非; 3、關(guān)系運算:參與運算的對象是數(shù),結(jié)果是邏輯量,運算符如下: = = =

17、等于留意:與賦值符=,完全不同! != 不等于亞博科技 51單片機開發(fā)板28課配套視頻教程如何改動流水燈流動的速度 1、改動調(diào)用延時函數(shù)的實參。 2、改換不同頻率的晶振。復(fù)習(xí)以前講過的時鐘的快慢決議了程序運轉(zhuǎn)速度亞博科技 51單片機開發(fā)板28課配套視頻教程左移和右移位運算:按位對變量進展運算。左移和右移屬于位運算。格式:P12;/*右移二位*/普通我們比較多的是對8位無符號數(shù)進展移位操作,移出的數(shù)丟棄,空位自動補0。留意點:位運算不改動參與運算的變量的值,假設(shè)希望改動參與運算的變量的值,應(yīng)利用相應(yīng)的賦值操作!用循環(huán)左移編寫第二個流水燈程序。例程亞博科技 51單片機開發(fā)板28課配套視頻教程循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但我們可以調(diào)用C51庫函數(shù)實現(xiàn)循環(huán)左移和循環(huán)右移詳細可以見C:keilC51HLPC51lib.chm:1、必需先包含intrins.h2、i=_crol_(i,1);/*將i循環(huán)左移1位*/3、i=_cror_(i,1);

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論