智能儀器實(shí)驗(yàn)指導(dǎo)(PROTEUS仿真)_第1頁(yè)
智能儀器實(shí)驗(yàn)指導(dǎo)(PROTEUS仿真)_第2頁(yè)
智能儀器實(shí)驗(yàn)指導(dǎo)(PROTEUS仿真)_第3頁(yè)
智能儀器實(shí)驗(yàn)指導(dǎo)(PROTEUS仿真)_第4頁(yè)
智能儀器實(shí)驗(yàn)指導(dǎo)(PROTEUS仿真)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

1、實(shí)驗(yàn)一智能儀器設(shè)計(jì)集成環(huán)境介紹一、實(shí)驗(yàn)?zāi)康?. 掌握利用proteus仿真平臺(tái)進(jìn)行電路設(shè)計(jì)的基木操作。2. 掌握利用proteus軟件和keil聯(lián)合仿真調(diào)試的操作。二、實(shí)驗(yàn)儀器計(jì)算機(jī)一臺(tái)、proteus軟件三、實(shí)驗(yàn)內(nèi)容proteus isis是英國(guó)labcenter electronics公司開(kāi)發(fā)的eda軟件。單片機(jī)是現(xiàn)代電子 技術(shù)的新興領(lǐng)域,它的出現(xiàn)極大地推動(dòng)了電子工業(yè)的發(fā)展,已成為電子系統(tǒng) 設(shè)計(jì)屮最為普遍的應(yīng)用手段。近年來(lái)單片機(jī)技術(shù)得到了突飛猛進(jìn)的發(fā)展,各 種單片機(jī)開(kāi)發(fā)工具層出不窮。虛擬仿真就是近年來(lái)興起的一種新型應(yīng)用技術(shù), 采用虛擬仿真技術(shù),在原理圖設(shè)計(jì)階段就可以對(duì)單片機(jī)應(yīng)用設(shè)計(jì)進(jìn)行評(píng)估

2、, 驗(yàn)證所設(shè)計(jì)電路是否達(dá)到所要求的技術(shù)指標(biāo),還可以通過(guò)改變?cè)骷?shù)使 整個(gè)電路性能達(dá)到最優(yōu)化。這樣就無(wú)須多次購(gòu)買(mǎi)元器件及制作印刷電路板, 節(jié)省了設(shè)計(jì)吋間與經(jīng)費(fèi),提高了設(shè)計(jì)效率與質(zhì)量。英國(guó)labcenter公司推出的proteus軟件是一款極好的單片機(jī)應(yīng)用開(kāi)發(fā)平 臺(tái),它以其特有的虛擬仿真技術(shù)很好地解決了單片機(jī)及其外圍電路的設(shè)計(jì)和 協(xié)同仿真問(wèn)題,可以在沒(méi)冇單片機(jī)實(shí)際硬件的條件下,利用pc以虛擬仿真方 式實(shí)現(xiàn)單片機(jī)系統(tǒng)的軟、碩件同步仿真調(diào)試,使單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)變得簡(jiǎn) 單容易。proteus軟件涵蓋了 pic、avr、mcs805k 68hc11. arm等微處理器 模型,以及多種常用電子元器件,

3、包括74系列、cmos 4000系列集成電路、 a/d和d/a轉(zhuǎn)換器、鍵盤(pán)、lcd顯示器、led顯示器,還提供示波器、邏輯分 析儀、通信終端、電壓/電流表、12c/sp1終端等各種虛擬儀表,這些都可以 直接用于仿真設(shè)計(jì),極大地提高了設(shè)計(jì)效率和設(shè)計(jì)水平。下面以一個(gè)“完成 每隔1秒鐘接在p1 口的八個(gè)發(fā)光二極管循環(huán)閃亮”例子來(lái)說(shuō)明實(shí)驗(yàn)過(guò)程。 實(shí)驗(yàn)硬件屯路(如圖1.1所示):18293031u1>xtal1xtal2rstpsen ale ea5678p1.0/t2 p1.1/t2ex p1.2 p1.3p1.4p1.5p1.6p1.7p0.0/ad0p0.1/ad1p0.2/ad2p0.3/

4、ad3p0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7p2.0/a8p2.1/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.5/a13p2.6/a14p2.7/a15p3.0/rxdp3.1/txdp3.2/int0p3.3/inttp3.4/t0p3.5/t1p3.6/wrp3.7/rd3938373635343332_ 21222324252627281077121314151617vcc rp1respack-8cm96寸at89c52program二d:users'msh我的文keilfileledtestle( test.he:;圖1硬件電

