2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩21頁(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、<p>  《單片機(jī)原理及應(yīng)用》</p><p><b>  課程設(shè)計(jì)報(bào)告</b></p><p>  學(xué) 院: 源與動(dòng)力工程學(xué)院__</p><p>  班 級(jí):_____ _____</p><p>  學(xué) 號(hào):__ _____</p><p>  姓 名:_____ ___

2、____</p><p>  時(shí) 間:2012-12-17 ~ 2012-12-21</p><p><b>  目 錄</b></p><p><b>  任務(wù)書1</b></p><p>  第一章方案設(shè)計(jì)2</p><p>  第二章硬件系統(tǒng)設(shè)計(jì)3&l

3、t;/p><p>  第三章軟件設(shè)計(jì)7</p><p>  第四章系統(tǒng)調(diào)試10</p><p><b>  小 結(jié)11</b></p><p>  附錄1:原理圖13</p><p>  附錄2:源程序14</p><p><b>  任務(wù)書</

4、b></p><p>  1、題 目:基于單片機(jī)的數(shù)字電壓表設(shè)計(jì)</p><p><b>  2、設(shè)計(jì)要求:</b></p><p> ?。?)利用單片機(jī)及ADC0809構(gòu)成一個(gè)電壓采集系統(tǒng),實(shí)現(xiàn)8通道循環(huán)采樣,循環(huán)顯示。</p><p> ?。?)顯示采用ZLG7290,顯示精度到小數(shù)點(diǎn)后一位。</p

5、><p><b>  方案設(shè)計(jì)</b></p><p><b>  1、總體設(shè)計(jì)方案</b></p><p>  本設(shè)計(jì)使用ADC0809對(duì)模擬信號(hào)進(jìn)行轉(zhuǎn)換,然后經(jīng)過(guò)AT89C51轉(zhuǎn)換后的結(jié)果來(lái)進(jìn)行運(yùn)算和處理,然后由數(shù)碼管直接顯示數(shù)字電壓信號(hào),其中分辨率為0.02v。用電位器控制輸入電壓,經(jīng)ADC0809模數(shù)轉(zhuǎn)換,然后數(shù)據(jù)被單

6、片機(jī)采集,并經(jīng)過(guò)單片機(jī)利用相應(yīng)的算法進(jìn)行調(diào)整,最后利用串口將處理好的數(shù)據(jù)輸出至數(shù)碼管。其中ADC0809通過(guò)IN0~IN7采集模擬電壓信號(hào)送給單片機(jī),單片機(jī)將采集來(lái)的信號(hào)通過(guò)一定的處理然后通過(guò)串口輸出至共陽(yáng)極的LED數(shù)碼管顯示采集到的電壓值。</p><p><b>  2、總體設(shè)計(jì)框圖</b></p><p><b>  硬件系統(tǒng)設(shè)計(jì)</b>&

7、lt;/p><p><b>  硬件系統(tǒng)設(shè)計(jì)思路</b></p><p>  8路數(shù)字電壓表應(yīng)用系統(tǒng)硬件電路由單片機(jī)、A/D轉(zhuǎn)換器、數(shù)碼管顯示電路</p><p>  等組成。ADC0809具有8路模擬量輸入通道IN0---IN7,通過(guò)3位地址輸入端C、B、A(引腳23--25)進(jìn)行選擇。引腳22為地址鎖存控制端ALE,當(dāng)輸入為高電平時(shí),C、B、A

8、引腳輸入的地址鎖存于ADC0809內(nèi)部是鎖存器中,經(jīng)內(nèi)部譯碼電路譯碼選中相應(yīng)的模擬通道。引腳6為啟動(dòng)轉(zhuǎn)換控制端START,當(dāng)輸入一個(gè)2μs寬的高電平脈沖時(shí),就啟動(dòng)ADC0809開始對(duì)輸入通道的模擬量進(jìn)行轉(zhuǎn)換。引腳7為A/D轉(zhuǎn)換器,當(dāng)開始轉(zhuǎn)換時(shí),EOC信號(hào)為低電平,經(jīng)過(guò)一段時(shí)間,轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)束信號(hào)EOC輸出高電平,轉(zhuǎn)換結(jié)果存放于ADC0809內(nèi)部的輸出數(shù)據(jù)寄存器中。引腳9腳為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制端OE,當(dāng)OE為高電平時(shí),存放于輸

