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

下載本文檔

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

文檔簡介

第6講完成一個流水燈項目亞博科技51單片機開發(fā)板28課配套視頻教程第6講完成一個流水燈項目亞博科技1流水燈設計?本講任務:?分別用位輸出操作、移位操作、循環(huán)移位操作完成3個典型流水燈的設計。?掌握下列C語言知識點:?宏定義、函數(shù)和函數(shù)調(diào)用、循環(huán)結(jié)構、while語句、關系運算和邏輯值?掌握流程圖繪制。?完成閃爍燈的設計。?如何完成函數(shù)調(diào)用。亞博科技51單片機開發(fā)板28課配套視頻教程流水燈設計?本講任務:亞博科技2完成一個典型流水燈的設計程序就是人的思想的反映,編程最重要的就是你的編程思路,有什么樣的思路就會編出什么樣的程序。先看上一講的點一個發(fā)光管程序:1、思路分析。流程圖是整理我們思路的好工具,同時也能保證若干年以后你還能輕易看懂自己編寫的程序。2、程序講解(這個程序是利用了位輸出操作)。宏定義函數(shù)和函數(shù)調(diào)用如何熄滅發(fā)光管循環(huán)結(jié)構,while語句詳解、關系運算和邏輯值如何改變流水燈流動的速度亞博科技51單片機開發(fā)板28課配套視頻教程完成一個典型流水燈的設計程序就是人的思想的反映,編程最重要的3亞博科技51單片機開發(fā)板28課配套視頻教程本講需要學習的新知識?數(shù)電、模電方面同上一講一樣,有不熟悉的同學也可回看上一講的內(nèi)容,本講在C語言方面增加了一個新的函數(shù)。?延時函數(shù)delay?for循環(huán)語句亞博科技51單片機開發(fā)板24了解一下延時函數(shù)?學過匯編你就會知道,每條指令都占一定的時間(或者機器周期)的,如果你讓機器什么都不做,即空指令的話,機器就會延時,然后你在計算好每次延時到底有多長,外面套一個循環(huán)(或者多重循環(huán)),根據(jù)你想要的延時時間即可計算出來循環(huán)的次數(shù),延時函數(shù)基本上都是這種原理,它的參數(shù)就是用來控制循環(huán)次數(shù)的。亞博科技51單片機開發(fā)板28課配套視頻教程了解一下延時函數(shù)亞博科技55怎樣編寫精確的延時函數(shù)

實現(xiàn)延時通常有兩種方法:一種是硬件延時,要用到定時器/計數(shù)器,這種方法可以提高CPU的工作效率,也能做到精確延時;另一種是軟件延時,這種方法主要采用循環(huán)體進行。?1使用定時器/計數(shù)器實現(xiàn)精確延時?2軟件延時與時間計算?在很多情況下,定時器/計數(shù)器經(jīng)常被用作其他用途,這時候就只能用軟件方法延時。下面介紹幾種軟件延時的方法。?2.1短暫延時?2.2在C51中嵌套匯編程序段實現(xiàn)延時?2.3使用示波器確定延時時間?2.4使用反匯編工具計算延時時間亞博科技51單片機開發(fā)板28課配套視頻教程怎樣編寫精確的延時函數(shù)