5、路圖源程序:org0000humpstartorg0030hstart: mova,#0fehloop: movpl,amovrl,#10dle1: movr2,#200dle2: movr3,#126dle3: djnzr3, dle3djnzr2, dle2djnzr1,dle1rl aumploopend四、實(shí)驗(yàn)步驟1 進(jìn)入proteus系統(tǒng),畫(huà)岀實(shí)驗(yàn)電路圖;2、進(jìn)入keil c51軟件的操作環(huán)境,編輯源程序并對(duì)源文件進(jìn)行編譯; 編譯如圖1.2所示:proteus pvision4file £dit yiew project flash rebug peripherals to

6、ols jvcs window helpn (冋 h target 1get 1/ 園 proteus.a$msource group 1丸 proteus.asmorg 0000hstart:mov a.tofehloop:mov plfamov rlr#10dle1:mov r2,#200dle2:mov r3,#126dle3:djnzr3rdle3djnzr2,dle2djnzrlrrl adle1ljmploopend01020304050607080910111213sopr.的b i o4 e圖1.2編譯3、對(duì)proteus系統(tǒng)和keil c51系統(tǒng)進(jìn)行聯(lián)機(jī)設(shè)置,如圖1.3、1.

7、4所示; 聯(lián)機(jī)設(shè)置:首先要安裝proteus的keil騾動(dòng),安裝好騾動(dòng)后,進(jìn)入keil界面進(jìn)行設(shè)置,單擊工具條屮的點(diǎn)按鈕,在彈出的表單屮單擊i呎噸|選項(xiàng)卡,選擇“ use: poteuswsmdlator f的組合框,在下拉菜單屮選屮 u proteus vsmsimulator"選項(xiàng)即可,如杲是聯(lián)機(jī)進(jìn)行聯(lián)調(diào),還耍在其后的上也j按鈕中進(jìn)行適當(dāng)?shù)脑O(shè)置。之后在proteus界面下單擊菜單欄中的業(yè)切按鈕,在下拉菜單選中丫 use remote debug monitor即可,至此完成了聯(lián)調(diào)的基本設(shè)置。圖1.3在keil中的聯(lián)調(diào)的設(shè)置protues isis professional舊田1*

8、1+2匡1鈴羽丨圖宙團(tuán)島1囪1岡file view edit tools design graph sourcestart/restart debuggingpause animationi stop animationctri+f12pauseshift+pausepl devices確 executef12execute without breakpoints alt+f12execute for specified timeat89c52buttoncap-elec crystal led-8argraph-red led-yellow minres1ix polypr022p resp

9、ack-8兒 step ovei 鳥(niǎo) step into 0 step out 呼 step toanimatef10fllctrl + floalt+fllreset popup windowsreset persistent model data * configure diagnostics.v use remote debug monitors tile horizontally rri tile vertically1 1 ! 1 ii r o no messagesroot sheet 1ii圖1.4 proteus中的聯(lián)調(diào)的設(shè)置4、在keilc51系統(tǒng)中運(yùn)行、調(diào)試程序,在prot

10、eus系統(tǒng)中檢查輸出結(jié)果,如 圖1.5所示。延時(shí)時(shí)間的計(jì)算:執(zhí)行一條djnz rn,rel指令需要兩個(gè)機(jī)器周期,因此只要計(jì)算岀執(zhí)行了 多少該指令并結(jié)合計(jì)算其它處于延吋程序屮的各條指令的執(zhí)行次數(shù)和周 期數(shù),就可以計(jì)算出延時(shí)程序的延吋時(shí)間。每個(gè)機(jī)器周期為12個(gè)時(shí)鐘周 期,結(jié)合晶振的周期就可以較精確的計(jì)算出延時(shí)時(shí)間。也 proteu% - pviuon4di* £<jit %tw £rc<1 fl>$hpttqme” loots svc5 弐 0dow ijtlpe protues - isis profeonal (animating)file view ed

11、it took design graph source debug library template system helprp1<t©j>re5p/g書(shū)2>心” 04n»sgs0 7mb7o° s 一 .丿/9<-ikn zzaa 您*/a.tofzh'4omr3r dle3i3 preset i s resistect |i cuhuxcull" i ! i il) o331 d0x07otco oicoorfixohiojidptr pc $5«cs psvmovmovmov01c3/ 勺 p<ott

12、us$mr2, dlk2rlr dle1start: loop: v跳:0x0000"fk3: loop: mov0x0002f590vdm51 target lnlciallzcd.load "d:usersmsift的文檔kedb«xakt»r2: start: movmovar#0xfepl,ar2,200movr2,tt2con(oxc8)r3/i126movr3z#0x7ev*> htve a邸ro rlr2r3 rgr5rs rt £ sy、oxco orfo oico oico oico oico oico oico0x00

13、04790a5: dle1:mov0x00067ac86: dle2:movoxooob7b7e> ryq nt*»7pl(0x90),a r1.#1o rlztoxoadle1:dle2:dle3: djnzojnz djnz moro 3000mmov artofhhmov pl,amov rlr#10mov r2.i200mov r3*26at89c52buttoncapeleccrystalled 砂 g心即fed i ed yellowasm assign breakdiaablc brealtenablevccan g p2 z>1£* pl.nah

14、 w 4*a12 pj a13 p2 cvam p2 7:m陽(yáng)mr n toxn p):/w pi mpfpj "tv w !/ti 円0脈 p3 7廠|j11d trwl port al :帕 3 okoq goxob elsnec: -vdm 場(chǎng)如c=cocc|圖1.5聯(lián)調(diào)結(jié)果五、思考題:1、總結(jié)proteus系統(tǒng)的使用特點(diǎn);2、給實(shí)驗(yàn)源程序加上注釋。3、總結(jié)利用proteus系統(tǒng)和keilc51系統(tǒng)進(jìn)行聯(lián)機(jī)調(diào)試的電路設(shè)計(jì)過(guò)程。實(shí)驗(yàn)二程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器擴(kuò)展實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?. 學(xué)習(xí)程序存儲(chǔ)器的電路的擴(kuò)展原理。2. 學(xué)習(xí)數(shù)據(jù)存儲(chǔ)器的電路的擴(kuò)展原理。3. 掌握利用proteus軟

