dp801教學(xué)講義_第1頁
dp801教學(xué)講義_第2頁
dp801教學(xué)講義_第3頁
dp801教學(xué)講義_第4頁
dp801教學(xué)講義_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、初級班注新授指令后()內(nèi)數(shù)字為配套教材中頁數(shù)第一次課1什么是單片機 微型計算機由運算、控制、存儲、輸入、輸出五部分組成。 微型計算機 單片微型計算機cpu:運算、控制at89c2051芯片存儲:硬盤、u盤24c02存儲芯片輸入:鼠標(biāo)、鍵盤5個按鍵輸出:顯示器、打印機數(shù)碼管、二極管2.單片機的用途 凡是用到智能控制和自動控制的領(lǐng)域都離不開單片機。3數(shù)據(jù) 利用dp-801單片機處理的信息全部用兩位的十進制數(shù)表示。通常有兩種形式的數(shù)據(jù): 帶點數(shù):表示存儲單元的地址 不帶點數(shù):表示指令、代碼0.0.0.1.0.2.0.3.0.4.0.5.0.6.0.7.0.8.0005020401154輸入、調(diào)試程序

2、reswrid/a-1+1 修改數(shù)據(jù): +1/-1修改地址: d/a+ +1/-1練 習(xí): 讀取前5個單元格中的數(shù)據(jù)。 存儲數(shù)據(jù): wri 運行程序: d/a(1.0.)+ wri【練習(xí)】1輸入并運行程序0.0. 00 05 00 04 00 03 00 02 00 01 00 00 02 05 01 152輸入1822頁上的6個實例,并運行程序。第二次課1電路 在生活中,開燈關(guān)燈是我們最熟悉的事物了。 在dp-801上,我們利用指令來實現(xiàn)開燈關(guān)燈。dp-801單片機主板上的6個發(fā)光二極管的正極與電源正極相連,二極管的負極經(jīng)限流電阻與輸出口相連。2接通指令(15)指令名稱機器碼助記符操作碼操作

3、數(shù)操作碼操作數(shù)接通000007jtn結(jié)束15-jeish-接通指令功能:使n指向的輸出口變?yōu)榈碗娖剑c亮發(fā)光二極管。dp-801單片機只有8個輸出口,所以n的取值為0007。其中0005在正常狀態(tài)下表示05這6個發(fā)光二極管。結(jié)束指令功能:告訴單片機一段程序的結(jié)束。使用dp801單片機可以編寫多段程序并能運行指定段的程序,就是靠結(jié)束指令來區(qū)分的?!纠?】點亮5號燈。0.0. 00 0515同學(xué)們會發(fā)現(xiàn)燈閃了一下就關(guān)上了,怎樣延長燈亮的時間呢?3延時指令(16)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)延時02(0199) (0003)ysn,m m 03 時 02 分 01 秒 00 0.1秒

4、 延時指令功能:使cpu停止工作,保持上一條指令執(zhí)行后的狀態(tài)在延時時間內(nèi)不變,數(shù)碼管顯示倒計時。例如:延時5秒 02 05 01 延時1.5秒 02 15 00【例2】讓5號燈亮5秒鐘0.0. 00 0502 05 0115【例3】讓0號燈亮5秒,然后讓1號燈亮2秒,最后讓2號燈亮10秒。 大部分同學(xué)的實驗結(jié)果是:0號燈亮了17秒,1號燈亮了12秒。因為一個燈點亮后,沒有關(guān)閉,就點亮下一個燈了。3斷開指令(17)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)斷開010007dkn斷開指令功能:使n指向的輸出口變?yōu)楦唠娖剑拱l(fā)光二極管關(guān)閉。【例3】讓0號燈亮5秒,然后讓1號燈亮2秒,最后讓2號燈亮

5、10秒。0.0. 00 0002 05 0101 0000 0102 02 0101 0100 0202 10 0115【練習(xí)】點亮6個發(fā)光二極管,延時5秒。第三次課1轉(zhuǎn)向指令(20)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)轉(zhuǎn)向100099(地址)zxn轉(zhuǎn)向指令功能:又叫無條件轉(zhuǎn)移指令,運行到這條指令,就轉(zhuǎn)去執(zhí)行n地址處的指令?!纠?】讓0號燈閃起來,閃動間隔0.5秒。閃點亮延時關(guān)閉延時0.0. 00 0002 05 0001 0002 05 0010 00 15【例2】讓0號燈與1號燈交替閃起來,閃動間隔0.5秒。交替閃點亮0號延時關(guān)閉0號點亮1號延時關(guān)閉1號0.0. 00 0002 0

6、5 0001 0000 0102 05 0001 0110 00 15【例3】讓0,1,2號燈模仿交通燈,0號燈亮5秒,1號燈亮2秒,2號燈亮5秒,無限循環(huán)。0.0. 00 0002 05 0101 0000 0102 02 0101 0100 0202 05 0101 0210 0015【練習(xí)】模仿十字路口的交通燈工作。 西 東 北 南第四次課編寫程序的過程可以分為四個步驟【例1】讓0號燈亮5秒鐘開始結(jié)束點亮0號發(fā)光二極管延時5秒關(guān)閉0號發(fā)光二極管第一步是畫流程圖。就是把任務(wù)用流程圖的方式表示出來,形式直觀,一目了然。見下圖。第二步是根據(jù)流程圖中的任務(wù)選擇指令,利用指令助記符形式來編寫源程序

