單片機(jī)實(shí)習(xí)指導(dǎo)書_第1頁(yè)
單片機(jī)實(shí)習(xí)指導(dǎo)書_第2頁(yè)
單片機(jī)實(shí)習(xí)指導(dǎo)書_第3頁(yè)
單片機(jī)實(shí)習(xí)指導(dǎo)書_第4頁(yè)
單片機(jī)實(shí)習(xí)指導(dǎo)書_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)實(shí)習(xí)指導(dǎo)書揚(yáng)州工業(yè)職業(yè)技術(shù)學(xué)院微機(jī)原理實(shí)驗(yàn)室前言單片機(jī)課程是一門大多數(shù)同學(xué)都感覺難學(xué)的課程,學(xué)習(xí)效果均不太理想,原因主要在于匯編語(yǔ)言程序結(jié)構(gòu)和編程方法不便理解,MCS51匯編語(yǔ)言的指令數(shù)較多,不便記憶,相關(guān)硬件電路不理解其工作原理及機(jī)制,在學(xué)習(xí)過(guò)程中漸漸失去了學(xué)習(xí)的興趣。鑒于以上學(xué)習(xí)現(xiàn)狀,在理論學(xué)習(xí)結(jié)束后安排了本次實(shí)習(xí),旨在讓學(xué)生理論聯(lián)系實(shí)際,鞏固理論的同時(shí)掌握單片機(jī)實(shí)際應(yīng)用的基本模式和注意事項(xiàng)。通過(guò)四種實(shí)習(xí)線路套件的安裝讓學(xué)生能在其中體會(huì)到單片機(jī)的神奇功能,減低對(duì)于本課程的畏懼感,增添學(xué)習(xí)的興趣。四種實(shí)習(xí)線路包括:時(shí)鐘電路:以AT89S51為核心,編寫程序控制四只數(shù)碼管構(gòu)成各種時(shí)制的時(shí)鐘;音響電路:以AT89S51為核心,編寫程序讓某一引腳控制的喇叭演奏出不同的樂(lè)曲。交通燈電路:以AT89S51為核心,編寫程序控制12個(gè)引腳所接的發(fā)光二極管按十字路口交通燈的規(guī)律閃亮。串行通訊電路:以AT89S51為核心,編寫程序接收上位主機(jī)發(fā)送的信號(hào),控制小電機(jī)正轉(zhuǎn)或反轉(zhuǎn)。本指導(dǎo)書主要分為三部分:1、單片機(jī)概述及AT89S51單片機(jī)芯片;2、程序編譯和芯片寫入;3、四種實(shí)習(xí)線路及源程序的說(shuō)明。單片機(jī)概述一、單片機(jī)概述單片機(jī)是一種集成電路芯片,采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力(如算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送、中斷處理)的微處理器(CPU),隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM)、只讀程序存儲(chǔ)器(ROM)、輸入/輸出電路(I/O)、定時(shí)/計(jì)數(shù)器、串行通訊口,可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模數(shù)轉(zhuǎn)換等電路集成到一片芯片上,構(gòu)成一個(gè)最小而又完善的計(jì)算機(jī)系統(tǒng)。它們之間相互連接的結(jié)構(gòu)框圖如下圖所示。這些電路能在軟件的控制下準(zhǔn)確、迅速、高效地完成程序設(shè)計(jì)者事先規(guī)定的任務(wù)。單片機(jī)有著微處理器所不具備的功能,它可單獨(dú)完成現(xiàn)代工業(yè)控制所要求的智能化控制功能,這是單片機(jī)最大的特征。然而單片機(jī)又不同于單板機(jī),芯片在沒(méi)有開發(fā)前,它只具備功能極強(qiáng)的超大規(guī)模集成電路,如果賦于它特定的程序,它便是一個(gè)最小的、完整的微型計(jì)算機(jī)控制系統(tǒng),它與單板機(jī)或個(gè)人電腦有著本質(zhì)的區(qū)別。單片機(jī)的應(yīng)用屬于芯片級(jí)應(yīng)用,需要用戶了解單片機(jī)芯片的結(jié)構(gòu)和指令系統(tǒng),以及其它集成電路應(yīng)用技術(shù)和系統(tǒng)設(shè)計(jì)所需要的理論與技術(shù),用這樣特定的芯片設(shè)計(jì)應(yīng)用程序,從而使該芯片具備特定的功能。單片機(jī)的應(yīng)用極為廣泛,它涉及智能儀器儀表、工業(yè)控制、計(jì)算機(jī)網(wǎng)絡(luò)和通信以及醫(yī)用設(shè)備等領(lǐng)域。它以無(wú)與倫比的高性能、低價(jià)位贏得了廣大電子開發(fā)者的喜愛。1976年Intel公司推出了真正意義上的單片機(jī)MCS—48,它以體積小、功能全、價(jià)格低贏得了廣泛的應(yīng)用,為單片機(jī)的發(fā)展奠定了基礎(chǔ),成為單片機(jī)發(fā)展史上重要的里程碑。在MCS—48的帶領(lǐng)下,各半導(dǎo)體公司相繼研制和發(fā)展了自己的單片機(jī),如Zilog公司的Z80、Motorola公司的6801、6802系列等。美國(guó)的Atmel公司把單片機(jī)技術(shù)與先進(jìn)的Flash存儲(chǔ)技術(shù)完美地結(jié)合起來(lái),發(fā)布了性能相當(dāng)優(yōu)秀的AT89系列單片機(jī),很多電器設(shè)備裝置的測(cè)量、顯示、控制單元都是以其為核心構(gòu)成,如我院的《傳感器與檢測(cè)技術(shù)》實(shí)驗(yàn)臺(tái)的計(jì)時(shí)單元、液晶屏顯示單元等都能看到AT89系列芯片的應(yīng)用。本次實(shí)習(xí)所設(shè)計(jì)的線路便是以AT89S51芯片為核心的單片機(jī)控制線路。二、AT89S51芯片介紹AT89S51是一個(gè)低功耗、高性能,采用CMOS工藝制造的8位單片機(jī),是Atmel公司AT89系列中的一款性能相當(dāng)優(yōu)異的產(chǎn)品,兼容標(biāo)準(zhǔn)MCS—51指令系統(tǒng)及其引腳結(jié)構(gòu),與Atmel公司其它產(chǎn)品相比AT89S51或AT89S52的最大特點(diǎn)是:能在線編程,且編程連線極簡(jiǎn)單。AT89S51片內(nèi)含4KBISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,故本次實(shí)習(xí)選用AT89S51芯片,每個(gè)人將單片機(jī)安裝至電路板后,就不用再拔來(lái)拔去,可直接和主機(jī)連接進(jìn)行程序下載。AT89S51具有如下特征參數(shù):40個(gè)引腳、4KBFlash片內(nèi)程序存儲(chǔ)器、128B的RAM,4個(gè)可編程I/O口、5個(gè)帶2級(jí)中斷嵌套的中斷、2個(gè)16位可編程定時(shí)計(jì)數(shù)器、1個(gè)全雙工串行通訊口、看門狗(WDT)電路、片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0HZ并可通過(guò)軟件設(shè)置省電模式??臻e掉電模式下,CPU暫停工作,而RAM、定時(shí)/計(jì)數(shù)器、串行口、外中斷系統(tǒng)可繼續(xù)工作;掉電模式下,“凍結(jié)”振蕩器而保存RAM的數(shù)據(jù),停止芯片其他功能直至外中斷激活或硬件復(fù)位。AT89S51具有PDIP、TQFP、PLCC三種封裝形式,以適應(yīng)不同產(chǎn)品的需求,三種封裝如下圖所示。本次實(shí)習(xí)使用第一種PDIP封裝芯片。程序編譯和芯片寫入市面上能對(duì)MCS51匯編語(yǔ)言進(jìn)行編輯和編譯的軟件很多,偉福編輯器(WAVE2000)是一種基于視窗操作系統(tǒng)、具備良好操作界面、便于初學(xué)者進(jìn)行學(xué)習(xí)開發(fā)的軟件。雙擊桌面圖標(biāo),啟動(dòng)軟件,界面如下圖所示。保存按鈕編譯生成二進(jìn)制文件按鈕新建文件保存按鈕編譯生成二進(jìn)制文件按鈕新建文件按鈕程序編輯區(qū)程序編輯區(qū)選擇‘新建文件’按鈕,在程序編輯區(qū)內(nèi)輸入程序,檢查無(wú)誤后選‘保存’按鈕會(huì)出現(xiàn)保存對(duì)話框,首先選擇相應(yīng)的文件夾,然后在‘文件名’欄輸入文件名,注意擴(kuò)展名必須為ASM文件,否則無(wú)法進(jìn)行編譯,再按下‘編譯’按鈕,即可生成擴(kuò)展名為BIN的二進(jìn)制文件,它們和源程序文件在同一個(gè)文件夾,這樣便于寫入芯片時(shí)查找相應(yīng)文件。進(jìn)行芯片程序?qū)懭氩僮鲿r(shí),先連接編程電纜,注意此時(shí)實(shí)習(xí)電路板必須是斷電狀態(tài),否則可能燒壞計(jì)算機(jī)并口,電纜連接好后才能通電。點(diǎn)擊桌面“偉煌ISP電纜”圖標(biāo),啟動(dòng)軟件,先進(jìn)行通訊檢測(cè)和器件檢測(cè),再依次進(jìn)行擦除芯片、打開文件(經(jīng)過(guò)WAVE編譯生成的二進(jìn)制文件)、寫FLASHROM三個(gè)步驟,就可將程序?qū)懭胄酒?,寫入后程序自?dòng)運(yùn)行,如結(jié)果正確,先將實(shí)習(xí)電路板斷電,再拔除編程電纜。實(shí)習(xí)線路說(shuō)明1、時(shí)鐘電路本電路是利用AT89S51的P0口控制四位數(shù)碼管的8個(gè)段,用P2口的P2.7---P2.4控制四個(gè)數(shù)碼管的公共端,掃描顯示出各種時(shí)制的時(shí)間。數(shù)碼管采用四位共體式新型時(shí)鐘專用數(shù)碼管。電路圖如下圖所示。24小時(shí)制時(shí)鐘源程序如下:org0000h;本程序?yàn)?4小時(shí)顯示程序,有四位:十小時(shí)位、小時(shí)位、十分位、分位秒位用發(fā)光二極管閃亮顯示。ljmpmain;發(fā)光二極管每閃亮一次為1秒鐘.org000bh;定時(shí)/計(jì)數(shù)器0的中斷矢量設(shè)定。ljmpint110org001bh;定時(shí)/計(jì)數(shù)器1的中斷矢量設(shè)定ljmpintorg0100hmain:mov30h,#0c0h;將分位顯示緩沖單元設(shè)為十進(jìn)制0的顯示碼mov31h,#0c0h;將十分位顯示緩沖單元設(shè)為十進(jìn)制0的顯示碼mov32h,#0c0h;將小時(shí)位顯示緩沖單元設(shè)為十進(jìn)制0的顯示碼mov33h,#0ffh;將十小時(shí)位顯示緩沖單元設(shè)為十進(jìn)制0的顯示碼movr0,#14h;將R0的內(nèi)容置為20,定時(shí)器每50ms中斷一次,將R0內(nèi)容減1,減20次即為1秒鐘movr1,#00;秒計(jì)數(shù)器movr2,#00;分鐘計(jì)數(shù)器movr3,#00;小時(shí)計(jì)數(shù)器movr4,#0ah;秒點(diǎn)計(jì)數(shù)器,計(jì)數(shù)10次,每次50ms,10次即500ms,讓秒點(diǎn)亮0.5s,再熄滅0.5s這樣每亮一次為1秒鐘.setbp1.0setbp1.1movdptr,#tablemovtmod,#11h;定時(shí)器0、1設(shè)定為工作方式1,為16位定時(shí)計(jì)數(shù)器movth1,#4bh;確定定時(shí)計(jì)數(shù)器1延時(shí)50ms的時(shí)間常數(shù)movtl1,#0fdhmovth0,#4bh;確定定時(shí)器0延時(shí)50ms的時(shí)間常數(shù)movtl0,#0fdhsetbea;開放中斷控制寄存器IE的總控位setbet1;開放IE的定時(shí)/計(jì)數(shù)器1的中斷響應(yīng)控制位setbtr1;定時(shí)/計(jì)數(shù)器1的啟動(dòng)控制位,為1啟動(dòng),為0停止setbet0setbtr0loop1:jbp1.0,p10k;檢測(cè)p1.0口的電位,如按鈕按下則該位為0,如為1則表明按鈕沒(méi)有按,則轉(zhuǎn)到p10k處順序向下執(zhí)行incr2;如p1.0口的開關(guān)按下,則將分鐘計(jì)數(shù)器r2內(nèi)容加1。acalldelay1;調(diào)用0.2s的延時(shí)程序,防止分鐘計(jì)數(shù)器增長(zhǎng)過(guò)快,不便調(diào)節(jié)jmpsw2p10k:jbp1.1,p11kincr3;如P1.1口的開關(guān)按下,則將小時(shí)計(jì)數(shù)器r3內(nèi)容加1。acalldelay1;調(diào)用0.2s的延時(shí)程序,防止小時(shí)計(jì)數(shù)器增長(zhǎng)過(guò)快,不便調(diào)節(jié)。jmpsw3p11k:cjner0,#00,disp;1秒鐘到了嗎?沒(méi)到轉(zhuǎn)到disp處正常顯示。到了將計(jì)數(shù)單元重新置初值20movr0,#14h;1秒鐘到了將計(jì)數(shù)單元重新置初值20incr1;秒計(jì)數(shù)器加1cjner1,#60,dispmovr1,#00incr2;分位計(jì)數(shù)器加1sw2:cjner2,#60,loop2;分位顯示到了60嗎?沒(méi)到轉(zhuǎn)到loop2處正常顯示movr2,#00;60分鐘到了,將分位計(jì)數(shù)器重新置0incr3;小時(shí)計(jì)數(shù)器加1sw3:cjner3,#24,loop2;小時(shí)顯示到了24了嗎?沒(méi)到轉(zhuǎn)到loop處正常顯示movr3,#00;24小時(shí)到了將小時(shí)計(jì)數(shù)器重新置0loop2:mova,r2;以下均為查表操作,根據(jù)小時(shí)、分鐘的計(jì)數(shù)值,分別查得相應(yīng)的顯示碼,送到30H,31H,32H,33H四個(gè)相應(yīng)位的顯示緩沖單元movb,#10divab;利用除法可得到分鐘位的兩個(gè)數(shù)碼管的相應(yīng)的顯示碼,如46分鐘時(shí),除以10可知十分位為4放在A中,將該位送到31H緩沖單元。movca,@a+dptr;查表得到分鐘的十分位,送到分?jǐn)?shù)顯示級(jí)沖單元31Hmov31h,amova,bmovca,@a+dptrmov30h,amovdptr,#htablemova,r3;和分鐘顯示相同,用除法可得到小時(shí)位的兩個(gè)數(shù)碼管的顯示碼值。A中存放小時(shí)的十位數(shù),B中存放小時(shí)的個(gè)位值。分別送到相應(yīng)的顯示緩沖單元。movb,#10divabmovca,@a+dptrmov33h,amovdptr,#tablemova,bmovca,@a+dptrmov32h,aljmpdisptable:db0c0h;0的顯示碼db0f9h;1的顯示碼db0a4h;2的顯示碼db0b0h;3的顯示碼db99h;4的顯示碼db92h;5的顯示碼db82h;6的顯示碼db0f8h;7的顯示碼db80h;8的顯示碼db90h;9的顯示碼htable:db0ffh;給十小時(shí)位專門一張參數(shù)表格,為了在顯示如1點(diǎn)、2點(diǎn)時(shí),十小時(shí)位的0就不顯示出來(lái),小時(shí)的十分位如果為0時(shí),讓十小時(shí)位的數(shù)碼管不發(fā)光,8段全為高電平。db0f9db0a4hdisp:mova,30h;30H為秒位的顯示緩沖單元,將其中數(shù)值通過(guò)累加器A送秒位數(shù)碼管顯示movp0,aclrp2.4acalldelay;調(diào)用一個(gè)0.4ms的延時(shí)程序,實(shí)現(xiàn)秒位的動(dòng)態(tài)掃描setbp2.4mova,31h;31H為十秒位的顯示緩沖單元,將其中數(shù)值通過(guò)累加器A送十秒位數(shù)碼管顯示movp0,aclrp2.5acalldelaysetbp2.5mova,32h;32H為分位的顯示緩沖單元,將其中數(shù)值通過(guò)累加器A送分位數(shù)碼管顯示movp0,aclrp2.6acalldelaysetbp2.6mova,33h;33H為十分位的顯示緩沖單元,將其中數(shù)值通過(guò)累加器A送十分位數(shù)碼管顯示movp0,aclrp2.7acalldelaysetbp2.7jmploop1;轉(zhuǎn)移到loop1處實(shí)現(xiàn)循環(huán)動(dòng)態(tài)掃描delay:movr6,#2;0.4ms左右的延時(shí)子程序,用于循環(huán)顯示時(shí)調(diào)用。del1:movr7,#60;每一位顯示延時(shí)0.4ms,4位總共延時(shí)1.6ms,而人的視覺暫留時(shí)間為24ms,所以不會(huì)有閃爍感。del2:djnzr7,del2djnzr6,del1ret;子程序返回delay1:movr5,#2de1:movr6,#200de2:movr7,#126de3:djnzr7,de3djnzr6,de2djnzr5,de1retint110:clrtr0decr4cjner4,#00,loop3movr4,#0ahcplp1.2loop3:movth0,#4bhmovtl0,#0fdhsetbtr0retint:clrtr1;定時(shí)/計(jì)數(shù)器1的中斷子程序,該句作用是暫時(shí)停止計(jì)時(shí)decr0;將計(jì)數(shù)單元減1movth1,#4bh;重新置定時(shí)常數(shù)movtl1,#0fdhsetbtr1;重新啟動(dòng)定時(shí)計(jì)數(shù)reti;中斷返回end2、音響電路本電路利用P2.0位所接的三極管控制其集電極串聯(lián)的喇叭,改變P2.0位的方波脈沖的頻率即可在喇叭內(nèi)產(chǎn)生出不同音符的聲音,再控制好各個(gè)不同音符的延時(shí)長(zhǎng)度,即可得到各種音調(diào),進(jìn)而可演奏出整部樂(lè)曲。電路圖如下圖所示?!秲芍焕匣ⅰ返臉?lè)曲源程序如下:org0000h;這是一個(gè)利用實(shí)驗(yàn)板p2.0位上所接的喇叭,演奏“兩只老虎”樂(lè)曲的程序ljmpmainorg001bh;定時(shí)1中斷矢量設(shè)定ljmpint_1org0100hmain:anltmod,#0fh;對(duì)TMOD進(jìn)行設(shè)定,使定時(shí)/計(jì)數(shù)器1工作在方式1orltmod,#10h;用與或語(yǔ)句是為不影響串行口的工作setbet1setbeamovdptr,#tone;將樂(lè)曲參數(shù)表格的首地址送DPTR,便于查表mova,#00hlop:movca,@a+dptrjzmain;如查的結(jié)果為0,則說(shuō)明樂(lè)曲已經(jīng)結(jié)束,轉(zhuǎn)到主程序重新演奏movr5,amovth1,a;由于是16位定時(shí)/計(jì)數(shù)器,要查表兩次分別將定時(shí)初值的高8位送TH,低8位送TLincdptrmova,#00hmovca,@a+dptrmovr6,amovtl1,r6setbtr1;啟動(dòng)定時(shí)器incdptr;第3次查表得到該音符的延時(shí)時(shí)間mova,#00hmovca,@a+dptrmovr2,a;根據(jù)音符的延時(shí)時(shí)間參數(shù),進(jìn)行相應(yīng)延時(shí)loop1:movr3,#80hloop2:movr4,#0ffhloop3:djnzr4,loop3djnzr3,loop2djnzr2,loop1incdptr;指針加1,為下個(gè)音符查找作好準(zhǔn)備mova,#00hljmplopint_1:pushdph;定時(shí)計(jì)數(shù)器1的中斷子程序pushdplpushacccplp2.0;將P2。0位的電位按一定頻率取反輸出,就可以得到相應(yīng)的音調(diào)movth1,r5movtl1,r6setbtr1popaccpopdplpopdphretitone:db0f9h,21h,09h,0f9h,0e1h,09h;“兩只老虎”的音調(diào)參數(shù)表,每3個(gè)數(shù)據(jù)為一組,前2個(gè)為定時(shí)時(shí)間由它們得到相應(yīng)頻率的方波,db0fah,8ch,09h,0fah,0d8h,09h;第3個(gè)為該音符延時(shí)時(shí)間db0fbh,68h,09h,0fbh,0e9h,09hdb0fch,5bh,09h,0fch,8fh,09hdb0fch,0e3h,09h,0fdh,45h,09hdb0fdh,6ch,09h,0fdh,0b4h,09hdb0fdh,0f4h,09h,0feh,2eh,09hdb0feh,47h,09h,0feh,71h,09hdb0feh,0a2h,09h,0feh,0b6h,09hdb0feh,0dah,09h,0feh,0fah,09hdb0ffh,17h,09h,00h,00h,00hend3、串行口通訊電路AT89S51和MCS51芯片一樣設(shè)置了一個(gè)全雙工串行通信口,可以和上位計(jì)算機(jī)RS----232口進(jìn)行串行通信。AT89S51的串行通訊口的輸入/輸出為TTL電平,高電平為3.8V左右,低電平為0.3V左右,這種以TTL電平傳送數(shù)據(jù)信息的方式,抗干擾能力較差,只能在幾米的范圍內(nèi)傳輸數(shù)據(jù)信息。計(jì)算機(jī)的RS---232的串行通訊口為了增強(qiáng)傳輸中的抗干擾性,輸入/輸出電平采用負(fù)邏輯,邏輯“1”為—5V~—12V;邏輯“0”由上述可見,AT89S51和上位計(jì)算機(jī)的RS---232口進(jìn)行通訊時(shí),邏輯不一致,必須要進(jìn)行電平轉(zhuǎn)換。本實(shí)習(xí)電路板采用MAX232集成芯片實(shí)現(xiàn)兩個(gè)電平之間的轉(zhuǎn)換,方便實(shí)用,最關(guān)鍵在于以往的電平轉(zhuǎn)換芯片MC1488、MC1489需要另外的+12V供電電壓,而MAX232串行通訊電平轉(zhuǎn)換芯片只需要提供和AT89S51一樣的+5V電源電壓,這就省卻了很多麻煩。本實(shí)習(xí)電路板功能是:接收上位計(jì)算機(jī)串行口發(fā)出的相應(yīng)命令,從而控制實(shí)習(xí)電路板所接的小直流電機(jī)轉(zhuǎn)向。要控制小直流電機(jī)的轉(zhuǎn)向,必須使用4個(gè)三極管,兩兩同時(shí)工作即可改變電機(jī)兩端的電壓極性,這也是一般遙控汽車中的前后運(yùn)動(dòng)方向的控制方式。另外程序中還加入了控制電機(jī)轉(zhuǎn)速的部分,方法是改變電源電壓的正負(fù)占空比。直流電機(jī)轉(zhuǎn)向控制電路圖如下所示:整體電路連接圖如下所示:串行通訊電機(jī)控制源程序如下:org0000hljmpstartorg0023hljmpserveorg0100hstart:anltmod,#0f0h;以先與后或的方式,給TMOD寄存器設(shè)定定時(shí)器1工作在方式2,自動(dòng)再裝入的8位定時(shí)器。orltmod,#20hmovth1,#0e8h;設(shè)置波特率為1200bpsmovtl1,#0e8hmovscon,#50h;設(shè)定串行口工作方式1,1位起始位,8位數(shù)據(jù)位,1位停止位。setbea;開中斷總控制位。setbtr1;啟動(dòng)定時(shí)器1setbes;允許串行口中斷main:cjnea,#3,next1;如接收到的數(shù)據(jù)為3,則停止電機(jī)運(yùn)轉(zhuǎn)。loop3:setbp2.0;將P2。0所接的兩個(gè)三極管基極電位置高電平,使其截止。setbp1.0;將P1。0所接的兩個(gè)三極管基極電位置高電平,使其截止。cjnea,#3,next1;循環(huán)更新對(duì)比串行口接收到的數(shù)據(jù)是否為3,如不為3則轉(zhuǎn)到下個(gè)程序段查詢。jmploop3next1:cjnea,#2,next2;如接收到的數(shù)據(jù)不為2,則轉(zhuǎn)到下個(gè)程序段查詢。loop2:setbp1.0;如接收到的數(shù)據(jù)為2,先將p1.0置高電平。clrp2.0;改變p2.0電位的高低電平脈沖占空比從而獲得一個(gè)正向低轉(zhuǎn)速。acalldelay3setbp2.0acalldelay1cjnea,#2,next2jmploop2next2:cjnea,#1,main;如接收到的數(shù)據(jù)不為1,則轉(zhuǎn)到主程序開始處。loop1:setbp2.0;如接收到的數(shù)據(jù)為1,先將p2.0置高電平。clrp1.0;改變p1.0電位的高低電平脈沖占空比從而獲得一個(gè)反向低轉(zhuǎn)速。acalldelay3setbp1.0acalldelay1cjnea,#1,mainjmploop1serve:clreaclrrimova,sbuf;以下為將串行口接收到的ASCII碼轉(zhuǎn)16進(jìn)制數(shù)的轉(zhuǎn)換程序movr2,amova,r2clrcsubba,#30hmovr2,asubba,#0ahjcnextmova,r2subba,#07hmovr2,anext:mova,r2setbearetidelay3:movr1,#5;延時(shí)2.6毫秒jmpdel1delay1:movr1,#2;延時(shí)子程序延時(shí)1.1毫秒del1:movr3,#20del2:movr4,#12del3:djnzr4,del3djnzr3,del2djnzr1,del1retend4、交通燈控制電路單片機(jī)對(duì)發(fā)光二極管的控制在眾多實(shí)驗(yàn)實(shí)習(xí)電路中都很常見,本次實(shí)習(xí)選用交通燈控制電路作為實(shí)習(xí)電路。控制方法是將十二只發(fā)光二極管的陽(yáng)極經(jīng)限流電阻接于電源正極,負(fù)極接至P0、P2口實(shí)現(xiàn)控制。實(shí)習(xí)電路圖如下:程序運(yùn)行狀態(tài):第一狀態(tài):初始通電,四方向黃燈跳變5次(1秒/次)。第二狀態(tài):東西向綠燈亮、南北向紅燈亮(6秒)。第三狀態(tài):東西向黃燈跳變3次(1秒/次)、南北向紅燈亮。第四狀態(tài):東西向紅燈亮、南北向紅燈亮(2秒)。第五狀態(tài):東西向紅燈亮、南北向綠燈亮(6秒)。第六狀態(tài):東西向紅燈亮、南北向黃燈跳變3次(1秒/次)。第七狀態(tài):東西向紅燈亮、南北向紅燈亮(2秒)。重新進(jìn)入第二狀態(tài)循環(huán)········交通燈控制源程序如下:org0000h;本程序所控制電路板,東西向交通燈接在P2口。東向紅燈接P2。0,黃燈接P2。1。綠燈接P2。2。西向依次ljmpstart;南北向交通燈接在P0口。北方向紅燈接P2。0,黃燈接P2。1。綠燈接P2。2。南方向依次org0100hstart:movr4,#5;主程序開始,設(shè)定R4為計(jì)數(shù)次數(shù),讓四方向黃燈閃爍5次lop:movp2,#0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論