15、件和keil聯(lián)合仿真調(diào)試的操作。二、實(shí)驗(yàn)儀器計(jì)算機(jī)一臺(tái)、proteus軟件三、實(shí)驗(yàn)內(nèi)容在8051單片機(jī)外部擴(kuò)展8kb ram芯片6264,其地址范圍為0000h1fffh,將一些 特殊常數(shù)信息(如圖片數(shù)據(jù)等)存放在單片機(jī)內(nèi)rom從1000h地址開(kāi)始的地方,程序運(yùn)行時(shí) 將rom屮從1000h地址開(kāi)始的內(nèi)容轉(zhuǎn)存到外部ram屮。<tex"u1>xtal1poofadodh 1 /af*k4xtal2ru uau1p0 2/ad2 p0.3/ad3 p0.4/ad4rstp0 5/ad5p0g/ad6p0.7/ad7p2.0/a8p2 1/a9p2 2/a10psen ale e

16、ap2 3/a11 p24/a12p2 5/a13p2.6/a14p2 7/a15p1.0p3.0/pxdp1.1p3 vtxddq oaxltflkip1.3ko.z/ww 1 up3.34?intp14 p1 5p34/t0 p3 5ep1.6p1.7p3 6awp37/rd305138d1z37%西卩3,353433?2a8,22a9r23aiy24切?5a12390010n77151617d2巨05 14d6 17p7 1£262720u211u3oo 01d2d3d405d6d774ls3732 ao5匚竝12ka0 idaly a19a3/ a3.a /p - 7 kao

17、/ ab 19a7> a7163 25ka10 2123.s.a172a20262722a0 aldo dia2d2a3d3m04asd5a6d6a7a8a9 a10 a11 al 2ce cs we oed76264 <tcxt>11?亙121617pg did2£3£5d6d7plidevices27c6474hc373 74ls373 80c51 80c52 2764 6264 8255a at89c51rd2.bus at89c52 crystal hitemp10u507 led-yellow minres10k motor-bistepper

18、motor-dc motor-stepper phyc0402np022p sw-spst sw-spst-mom switchu ln 200恥org 0000hmov dptr,#l000hmov r7,#0lp: mov a,#0movca,a+dptrmovx dptr,ainc dptrdjnz r7,lpsjmpsorg i000hdb ofoh, of8h, och, 0c4h, och, of8h, ofoh, ooh, 03h, 07h, och, osh, och, 07h, 03h, oohdb ooh, 1oh, 18h, ofch, ofch, (x)h, ooh,