7、。第三步是按照指令表的規(guī)定,把助記符指令翻譯成機器碼。機器碼,也稱作目標(biāo)程序。只有目標(biāo)程序才能輸入到單片機中由cpu執(zhí)行。第四步是給指令代碼分配存儲地址。dp-801型單片機要求從存儲器的第一個單元開始存放數(shù)據(jù)。第一個單元的地址號是00,為了把地址號與存儲數(shù)據(jù)區(qū)分開,通常把地址號記作“0.0.”,寫在第一條指令機器碼的左邊。安排存儲地址,并不是在每個機器碼的左邊都寫上地址號。而是只在每條指令的第一個機器碼左邊,寫上分給它的一個地址號。第二步 第四步 第三步 源程序 地址 機器碼 注釋jt n 0.0. 00 00 ;點亮0號發(fā)光二極管ys n m 0.2. 02 05 01 ;延時5秒dk n

8、 0.5. 01 00 ;關(guān)閉0號發(fā)光二極管jiesh 0.7. 15 ;結(jié)束【練習(xí)】1讓6個發(fā)光二極管從前向后循環(huán)跑,延時0.1秒。2讓6個發(fā)光二極管由前向后,再由后向前來回跑,延時0.1秒。(23頁練習(xí))3順序點亮0至5號發(fā)光二極管,再逆序關(guān)閉這6個發(fā)光二極管,循環(huán)。4讓0號燈閃5次。5讓0號燈與5號燈交替閃3次。第五次課【例1】讓0號燈閃5次。方法一:00 0002 01 0101 0002 01 010.0.00 0002 01 0101 0002 01 0100 0002 01 0101 0002 01 0100 0002 01 0101 0002 01 0100 0002 01 0

9、101 0002 01 015段程序完全相同15 這種方法簡單,但使得程序冗長,浪費時間。如果閃的次數(shù)更多,實現(xiàn)起來困難。方法二:用調(diào)用子程序的方法(33)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)調(diào)用120099(地址)dyn返回13-fh調(diào)用指令功能:用于調(diào)用子程序。把程序中需要多次重復(fù)的一段程序作為子程序,需要的時候只要用調(diào)用指令就可以了。 返回指令功能:由子程序返回到主程序中調(diào)用指令的下一條去執(zhí)行。是子程序結(jié)束的標(biāo)志。 將方法一中需要重復(fù)的程序(0號燈閃1次)作為子程序,寫在主程序的后面,在主程序中連續(xù)調(diào)用5次,即可以實現(xiàn)讓0號燈閃5次的效果,大大簡化了程序。如下圖所示:主程序子程序

10、00 0002 01 0101 0002 01 011312 m12 m12 m12 m12 m150.0.n:m:m為子程序的起始地址需要重復(fù)循環(huán)的部分做子程序。 主程序一定從起始單元地址輸入,然后再輸入子程序。主程序與子程序之間可以空若干個單元,主程序以15為結(jié)束標(biāo)志,子程序以13為結(jié)束標(biāo)志。這種方法可以大大簡化程序?!揪毩?xí)】1讓4號燈閃5次。2讓2號燈與3號燈交替閃4次。3讓6個發(fā)光二極管由前向后,再由后向前來回跑3次。4順序點亮0至5號發(fā)光二極管,再逆序關(guān)閉這6個發(fā)光二極管,循環(huán)6次。第六次課【例1】讓0號燈閃3次,然后1號燈閃3次,再讓2號燈閃3次。主程序子程序100 0002 01

11、 0001 0002 01 001312 m12 m12 m12 l12 l150.0.n:m:子程序200 0102 01 0001 0102 01 0013l:子程序300 0202 01 0001 0202 01 0013p: 當(dāng)程序中出現(xiàn)多個子程序時,主程序從起始單元地址輸入,然后輸入子程序,多個子程序之間沒有先后次序,執(zhí)行的順序由主程序來決定,每個子程序都以13為結(jié)束標(biāo)志?!揪毩?xí)】1讓0號燈閃1次,讓1號閃2次,讓2號閃3次,讓3號閃4次,讓4號閃5次,讓5號閃6次。2讓0、3號燈交替閃3次,然后1、4號交替閃3次,再2、5號交替閃3次,大循環(huán)。第七次課【練習(xí)】1讓發(fā)光二極管按0-5

12、-4-1-2-3-4-1-0-5的順序跑,循環(huán)3次。2讓發(fā)光二極管按2-3-4-1-0-5-4-1-2-3的順序跑,循環(huán)3次。3讓0號燈閃3次,然后從0跑到5,再讓5號燈閃3次,再從5跑到0,大循環(huán)。分析:這三道題有共同的特點,都用到了6個發(fā)光二極管的閃,將每個發(fā)光二極管閃一次的過程作為子程序。畫圖寫指令分配地址上機主程序12 a12 b12 c12 d12 e150.0.n:子程序100 0002 01 0001 0002 01 0013a:子程序200 0102 01 0001 0102 01 0013b:子程序300 0202 01 0001 0202 01 0013c:子程序400 0