9、出數(shù)據(jù)鎖存器中的數(shù)據(jù)通過(guò)ADC0809的數(shù)據(jù)線D0—D7輸出。引腳10為ADC0809的時(shí)鐘信號(hào)輸入端CLOCK。在連接時(shí),ADC0809的數(shù)據(jù)線D0—D7與AT89S52的P0口相連接,ADC0809的地址引腳、地址鎖存端ALE、啟動(dòng)信號(hào)START、數(shù)據(jù)輸出允許控制端OE分別與AT89S52的P2口相連接,轉(zhuǎn)換結(jié)束信號(hào)EOC與AT89S52的P3.7相連接。時(shí)鐘信號(hào)輸入端C</p><p><b> 

10、 模塊分析</b></p><p> ?。?)AT89C51單片機(jī)  </p><p>  P0口:P0口為一個(gè)8位漏級(jí)開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/ 地址的第八位。在這里P0口作為輸入與輸出分別與ADC0808的輸出端和LCD顯示的輸入端相連,且P0外部被阻值為1K

11、?的電阻拉高。 </p><p>  P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)

12、據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。這里只用到了P2.0~P2.3四個(gè)端口,其中P2.1~P2.3都是作為輸出端口控制顯示電路的寄存器選擇、讀寫信號(hào)和使能端口。 </p><p>  P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣

13、故。 </p><p>  P3口也可作為AT89C51的一些特殊功能口,在這里用到了P3.3 /INT1(外部中斷1)、 P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)、P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)。</p><p><b> ?。?)A/D轉(zhuǎn)換</b></p><p>  IN0~I(xiàn)N7為8路模擬量輸入端,這里只接一路電壓信號(hào),其輸入

14、信號(hào)是由直流電源及可調(diào)電阻提供。 </p><p>  OUT1~OUT8為8位二進(jìn)制數(shù)字量輸出端,其另一端連接到AT89C51單片機(jī)進(jìn)行數(shù)值轉(zhuǎn)換。 </p><p>  ADDA、ADDB、ADDC為3位片選地址輸入線,用于選通8路模擬輸入中的一路。 </p><p>  ALE為地址鎖存允許信號(hào),由單片機(jī)P3.6口寫信號(hào)與P2.0口相或取反輸入,高電平有效。 &

15、lt;/p><p>  START為 A/D轉(zhuǎn)換啟動(dòng)脈沖輸入端,由單片機(jī)P3.6口寫信號(hào)與P2.0口相或取反輸入一個(gè)正脈沖使其啟動(dòng)(脈沖上升沿使0808復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)。 </p><p>  EOC為 A/D轉(zhuǎn)換結(jié)束信號(hào),當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平取反給P3.3口(轉(zhuǎn)換期間一直為低電平)。 </p><p>  OE為數(shù)據(jù)輸出允許信號(hào),高電平有

16、效。當(dāng)A/D轉(zhuǎn)換結(jié)束時(shí),此端由單片機(jī)P3.7讀信號(hào)與P2.0口相或后取反輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量。     </p><p><b> ?。?)顯示電路  </b></p><p>  RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。由單片機(jī)P2.1口控制</p><p>  R/W為讀寫信號(hào)線,高電平時(shí)

17、進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電</p><p>  平R/W為低電平時(shí)可以寫入數(shù)據(jù)。由單片機(jī)P2.2口控制</p><p>  E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。由單片機(jī)P2.3口控制</p><p>  D0~D7為8位雙向數(shù)

18、據(jù)線。由單片機(jī)P0口輸入,經(jīng)過(guò)阻值為1K?的上拉電阻連接。</p><p><b>  軟件設(shè)計(jì)</b></p><p><b>  設(shè)計(jì)說(shuō)明</b></p><p>  本實(shí)驗(yàn)采用AT89C51 單片機(jī)芯片配合 ADC0809 模/數(shù)轉(zhuǎn)換芯片構(gòu)成一個(gè)簡(jiǎn) 易的數(shù)字電壓表,原理電路如圖1-1 所示。該電路通過(guò) ADC0809