19、ooh, ooh, osh, osh, ofh, ofh, osh, osh, oohdb o8h, och, 84h, 0c4h, 64h, 3ch, 18h, ooh, och, ofh, 09h, o8h, osh, och, och, oohdb o8h, och, 44h, 44h, 44h, ofch, ob8h, ooh, 04h, och, o8h, o8h, o8h, ofh, o7h, oohdb ocoh, oeoh, oboh, 98h, ofch, ofch, 8oh, ooh, ooh, ooh, ooh, o8h, ofh, ofh, o8h, oohdb 7ch

20、, 7ch, 44h, 44h, 44h, 0c4h, 84h, ooh, 04h, och, o8h, o8h, o8h, ofh, 07h, oohdb ofoh, of8h, 4ch, 44h, 44h, ocoh, 8oh, ooh, 07h, ofh, osh, osh, osh, ofh, 07h, oohdb och, och, 04h, 84h, 0c4h, 7ch, 3ch, (x)h, ooh, ooh, ofh, ofh, ooh, ooh, ooh, oohdb ob8h, ofch, 44h, 44h, 44h, ofch, ob8h, ooh, 07h, ofh,

21、o8h, o8h, osh, ofh, 07h, oohdb 38h, 7ch, 44h, 44h, 44h, ofch, of8h, ooh, ooh, o8h, o8h, o8h, och, 07h, o3h, oohdb ooh, ooh, ooh, 3oh, 3oh, ooh, ooh, ooh, ooh, ooh, ooh, 06h, 06h, ooh, ooh, oohdb ooh, ooh, ooh, 3oh, 3oh, ooh, ooh, ooh, ooh, ooh, osh, oeh, 06h, ooh, ooh, oohdb ooh, 8oh, ocoh, 60h, 3oh

22、, 18h, osh, ooh, ooh, ooh, o1h, o3h, 06h, och, osh, oohdb ooh, 20h, 20h, 20h, 20h, 20h, 20h, ooh, ooh, o1h, o1h, o1h, o1h, o1h, o1h, oohdb ooh, o8h, 18h, 3oh, 60h, ocoh, 8oh, ooh, ooh, o8h, och, 06h, o3h, o1h, ooh, oohdb 18h, ich, 04h, 0c4h, 0e4h, 3ch, 18h, ooh, ooh, ooh, ooh, odh, odh, ooh, ooh, oo

23、h end四、實(shí)驗(yàn)步驟1 進(jìn)入proteus系統(tǒng),畫(huà)出實(shí)驗(yàn)電路圖;2、進(jìn)入keil c51軟件的操作環(huán)境,編輯源程序并對(duì)源文件進(jìn)行編譯;3、對(duì)proteus系統(tǒng)和keil c51系統(tǒng)進(jìn)行聯(lián)機(jī)調(diào)試并保存調(diào)試結(jié)果(利用軟件抓 圖)。五、思考題:1、程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器進(jìn)行擴(kuò)展擴(kuò)展時(shí)有何異同?2、畫(huà)出程序流程圖。3、程序執(zhí)行后6264中的內(nèi)容是什么?實(shí)驗(yàn)三 并行10 口擴(kuò)展實(shí)驗(yàn)1 實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)實(shí)驗(yàn)掌握8255擴(kuò)展i/o 口的方法。進(jìn)一步學(xué)習(xí)了解8255可編程芯片的結(jié)構(gòu)及編程方法,耍求編程實(shí)現(xiàn)8255的pa、pb和pc 口的輸入輸岀。2. 實(shí)驗(yàn)設(shè)備微機(jī)1臺(tái)、proteus軟件3. 實(shí)驗(yàn)線路及實(shí)驗(yàn)原理

24、8255的片選信號(hào)西連到8051的p2.7,端口地址選擇信號(hào)al、a2由p2.1、p2.0提供。該 電路中8255的pa、pb、pc以及控制口的地址分別為7cffh、7dffh、7effh、7fffh。編程實(shí)現(xiàn)8255的pa 口按方式0輸出,pb 口按方式0輸入,將pb 口外接8個(gè)開(kāi)關(guān)的狀態(tài) 通過(guò)pa 口外接的led燈反映出來(lái)。®f. r1d3:r leo-yellow <text>.%)d8co:isu2p2 0/a8 p21/a9 p2.2/a10 p2.3/a11 p2.4/a12 p2.s/a13 p2.6/a14 p2.7/a15393438*333732383