13、302 01 0001 0302 01 0013d:子程序500 0402 01 0001 0402 01 0013d:子程序600 0502 01 0001 0502 01 0013d:提示:1. 子程序的起始單元地址最大只能為9.9.2. 盡可能給主程序留出足夠的空間。 3數(shù)據(jù)范圍0099 地址范圍0255第八次課1清用戶程序(1)清成150.0. 14 02 15(2)清成000.0. 14 02 00(無法清掉15)【練習(xí)】12、3號交替閃,1、4號交替閃,0、5號交替閃,循環(huán)3次。20、5號交替閃,1、4號交替閃,2、3號交替閃,循環(huán)6次。30、5號同閃,1、4號同閃,2、3號同閃,

14、0、5號同閃,循環(huán)3次。40、3號同閃3次,1、4號同閃3次,2、5號同閃3次,循環(huán)3次。5讓2、3號交替閃90次。第九次課1奏樂指令(24)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)奏樂03音高 音長zyn m奏樂指令功能:從喇叭插座上輸出音頻信號,能演奏3組音程,n為音高,即:低音 0107中音 1117高音 2127休止符 00m為音長00 6 十六分音符 100毫秒 = 0.1秒01 6 八分音符 200毫秒 = 0.2秒02 6. 八分符點音符 300毫秒 = 0.3秒03 6 四分音符 400毫秒 = 0.4秒04 6. 四分符點音符 600毫秒 = 0.6秒05 6- 二分音符

15、 800毫秒 = 0.8秒06 6- 全音符 1.6秒07 2.4秒08 3.2秒09 6.4秒10 長期發(fā)音11 停止發(fā)音【練習(xí)】1. 11 55 66 5 | 44 33 22 1 |2. 33 3 | 33 3 | 35 12 3 - | 44 4. 4 | 43 3 | 55 42 1 - |. .3. 2 5 同時0號燈閃,模仿救護車警笛聲。.4 3 5 6 0 | 3 5 2 0 | 3 5 6 1- | 6 5 | 1 3 2 - | 2 3 5 0 | 2 3 6 0 | 6 1 2 3 - | 2 1 6 5 1 - |演奏1個音的時間內(nèi),1個燈完成閃的動作。 00 00 0

16、3 11 00 03 11 01 01 00 03 11 00第十次課【練習(xí)】用奏樂指令延時,發(fā)音配合燈閃。10、1同閃1、2同閃2、3同閃3、4同閃4、5同閃3、4同閃2、3同閃1、2同閃0、1同閃,循環(huán)3次。20、1、2同閃1、2、3同閃2、3、4同閃3、4、5同閃2、3、4同閃1、2、3同閃0、1、2同閃,循環(huán)3次。32、5同閃1、4同閃0、3同閃1、4同閃2、5同閃,循環(huán)4次。40、1、2依次閃,5、4、3依次閃,交替閃5次。50、1與5、4交替閃,1、2與3、4交替閃,循環(huán)10次,用數(shù)碼管計數(shù)。60、3交替閃1、4交替閃2、5交替閃1、4交替閃0、3交替閃,循環(huán)30次,數(shù)碼管計數(shù),然

17、后6個發(fā)光二極管同閃10次,計數(shù)。70、1、2依次閃,5、4、3依次閃,循環(huán)10次,計數(shù),然后0至5至0依次閃,循環(huán)20次,計數(shù)。第十一次課1顯示指令(55)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)顯示050001xsn顯示指令功能:可以開關(guān)數(shù)碼管。n為00表示關(guān)閉;n為01表示打開。當(dāng)執(zhí)行關(guān)數(shù)碼管指令后,盡管看不到,但送給數(shù)碼管的數(shù)都是有效的,當(dāng)再執(zhí)行開數(shù)碼管指令后,數(shù)碼管顯示最后一次送給它的數(shù)。這條指令是為了節(jié)省電源而設(shè)置的?!纠?】關(guān)閉數(shù)碼管5秒鐘。0.0. 05 0002 05 0115【例2】讓數(shù)碼管亮5秒鐘,滅5秒鐘,循環(huán)3次。0.0. 12 1012 1012 10151.0

18、. 05 0102 05 0105 0002 05 0113試一試:例1與例2中,用奏樂指令來代替延時可以嗎?(不可以)【例3】將0號燈點亮5秒鐘,同時關(guān)閉數(shù)碼管。0.0. 05 00 00 0002 05 0115試一試:此例題用奏樂指令來代替延時可以嗎?(可以)說明,奏樂指令不能直接與顯示指令搭配使用。2送數(shù)指令(44)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)送數(shù)040099ssn送數(shù)指令功能:將數(shù)送到數(shù)碼管上顯示。在dp801單片機中,只有一個存放數(shù)據(jù)的單元,就是數(shù)碼管,因此所有數(shù)的操作都是對數(shù)碼管進行的。【例4】將30送到數(shù)碼管上顯示5秒鐘。0.0. 04 3002 05 01 1