19、 芯片采樣輸入口 AI0 輸入的0~5V 的模擬量電壓,經(jīng)過(guò)模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過(guò)其輸出通道D0~D7 傳送給 AT89C51 芯片的F0口。AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過(guò)數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼,并通過(guò)P1 口傳送給數(shù)碼管。同時(shí)它還通過(guò)其三位 I/O 口 P3.0、P3.1、P3.2 產(chǎn)生位片選信號(hào),控制數(shù)碼管的亮滅。另外,AT89C51 還控制著 ADC0809 的工作。其ALE管腳為 ADC08

20、09提供了 1MHZ 工作的時(shí)鐘脈沖;P2.3 控制 ADC0809 的地址鎖存端(ALE); P2.4 控制 ADC0809 的啟動(dòng)端(START); P2.5 控制 ADC0809 的輸出允許端(OE); P3.7 控制 ADC0809 的轉(zhuǎn)換結(jié)束信號(hào)(EOC)。</p><p><b>  主程序設(shè)計(jì)</b></p><p>  主程序包含初始化部分、調(diào)用A/D

21、轉(zhuǎn)換子程序和調(diào)用顯示程序,如圖所示。初始化部分包含存放通道數(shù)據(jù)緩沖區(qū)初始化和顯示緩沖區(qū)初始化。</p><p>  A/D轉(zhuǎn)換子程序設(shè)計(jì)</p><p>  A/D轉(zhuǎn)換子程序用于對(duì)ADC0809的8路輸入模擬電壓進(jìn)行A/D轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存入8個(gè)相應(yīng)的存儲(chǔ)單元中,如圖所示。A/D轉(zhuǎn)換子程序每隔一定時(shí)間調(diào)用一次,即隔一段時(shí)間對(duì)輸入電壓采樣一次。</p><p>&

22、lt;b>  顯示子程序設(shè)計(jì)</b></p><p>  顯示子程序采用動(dòng)態(tài)掃描法實(shí)現(xiàn)八位數(shù)碼管的數(shù)值顯示。高位數(shù)碼管顯示通道數(shù),低兩位顯示所測(cè)電壓數(shù)值。測(cè)量所得的A/D轉(zhuǎn)換數(shù)據(jù)放在70H內(nèi)存單元中,測(cè)量數(shù)據(jù)在顯示時(shí)需轉(zhuǎn)換成10進(jìn)制BCD碼放在66H~6DH單元中。寄存器R1用作顯示數(shù)據(jù)地址指針。</p><p><b>  系統(tǒng)調(diào)試</b><

23、/p><p>  由于單片機(jī)為8位處理器,當(dāng)輸入電壓為5.00V時(shí),輸出數(shù)據(jù)值為255(FFH)因此單片機(jī)最大的數(shù)值分辨率為0.0196V(5/255)。這就決定了該電壓表的最大分辨率(精度)只能達(dá)到0.0196V。測(cè)試時(shí)電壓數(shù)值的變化一般以0.02的電壓幅度變化,如要獲得更高的精度要求,應(yīng)采用12位、13位的A/D轉(zhuǎn)換器或者使用雙字節(jié)指令。</p><p>  由于實(shí)驗(yàn)箱只有兩個(gè)電位器接口,

24、因此要實(shí)現(xiàn)八通道,可通過(guò)其它不用接線口串聯(lián)實(shí)現(xiàn)等電位,進(jìn)而實(shí)現(xiàn)模擬電壓八通道輸入。</p><p>  3、當(dāng)顯示過(guò)快時(shí)可通過(guò)改變程序設(shè)置跳轉(zhuǎn)時(shí)間,可便于觀察。</p><p><b>  小 結(jié)</b></p><p>  經(jīng)過(guò)一個(gè)多星期的不斷學(xué)習(xí)、不斷嘗試、不斷提問(wèn),單片機(jī)課程設(shè)計(jì)終于完成了。課題不是很難,但是由于是第一次接觸這種類型的學(xué)