25、13530342933283227215p0.0/ad0 p0kad1 p0.2/ad2 p0 3/ad3 p0.4/ad4 p0.5<ads p0.6/ad6 p0.7/ad7:236二二二2835d0d1d2d3d4dsd6d7-rdwraoa1res_csq 彳.23.4s67 ppppppppp3.0jrxdp3.irrxop321mt0p3jmtt p3.4/t0 p3 5ff1p3.6aw_ p3.7/rd-wdm話 io31323345536701234567 papapapapapapapape陽(yáng)陽(yáng)陽(yáng)陽(yáng)pepepepcpcpcpcpcpcpcpclo21 k3-18 ko

26、20 k28255aat89c51 buttoncap cap-elec cap-pol crystal led-redled-yellow resswitch74074實(shí)驗(yàn)內(nèi)容復(fù)習(xí)思考題1若要求用8255的pb 口作輸出,pa 口作輸入,應(yīng)如何修改實(shí)驗(yàn)程序?2利用8255的方式1可實(shí)現(xiàn)與單片機(jī)的查詢或中斷方式接口,設(shè)計(jì)一個(gè)通過(guò)查詢8255的 pcl(ibfb)和pc7(obfa)實(shí)現(xiàn)從pb 口輸入,從pa 口輸出的實(shí)驗(yàn)程序。3如果需要采用8255的pc7輸出連續(xù)方波,如何利用pc 口的置位復(fù)位控制命令來(lái)實(shí)現(xiàn)?org0000hportaequ7cffh;a 口portbequ7dffh;b 口

27、portcequ7effh;c 口caddrequ7fffh;控制字地址sjmpstartorg0030hstart:mova,#82h;方式0,pa,pc輸出,pb輸入mov dptr,#caddrmovx dptr,aloop:movdptr,#portbmovxa, dptr;讀入b 口movdptr,#portamovxdptr,a;輸出到a 口lcall delayljmp loopdelay: mov r6,#0delay 1: mov r7,#0delay2:djnz r7,delay2djnz r6,delay 1retendu122pi gft>18crystal22p

28、110kc110u31u223aoscka1sdaa2wp65724c02 <text>12345678xxtal1p0.0/ad0p0.1/ad1ytal op0.2/ad2ona iru.o/auop0.4/ad4p0.5/ad5p0.6/ad6rstp0.7/ad7p2.0za8p2.1/a9p2.2/a10psenp2.3/a11alep2.4/a12eap2.5/a13p2.6/a14p2.7/a15p1.0p3.0/rxdp1.1p3.irrxdp1.2p3.2/int0p1.3p3.3/int1p1.4p3.4/t0p1.5p3.5/t1p1.6p3.6/wrp1.7

29、p3.7/rd8051 <text>383736353433322122232425262728101112131415161739實(shí)驗(yàn)四i2c總線擴(kuò)展實(shí)驗(yàn)采用8051單片機(jī)的p1.6和p1.7作為i2c總線的scl和sda,擴(kuò)展一片24c02存儲(chǔ)器,用 軟件模擬方式實(shí)現(xiàn)i2c總線操作時(shí)序,向24c02內(nèi)部從00h開(kāi)始的字節(jié)中寫(xiě)入16個(gè)數(shù)據(jù)。c3devices24c01c24c02c24c04a80c51at89c51.buscapcap-eleccrystalhitemp10u50vminres10kphyc0402np022presackbit 10h;應(yīng)答標(biāo)志位sladata

30、 50h;器件地址字subadata51h;器件子地址numbytedata52h;讀/寫(xiě)字節(jié)數(shù)sdabit pl.7sclbit pl.6;i2c總線定義mtdequ30h潑送數(shù)據(jù)緩存區(qū)首地址(3oh-3fh)mrdequ40h;接收數(shù)據(jù)緩存區(qū)首地址(40h-4fh)org 0000hajmp mainorg 0030hvizvfz vlxkizviz vlxviz kizkizviz lxkizkiz vlx%l%l vlx %l vlx %t%l%t*r*r*r*r* 1*r*<c* *r*<c*<c* *r* 1*<c* *r*<c* *r*r* 1* *