19、5問題1:執(zhí)行此程序后,數(shù)碼管上不顯示30,而是顯示時間倒計時。因為延時指令有占用數(shù)碼管的優(yōu)先權(quán),此時要想達到延時的效果,只能用奏樂指令?!纠?】將30送到數(shù)碼管上顯示5秒鐘后,關(guān)閉數(shù)碼管。0.0. 04 3003 00 090.5. 05 0003 00 0910 0515問題2:數(shù)碼管一直顯示30,不執(zhí)行關(guān)閉數(shù)碼管指令,顯然此時用奏樂指令不行,還得用延時指令。0.0. 04 3003 00 090.5. 05 0002 05 0110 0515結(jié)論:通過此例題說明,當(dāng)使用送數(shù)指令時,不能用延時指令,因為數(shù)碼管會被占用進行倒計時,此時需要用奏樂指令來延時?!揪毩?xí)】1設(shè)計一個十進制和四位二進制

20、對照程序,數(shù)碼管上顯示十進制數(shù),用0、1、2、3這四個燈表示二進制數(shù),燈亮表示“1”,燈滅表示“0”。十進制數(shù)二進制數(shù)0000000100010200100300110401000501010601100701110810000910011010101110111211001311011411101511112讓0號燈亮0.4秒,然后讓1號燈亮0.6秒,最后讓2號燈亮0.8秒,循環(huán),在程序運行過程中數(shù)碼管一直處于關(guān)閉狀態(tài)。3讓6個發(fā)光二極管從前向后,再從后向前循環(huán)跑,延時0.2秒,在程序運行過程中數(shù)碼管一直處于關(guān)閉狀態(tài)。第十二次課1加數(shù)指令(45)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)加

21、數(shù)060099jsn加數(shù)指令功能:將數(shù)碼管上的數(shù)當(dāng)成被加數(shù),n為加數(shù),相加的結(jié)果送數(shù)碼管顯示?!纠?】計算33+56=?,結(jié)果顯示6.4秒。0.0. 04 33 06 5603 00 0915【例2】計算23+36+19=?,結(jié)果顯示4秒。0.0. 04 23 06 3606 1903 00 0503 00 0815當(dāng)用奏樂指令代替延時指令時,注意時間的表示代碼時間000.1秒010.2秒020.3秒030.4秒040.6秒050.8秒061.6秒072.4秒083.2秒096.4秒如延時4秒,可以用兩條奏樂指令拼湊時間:03 00 0503 00 08【例3】制作一個計數(shù)器,讓它從0開始每次

22、增加1,延時1秒。0.0. 04 0003 00 0303 00 0406 0110 0215試一試:如果和超過了99,會出現(xiàn)什么情況?當(dāng)超過99時,高位數(shù)碼管采用十六進制表示,能表示的最大的數(shù)為f9(159)?!纠?】制作一個計數(shù)器,讓它顯示0號燈閃的次數(shù)。0.0. 04 0006 0100 0003 00 0201 0003 00 0210 02152減數(shù)指令(52)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)減數(shù)070099jisn減數(shù)指令功能:將數(shù)碼管上的數(shù)當(dāng)成被減數(shù),n為減數(shù),相減的結(jié)果送數(shù)碼管顯示?!纠?】計算56-30=?,結(jié)果顯示3秒。0.0. 04 56 07 3003 00

23、 0403 00 0715【例6】計算56-30+19=?,結(jié)果顯示6.4秒。0.0. 04 56 07 3006 1903 00 0915【例7】制作一個計數(shù)器,讓它從99開始每次減1,延時0.8秒。0.0. 04 9903 00 0507 0110 0215【練習(xí)】1讓6個發(fā)光二極管同時閃,利用數(shù)碼管計閃的次數(shù)。2讓發(fā)光二極管從5跑到0號,邊跑邊奏樂,從中音6到中音1,同時數(shù)碼管上顯示相應(yīng)的音符。3讓0號與3號發(fā)光二極管交替閃,在數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼。如亮0號燈就顯示00,亮3號燈就顯示03,循環(huán)5次。4讓6個發(fā)光二極管循環(huán)跑起來(從0跑到5,再跑回0),在數(shù)碼管上顯示相應(yīng)的

24、發(fā)光二極管的代碼。如亮0號燈就顯示00,亮1號燈顯示01。循環(huán)3次。5讓發(fā)光二極管從0跑到5號,邊跑邊奏樂,從中音1到中音6,奏中音7時,關(guān)閉所有發(fā)光二極管,奏高音1時,點亮所有發(fā)光二極管;再奏中音7,關(guān)閉所有發(fā)光二極管,再讓發(fā)光二極管從5跑到0號,從中音6到中音1,同時數(shù)碼管上顯示相應(yīng)的音符,如奏中音1就顯示01。6順序點亮0至5號發(fā)光二極管,再逆序關(guān)閉這6個發(fā)光二極管,同時數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼,如亮0號燈就顯示00,亮1號燈就顯示01,循環(huán)。第十三次課1數(shù)相等轉(zhuǎn)指令(51)指令名稱機器碼助記符操作碼操作數(shù)操作碼操作數(shù)數(shù)相等轉(zhuǎn)11(0099)(0099)sdzn m數(shù)相等轉(zhuǎn)指令

