單片機并口簡單應(yīng)用(流水燈)_第1頁
單片機并口簡單應(yīng)用(流水燈)_第2頁
單片機并口簡單應(yīng)用(流水燈)_第3頁
單片機并口簡單應(yīng)用(流水燈)_第4頁
單片機并口簡單應(yīng)用(流水燈)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

75實驗一單片機并口簡單應(yīng)用(流水燈)7509 電氣陳毅斌32號實驗?zāi)康?、了解單片機匯編語言程序的基本結(jié)構(gòu)2、了解單片機匯編語言程序的設(shè)計和調(diào)試方法3、掌握順序控制程序的簡單編程實驗儀器單片機開發(fā)板、萬利仿真機、穩(wěn)壓電源、計算機實驗原理流水燈硬件電路如圖4-1所示,流水燈硬件電路由移位寄存器74LS164、功能選擇開關(guān)J502、二極管、三極管、單片機并口(P0)、限流電阻等組成。發(fā)光二極管連接成共陽極結(jié)構(gòu)。發(fā)光二極管點亮的條件是:陽極接高電平、各陰極接低電平。因此,通過程序控制74LS164的Q0端。Q0端輸出0,公共端陽極就接成高電平,然后再按一定規(guī)則從P0口輸出數(shù)據(jù),發(fā)光二極管就會點亮。圖4-1流水燈電路圖單片機流水燈程序設(shè)計由上圖可知,發(fā)光二極管要點亮,需要先把J502的2、3腳相連,三極管Q500導(dǎo)通,然后從P0口輸出數(shù)據(jù)。(1)控制三極管導(dǎo)通程序控制三極管有兩種方法,第一種:在74LS164的第8腳產(chǎn)生一個正脈沖,此時1腳為0,三極管就導(dǎo)通;為1,三極管就截止。第二種:在單片機IO模擬74LS164時序,一次輸出一個字節(jié),只要Q0=0即可控制三極管開通。為1,三極管截止。三極管導(dǎo)通DIN=0,CLK=0,輸出8位三極管導(dǎo)通DIN=0,CLK=0,輸出8位輸出數(shù)據(jù)=07FH(最高位為0)輸出數(shù)據(jù)左移一位,把移出的位送到DIN,CLK產(chǎn)生正脈沖CLK產(chǎn)生一個正脈沖輸出數(shù)據(jù)位數(shù)減1輸出完成?三極管導(dǎo)通三極管導(dǎo)通三極管導(dǎo)通DIN=0CLK=0CLK=1CLK=0返回圖4-2流水燈位選信號控制(2)產(chǎn)生流水燈效果程序三極管導(dǎo)通后,就可以從P0口輸出數(shù)據(jù)控制發(fā)光二極管。P0口輸出數(shù)據(jù)既可以編寫程序逐個輸出,也可以將輸出數(shù)據(jù)序列定義在存儲器中,然后用讀程序存儲器指令逐個取出并輸出到P0口。程序流程圖如圖4-3所示。流水燈返回流水燈返回P0口輸出0FEH延時0.2秒P0口輸出0FDH延時0.2秒。。。流水燈返回偏移位置為8從程序存儲器中取出偏移位置的數(shù)據(jù)延時0.2秒,偏移位置計數(shù)減1取數(shù)完成?YN圖4-3流水燈程序流程圖實驗內(nèi)容1、直接輸出法輸出數(shù)據(jù)序列LEDCLK bit P3.4LEDDIN bit P2.3ORG 0000HLJMP MAINORG 0030HMAIN: LCALLLedSequence ;調(diào)用LED此程序產(chǎn)生流水燈效果 SJMPMAINLedSequence: CLR LEDCLK ;往74LS164的Q0端送一個0 CLR LEDDIN ;CLK引腳產(chǎn)生一個正脈沖 NOP SETB LEDCLK NOP CLR LEDCLK MOV P0,#0FEH ;為0的位對應(yīng)的二極管亮,第一個燈亮 MOV R7,#200 ;R7為延時量,Nms LCALL DelayNms ;該程序延時時間由R7決定MOV P0,#0FDH ;第二個燈亮 MOV R7,#200 LCALL DelayNms MOV P0,#0FBH ;第三個燈亮 MOV R7,#200 LCALL DelayNmsMOV P0,#0F7H ;第四個燈亮 MOV R7,#200 LCALL DelayNmsMOV P0,#11101111B ;第五個燈亮 MOV R7,#200 LCALL DelayNmsMOV P0,#11011111B ;第六個燈亮 MOV R7,#200 LCALL DelayNmsMOV P0,#10111111B ;第七個燈亮 MOV R7,#200 LCALL DelayNmsMOV P0,#01111111B ;第八個燈亮 MOV R7,#200 LCALL DelayNms RETDelayNms: LCALL Delay1ms DJNZ R7,$-3 RETDelay1ms: ;延時1ms程序 PUSH 07 MOV R7,#250 ;1ms NOP NOP DJNZ R7,$-2 POP 07 RETEND2、查表法輸出數(shù)據(jù)序列LEDCLK bit P3.4LEDDIN bit P2.3ORG 0000HLJMP MAINORG 0030HMAIN: LCALL LedSequence ;調(diào)用LED此程序查表方法設(shè)置流水燈 SJMP MAINLedSequence: LCALL LedLightMOV R6,#8 ;循環(huán)次數(shù)賦值MOV DPTR,#LedSequenceTab ;查表賦值首地址LedSequence1:MOV A,R6MOVC A,@A+DPTRCPL A ;取反使得只有一個位為0其余為1MOV P0,AMOV R7,#200LCALL DelayNms ;調(diào)用延遲時間DJNZ R6,LedSequence1RETLedSequenceTab: DB 80H,40H,20H,10H,08H,04H,02H,01H,00HDelayNms: LCALL Delay1ms DJNZ R7,$-3 RETDelay1ms: MOVA,R7 MOV R7,#250 ;1ms NOP NOP DJNZ R7,$-2 MOV R7,A RETLedLight: MOV B,#8 MOV A,#0FEH CLR LEDCLK CLR LEDDINLedLight1: RLC A MOV LEDDIN,CSETB LEDCLK NOP CLR LEDCLK DJNZ B,LedLight1 RET3.將學(xué)號后兩位對應(yīng)的二進制為1的燈點亮LEDCLK bitP3.4;LEDDINbitP2.3; ORG0000H SJMPMAIN ORG0030HMAIN: MOV SP,#60H ;設(shè)置堆棧 CLR LEDCLK ;開啟三極管 CLR LEDDIN SETB LEDCLK MOV P0,#00010000B ;P0口送入值為0口燈亮MAIN1: AJMP MAIN1END運行結(jié)果:思考題請把學(xué)號后兩位數(shù)進轉(zhuǎn)換成二進制數(shù),然后依次點亮其中為1對應(yīng)的二極管,寫出輸出序列。例如,60號轉(zhuǎn)換成二進制后是00111100B,依次點亮四個1對應(yīng)的二極管,輸出序列是0DFH,0EFH,0F7H,0FCH.(從低位到高位也可以)LEDCLK bit P3.4LEDDIN bit P3.6ORG0000HLJMPMAINORG0030HMAIN: LCALLLedSequence ;調(diào)用LED此程序產(chǎn)生流水燈效果 SJMP$LedSequence:此代碼能實現(xiàn)思考題的功能? CLR LEDCLK ;往74LS164的Q0端送一個0此代碼能實現(xiàn)思考題的功能? CLR LEDDIN ;CLK引腳產(chǎn)生一個正脈沖 NOP SETB LEDCLK NOP CLR LEDCLK MOV P0,#0FEH ;為0的位對應(yīng)的二極管亮,第一個燈亮 MOV R7,#200 ;R7為延時量,Nms LCALL DelayNms ;該程序延時時間由R7決定MOV P0,#0FDH ;第二個燈亮 MOV R7,#200 LCALL DelayNms MOV P0,#0FBH ;第三個燈亮 MOV R7,#200 LCALL DelayNmsDelayNms: LCALL Delay1ms DJNZ R7,$-3 RETDelay1ms: ;延時1ms程序 PUSH 07 MOV R7,#250 ;1ms NOP NOP DJNZ R7,$-2 POP 07 RET參考實驗內(nèi)容2,編寫程序把輸出序列增加到30個。LEDCLK bit P3.4LEDDIN bit P2.3ORG 0000HLJMP MAINORG 0030HMAIN: LCALL LedSequence ;調(diào)用LED此程序查表方法設(shè)置流水燈 SJMP MAINLedSequence: LCALL LedLightMOV R6,#30 ;循環(huán)次數(shù)賦值賦值30個MOV DPTR,#LedSequenceTab ;查表賦值首地址LedSequence1: MOV A,R6MOVC A,@A+DPTRCPL A ;取反使得只有一個位為0其余為1MOV P0,AMOV R7,#200LCALL DelayNms ;調(diào)用延遲時間DJNZ R6,LedSequence1RETLedSequenceTab: DB 80H,40H,20H,10H,08H,04H,02H,01H,00H ;查表的增加到30個 DB 11H,22H,33H,44H,55H,66H,77H,88H,99H DB 12H,34H,56H,78H,90H,12H,34H,56H,78H DB 12H,34H,56HDelayNms: LCALL Delay1ms DJNZ R7,$-3 RETDelay1

溫馨提示

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

最新文檔

評論

0/150

提交評論