31、?*?*?*r*?*;名稱:iwrnbyte;描述:向器件指定了地址寫(xiě)n個(gè)數(shù)據(jù);入口參數(shù):器件地址字sla,子地址suba,發(fā)送數(shù)據(jù)緩沖區(qū)mtd,發(fā)送字節(jié)數(shù)numbyter| rj* rjw r| rjw r|*|* p r| rjw *|* p r|rjw rp*p rjr| rjw rj rjw r|rjw p rp rjw *p rjr| r rp p *|*r| r|%rj* r| rj%rj* rj rjwr| rj%r|lcallstartiwrnbyte: mov r3,numbyte;啟動(dòng)總線movlcalla,slawrbyte;發(fā)送器件地址字wrda:lcallcackjn

32、b ack,retwrnmovlcalllcallmovajsubawrbytecackr1 ,#mtdmov a,r1lcall wrbyte;無(wú)應(yīng)答則退出;指定子地址;開(kāi)始寫(xiě)入數(shù)據(jù)lcall cackjnb ackjwrnbyteincr1;判斷是否寫(xiě)完djnz r3,wrdaretwrn:lcall stopret«x*打 *t*t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <t» »tw rt* rtwrtw r »twrtw 9t

33、»t>j »twrt* »twrtw »tw rtw »t 9t9t% »t!>»tw !>»tw rtw »t;名稱:irdnbyte;描述:從器件指定了地址讀取n個(gè)數(shù)據(jù);入口參數(shù):器件地址字sla,子地址suba,接收數(shù)據(jù)緩存區(qū)mrd,接收字節(jié)數(shù)numbyte卜卜卜2b2丄丄 丄 匕” 丄匕卜 *1 丄 2<r*<r*<t*w<r»<r*irdnbyte: movr3,numbytelcallstartmova,slalcallwrbyte;發(fā)

34、送器件地址字lcallcackjnb ackretrdnmova,suba;指定子地址lcallwrbytelcallcacklcallstart;重新啟動(dòng)總線mova,slainca;準(zhǔn)備進(jìn)行讀操作lcallwrbytelcallcackjnb ackjrdnbytemov r1,#mrdroni:lcall rdbyte;讀操作開(kāi)始mov r1,adjnz r3,sacklcall mnack;最后一字節(jié)發(fā)非應(yīng)答位retrdn:lcall stopsack:retlcall mack1ncr1sjmp roni r r| r rj* rjw r| r rjw % rj* rjw *|* p

35、 r| rjw *|* p r| r rjw p rp j* r| p *p <j* rj p r| rjw rj rjw r| r rjw p rp j* rjw p *p <j* rj p r| r rp p *|* p r r| r|% rj* r| rj% rj* rj rjw r r| rj% r r| ,;名稱:strrt;描述:啟動(dòng)i2c總線子程序一發(fā)送i2c總線起始條件<1>卜卜b卜 卜b 上卜丄b *1*丄 匕丄 *1*b<r*<r*<t*w<r»<r*start:setb sda;發(fā)送起始條件數(shù)據(jù)信號(hào)nop;起

36、始條件建立時(shí)間人于4.7ussetb scl;發(fā)送起始條件的時(shí)鐘信號(hào)nopnopnopnopnopclrnopnopnopsda;起始條件鎖定時(shí)間大于4.7us ;發(fā)送起始信號(hào)nop;起始條件鎖定時(shí)間大于4.7usclrscl;鉗住i2c總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù)nopret r| r rjw r|* rjw *|* <j* *p p r| ej rj* p r| r rjw r|* r| p r| rjw r| p r| ejw rj rjw r| r rjw p r|* rj p r| rjw r| p r| r rp p *|* r| rj% rj* r| rjw rj* rj rj

37、w r r| rj% r| ,;名稱:stop;描述:停止i2c總線子程序一發(fā)送i2c總線停止條件lf *a*1%£>%£> <j %£>£>%£>,stop:clr sda;發(fā)送停止條件的數(shù)據(jù)信號(hào)nopnopsetb scl;發(fā)送停止條件的時(shí)鐘信號(hào)nopnopnopnopnop;起始條件建立時(shí)間大于4.7ussetb sdanopnopnopnopnopret;發(fā)送i2c總線停止信號(hào);延遲時(shí)間大于4.7us;名稱:mack;描述:發(fā)送應(yīng)答信號(hào)了程序«x*打 *t* *t* *t* *t* 