實現(xiàn)延時通常有兩種方法:一種是硬件延6認識一個For循環(huán)語句?For(表達式1;表達式2;表達式3){語句(內(nèi)部可為空)}執(zhí)行過程:1.求解一次表達式1.2.求解表達式2,若其值為真(非0即為真),則執(zhí)行for中語句。然后執(zhí)行第3步。否則結(jié)束for語句,直接跳出,不再執(zhí)行第3步。3.求解表達式3.4.跳到第2步重復執(zhí)行。亞博科技51單片機開發(fā)板28課配套視頻教程認識一個For循環(huán)語句?For(表達式1;表達式2;表7一個簡單的延時函數(shù)

只需要了解一下,不需要記住,學會調(diào)用它就可以了。?/*------------------------------------------------?延時函數(shù),含有輸入?yún)?shù)unsignedintt,無返回值?unsignedint是定義無符號整形變量,其值的范圍是?0~65535?------------------------------------------------*/?voidDelay(unsignedintt)?{?while(--t);?}亞博科技51單片機開發(fā)板28課配套視頻教程一個簡單的延時函數(shù)

只需要了解一下,不需要記住,學會調(diào)用它就8了解一下實驗板初始化?初始化就是把變量賦為默認值,把控件設為默認狀態(tài),把沒準備的準備好。但是如果是整個系統(tǒng)初始化那就不一樣了。在匯編語言中,為變量分配空間時,初始化過的變量的初值位于可執(zhí)行文件代碼段數(shù)據(jù)后,會占用一定空間,不必要的初始化會造成磁盤空間的浪費。在C語言等高級語言中,為每一個變量賦初值被視為良好的編程習慣,有助于減少出現(xiàn)Bugs的可能性。因此,是否對不必要的變量初始化依情況而定。亞博科技51單片機開發(fā)板28課配套視頻教程了解一下實驗板初始化?初始化就是把變量賦為默認值,把控件設9實驗板初始化函數(shù)?只需要了解一下,不需要記住,學會調(diào)用它就可以了。?bst-v51.h?bst-v51.c亞博科技51單片機開發(fā)板28課配套視頻教程實驗板初始化函數(shù)亞博科技510宏定義#號是預處理指令,用#開頭。#defineON(新的名稱)1(原來的名稱)作用:在程序書寫時可用新的名稱代替原來的名稱書寫,以達到簡化或直觀的效果。編譯器在預處理的時候,自動將新的名稱還原為原來的名稱。?書寫位置:源程序開頭,函數(shù)的外面亞博科技51單片機開發(fā)板28課配套視頻教程宏定義#號是預處理指令,用#開頭。亞博科技113個流水燈程序框圖亞博科技51單片機開發(fā)板28課配套視頻教程3個流水燈程序框圖亞博科技12開始詳細講解流水燈項目開發(fā)

設計目的?從實際工程應用出發(fā),在理論和實踐上掌握流水燈系統(tǒng)的基本組成,工作原理。對設計流水燈有一個完整的概念,使設計出來的流水燈達到本設計任務書的技術要求。亞博科技51單片機開發(fā)板28課配套視頻教程開始詳細講解流水燈項目開發(fā)

設計目的亞博科技138位流水燈開發(fā)過程亞博科技51單片機開發(fā)板28課配套視頻教程?一、任務描述:這次開發(fā)的目的是什么(如要實現(xiàn)什么功能,應用在什么地方,對性能、功耗、實時性等有什么要求)?任何一個應用單片機開發(fā)的產(chǎn)品,從客戶提出要求到完成方案設計,再到產(chǎn)品樣機的調(diào)試,直至正式投入試運行,這個過程稱為單片機應用系統(tǒng)得開發(fā)。單片機應用系統(tǒng)開發(fā)過程所用的設備統(tǒng)稱為開發(fā)工具。由于單片機的軟件資源有限,并且自身沒有調(diào)試能力,因此必須配備相應的開發(fā)工具來排除開發(fā)過程中的軟件錯誤,生成目標程序。?本任務通過左移亮燈電路來講解單片機系統(tǒng)開發(fā)設計時電路原理圖的設計方法和步驟。通過本任務的學習,掌握單片機應用電路和程序的開發(fā)過程。8位流水燈開發(fā)過程亞博科技14二、任務分析?根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,而且每個模塊可能會用許多選擇,這就要根據(jù)價錢,性能,功耗,實時性等方面的要求來選擇了?8只發(fā)光二極管亮燈數(shù)據(jù)左移一位。首先對單片機工作條件(電源、時鐘和復位電路)進行設計,然后根據(jù)設計任務要求對I/O接口電路進行設計;本任務學習用DZ-80C52集成的串口模塊燒寫器器進行單片機程序下載。。亞博科技51單片機開發(fā)板28課配套視頻教程二、任務分析?根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,15三、任務演示?分配任務,因為,有些開發(fā)項目可能不是一個人能夠完成的,是要一個團隊來做,那么就要根據(jù)每個人的特點來分配任務了。如,硬件,軟件,算法,調(diào)度,測試,界面,采購等。亞博科技51單片機開發(fā)板28課配套視頻教程三、任務演示?分配任務,因為,有些開發(fā)項目可能不是一個人能16四、項目開發(fā)相關知識(一)單片機產(chǎn)品開發(fā)流程1、項目評估:出初步技術開發(fā)方案,據(jù)此出預算,包括可能的開發(fā)成本、樣機成本、開發(fā)耗時、樣機制造耗時、利潤空間等2、項目實施:(1)設計電原理圖(2)設計印刷電路板(PCB)圖(3)把PCB圖發(fā)往制版廠做板(4)定購開發(fā)系統(tǒng)和元件(5)裝配樣機:PCB板拿到后開始樣機裝配,設計中的錯漏會在裝配過程開始顯現(xiàn),盡量去補救。亞博科技51單片機開發(fā)板28課配套視頻教程四、項目開發(fā)相關知識(一)單片機產(chǎn)品開發(fā)流程亞博科技17樣機調(diào)試(6)樣機調(diào)試:這個過程需要用到電烙鐵、刻刀、不同參數(shù)的元件、各種調(diào)試和仿真軟件、樣機的模擬工作環(huán)境等。(7)整理數(shù)據(jù):研發(fā)過程中得到的重要數(shù)據(jù)記錄保存下來,比如更新電原理圖里的元件參數(shù)、PCB元件庫里的三維模型,還要記錄暴露出來的設計上的失誤、分析失誤的原因、采用的補救方案等等。亞博科技51單片機開發(fā)板28課配套視頻教程樣機調(diào)試(6)樣機調(diào)試:這個過程需要用到電烙鐵、刻刀、不同參18完善樣版機(8)如果項目進入生產(chǎn)階段或確有需要,可以根據(jù)修正后的技術方案按以上各個步驟重做一臺完善的V1.1版樣機。(9)編寫設備文檔:包括編寫產(chǎn)品說明書、拍攝外觀圖片等。(10)溝通和修改,在開發(fā)過程中,不能完全的根據(jù)任務來區(qū)分,團隊之間要有適當?shù)臏贤ǎ鶕?jù)需要來對計劃做相應的修改,如:中斷的分配,GPIO的分配,算法的復雜性,接口的定義之類的。亞博科技51單片機開發(fā)板28課配套視頻教程完善樣版機(8)如果項目進入生產(chǎn)階段或確有需要,可以根據(jù)修正19測試和更改11)測試和更改,最終,各個模塊是要組合起來的,這時可能會碰到許多問題。如,代碼太大而內(nèi)存不夠,時效響應不夠靈敏,代碼執(zhí)行構成中出現(xiàn)死循環(huán),模塊優(yōu)先級的選擇出現(xiàn)不妥,臨界點沒有糾錯功能等,這就要不斷的整合,反復的更改,調(diào)試,可能會出現(xiàn)許多方案,再根據(jù)實際情況最后定奪?小提示:開發(fā)過程中做好備案,代碼寫好注釋,如果允許,不同模塊、不同系統(tǒng)層次的接口分別來寫,合理分配資源。亞博科技51單片機開發(fā)板28課配套視頻教程測試和更改11)測試和更改,最終,各個模塊是要組合起來的,這20一個完整實驗源碼/*-----------------------------------------------?名稱:IO口高低電平控制?內(nèi)容:左移,直至LED全部點亮,左移符號<<?------------------------------------------------*/?#include<reg52.h>//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義?voidDelay(unsignedintt);//函數(shù)聲明?/*------------------------------------------------?主函數(shù)?------------------------------------------------*/?voidmain(void)?{??unsignedchari;//定義一個無符號字符型局部變量i取值范圍0~255?Delay(50000);?P1=0xfe;//賦初始值?for(i=0;i<8;i++)//加入for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次?{?Delay(50000);?P1<<=1;?}?while(1)//主循環(huán)?{?//主循環(huán)中添加其他需要一直工作的程序?}?}?/*------------------------------------------------?延時函數(shù),含有輸入?yún)?shù)unsignedintt,無返回值?unsignedint是定義無符號整形變量,其值的范圍是?0~65535?------------------------------------------------*/?voidDelay(unsignedintt)?{?while(--t);?}亞博科技51單片機開發(fā)板28課配套視頻教程一個完整實驗源碼/*--------------------21函數(shù)的引入函數(shù)是C語言的主要特點,也是我們學習的一個重點。主函數(shù):主人,只有一個。從家里的電腦壞了說起。在實際編程中,我們會遇到兩種情況:1、需要使用別人的程序,現(xiàn)在是網(wǎng)絡共享時代,要學會在網(wǎng)絡中找到你需要的東西,例如DS1302時鐘的功能函數(shù),DS18B20功能函數(shù)2、某一段程序會反復用到,這時,我們需要用到函數(shù)和函數(shù)調(diào)用其他功能函數(shù):工人(下屬,可以被調(diào)用完成某項工作的人),以有多個,可實現(xiàn)某種功能的一段相對獨立的,可以被調(diào)用的代碼。?相互間的調(diào)用關系?注意:我們一般所說函數(shù),指的都是功能函數(shù)亞博科技51單片機開發(fā)板28課配套視頻教程函數(shù)的引入函數(shù)是C語言的主要特點,也是我們學習的一個重點。亞22實現(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課配套視頻教程實現(xiàn)函數(shù)調(diào)用的前提:調(diào)用者必須能看到被