25、習(xí)過(guò)程,所以一開始效率有點(diǎn)低,主要是無(wú)從下手,不知該做什么。課程設(shè)計(jì)前一天我在網(wǎng)上搜索了很多關(guān)于課題的文檔資料,有一定參照作用,但是也有很多不同之處,比如選用的單片機(jī)器件、A/D轉(zhuǎn)換器件或者顯示器件的不同,往往會(huì)令我在設(shè)計(jì)時(shí)不知如何正確接線。</p><p>  本次課程設(shè)計(jì)是理論與實(shí)踐相結(jié)合的一次實(shí)用性學(xué)習(xí),要學(xué)會(huì)學(xué)以致用,將所學(xué)知識(shí)用到實(shí)處。這在編程調(diào)試時(shí)尤其突出重要,比如小數(shù)點(diǎn)的顯示,精度的提高,誤差的減小

26、,這些內(nèi)容一部分取決于器件的優(yōu)劣,還有一部分來(lái)自于程序設(shè)計(jì)的好壞。所以,熟練匯編語(yǔ)言,熟練編程是我從此次課程設(shè)計(jì)中得到的一個(gè)重要啟示,因?yàn)檫@將是我們將來(lái)學(xué)以致用的關(guān)鍵。</p><p>  我的課題雖然是基于單片機(jī)的數(shù)字電壓表設(shè)計(jì),但是實(shí)際上就是一個(gè)數(shù)據(jù)采集的程序設(shè)計(jì),只不過(guò)這里數(shù)據(jù)采集的是模擬電壓罷了,采集后的數(shù)據(jù)然后通過(guò)ZLG7290顯示出來(lái)。顯示程序來(lái)源于以前的實(shí)驗(yàn),我的U盤里面正好有,因此節(jié)省了不少力氣。

27、其次在調(diào)試程序仿真時(shí),需要認(rèn)真仔細(xì),隨機(jī)應(yīng)變。</p><p>  課程設(shè)計(jì)時(shí)間雖短暫,卻是另一種完全不同的學(xué)習(xí)過(guò)程,它讓我意識(shí)到理論聯(lián)系實(shí)踐的重要性以及應(yīng)用時(shí)可能會(huì)出現(xiàn)很多意想不到的問(wèn)題,這些東西不是書本上的知識(shí)可以學(xué)到的,而要通過(guò)實(shí)踐不斷積累經(jīng)驗(yàn),不斷虛心請(qǐng)教和學(xué)習(xí)才能真正掌握的,因此以后要積極實(shí)驗(yàn)、實(shí)踐,認(rèn)真學(xué)習(xí)這些課本之外的東西??偟膩?lái)說(shuō),課程設(shè)計(jì)還是讓我學(xué)到了不少新知識(shí),也有不少新領(lǐng)悟,當(dāng)然,對(duì)單片機(jī)也

28、有了更深層次的認(rèn)識(shí),也讓我對(duì)單片機(jī)有了更高的興趣,希望學(xué)到更多關(guān)于單片機(jī)的知識(shí),做更多的實(shí)踐內(nèi)容。</p><p><b>  附錄1:原理圖</b></p><p><b>  附錄2:源程序</b></p><p>  SDABITP3.0;I2C總線定義</p><p>  SCL

29、BITP3.1</p><p>  RSTBITP1.7</p><p>  MTDEQU63H;發(fā)送數(shù)據(jù)緩沖器</p><p>  ZLG7290EQU70H;ZLG7290的器件地址</p><p>  ACKBIT10H;應(yīng)答標(biāo)志位</p><p>  SLADATA60H

30、;器件的從地址</p><p>  SUBADATA61H;器件的子地址</p><p>  NUMBYTEDATA62H;讀/寫的字節(jié)數(shù)變量</p><p>  ORG 00H </p><p>  SJMP MAIN </p><p><b>  ORG 00BH</

31、b></p><p>  LJMP INT_T0</p><p>  ORG 0003H</p><p>  LJMP INT_EX0</p><p><b>  ORG 030H</b></p><p>  MAIN: MOV SP,#70H</p><p&g

