




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第6講完成一個(gè)流水燈工程亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程流水燈設(shè)計(jì) 本講義務(wù): 分別用位輸出操作、移位操作、循環(huán)移位操作完成3個(gè)典型流水燈的設(shè)計(jì)。掌握以下C言語知識(shí)點(diǎn):宏定義、函數(shù)和函數(shù)調(diào)用、循環(huán)構(gòu)造、while語句、關(guān)系運(yùn)算和邏輯值 掌握流程圖繪制。 完成閃爍燈的設(shè)計(jì)。 如 何 完 成 函 數(shù) 調(diào) 用。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程完成一個(gè)典型流水燈的設(shè)計(jì)程序就是人的思想的反映,編程最重要的就是他的編程思緒,有什么樣的思緒就會(huì)編出什么樣的程序。 先看上一講的點(diǎn)一個(gè)發(fā)光管程序: 1、思緒分析。流程圖是整理我們思緒的好工具,同時(shí)也能保證假設(shè)干年以后他還能隨便看懂本人編寫
2、的程序。 2、程序講解這個(gè)程序是利用了位輸出操作 。 宏定義 函數(shù)和函數(shù)調(diào)用 如何熄滅發(fā)光管 循環(huán)構(gòu)造,while語句詳解、關(guān)系運(yùn)算和邏輯值 如何改動(dòng)流水燈流動(dòng)的速度亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程本講需求學(xué)習(xí)的新知識(shí) 數(shù)電、模電方面同上一講一樣,有不熟習(xí)的同窗也可回看上一講的內(nèi)容,本講在C言語方面添加了一個(gè)新的函數(shù)。 延時(shí)函數(shù)delay for循環(huán)語句了解一下延時(shí)函數(shù) 學(xué)過匯編他就會(huì)知道,每條指令都占一定的時(shí)間或者機(jī)器周期的,假設(shè)他讓機(jī)器什么都不做,即空指令的話,機(jī)器就會(huì)延時(shí),然后他在計(jì)算好每次延時(shí)究竟有多長(zhǎng),外面套一個(gè)循環(huán)或者多重循環(huán)
3、,根據(jù)他想要的延時(shí)時(shí)間即可計(jì)算出來循環(huán)的次數(shù) ,延時(shí)函數(shù)根本上都是這種原理,它的參數(shù)就是用來控制循環(huán)次數(shù)的。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程怎樣編寫準(zhǔn)確的延時(shí)函數(shù)實(shí)現(xiàn)延時(shí)通常有兩種方法:一種是硬件延時(shí),要用到定時(shí)器/計(jì)數(shù)器,這種方法可以提高CPU的任務(wù)效率,也能做到準(zhǔn)確延時(shí);另一種是軟件延時(shí),這種方法主要采用循環(huán)體進(jìn)展。 1 運(yùn)用定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)準(zhǔ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 運(yùn)用示波器確定延時(shí)時(shí)間 2.4
4、 運(yùn)用反匯編工具計(jì)算延時(shí)時(shí)間亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程認(rèn)識(shí)一個(gè)For 循環(huán)語句 For (表達(dá)式1;表達(dá)式2;表達(dá)式3) 語句內(nèi)部可為空?qǐng)?zhí)行過程:1.求解一次表達(dá)式1.2.求解表達(dá)式2,假設(shè)其值為真非0 即為真,那么執(zhí)行for中語句。然后執(zhí)行第3步。否那么終了for 語句,直接跳出,不再執(zhí)行第3步。3.求解表達(dá)式3.4.跳到第2步反復(fù)執(zhí)行。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程一個(gè)簡(jiǎn)單的延時(shí)函數(shù)只需求了解一下,不需求記住,學(xué)會(huì)調(diào)用它就可以了。 /*- 延時(shí)函數(shù),含有輸入?yún)?shù) unsigned int t,無前往值 unsigned int 是定義無符號(hào)整形變量,其值的范
5、圍是 065535 -*/ void Delay(unsigned int t) while(-t); 亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程了解一下實(shí)驗(yàn)板初始化 初始化就是把變量賦為默許值,把控件設(shè)為默許形狀,把沒預(yù)備的預(yù)備好。 但是假設(shè)是整個(gè)系統(tǒng)初始化那就不一樣了。在匯編言語中,為變量分配空間時(shí),初始化過的變量的初值位于可執(zhí)行文件代碼段數(shù)據(jù)后,會(huì)占用一定空間,不用要的初始化會(huì)呵斥磁盤空間的浪費(fèi)。在C言語等高級(jí)言語中,為每一個(gè)變量賦初值被視為良好的編程習(xí)慣,有助于減少出現(xiàn)Bugs的能夠性。因此,能否對(duì)不用要的變量初始化依情況而定。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程實(shí)驗(yàn)板初始化
6、函數(shù) 只需求了解一下,不需求記住,學(xué)會(huì)調(diào)用它就可以了。 bst-v51.h bst-v51.c亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程宏定義#號(hào)是預(yù)處置指令,用#開頭。 #define ON 新的稱號(hào) 1原來的稱號(hào) 作用:在程序書寫時(shí)可用新的稱號(hào)替代原來的稱號(hào)書寫,以到達(dá)簡(jiǎn)化或直觀的效果。編譯器在預(yù)處置的時(shí)候,自動(dòng)將新的稱號(hào)復(fù)原為原來的稱號(hào)。 書寫位置:源程序開頭,函數(shù)的外面亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程3個(gè)流水燈程序框圖亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程開場(chǎng)詳細(xì)講解流水燈工程開發(fā)設(shè)計(jì)目的 從實(shí)踐工程運(yùn)用出發(fā),在實(shí)際和實(shí)際上掌握流水燈系統(tǒng)的根本組成,任務(wù)原理。對(duì)設(shè)計(jì)
7、流水燈有一個(gè)完好的概念,使設(shè)計(jì)出來的流水燈到達(dá)本設(shè)計(jì)義務(wù)書的技術(shù)要求。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程8位流水燈開發(fā)過程亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程 一、義務(wù)描畫:這次開發(fā)的目的是什么 如要實(shí)現(xiàn)什么功能,運(yùn)用在什么地方,對(duì)性能、功耗、實(shí)時(shí)性等有什么要求 任何一個(gè)運(yùn)用單片機(jī)開發(fā)的產(chǎn)品,從客戶提出要求到完成方案設(shè)計(jì),再到產(chǎn)品樣機(jī)的調(diào)試,直至正式投入試運(yùn)轉(zhuǎn),這個(gè)過程稱為單片機(jī)運(yùn)用系統(tǒng)得開發(fā)。單片機(jī)運(yùn)用系統(tǒng)開發(fā)過程所用的設(shè)備統(tǒng)稱為開發(fā)工具。由于單片機(jī)的軟件資源有限,并且本身沒有調(diào)試才干,因此必需配備相應(yīng)的開發(fā)工具來排除開發(fā)過程中的軟件錯(cuò)誤,生成目的程序。 本義務(wù)經(jīng)過左移亮燈
8、電路來講解單片機(jī)系統(tǒng)開發(fā)設(shè)計(jì)時(shí)電路原理圖的設(shè)計(jì)方法和步驟。經(jīng)過本義務(wù)的學(xué)習(xí),掌握單片機(jī)運(yùn)用電路和程序的開發(fā)過程。二、義務(wù)分析 根據(jù)這次開發(fā)的目的展開分析,要用到什么模塊,而且每個(gè)模塊能夠會(huì)用許多項(xiàng)選擇擇,這就要根據(jù)價(jià)錢,性能,功耗,實(shí)時(shí)性等方面的要求來選擇了 8只發(fā)光二極管亮燈數(shù)據(jù)左移一位。 首先對(duì)單片機(jī)任務(wù)條件(電源、時(shí)鐘和復(fù)位電路)進(jìn)展設(shè)計(jì),然后根據(jù)設(shè)計(jì)義務(wù)要求對(duì)I/O接口電路進(jìn)展設(shè)計(jì);本義務(wù)學(xué)慣用DZ-80C52集成的串口模塊燒寫器器進(jìn)展單片機(jī)程序下載。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程三、義務(wù)演示 分配義務(wù),由于,有些開發(fā)工程能夠不是一個(gè)人可以完成的,是要一個(gè)團(tuán)隊(duì)來做,那么就
9、要根據(jù)每個(gè)人的特點(diǎn)來分配義務(wù)了。如,硬件,軟件,算法,調(diào)度,測(cè)試,界面,采購(gòu)等。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程四、工程開發(fā)相關(guān)知識(shí)一單片機(jī)產(chǎn)品開發(fā)流程 1、工程評(píng)價(jià):出初步技術(shù)開發(fā)方案,據(jù)此出預(yù)算,包括能夠的開發(fā)本錢、樣機(jī)本錢、開發(fā)耗時(shí)、樣機(jī)制造耗時(shí)、利潤(rùn)空間等 2、工程實(shí)施: 1設(shè)計(jì)電原理圖 2設(shè)計(jì)印刷電路板PCB圖 3把PCB圖發(fā)往制版廠做板 4定購(gòu)開發(fā)系統(tǒng)和元件 5裝配樣機(jī):PCB板拿到后開場(chǎng)樣機(jī)裝配,設(shè)計(jì)中的錯(cuò)漏會(huì)在裝配過程開場(chǎng)顯現(xiàn),盡量去補(bǔ)救。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程樣機(jī)調(diào)試6樣機(jī)調(diào)試:這個(gè)過程需求用到電烙鐵、刻刀、不同參數(shù)的元件、各種調(diào)試和仿真軟件
10、、樣機(jī)的模擬任務(wù)環(huán)境等。 7整理數(shù)據(jù):研發(fā)過程中得到的重要數(shù)據(jù)記錄保管下來,比如更新電原理圖里的元件參數(shù)、PCB元件庫里的三維模型,還要記錄暴顯露來的設(shè)計(jì)上的失誤、分析失誤的緣由、采用的補(bǔ)救方案等等。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程完善樣版機(jī)8假設(shè)工程進(jìn)入消費(fèi)階段或確有需求,可以根據(jù)修正后的技術(shù)方案按以上各個(gè)步驟重做一臺(tái)完善的V1.1版樣機(jī)。9編寫設(shè)備文檔:包括編寫產(chǎn)品闡明書、拍攝外觀圖片等。10溝通和修正,在開發(fā)過程中 ,不能完全的根據(jù)義務(wù)來區(qū)分,團(tuán)隊(duì)之間要有適當(dāng)?shù)臏贤?,根?jù)需求來對(duì)方案做相應(yīng)的修正,如:中斷的分配,GPIO的分配,算法的復(fù)雜性,接口的定義之類的。亞博科技 51單
11、片機(jī)開發(fā)板28課配套視頻教程測(cè)試和更改11測(cè)試和更改,最終,各個(gè)模塊是要組合起來的,這時(shí)能夠會(huì)碰到許多問題。如,代碼太大而內(nèi)存不夠,時(shí)效呼應(yīng)不夠靈敏,代碼執(zhí)行構(gòu)成中出現(xiàn)死循環(huán),模塊優(yōu)先級(jí)的選擇出現(xiàn)不妥,臨界點(diǎn)沒有糾錯(cuò)功能等,這就要不斷的整合,反復(fù)的更改,調(diào)試,能夠會(huì)出現(xiàn)許多方案,再根據(jù)實(shí)踐情況 最后定奪 小提示:開發(fā)過程中做好備案,代碼寫好注釋,假設(shè)允許,不同模塊、不同系統(tǒng)層次的接口分別來寫,合理分配資源。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程一個(gè)完好實(shí)驗(yàn)源碼/*- 稱號(hào):IO口高低電平控制 內(nèi)容:左移,直至LED全部點(diǎn)亮,左移符號(hào) - */ #include /包含頭文件,普通情況不需
12、求改動(dòng),頭文件包含特殊功能存放器的定義 void Delay(unsigned int t); / 函數(shù)聲明 /*- 主函數(shù) - */ void main (void) unsigned char i; / 定義一個(gè)無符號(hào)字符型部分變量 i 取值范圍 0255 Delay(50000); P1=0 xfe; / 賦初始值 for(i=0;i8;i+) / 參與 for循環(huán),闡明for循環(huán)大括號(hào)中的程序循環(huán)執(zhí)行8次 Delay(50000); P1=1; while (1) / 主循環(huán) / 主循環(huán)中添加其他需求不斷任務(wù)的程序 /*- 延時(shí)函數(shù),含有輸入?yún)?shù) unsigned int t,無前往值
13、 unsigned int 是定義無符號(hào)整形變量,其值的范圍是 065535 - */ void Delay(unsigned int t) while(-t); 亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程函數(shù)的引入函數(shù)是C言語的主要特點(diǎn),也是我們學(xué)習(xí)的一個(gè)重點(diǎn)。主函數(shù):主人,只需一個(gè)。從家里的電腦壞了說起。在實(shí)踐編程中,我們會(huì)遇到兩種情況:1、需求運(yùn)用他人的程序,如今是網(wǎng)絡(luò)共享時(shí)代,要學(xué)會(huì)在網(wǎng)絡(luò)中找到他需求的東西,例如 DS1302時(shí)鐘的功能函數(shù),DS18B20功能函數(shù)2、某一段程序會(huì)反復(fù)用到,這時(shí),我們需求用到函數(shù)和函數(shù)調(diào)用其他功能函數(shù):工人下屬,可以被調(diào)用完成某項(xiàng)任務(wù)的人,以有多個(gè),可
14、實(shí)現(xiàn)某種功能的一段相對(duì)獨(dú)立的,可以被調(diào)用的代碼 。 相互間的調(diào)用關(guān)系 留意:我們普通所說函數(shù),指的都是功能函數(shù)亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程實(shí)現(xiàn)函數(shù)調(diào)用的前提:調(diào)用者必需能看到被調(diào)用者調(diào)用者必需能看到被調(diào)用者程序如何才干找到要 調(diào)用的函數(shù)呢?有三種方法: 第一種、將被調(diào)用函數(shù)寫在當(dāng)前代碼之前。 第二種、將被調(diào)用函數(shù)的函數(shù)聲明寫在當(dāng)前代碼 之前。 第三種:運(yùn)用頭文件 。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程如何完成函數(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á)式。
15、以后講 3、函數(shù)參數(shù)。以后講函數(shù)的調(diào)用留意掌握4個(gè)要點(diǎn):被調(diào)函數(shù)稱號(hào)、功能、參數(shù)、前往值。函數(shù)內(nèi)部語句不用了解!亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程While循環(huán)語句 While 關(guān)系表達(dá)式或邏輯值; While 關(guān)系表達(dá)式或邏輯值一條語句; While 關(guān)系表達(dá)式或邏輯值 留意:這里沒有分號(hào) 語句1; 語句2; 語句3; 語句n; 特點(diǎn):先判別條件表達(dá)式,后執(zhí)行語句。 原那么:假設(shè)條件表達(dá)式的值為真,那么執(zhí)行語句。否那么跳出 while 語句。亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程關(guān)系運(yùn)算和邏輯值關(guān)系運(yùn)算12=0 邏輯值:真1或非0,假0 計(jì)算機(jī)中三種運(yùn)算千萬不要搞混了: 1、
16、算術(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)算符如下: = = =等于留意:與賦值符=,完全不同! != 不等于亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程關(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)算符如下: = = =
17、等于留意:與賦值符=,完全不同! != 不等于亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程如何改動(dòng)流水燈流動(dòng)的速度 1、改動(dòng)調(diào)用延時(shí)函數(shù)的實(shí)參。 2、改換不同頻率的晶振。復(fù)習(xí)以前講過的時(shí)鐘的快慢決議了程序運(yùn)轉(zhuǎn)速度亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程左移和右移位運(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)算不改動(dòng)參與運(yùn)算的變量的值,假設(shè)希望改動(dòng)參與運(yùn)算的變量的值,應(yīng)利用相應(yīng)的賦值操作!用循環(huán)左移編寫第二個(gè)流水燈程序。例程亞博科技 51單片機(jī)開發(fā)板28課配套視頻教程循環(huán)左移和循環(huán)右移C51沒有專門的循環(huán)左移和循環(huán)右移指令,但我們可以調(diào)用C51庫函數(shù)實(shí)現(xiàn)循環(huán)左移和循環(huán)右移詳細(xì)可以見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等.壓縮文件請(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 常州工程職業(yè)技術(shù)學(xué)院《高級(jí)阿拉伯語二》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆科技學(xué)院《外國(guó)史學(xué)名著選讀》2023-2024學(xué)年第二學(xué)期期末試卷
- 淮北理工學(xué)院《社會(huì)學(xué)原理類》2023-2024學(xué)年第二學(xué)期期末試卷
- 重慶智能工程職業(yè)學(xué)院《生物統(tǒng)計(jì)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 赤峰學(xué)院《教育史專題研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 梧州學(xué)院《現(xiàn)代舞創(chuàng)編》2023-2024學(xué)年第二學(xué)期期末試卷
- 東北林業(yè)大學(xué)《生物科學(xué)專業(yè)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西航空職業(yè)技術(shù)學(xué)院《攝影報(bào)道》2023-2024學(xué)年第二學(xué)期期末試卷
- 合肥共達(dá)職業(yè)技術(shù)學(xué)院《現(xiàn)代電子測(cè)量技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)蒙古工業(yè)大學(xué)《概率論與數(shù)據(jù)統(tǒng)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 中央2025年全國(guó)婦聯(lián)所屬在京事業(yè)單位招聘93人筆試歷年參考題庫附帶答案詳解
- 《環(huán)境污染對(duì)生態(tài)系統(tǒng)的影響》課件
- 機(jī)器狗:技術(shù)成熟性能優(yōu)越場(chǎng)景剛需放量在即2025
- 《教育強(qiáng)國(guó)建設(shè)規(guī)劃綱要(2024-2035年)》解讀-知識(shí)培訓(xùn)
- 《加油站安全管理培訓(xùn)課件》
- 《生態(tài)安全》課件
- 2025年春新人教版一年級(jí)下冊(cè)數(shù)學(xué)全冊(cè)教學(xué)課件
- 1.北京的春節(jié) 練習(xí)題(含答案)
- 年度得到 · 沈祖蕓全球教育報(bào)告(2024-2025)
- 抗震支架安裝工程施工方案范文
- GB/T 45071-2024自然保護(hù)地分類分級(jí)
評(píng)論
0/150
提交評(píng)論