25、功能:比較數(shù)碼管上的數(shù)與n是否相等,若相等,則轉(zhuǎn)到地址m去執(zhí)行指令,否則執(zhí)行下一條指令。【例1】讓5號發(fā)光二極管閃10次,利用數(shù)碼管計數(shù)。流程圖結(jié)束送數(shù)00加15號燈閃1次開始無條件轉(zhuǎn)與10相等嗎?0.0. 04 0006 0100 0503 00 0201 0503 00 0211 10 1910 021.9. 15yn【例2】讓2號與3號發(fā)光二極管交替閃90次,且用數(shù)碼管計數(shù)。流程圖結(jié)束送數(shù)00加12、3號交替閃開始無條件轉(zhuǎn)與90相等嗎?0.0. 04 0006 0100 0203 00 0201 0200 0303 00 0201 0311 90 2310 022.3. 15【練習(xí)】1順

26、序點亮0至5號發(fā)光二極管,再逆序關(guān)閉這6個發(fā)光二極管,循環(huán)20次,數(shù)碼管計數(shù)。2讓6個發(fā)光二極管從前向后,再從后向前循環(huán)跑25次,數(shù)碼管計數(shù)。30、1與5、4交替閃,1、2與3、4交替閃,循環(huán)10次,用數(shù)碼管計數(shù)。40、5號交替閃,1、4號交替閃,2、3號交替閃,循環(huán)16次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。50、5號同閃,1、4號同閃,2、3號同閃,0、5號同閃,1、4號同閃,循環(huán)13次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。6讓0號燈與5號燈交替閃3次,在數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼。如亮0號燈就顯示00,亮5號燈就顯示05,循環(huán)5次。7讓0、3號

27、燈交替閃3次,然后1、4號交替閃3次,再2、5號交替閃3次,同時數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼,循環(huán)3次。第十四次課【例1】畫流程圖,判斷5號燈閃的次數(shù)。結(jié)束送數(shù)00加15號燈閃開始無條件轉(zhuǎn)與20相等嗎?yn0.0. 04 00 0.2. 06 01 00 0520次 03 00 02 01 05 03 00 02 11 20 m 10 02 m: 15結(jié)束送數(shù)01加15號燈閃開始無條件轉(zhuǎn)與20相等嗎?yn0.0. 04 01 0.2. 00 05 03 00 02 01 0519次 03 00 02 06 0111 20 m 10 02 m: 15結(jié)束送數(shù)01加15號燈閃開始無條件轉(zhuǎn)與2

28、0相等嗎?yn0.0. 04 01 0.2. 11 20 m00 0519次 03 00 02 01 05 03 00 02 06 01 10 02 m: 15結(jié)束送數(shù)00加15號燈閃開始無條件轉(zhuǎn)與20相等嗎?yn0.0. 04 00 0.2. 06 0111 20 m00 0519次 03 00 02 01 05 03 00 02 10 02 m: 15結(jié)論:通過這四段程序,我們會發(fā)現(xiàn)后三種程序都少執(zhí)行了一次閃的動作。因為執(zhí)行加數(shù)指令之后,就直接進行判斷,當(dāng)數(shù)碼管上顯示20時,直接跳出循環(huán),沒有再執(zhí)行閃的動作。【例2】0號燈閃2次的時間內(nèi),1號燈閃6次,循環(huán)10次,數(shù)碼管計數(shù)。分析:1此題可

29、以用數(shù)相等轉(zhuǎn)與子程序的調(diào)用配合完成。 20號燈閃2次的時間內(nèi),1號燈閃6次,可以看成0號燈閃1次的時間內(nèi),1號燈閃3次,重復(fù)執(zhí)行兩次。因此可以把它作為子程序。 3主程序則用數(shù)相等轉(zhuǎn)指令來完成循環(huán)10次,計數(shù),循環(huán)的內(nèi)容為兩次調(diào)用子程序,流程圖如下:主程序結(jié)束送數(shù)00加1調(diào)用子程序開始無條件轉(zhuǎn)與10相等嗎?調(diào)用子程序0.0. 04 000.2. 06 01 12 m 12 m 11 10 n 10 02n: 15m: 00 00134在子程序中要實現(xiàn)0號燈閃1次的時間內(nèi),1號燈閃3次的任務(wù),就要掌握時間的分配。分配的方法有多種,如下圖所示:分配方案一:0號燈亮?xí)r,1號燈閃1次,0號燈滅時,1號燈

30、閃2次。0號燈閃1次0號燈滅1號燈閃3次0號燈亮延時延時1號燈滅1號燈亮延時延時1號燈滅1號燈亮延時延時1號燈滅1號燈亮延時延時代替延時代替延時分配方案二:0號燈亮?xí)r,1號燈閃2次,0號燈滅時,1號燈閃1次。分配方案三:0號燈亮?xí)r,1號燈閃1次半,0號燈滅時,1號燈閃1次半。0號燈閃1次0號燈滅1號燈閃3次0號燈亮延時延時1號燈滅1號燈亮延時延時1號燈滅1號燈亮延時延時1號燈滅1號燈亮延時延時代替延時代替延時流程圖結(jié)束開始送數(shù)00加10、3同閃1次無條件轉(zhuǎn)與3相等嗎?送數(shù)00加11、4同閃1次無條件轉(zhuǎn)與4相等嗎?送數(shù)00加12、5同閃1次無條件轉(zhuǎn)與5相等嗎?0.0. 04 000.2 06 0