32、t;  MOV R2,#08H</p><p>  MOV TMOD, #01H </p><p>  MOV TL0, #0B0H </p><p>  MOV TH0, #3CH</p><p><b>  SETB EX0</b></p><p><b> 

33、 SETB IT0</b></p><p><b>  SETB ET0</b></p><p><b>  SETB EA</b></p><p>  SETB TR0 </p><p>  MOV 66H,#0</p><p>  MOV

34、67H,#0</p><p>  MOV 68H,#0</p><p>  MOV 69H,#0</p><p>  MOV 6AH,#0</p><p>  MOV 6BH,#0</p><p>  MOV 6CH,#0</p><p>  MOV 6DH,#0<

35、/p><p>  MOV R1,#30H</p><p>  MOV R7,#20</p><p><b>  SJMP $</b></p><p>  INT_T0:MOV TL0, #0B0H </p><p>  MOV TH0, #3CH</p>&l

36、t;p>  MOV DPTR,#0000H</p><p>  MOVX @DPTR,A</p><p>  MOV R0,#30H</p><p>  MOV A,@R1</p><p>  MOV B,#5</p><p><b>  DIV AB</b></

37、p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p>  MOV 66H,B</p><p>  MOV B,#10</p><p><b>  DIV AB</b></p><p>  

38、MOV 67H,B</p><p>  ORL 67H,#80H</p><p>  MOV 68H,A</p><p>  MOV 6DH,R1</p><p>  ANL 6DH,#07H</p><p>  LCALL LEDDISP</p><p>  DJNZ R

39、7,T0_END</p><p>  MOV R7,#20</p><p><b>  INC R1</b></p><p>  CJNE R1,#38H,T0_END</p><p>  MOV R1,#30H</p><p>  T0_END:RETI</p>&

40、lt;p>  INT_EX0:MOVX A,@DPTR</p><p>  MOV @R0,A</p><p>  INC DPTR</p><p><b>  INC R0</b></p><p>  CJNE R0,#38H,LOP</p><p><b>  

41、RETI</b></p><p>  LOP: MOVX @DPTR,A</p><p><b>  RETI</b></p><p>  leddisp:push psw</p><p><b>  push acc</b></p><p><

42、b>  setb rs1</b></p><p><b>  setb rs0</b></p><p>  mov r0,#66H</p><p>  mov r4,#8</p><p>  mov r5,#60h</p><p>  loop: MOV

43、MTD,R5</p><p>  MOV MTD+1,@R0</p><p>  MOV SLA,#70H</p><p>  MOV SUBA,#07H</p><p>  MOV NUMBYTE,#02H</p><p>  LCALL IWRNBYTE</p><p>  

44、LCALL DELY1</p><p><b>  INC R0</b></p><p><b>  INC R5</b></p><p>  DJNZ R4,LOOP</p><p><b>  POP ACC</b></p><p>&

45、lt;b>  POP PSW</b></p><p><b>  RET</b></p><p>  re7290: clr rst</p><p>  lcall dely</p><p><b>  setb rst</b></p><p> 

46、 lcall dely</p><p><b>  ret</b></p><p>  dely :mov r7,#80H</p><p>  min :djnz r7,ys500 </p><p><b>  ret</b></p><p>  ys

47、500 :lcall ys500us</p><p>  ljmp min</p><p>  ys500us:mov r6,#80h</p><p>  djnz r6,$</p><p><b>  ret</b></p><p>  dely1 :mov r7,#40h&

48、lt;/p><p>  djnz r7,$</p><p><b>  ret</b></p><p>  ;啟動(dòng)I2C總線子程序 </p><p>  START: nop</p><p><b>  nop</b></p><p>&

49、lt;b>  nop</b></p><p><b>  SETB SDA</b></p><p><b>  NOP</b></p><p>  SETB SCL ;起始條件建立時(shí)間大于4.7us</p><p><b>  NOP</b>

50、</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  CLR SDA &l

51、t;/p><p>  NOP ;起始條件鎖定時(shí)大于4us</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  N