調(diào)用者調(diào)用者必須能看23如何完成函數(shù)的調(diào)用函數(shù)調(diào)用:就是在一個函數(shù)體中引用另外一個已經(jīng)定義的函數(shù)完成函數(shù)的調(diào)用三種方式:1、函數(shù)語句。函數(shù)名(實際參數(shù)表);有參調(diào)用和無參調(diào)用2、函數(shù)表達式。(以后講)3、函數(shù)參數(shù)。(以后講)函數(shù)的調(diào)用注意掌握4個要點:被調(diào)函數(shù)名稱、功能、參數(shù)、返回值。函數(shù)內(nèi)部語句不必了解!亞博科技51單片機開發(fā)板28課配套視頻教程如何完成函數(shù)的調(diào)用函數(shù)調(diào)用:亞博科技24While循環(huán)語句?While(關系表達式或邏輯值);?While(關系表達式或邏輯值)一條語句;?While(關系表達式或邏輯值)注意:這里沒有分號?{?語句1;?語句2;?語句3;?……?語句n;?}?特點:先判斷條件表達式,后執(zhí)行語句。?原則:若條件表達式的值為真,那么執(zhí)行語句。否則跳出?while語句。亞博科技51單片機開發(fā)板28課配套視頻教程While循環(huán)語句?While(關系表達式或邏輯值);亞25關系運算和邏輯值關系運算1<3=11==2=01+1>2=0?邏輯值:真(1或非0),假(0)?計算機中三種運算千萬不要搞混了:?1、算術運算:參與運算的對象是數(shù),結(jié)果也是數(shù),運算符是加減乘除;?2、邏輯運算:參與運算的對象是邏輯量,結(jié)果也是邏輯量,運算符是與或非;?3、關系運算:參與運算的對象是數(shù),結(jié)果是邏輯量,運算符如下:?><>=<===等于(注意:與賦值符=,完全不同?。?=不等于亞博科技51單片機開發(fā)板28課配套視頻教程關系運算和邏輯值關系運算1<3=11==2=01+1>226關系運算和邏輯值關系運算1<3=11==2=01+1>2=0?邏輯值:真(1或非0),假(0)?計算機中三種運算千萬不要搞混了:?1、算術運算:參與運算的對象是數(shù),結(jié)果也是數(shù),運算符是加減乘除;?2、邏輯運算:參與運算的對象是邏輯量,結(jié)果也是邏輯量,運算符是與或非;?3、關系運算:參與運算的對象是數(shù),結(jié)果是邏輯量,運算符如下:?><>=<===等于(注意:與賦值符=,完全不同?。?=不等于亞博科技51單片機開發(fā)板28課配套視頻教程關系運算和邏輯值關系運算1<3=11==2=01+1>227如何改變流水燈流動的速度?1、改變調(diào)用延時函數(shù)的實參。?2、更換不同頻率的晶振。(復習以前講過的時鐘的快慢決定了程序運行速度)亞博科技51單片機開發(fā)板28課配套視頻教程如何改變流水燈流動的速度?1、改變調(diào)用延時函數(shù)的實參。亞博28左移和右移位運算:按位對變量進行運算。左移和右移屬于位運算。格式:P1<<1;/*左移一位*/a>>2;/*右移二位*/一般我們比較多的是對8位無符號數(shù)進行移位操作,移出的數(shù)丟棄,空位自動補0。注意點:位運算不改變參與運算的變量的值,如果希望改變參與運算的變量的值,應利用相應的賦值操作!用循環(huán)左移編寫第二個流水燈程序。[例程]亞博科技51單片機開發(fā)板28課配套視頻教程左移和右移位運算:按位對變量進行運算。亞博科技29循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但我們可以調(diào)用C51庫函數(shù)實現(xiàn)循環(huán)左移和循環(huán)右移(具體可以見C:\keil\C51\HLP\C51lib.chm):1、必須先包含intrins.h2、i=_crol_(i,1);/*將i循環(huán)左移1位*/3、i=_cror_(i,1);/*將i循環(huán)右移1位*/用循環(huán)左移編寫第三個流水燈程序。[例程]亞博科技51單片機開發(fā)板28課配套視頻教程循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但30循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但我們可以調(diào)用C51庫函數(shù)實現(xiàn)循環(huán)左移和循環(huán)右移(具體可以見C:\keil\C51\HLP\C51lib.chm):1、必須先包含intrins.h2、i=_crol_(i,1);/*將i循環(huán)左移1位*/3、i=_cror_(i,1);/*將i循環(huán)右移1位*/用循環(huán)左移編寫第三個流水燈程序。[例程]亞博科技51單片機開發(fā)板28課配套視頻教程循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但31流水燈電路原理圖亞博科技51單片機開發(fā)板28課配套視頻教程流水燈電路原理圖亞博科技532第6講完成一個流水燈項目亞博科技51單片機開發(fā)板28課配套視頻教程第6講完成一個流水燈項目亞博科技33流水燈設計?本講任務:?分別用位輸出操作、移位操作、循環(huán)移位操作完成3個典型流水燈的設計。?掌握下列C語言知識點:?宏定義、函數(shù)和函數(shù)調(diào)用、循環(huán)結(jié)構、while語句、關系運算和邏輯值?掌握流程圖繪制。?完成閃爍燈的設計。?如何完成函數(shù)調(diào)用。亞博科技51單片機開發(fā)板28課配套視頻教程流水燈設計?本講任務:亞博科技34完成一個典型流水燈的設計程序就是人的思想的反映,編程最重要的就是你的編程思路,有什么樣的思路就會編出什么樣的程序。先看上一講的點一個發(fā)光管程序:1、思路分析。流程圖是整理我們思路的好工具,同時也能保證若干年以后你還能輕易看懂自己編寫的程序。2、程序講解(這個程序是利用了位輸出操作)。宏定義函數(shù)和函數(shù)調(diào)用如何熄滅發(fā)光管循環(huán)結(jié)構,while語句詳解、關系運算和邏輯值如何改變流水燈流動的速度亞博科技51單片機開發(fā)板28課配套視頻教程完成一個典型流水燈的設計程序就是人的思想的反映,編程最重要的35亞博科技51單片機開發(fā)板28課配套視頻教程本講需要學習的新知識?數(shù)電、模電方面同上一講一樣,有不熟悉的同學也可回看上一講的內(nèi)容,本講在C語言方面增加了一個新的函數(shù)。?延時函數(shù)delay?for循環(huán)語句亞博科技51單片機開發(fā)板236了解一下延時函數(shù)?學過匯編你就會知道,每條指令都占一定的時間(或者機器周期)的,如果你讓機器什么都不做,即空指令的話,機器就會延時,然后你在計算好每次延時到底有多長,外面套一個循環(huán)(或者多重循環(huán)),根據(jù)你想要的延時時間即可計算出來循環(huán)的次數(shù),延時函數(shù)基本上都是這種原理,它的參數(shù)就是用來控制循環(huán)次數(shù)的。亞博科技51單片機開發(fā)板28課配套視頻教程了解一下延時函數(shù)亞博科技537怎樣編寫精確的延時函數(shù)

實現(xiàn)延時通常有兩種方法:一種是硬件延時,要用到定時器/計數(shù)器,這種方法可以提高CPU的工作效率,也能做到精確延時;另一種是軟件延時,這種方法主要采用循環(huán)體進行。?1使用定時器/計數(shù)器實現(xiàn)精確延時?2軟件延時與時間計算?在很多情況下,定時器/計數(shù)器經(jīng)常被用作其他用途,這時候就只能用軟件方法延時。下面介紹幾種軟件延時的方法。?2.1短暫延時?2.2在C51中嵌套匯編程序段實現(xiàn)延時?2.3使用示波器確定延時時間?2.4使用反匯編工具計算延時時間亞博科技51單片機開發(fā)板28課配套視頻教程怎樣編寫精確的延時函數(shù)

實現(xiàn)延時通常有兩種方法:一種是硬件延38認識一個For循環(huán)語句?For(表達式1;表達式2;表達式3){語句(內(nèi)部可為空)}執(zhí)行過程:1.求解一次表達式1.2.求解表達式2,若其值為真(非0即為真),則執(zhí)行for中語句。然后執(zhí)行第3步。否則結(jié)束for語句,直接跳出,不再執(zhí)行第3步。3.求解表達式3.4.跳到第2步重復執(zhí)行。亞博科技51單片機開發(fā)板28課配套視頻教程認識一個For循環(huán)語句?For(表達式1;表達式2;表39一個簡單的延時函數(shù)

只需要了解一下,不需要記住,學會調(diào)用它就可以了。?/*------------------------------------------------?延時函數(shù),含有輸入?yún)?shù)unsignedintt,無返回值?unsignedint是定義無符號整形變量,其值的范圍是?0~65535?------------------------------------------------*/?voidDelay(unsignedintt)?{?while(--t);?}亞博科技51單片機開發(fā)板28課配套視頻教程一個簡單的延時函數(shù)

只需要了解一下,不需要記住,學會調(diào)用它就40了解一下實驗板初始化?初始化就是把變量賦為默認值,把控件設為默認狀態(tài),把沒準備的準備好。但是如果是整個系統(tǒng)初始化那就不一樣了。在匯編語言中,為變量分配空間時,初始化過的變量的初值位于可執(zhí)行文件代碼段數(shù)據(jù)后,會占用一定空間,不必要的初始化會造成磁盤空間的浪費。在C語言等高級語言中,為每一個變量賦初值被視為良好的編程習慣,有助于減少出現(xiàn)Bugs的可能性。因此,是否對不必要的變量初始化依情況而定。亞博科技51單片機開發(fā)板28課配套視頻教程了解一下實驗板初始化?初始化就是把變量賦為默認值,把控件設41實驗板初始化函數(shù)?只需要了解一下,不需要記住,學會調(diào)用它就可以了。?bst-v51.h?bst-v51.c亞博科技51單片機開發(fā)板28課配套視頻教程實驗板初始化函數(shù)亞博科技542宏定義#號是預處理指令,用#開頭。#defineON(新的名稱)1(原來的名稱)作用:在程序書寫時可用新的名稱代替原來的名稱書寫,以達到簡化或直觀的效果。編譯器在預處理的時候,自動將新的名稱還原為原來的名稱。?書寫位置:源程序開頭,函數(shù)的外面亞博科技51單片機開發(fā)板28課配套視頻教程宏定義#號是預處理指令,用#開頭。亞博科技433個流水燈程序框圖亞博科技51單片機開發(fā)板28課配套視頻教程3個流水燈程序框圖亞博科技44開始詳細講解流水燈項目開發(fā)

設計目的?從實際工程應用出發(fā),在理論和實踐上掌握流水燈系統(tǒng)的基本組成,工作原理。對設計流水燈有一個完整的概念,使設計出來的流水燈達到本設計任務書的技術要求。亞博科技51單片機開發(fā)板28課配套視頻教程開始詳細講解流水燈項目開發(fā)

設計目的亞博科技458位流水燈開發(fā)過程亞博科技51單片機開發(fā)板28課配套視頻教程?一、任務描述:這次開發(fā)的目的是什么(如要實現(xiàn)什么功能,應用在什么地方,對性能、功耗、實時性等有什么要求)?任何一個應用單片機開發(fā)的產(chǎn)品,從客戶提出要求到完成方案設計,再到產(chǎn)品樣機的調(diào)試,直至正式投入試運行,這個過程稱為單片機應用系統(tǒng)得開發(fā)。單片機應用系統(tǒng)開發(fā)過程所用的設備統(tǒng)稱為開發(fā)工具。由于單片機的軟件資源有限,并且自身沒有調(diào)試能力,因此必須配備相應的開發(fā)工具來排除開發(fā)過程中的軟件錯誤,生成目標程序。?本任務通過左移亮燈電路來講解單片機系統(tǒng)開發(fā)設計時電路原理圖的設計方法和步驟。通過本任務的學習,掌握單片機應用電路和程序的開發(fā)過程。8位流水燈開發(fā)過程亞博科技46二、任務分析?根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,而且每個模塊可能會用許多選擇,這就要根據(jù)價錢,性能,功耗,實時性等方面的要求來選擇了?8只發(fā)光二極管亮燈數(shù)據(jù)左移一位。首先對單片機工作條件(電源、時鐘和復位電路)進行設計,然后根據(jù)設計任務要求對I/O接口電路進行設計;本任務學習用DZ-80C52集成的串口模塊燒寫器器進行單片機程序下載。。亞博科技51單片機開發(fā)板28課配套視頻教程二、任務分析?根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,47三、任務演示?分配任務,因為,有些開發(fā)項目可能不是一個人能夠完成的,是要一個團隊來做,那么就要根據(jù)每個人的特點來分配任務了。如,硬件,軟件,算法,調(diào)度,測試,界面,采購等。亞博科技51單片機開發(fā)板28課配套視頻教程三、任務演示?分配任務,因為,有些開發(fā)項目可能不是一個人能48四、項目開發(fā)相關知識(一)單片機產(chǎn)品開發(fā)流程1、項目評估:出初步技術開發(fā)方案,據(jù)此出預算,包括可能的開發(fā)成本、樣機成本、開發(fā)耗時、樣機制造耗時、利潤空間等2、項目實施:(1)設計電原理圖(2)設計印刷電路板(PCB)圖(3)把PCB圖發(fā)往制版廠做板(4)定購開發(fā)系統(tǒng)和元件(5)裝配樣機:PCB板拿到后開始樣機裝配,設計中的錯漏會在裝配過程開始顯現(xiàn),盡量去補救。亞博科技51單片機開發(fā)板28課配套視頻教程四、項目開發(fā)相關知識(一)單片機產(chǎn)品開發(fā)流程亞博科技49樣機調(diào)試(6)樣機調(diào)試:這個過程需要用到電烙鐵、刻刀、不同參數(shù)的元件、各種調(diào)試和仿真軟件、樣機的模擬工作環(huán)境等。(7)整理數(shù)據(jù):研發(fā)過程中得到的重要數(shù)據(jù)記錄保存下來,比如更新電原理圖里的元件參數(shù)、PCB元件庫里的三維模型,還要記錄暴露出來的設計上的失誤、分析失誤的原因、采用的補救方案等等。亞博科技51單片機開發(fā)板28課配套視頻教程樣機調(diào)試(6)樣機調(diào)試:這個過程需要用到電烙鐵、刻刀、不同參50完善樣版機(8)如果項目進入生產(chǎn)階段或確有需要,可以根據(jù)修正后的技術方案按以上各個步驟重做一臺完善的V1.1版樣機。(9)編寫設備文檔:包括編寫產(chǎn)品說明書、拍攝外觀圖片等。(10)溝通和修改,在開發(fā)過程中,不能完全的根據(jù)任務來區(qū)分,團隊之間要有適當?shù)臏贤?,根?jù)需要來對計劃做相應的修改,如:中斷的分配,GPIO的分配,算法的復雜性,接口的定義之類的。亞博科技51單片機開發(fā)板28課配套視頻教程完善樣版機(8)如果項目進入生產(chǎn)階段或確有需要,可以根據(jù)修正51測試和更改11)測試和更改,最終,各個模塊是要組合起來的,這時可能會碰到許多問題。如,代碼太大而內(nèi)存不夠,時效響應不夠靈敏,代碼執(zhí)行構成中出現(xiàn)死循環(huán),模塊優(yōu)先級的選擇出現(xiàn)不妥,臨界點沒有糾錯功能等,這就要不斷的整合,反復的更改,調(diào)試,可能會出現(xiàn)許多方案,再根據(jù)實際情況最后定奪?小提示:開發(fā)過程中做好備案,代碼寫好注釋,如果允許,不同模塊、不同系統(tǒng)層次的接口分別來寫,合理分配資源。亞博科技51單片機開發(fā)板28課配套視頻教程測試和更改11)測試和更改,最終,各個模塊是要組合起來的,這52一個完整實驗源碼/*-----------------------------------------------?名稱:IO口高低電平控制?內(nèi)容:左移,直至LED全部點亮,左移符號<<?------------------------------------------------*/?#include<reg52.h>//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義?voidDelay(unsignedintt);//函數(shù)聲明?/*------------------------------------------------?主函數(shù)?------------------------------------------------*/?voidmain(void)?{??unsignedchari;//定義一個無符號字符型局部變量i取值范圍0~255?Delay(50000);?P1=0xfe;//賦初始值?for(i=0;i<8;i++)//加入for循環(huán),表明for循環(huán)大括號中的程序循環(huán)執(zhí)行8次?{?Delay(50000);?P1<<=1;?}?while(1)//主循環(huán)?{?//主循環(huán)中添加其他需要一直工作的程序?}?}?/*------------------------------------------------?延時函數(shù),含有輸入?yún)?shù)unsignedintt,無返回值?unsignedint是定義無符號整形變量,其值的范圍是?0~65535?------------------------------------------------*/?voidDelay(unsignedintt)?{?while(--t);?}亞博科技51單片機開發(fā)板28課配套視頻教程一個完整實驗源碼/*--------------------53函數(shù)的引入函數(shù)是C語言的主要特點,也是我們學習的一個重點。主函數(shù):主人,只有一個。從家里的電腦壞了說起。在實際編程中,我們會遇到兩種情況:1、需要使用別人的程序,現(xiàn)在是網(wǎng)絡共享時代,要學會在網(wǎng)絡中找到你需要的東西,例如DS1302時鐘的功能函數(shù),DS18B20功能函數(shù)2、某一段程序會反復用到,這時,我們需要用到函數(shù)和函數(shù)調(diào)用其他功能函數(shù):工人(下屬,可以被調(diào)用完成某項工作的人),以有多個,可實現(xiàn)某種功能的一段相對獨立的,可以被調(diào)用的代碼。?相互間的調(diào)用關系?注意:我們一般所說函數(shù),指的都是功能函數(shù)亞博科技51單片機開發(fā)板28課配套視頻教程函數(shù)的引入函數(shù)是C語言的主要特點,也是我們學習的一個重點。亞54實現(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課配套視頻教程實現(xiàn)函數(shù)調(diào)用的前提:調(diào)用者必須能看到被

調(diào)用者調(diào)用者必須能看55如何完成函數(shù)的調(diào)用函數(shù)調(diào)用:就是在一個函數(shù)體中引用另外一個已經(jīng)定義的函數(shù)完成函數(shù)的調(diào)用三種方式:1、函數(shù)語句。函數(shù)名(實際參數(shù)表);有參調(diào)用和無參調(diào)用2、函數(shù)表達式。(以后講)3、函數(shù)參數(shù)。(以后講)函數(shù)的調(diào)用注意掌握4個要點:被調(diào)函數(shù)名稱、功能、參數(shù)、返回值。函數(shù)內(nèi)部語句不必了解!亞博科技51單片機開發(fā)板28課配套視頻教程如何完成函數(shù)的調(diào)用函數(shù)調(diào)用:亞博科技56While循環(huán)語句?While(關系表達式或邏輯值);?While(關系表達式或邏輯值)一條語句;?While(關系表達式或邏輯值)注意:這里沒有分號?{?語句1;?語句2;?語句3;?……?語句n;?}?特點:先判斷條件表達式,后執(zhí)行語句。?原則:若條件表達式的值為真,那么執(zhí)行語句。否則跳出?while語句。亞博科技51單片機開發(fā)板28課配

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論