31、100 0000 0303 00 0201 0001 0303 00 0211 03 2310 022.3. 04 002.5 06 0100 0100 0403 00 0201 0101 0403 00 0211 04 4610 254.6. 04 004.8 06 0100 0200 0503 00 0201 0201 0503 00 0211 05 6910 486.9. 15【例2】讓0號、3號燈同閃3次,1號、4號燈同閃4次,2號、5號燈同閃5次,循環(huán)?!揪毩?xí)】1數(shù)碼管從00開始計數(shù),每次增加1,延時1秒,到60后再遞減,每次減1到00,循環(huán)。20、3號同閃3次,1、4號同閃3次,2

32、、5號同閃3次,循環(huán)20次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。30、1同閃1、2同閃2、3同閃3、4同閃4、5同閃3、4同閃2、3同閃1、2同閃0、1同閃,循環(huán)15次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。第十五、十六次課10、3交替閃1、4交替閃2、5交替閃1、4交替閃0、3交替閃,循環(huán)30次,數(shù)碼管計數(shù),然后6個發(fā)光二極管同閃10次,數(shù)碼管計數(shù)。 20、1、2依次閃,5、4、3依次閃,循環(huán)10次,數(shù)碼管計數(shù),然后0至5至0依次閃,循環(huán)20次,數(shù)碼管計數(shù)。30、1、2同閃1、2、3同閃2、3、4同閃3、4、5同閃2、3、4同閃1、2、3同閃0、1、2同閃,

33、循環(huán)8次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。4讓發(fā)光二極管按0-5-4-1-2-3-4-1-0-5的順序跑,同時數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼,循環(huán)3次。5讓發(fā)光二極管按2-3-4-1-0-5-4-1-2-3的順序跑,循環(huán)3次,在程序運行過程中數(shù)碼管一直處于關(guān)閉狀態(tài)。6讓0號燈閃3次,然后從0跑到5,再讓5號燈閃3次,再從5跑到0,同時數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼,循環(huán)3次后數(shù)碼管一直處于關(guān)閉狀態(tài)。72、3號交替閃,1、4號交替閃,0、5號交替閃,循環(huán)3次后數(shù)碼管一直處于關(guān)閉狀態(tài)。82、5同閃1、4同閃0、3同閃1、4同閃2、5同閃,循環(huán)4次,奏樂,同時數(shù)碼管上顯

34、示演奏的音符。90、1、2依次閃,5、4、3依次閃,兩組交替閃5次,奏樂,同時數(shù)碼管上顯示演奏的音符。中級班注:需要自備兩頭為雙插孔的導(dǎo)線10根和兩頭為針狀導(dǎo)線10根。第一次課10、5號交替閃,1、4號交替閃,2、3號交替閃,循環(huán)16次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。20、5號同閃,1、4號同閃,2、3號同閃,0、5號同閃,1、4號同閃,循環(huán)13次,數(shù)碼管計循環(huán)的次數(shù),循環(huán)結(jié)束后數(shù)碼管一直處于關(guān)閉狀態(tài)。3讓0號燈與5號燈交替閃3次,在數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼。如亮0號燈就顯示00,亮5號燈就顯示05,循環(huán)5次。4讓0、3號燈交替閃3次,然后1、4號交替閃3次,

35、再2、5號交替閃3次,同時數(shù)碼管上顯示相應(yīng)的發(fā)光二極管的代碼,循環(huán)3次。第二次課【實驗一】同時點亮05號燈,循環(huán)。 運行程序后,將圖中所示的05號短路環(huán)依次取下,觀察發(fā)光二極管的狀態(tài)?!緦嶒灦客瑫r點亮05號燈,循環(huán)。 將05號短路環(huán)全部取下。運行程序后,將05號短路環(huán)全部取下,6個發(fā)光二極管全不亮了。在沒有短路環(huán)的情況下,怎樣讓發(fā)光二極管亮起來? 如圖所示,用兩頭為雙插孔的導(dǎo)線將輸出端口的00號針與1號短路環(huán)上側(cè)的針連接起來,觀察實驗現(xiàn)象。 同理,將輸出端口的01號針與2號短路環(huán)上側(cè)的針相連,以此類推。結(jié)論:輸出端口的0005號針與短路環(huán)外側(cè)的針在電路中是相通的?!緦嶒炄枯斎肴缦鲁绦?。(短

36、路環(huán)全部取下)0.0. 00 00 02 05 01 10 00 15運行程序后,將導(dǎo)線的一端插在輸出端口的00號針上,另一端依次插在05號短路環(huán)外側(cè)的針上,觀察實驗現(xiàn)象?!緦嶒炈摹繉嶒炄绦蛑械牡谝粭l指令改為“00 07”運行程序后,將導(dǎo)線的一端插在輸出端口的07號針上,另一端依次插在05號短路環(huán)外側(cè)的針上,觀察實驗現(xiàn)象。結(jié)論:接通指令后面的操作數(shù)指的是dp-801的輸出端口0007,斷開指令同理?!緦嶒炍濉繉⒂脩舫绦蚯宄瑢⒍搪翻h(huán)全部取下,然后導(dǎo)線一端插在gnd針上,另一端插在任意一個短路環(huán)外側(cè)的針上,觀察實驗現(xiàn)象?!緦嶒灹繉⒂脩舫绦蚯宄?,將短路環(huán)全部安上,然后導(dǎo)線一端插在gnd針上,