38、7;tw rtw <tw rtw rt* <tw rtw rt* »tw rtw <tw rtw rt* <t» »tw rt* rtw rtw r »tw rtw 9t »t> j »tw rt* »tw rtw »tw rtw »t 9t 9t% »t!> »tw !> »tw rtw »tmack:clrsda;將 sda 置 0nopnopsetb sclnopnopnopnopnop;保持?jǐn)?shù)據(jù)時(shí)間,人于4.7usc

39、lrsclnopnopret卜卜b卜 卜 b 上卜丄b *1* 丄 匕丄b<r*<r*<t*w<r»<r*,;名稱:mnack;描述:發(fā)送非應(yīng)答信號(hào)子程序 <p <p rj% rji 7 r|% rj% rj% rji rj%rp rp rj% rjr|%r|* rp rj* rj rj*r|% rp rj% rj% rp rji rji rj% rj% rji rj% rj% rp rji rji rp rji9mnack:setb sda;將 sda g 1nopnopsetb sclnopnopnopnopnopclrscl;保持?jǐn)?shù)據(jù)時(shí)

40、間,大于4.7usnopnopret r| r rj* rjw r| r rjw rj* rjw *|* p r| rjw *|* p r| r rjw rp r| *p rj r| rjw rj rjw r| r rjw p rp rjw *p rj r| r rp p *|*r| r|% rj* r| rj% rj* rj rjw r r| rj%r|,;名稱:cack;描述:檢查應(yīng)答位子程序,返回值:ack=1時(shí)表示有應(yīng)答cack:setb sdanopnopsetb sclclracknopnopmov c,sdajc cendsetb ack;判斷應(yīng)答位cend:nopclrscln

41、opret1>*x*打 *t*t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <tw »twrt* »tw 91% rtw r rtwrtw r »t>rt* <tw »tw rt* »twrtw rtw »t t%9t% »twt% »t>»tw !>rtw »t,;名稱:wrbyte;描述:發(fā)送字節(jié)子程序,字節(jié)數(shù)據(jù)放入acc上 *1上 士上 上 上 %

42、! 上上 士土 上 上上 %!上土上上 士上士士#t z?#t* z? #t#tv#t* z? #t#t*#t* 7 t%#tv t% 7 #t* z? t%t%#t* 7 t%#t* z? #t#t #v*#twrbyte:movr0,#08hwlp:rlca;取數(shù)據(jù)位jcwrisjmp wro;判斷數(shù)據(jù)位wlp1:djnz r0,wlpnopretwri:setb sda;發(fā)送 1nopsetb sclnopnopnopnopnopclrsclsjmp wlp1wro:clrsda;發(fā)送 0nopsetb sclnopnopnopnopnopclrsclsjmp wlp1rj% rp rj

43、% rj% rj%rp rp rj% rjr|%r|* rp rj* rj rj*r|% rp rj% rj% rp rji rji rj% rj% rji rj% rj% rp rji rji rp rji9;名稱:rdbyte;描述:讀取字節(jié)了程序,讀出的數(shù)據(jù)存放在acc«x*打 *t* *t* *t* *t* *t* »twrtw <tw rtwrt* <tw rtwrt* »twrtw <tw rtwrt* <t» »twrt* rtwrtw r »twrtw 9t »t>j »

44、;twrt* »twrtw »tw rtw »t 9t9t% »t!>»tw !> »tw rtw »trdbyte:mov r0,#08hrlp:setb sdanopsetb scl;時(shí)鐘線為高,接收數(shù)據(jù)位nopnopmov c,sda;讀取數(shù)據(jù)位mov a,r2clrscl;將scl拉低,吋間大于4.7usrlca;進(jìn)行數(shù)據(jù)位的處理mov r2,anopnopnopdjnzretrorlp;未夠8位,繼續(xù)讀入main:mov r4,#()f0h涎時(shí),等待其它芯片復(fù)位完成djnzr4,$;發(fā)送數(shù)據(jù)緩存區(qū)初始化

45、,將16個(gè)連續(xù)字節(jié)分別賦值為00h到0fhmova,#00hmovr0,#30hs1:movr0,ainc roincacjne r0,#40h,sl;向24c02c中寫(xiě)數(shù)據(jù),數(shù)據(jù)存放在24c02c中50h開(kāi)始的16個(gè)字節(jié)中movsla,#0a0h;24c02c地址字,寫(xiě)操作movsuba,#50h;目標(biāo)地址movnumbyte,#! 6;字節(jié)數(shù)lcalliwrnbyte瀉數(shù)據(jù)delay:mov r5,#20d1:movr6,#248d2:movr7,#248djnzr7,$djnzr6,d2djnzr5,d1;從24c04c屮讀數(shù)據(jù),數(shù)據(jù)送at89c51屮40h開(kāi)始的16個(gè)字節(jié)中movsla