52、OP</b></p><p>  CLR SCL ;鉗住總線,準(zhǔn)備發(fā)數(shù)據(jù)</p><p><b>  NOP</b></p><p><b>  nop</b></p><p><b>  nop</b></p><p>

53、<b>  RET</b></p><p><b>  ;結(jié)束總線子程序</b></p><p>  STOP: NOP</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>

54、;  CLR SDA</p><p><b>  NOP</b></p><p>  SETB SCL ;發(fā)送結(jié)束條件的時(shí)鐘信號(hào)</p><p>  NOP ;結(jié)束總線時(shí)間大于4us</p><p>  NOP </p><p>

55、;<b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  SETB SDA ;結(jié)束總線</p><p>  NOP ;保證一個(gè)終止

56、信號(hào)和起始信號(hào)的空閑時(shí)間大于4.7us</p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  nop</b></p><p>

57、<b>  nop</b></p><p><b>  RET</b></p><p><b>  ;檢查應(yīng)答位子程序</b></p><p>  ;返回值,ACK=1時(shí)表示有應(yīng)答</p><p><b>  CACK:NOP</b></p>

58、<p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  SETB SDA</b></p><p><b>  NOP</b></p><p><b>  NOP</b>

59、;</p><p><b>  SETB SCL</b></p><p><b>  CLR ACK</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p>  MOV

60、 C,SDA</p><p>  JC CEND</p><p>  SETB ACK ;判斷應(yīng)答位</p><p><b>  CEND:NOP</b></p><p><b>  CLR SCL</b></p><p><

61、b>  NOP</b></p><p><b>  nop</b></p><p><b>  nop</b></p><p><b>  RET</b></p><p><b>  ;發(fā)送字節(jié)子程序</b></p><

62、;p>  ;字節(jié)數(shù)據(jù)放入ACC </p><p>  ;每發(fā)送一字節(jié)要調(diào)用一次CACK子程序,取應(yīng)答位 </p><p>  WRBYTE: MOV R7,#08H</p><p>  WLP: RLC A ;取數(shù)據(jù)位</p><p><b>  JC

63、 WR1</b></p><p>  SJMP WR0 ;判斷數(shù)據(jù)位</p><p>  WLP1: DJNZ R7,WLP</p><p><b>  NOP</b></p><p><b>  RET</b></p><p

64、>  WR1: SETB SDA ;發(fā)送1</p><p><b>  NOP</b></p><p><b>  SETB SCL</b></p><p><b>  NOP</b></p><p><b>  NOP&l

65、t;/b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR SCL</b></p><p>  SJM

66、P WLP1</p><p>  WR0: CLR SDA ;發(fā)送0</p><p><b>  NOP</b></p><p><b>  SETB SCL</b></p><p><b>  NOP</b></p>&l

67、t;p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  NOP</b></p><p><b>  CLR SCL</b><

68、;/p><p>  SJMP WLP1</p><p>  ;向器件指定子地址寫N字節(jié)數(shù)據(jù)</p><p>  ;入口參數(shù): 器件從地址SLA、器件子地址SUBA 、發(fā)送數(shù)據(jù)緩沖區(qū)MTD、發(fā)送字節(jié)數(shù)NUMBYTE</p><p>  ; 占用: A 、R0 、R1 、R3 、CY </p><p>  IWRNBYT

69、E: MOV A,NUMBYTE</p><p>  MOV R3,A</p><p>  LCALL START ;起動(dòng)總線</p><p>  MOV A,SLA</p><p>  LCALL WRBYTE ;發(fā)送器件從地址 </p><p>

70、  LCALL CACK</p><p>  JNB ACK,RETWRN ;無(wú)應(yīng)答則退出</p><p>  MOV A,SUBA ;指定子地址 </p><p>  LCALL WRBYTE</p><p>  LCALL CACK</p><p>  MOV R1

71、,#MTD</p><p>  WRDA: MOV A,@R1</p><p>  LCALL WRBYTE ;開始寫入數(shù)據(jù)</p><p>  LCALL CACK</p><p>  JNB ACK,IWRNBYTE</p><p><b>  INC R1

溫馨提示

  • 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ù)僅提供信息存儲(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)論