37、另一端插在0005任意一個輸出針上,觀察實驗現(xiàn)象。練習(xí)1用6號i/o口控制0號發(fā)光二極管,讓0號發(fā)光極二管閃起來,數(shù)碼管計閃動的次數(shù)。2用7號i/o口控制2號發(fā)光二極管,用6號i/o口控制3號發(fā)光二極管,讓2、3號發(fā)光二極管交替閃起來,數(shù)碼管計閃動的次數(shù)。第三次課用dp801控制變光管(dp801-1板)。物理連線如下圖,用兩頭為雙插孔的導(dǎo)線按圖示接連好。 dp801主板 變光管實驗前將dp-801上的6個短路環(huán)接好,觀察變光管的顏色?!緦嶒炓弧奎c亮0號和4號發(fā)光二極管,觀察變光管的顏色?!緦嶒灦奎c亮0號發(fā)光二極管,關(guān)閉4號發(fā)光二極管,觀察變光管的顏色。【實驗三】點亮4號發(fā)光二極管,關(guān)閉0號

38、發(fā)光二極管,觀察變光管的顏色。請你通過實驗判斷變光管有幾種顏色?顏色chu1chu2白00黃11紅01綠10練習(xí)1讓變光管按紅、黃、綠的順序變色,循環(huán)10次,并用數(shù)碼管計數(shù)。2讓變光管按紅、黃、綠的順序變色,循環(huán)10次,并用數(shù)碼管計數(shù)。循環(huán)結(jié)束后,變光管為白色。第四次課1讓變光管按綠、黃、紅的順序變色,循環(huán)90次,并用數(shù)碼管計數(shù)。2讓變光管先閃10次綠光后,再閃10次黃光,最后閃10次紅光,關(guān)閉,用數(shù)碼管計每次閃動的次數(shù)。3利用dp-801上的6個發(fā)光二極管與變光管制作一組燈,有如下規(guī)律: 當(dāng)變光管為紅色時,dp-801實現(xiàn)跑燈,從0跑到5; 當(dāng)變光管為綠色時,dp-801實現(xiàn)跑燈,從5跑到0

39、; 當(dāng)變光管為黃色時,dp-801實現(xiàn)依次點亮05號燈; 當(dāng)變光管為白色時,dp-801實現(xiàn)逆序關(guān)燈; 循環(huán)10次,計數(shù)。第五次課用dp801控制三色燈,物理連線如下圖,在三色燈板上用兩頭為針狀導(dǎo)線按圖示連好線,用配備的寬數(shù)據(jù)線將三色燈左側(cè)的26針座與dp801上的26針座連接好。實驗前將dp-801上的6個短路環(huán)接好,觀察三色燈的狀態(tài)?!緦嶒炓弧奎c亮0號和1號發(fā)光二極管,觀察三色燈的變化。【實驗二】點亮0號發(fā)光二極管,關(guān)閉1號發(fā)光二極管,觀察三色燈的變化?!緦嶒炄奎c亮1號發(fā)光二極管,關(guān)閉0號發(fā)光二極管,觀察三色燈的變化?!緦嶒炈摹奎c亮2號和3號發(fā)光二極管,觀察三色燈的變化?!緦嶒炍濉奎c亮2

40、號發(fā)光二極管,關(guān)閉3號發(fā)光二極管,觀察三色燈的變化?!緦嶒灹奎c亮3號發(fā)光二極管,關(guān)閉2號發(fā)光二極管,觀察三色燈的變化?!緦嶒炂摺奎c亮4號和5號發(fā)光二極管,觀察三色燈的變化?!緦嶒灠恕奎c亮4號發(fā)光二極管,關(guān)閉5號發(fā)光二極管,觀察三色燈的變化。【實驗九】點亮5號發(fā)光二極管,關(guān)閉4號發(fā)光二極管,觀察三色燈的變化。通過以上實驗?zāi)愕贸鍪裁唇Y(jié)論?你能找出三色燈三種顏色的變化規(guī)律嗎?三色燈 輸出口顏色012345黃111111白000000綠010101紅101010注:1斷開,0接通【練習(xí)】1讓3個燈同時按紅、黃、綠的順序循環(huán)變色10次,數(shù)碼管計數(shù)。2 關(guān)閉,燈按紅黃綠順序循環(huán)變色5次,關(guān)閉,數(shù)碼管計數(shù)

41、;然后關(guān)閉,燈按綠黃紅順序循環(huán)變色5次,關(guān)閉,數(shù)碼管計數(shù);然后關(guān)閉,燈按黃紅綠順序循環(huán)變色5次,關(guān)閉,數(shù)碼管計數(shù);然后關(guān)閉。第六次課用dp801控制三色燈,用寬數(shù)據(jù)線將三色燈左側(cè)的26針座與dp801上右側(cè)的26針座連接好。并按如下要求在三色燈板上連接好線。 chu06 chu15 chu24 chu33 chu42 chu51實驗前將dp-801上的6個短路環(huán)接好,觀察三色燈的狀態(tài)?!緦嶒炓弧奎c亮0號和1號發(fā)光二極管,觀察三色燈的變化?!緦嶒灦奎c亮0號發(fā)光二極管,關(guān)閉1號發(fā)光二極管,觀察三色燈的變化?!緦嶒炄奎c亮1號發(fā)光二極管,關(guān)閉0號發(fā)光二極管,觀察三色燈的變化。【實驗四】點亮2號和3