46、,#0a0h ;24c02c地址字,偽寫(xiě)入操作movsuba,#50h ;目標(biāo)地址mov numbyte,#16;字節(jié)數(shù)lcall irdnbyte ;讀數(shù)據(jù)sjmp $end實(shí)驗(yàn)五dac接i i實(shí)驗(yàn)采用dac0832和單片機(jī)8051連接實(shí)現(xiàn)波形發(fā)生器電路,為了識(shí)別按鍵,對(duì)8051單片機(jī)的 外部中斷into進(jìn)行擴(kuò)展,可通過(guò)不同的按鍵產(chǎn)生階梯波、三角波、方波和正弦波。c2c3 crystal22p.r310kc1i10u g 3+>xtal1hj uralxjmjp0 2/ad2p0 3/ad3p0 4/ad4p0 5/ad5p0 6/ac6p0 7/ad7xtal2nsipsen ale

47、 eaf2.o/a8f2.uas p2 2za10 p2.3am1 p2.4/a12 p2.&a13p2.6/a14p2.7/a15n/np3cvrxd p3.1axdhl urlz p1.1/t2expl .2 p1.3 a ap3 2/intup3 34nftp3.4/top35/t1p3 6a*vpp3 7;rdrl.4p15cq opl .6pi 7u2 8051 *丄 r±dacc632母vcc ile(byi/by5) 葩d14dsdsdi7 i0ut2 0ut12019jf盜1514-u3階梯渡: 三角渋: 方波: 正弦海:hqi devices74ls0474

48、ls18 74ls21.dm 80c32741battery buttoncounter 8 crystaldac0832 hitemp10u507 minres10k motordc opampphyc0402np022ppotpot-logres resistor vsource74ls0474ls1874ls21mov dptr,#7fffhorg 0000hstart: ljmp main org 0003h ljmp inser org 0030hmain:;外部中斷入口;轉(zhuǎn)到中斷服務(wù)程序;daco832 地址setb exosetb itosetb eahere: jb 2()h.

49、(),st jb 20h,tri jb 20h.2,sq jb 20h.3,sin sjmp here;允許中斷;負(fù)邊沿觸發(fā)方式;開(kāi)中斷;階梯波處理;三角波處理;方波處理;正弦波處理;等待中斷inser: jnbp1.0, ll1sjmpl1ll1:mov 20h,#00hsetb 20h.0sjmp rtli:jnb p1.2, ll2sjmp l2ll2:mov 20h,#00hsetb 2oh. 1sjmp rtl2:jnbp1.4,ll3sjmp l3ll3:mov 20h,#00hsetb 20h.2sjmp rt;屮斷服務(wù)程序,查詢按鍵;設(shè)置階梯波標(biāo)志;設(shè)三角梯波標(biāo)志;設(shè)置方波標(biāo)志

50、l3:jnbp1.6, ll4sjmp rtll4:mov 20h,#00hsetb 20h.3;設(shè)置正弦波標(biāo)志rt:reti;中斷返回st:mova,#00h;階梯波loopp: movxdptr,a;啟動(dòng)d/a轉(zhuǎn)換incajb20h.o,loopp;連續(xù)輸出波形ljmpheretri:mova,#00h;三角波up:movxdptr,a;啟動(dòng)d/a轉(zhuǎn)換inca;上升沿cjnea,#0ffh,updown:movx dptr,a;啟動(dòng)d/a轉(zhuǎn)換deca;下降沿cjnea,#ooh,downjb20h.1, up;連續(xù)輸小波形ljmpheresq:mova,#o()h;方波movxdptr,a:dac輸岀低電平acalldelay涎時(shí)1mova,#0ffhmovxdptr,a;dac輸出高電平acalldelay涎時(shí)2jb 20h.2, sq;連續(xù)輸出波形ljmp heresin:mov dptr,#sintab;正弦波mov r0,#6dhloop:clr amovca,a+dptrmov r0,ainc dptrinc rocjne r(),#8()h,loopmov dp

溫馨提示

  • 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)論