42、號發(fā)光二極管,觀察三色燈的變化?!緦嶒炍濉奎c亮2號發(fā)光二極管,關(guān)閉3號發(fā)光二極管,觀察三色燈的變化。【實驗六】點亮3號發(fā)光二極管,關(guān)閉2號發(fā)光二極管,觀察三色燈的變化。【實驗七】點亮4號和5號發(fā)光二極管,觀察三色燈的變化?!緦嶒灠恕奎c亮4號發(fā)光二極管,關(guān)閉5號發(fā)光二極管,觀察三色燈的變化。【實驗九】點亮5號發(fā)光二極管,關(guān)閉4號發(fā)光二極管,觀察三色燈的變化。通過以上實驗?zāi)愕贸鍪裁唇Y(jié)論? 【練習(xí)】1讓3個燈同時按紅、黃、綠的順序循環(huán)變色10次,數(shù)碼管計數(shù)。2 關(guān)閉,燈按紅黃綠順序循環(huán)變色5次,關(guān)閉,數(shù)碼管計數(shù);然后關(guān)閉,燈按綠黃紅順序循環(huán)變色5次,關(guān)閉,數(shù)碼管計數(shù);然后關(guān)閉,燈按黃紅綠順序循環(huán)變色

43、5次,關(guān)閉,數(shù)碼管計數(shù);然后關(guān)閉。第七次課-習(xí)題課用dp801單片機控制三色燈,左燈1號燈,中燈2號燈,右燈3號燈。按第五次課方法連線,要求如下:1、1燈發(fā)紅光;2燈發(fā)綠光;3燈閃動橙光,閃動間隔0.5秒;2、1燈閃綠光,閃動間隔0.5秒;2燈不發(fā)光;3燈發(fā)紅光;3、1燈不發(fā)光;2燈在紅、橙光間轉(zhuǎn)換,轉(zhuǎn)換間隔0.5秒;3燈發(fā)綠光;4、1燈發(fā)綠光;2燈不發(fā)光;3燈在綠橙光間轉(zhuǎn)換,轉(zhuǎn)換間隔0.5秒;5、1燈發(fā)紅光;2燈閃動橙光,閃動間隔0.5秒;3燈發(fā)綠光;6、1燈在橙、紅光間轉(zhuǎn)換,轉(zhuǎn)換間隔0.5秒;2燈發(fā)綠光;3燈不發(fā)光;7、1燈發(fā)綠光;2燈發(fā)紅光;3燈閃動綠光,閃動間隔0.5秒;8、1燈閃紅光

44、,閃動間隔0.5秒;2燈不發(fā)光;3燈發(fā)綠光;9、1燈發(fā)紅光;2燈在紅、綠光間轉(zhuǎn)換,轉(zhuǎn)換間隔0.5秒;3燈發(fā)綠光;10、1燈不發(fā)光;2燈發(fā)綠光;3燈在綠橙光間轉(zhuǎn)換,轉(zhuǎn)換間隔0.5秒;第八次課-習(xí)題課用dp801單片機控制dp8011擴展板上的三色燈,左燈1號燈,中燈2號燈,右燈3號燈。按第五次課方法連線,要求如下:1、 1號燈按紅黃的順序發(fā)光,循環(huán)3次后為不發(fā)光,閃動間隔0.4秒;2號燈始終不發(fā)光;3號燈始終不發(fā)光。直到按復(fù)位鍵結(jié)束程序的運行,1、2、3號燈才恢復(fù)為發(fā)黃光。2、 1號燈始終不發(fā)光;2號燈始終不發(fā)光; 3號燈按綠黃的順序發(fā)光,循環(huán)4次后不發(fā)光,閃動間隔0.4秒;直到按復(fù)位鍵結(jié)束程序的運行,1、2、3號燈才恢復(fù)為發(fā)黃光。3、 1號燈發(fā)紅光時2號燈發(fā)綠光,2號燈發(fā)紅光時1號燈發(fā)綠光,兩燈交替閃爍,循環(huán)10次之后為不發(fā)光,閃動間隔0.4秒;3號燈始終不發(fā)光。直到按復(fù)位鍵結(jié)束程序的運行,1、2、3號燈才恢復(fù)為發(fā)黃光。4、 1號燈始終不發(fā)光;2號燈按綠黃順序循環(huán)10次,然后不發(fā)光,閃動間隔0.4秒;3號燈始終不發(fā)光;直到按復(fù)位鍵結(jié)束程序的運行,1、2、3號燈才恢復(fù)為發(fā)黃光。5、 1、2號燈同時按綠黃順序循環(huán)5次,然后不發(fā)光,閃動間隔0.4秒;3號燈始終不發(fā)光。直到按復(fù)位鍵結(jié)束程序的運行,1、2、3號燈才恢復(fù)為發(fā)黃光。6、 2號燈按紅綠的順

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論