基于單片機(jī)聲波測(cè)距_第1頁(yè)
基于單片機(jī)聲波測(cè)距_第2頁(yè)
基于單片機(jī)聲波測(cè)距_第3頁(yè)
基于單片機(jī)聲波測(cè)距_第4頁(yè)
基于單片機(jī)聲波測(cè)距_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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、機(jī)電信息工程學(xué)院機(jī)電信息工程學(xué)院 單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告單片機(jī)系統(tǒng)課程設(shè)計(jì)報(bào)告 完成日期:完成日期:2010 年年 5 月月 28 日日 系:電子工程系 專 業(yè):通信工程 班 級(jí):071 班 設(shè)計(jì)題目:超聲波測(cè)距 學(xué)生姓名: 指導(dǎo)教師: 目目 錄錄 一、設(shè)計(jì)任務(wù)和性能指標(biāo) .2 1.1 設(shè)計(jì)任務(wù).2 1.2 性能指標(biāo).2 二、設(shè)計(jì)方案 .3 三、系統(tǒng)硬件設(shè)計(jì) .4 3.1 單片機(jī)最小系統(tǒng).4 3.2 超聲波發(fā)射電路.4 3.3 超聲波檢測(cè)接收電路.5 3.4.溫度補(bǔ)償電路.6 3.5 顯示電路.7 四.系統(tǒng)軟件設(shè)計(jì) .8 4.1 主程序設(shè)計(jì).8 4.2 溫度補(bǔ)償子程序.8 五.調(diào)試及性能分析

2、.10 5.1 調(diào)試步驟.10 5.2 性能分析.10 六.心得體會(huì) .11 參考文獻(xiàn) .12 附錄 1 系統(tǒng)硬件電路圖 .13 附錄 2 程序清單 .14 一、設(shè)計(jì)任務(wù)和性能指標(biāo)一、設(shè)計(jì)任務(wù)和性能指標(biāo) 1.11.1 設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù) 利用單片機(jī)及外圍接口電路(鍵盤接口和顯示接口電路)設(shè)計(jì)制作一個(gè)含有溫度補(bǔ)償?shù)?超聲波測(cè)距儀器,用 LED 把環(huán)境溫度和測(cè)距儀距被測(cè)物的距離顯示出來(lái)。 要求用 AD6.0 畫出系統(tǒng)的電路原理圖,印刷電路板,繪出程序流程圖,并給出程序 清單。 1.21.2 性能指標(biāo)性能指標(biāo) 1.距離顯示:用三位 LED 數(shù)碼管進(jìn)行顯示(單位是 CM) 。 2.環(huán)境溫度:用三位數(shù)碼管

3、進(jìn)行顯示溫度(絕對(duì)溫度) 。 3.測(cè)距范圍:5CM 到 300CM 之間。 4.鍵位:復(fù)位鍵 、便攜電源開關(guān)、USB 供電開關(guān),溫度顯示距離顯示 二、設(shè)計(jì)方案二、設(shè)計(jì)方案 按照系統(tǒng)設(shè)計(jì)的功能的要求,初步確定設(shè)計(jì)系統(tǒng)由單片機(jī)主控模塊、電源模塊、顯示 模塊、鍵掃描模塊、超聲波發(fā)射模塊,超聲波接收模塊,溫度補(bǔ)償模塊共七個(gè)模塊組成。 主控芯片使用51系列STC89C52單片機(jī),該單片機(jī)工作性能穩(wěn)定,同時(shí)也是在單片機(jī)課 程設(shè)計(jì)中經(jīng)常使用到的控制芯片。本設(shè)計(jì)在接受模塊采用了由索尼公司生產(chǎn)的CX2016A紅外 接收芯片來(lái)實(shí)現(xiàn)超聲波的接收。CX2016A是一款紅外線檢波接收的專用芯片,常用于電視機(jī) 紅外遙控接

4、收器??紤]到紅外遙控常用的載波頻率38KHz與測(cè)距超聲波頻率40KHz較為接近, 可以利用它作為超聲波檢測(cè)電路。實(shí)驗(yàn)證明其具有很高的靈敏度和較強(qiáng)的抗干擾能力。同 時(shí)通過(guò)改變部分參數(shù)來(lái)改變接受電路的靈敏度和抗干擾能力,所以我們采用該芯片作為接 收模 3.4.3.4.溫度補(bǔ)償電路溫度補(bǔ)償電路 溫度傳感器使用了DSl8B20數(shù)字溫度計(jì)提供可選擇的12位(二進(jìn)制)溫度讀數(shù)來(lái)指示周圍 環(huán)境的溫度信息。經(jīng)過(guò)單線接口DQ與單片機(jī)進(jìn)行數(shù)據(jù)交互。從主機(jī)CPU到DSl8B20僅需一條 數(shù)據(jù)接線(和地線)。DSl8B20的電源可以由數(shù)據(jù)線本身提供而不需要接外部電源。由于每一 個(gè)DSl8B20在出廠時(shí)已經(jīng)給定了唯一的

5、序號(hào)因此任意多個(gè)DSl8B20可以存放在同一條單線總 線上實(shí)現(xiàn)多點(diǎn)溫度測(cè)量。溫度傳感器DSl8B20的測(cè)溫范圍從-55攝 氏度到+125攝氏度增量 值為0.5度可在l s(典型值)內(nèi)把溫度變換成數(shù)字量,因此采用DS18B20實(shí)現(xiàn)溫度補(bǔ)償電路的 設(shè)計(jì)。 圖 3-3 超聲波接收電路原理圖 3.53.5 顯示電路顯示電路 顯示電路主要由74ls273芯片驅(qū)動(dòng),用PNPC8550三級(jí)管進(jìn)行位選,七段共陽(yáng)極數(shù)碼管 顯示,硬件電路圖如圖3-5所示: 圖 3-4 溫度補(bǔ)償電路原理圖 圖 3-5 顯示電路原理圖 四四. .系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì) 4.14.1 主程序設(shè)計(jì)主程序設(shè)計(jì) 主程序中包括溫度補(bǔ)償子程序

6、,計(jì)算子程序,顯示子程序 ,如圖 4-1 所示: 在主程序設(shè)計(jì)中,我們采用了匯編編程。首先進(jìn)行系統(tǒng)初始化。其次利用循環(huán)產(chǎn)生4個(gè) 40KHZ的方波,由輸出口進(jìn)行輸出,并開始計(jì)時(shí)。第三讀取外界環(huán)境的溫度,由該溫度確定 環(huán)境中的超聲波傳輸速度。第四等待中斷,若超聲波被接收探頭捕捉到,那么通過(guò)中斷可 測(cè)得超聲波在環(huán)境中的傳播時(shí)長(zhǎng)。第五進(jìn)行計(jì)算,求得測(cè)距儀到被測(cè)物的距離。第六進(jìn)行 距離顯示。 圖 4-1 程序流程圖 圖 4-1 主程序流程圖 4.24.2 溫度補(bǔ)償子程序溫度補(bǔ)償子程序 DS18B20 正常工作需要嚴(yán)格的工作時(shí)序,操作起來(lái)很復(fù)雜,圖 4-2 給出的是 DS18B20 的時(shí)序圖,其控制程序如

7、下: TEMP: SETB DQ NOP CLR DQ MOV R0,#0FBH TSR1: DJNZ R0,TSR1 SETB DQ MOV R0,#25H ; TSR2: JNB DQ TSR3 DJNZ R0,TSR2 ; TSR3: SETB FLAG1 CLR P2.0 AJMP TSR5 TSR4: CLR FLAG1 LJMP TSR7 TSR5: MOV R0,#06BH TSR6: DJNZ R0,TSR6 TSR7:SETB DQ RET 圖 4-2 DS18B20 時(shí)序圖 *讀轉(zhuǎn)換后的溫度值* GET_TEMPER: SETB DQ LCALL TEMP JB FLAG1

8、,TSS2 RET TSS2:MOVA,#0CCH LCALL WRITE_18B20 MOVA,#44H LCALL WRITE_18B20 LCALL TEMP MOV A,#0CCH LCALL WRITE_18B20 MOV A,#0BEH ; LCALL WRITE_18B20 LCALL READ2_18B20 ; RET *寫 ds18b20 匯編程序* WRITE_18B20: MOV R2,#8 CLR C WR1:CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R

9、2,WR1 SETB DQ RET ; *讀 18B20 程序,讀出兩個(gè)字節(jié)的溫度 * READ2_18B20: MOV R4,#2 ; MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET *讀出的溫度進(jìn)行數(shù)據(jù)轉(zhuǎn)換* CHANGE: MOV A,29H ; MOVC,28H.0 RR

10、C A MOV C,28H.1 RRC A MOV C,28H.2 RRC A MOV C,28H.3 RRC A MOV 29H,A 五五. .調(diào)試及性能分析調(diào)試及性能分析 5.15.1 調(diào)試步驟調(diào)試步驟 我們的步驟是先焊接各個(gè)模塊,焊接完每個(gè)模塊以后,再進(jìn)行模塊的單獨(dú)測(cè)試,以確 保在整個(gè)系統(tǒng)焊接完能正常的工作,首先焊接的是電源模塊,其中包括USB供電和電池供電 兩種方式,電源模塊焊接完以后,進(jìn)行電源模塊的測(cè)試,當(dāng)插上USB以后電源指示燈并沒有 亮,說(shuō)明電源模塊有問(wèn)題,后來(lái)發(fā)現(xiàn)穩(wěn)壓芯片發(fā)燙,得出一定是電源和地短了,接下來(lái)就 開始檢查USB的地和電源是不是接反了,然后開始檢查PCB和電路圖,發(fā)

11、現(xiàn)確實(shí)是封裝錯(cuò)了, USB解決以后測(cè)試,發(fā)現(xiàn)電源指示燈還是沒有亮,不過(guò)7805還是發(fā)熱,經(jīng)檢查知道,7805的 封裝也錯(cuò)了,經(jīng)改裝電源模塊可以正常工作了,接下來(lái)是單片機(jī)最小系統(tǒng)的測(cè)試,焊接完 以后發(fā)現(xiàn)系統(tǒng)沒有問(wèn)題,程序可以正常下載,然后是超聲波發(fā)送模塊的焊接,焊接完以后, 編寫一個(gè)專門的發(fā)射超聲波的程序,然后用示波器測(cè)試通過(guò),在測(cè)試顯示程序的時(shí)候數(shù)碼 管不能正常工作,不亮,后來(lái)發(fā)現(xiàn)是驅(qū)動(dòng)芯片74LS273的CLK沒有和單片機(jī)的控制端連接上, 不能將數(shù)據(jù)鎖存到數(shù)碼管中,后來(lái)用跳線連接上了。接下來(lái)是軟件的調(diào)試過(guò)程,在軟件的 調(diào)試過(guò)程中,遇到了很多的問(wèn)題 ,每個(gè)問(wèn)題也解決了。經(jīng)過(guò)3,4天的調(diào)試終于將

12、程序調(diào)試 通過(guò)了。 5.25.2 性能分析性能分析 雖然結(jié)果和預(yù)想的有很大的差距,但總體來(lái)說(shuō)已經(jīng)基本上達(dá)到了要求,理想上超聲 波測(cè)距能達(dá)到5到7米左右,而我們所能實(shí)現(xiàn)的最大距離只有3米,造成這種原因我想有以下 幾點(diǎn): 1.由于我們采用的是11.0592MHZ的晶振,理論上是按照12MHZ的晶振計(jì)算的,所以對(duì)系 統(tǒng)造成了一定的誤差。 2.由于溫度傳感器DS18B20距離單片機(jī)較近,所采集到的溫度嚴(yán)重受到單片機(jī)的影響, 造成系統(tǒng)誤差。 3.單片機(jī)接收端其中有個(gè)電阻是4.7歐姆的,由于種種原因沒有找到4.7歐姆的,就找 了個(gè)5.5歐姆的代替,造成系統(tǒng)誤差。 六六. .心得體會(huì)心得體會(huì) 俗話說(shuō)“好的開

13、始是成功的一半” 。通過(guò)這次實(shí)習(xí),我們學(xué)到了很多東西。在進(jìn)行課程 設(shè)計(jì)時(shí),我們應(yīng)該做到以下三點(diǎn):首先,我認(rèn)為最重要的就是認(rèn)真的研究老師給的題目。 其次,在老師講解的基礎(chǔ)上認(rèn)真研究硬件電路的設(shè)計(jì),和軟件流程的設(shè)計(jì)。最后,重點(diǎn)實(shí) 現(xiàn)軟硬結(jié)合的綜合調(diào)試。 這次的實(shí)習(xí)算起來(lái)一共進(jìn)行了三周,在這三周的時(shí)間里我們進(jìn)行了硬件電路圖設(shè)計(jì), PCB板的設(shè)計(jì),以及軟件的編程實(shí)現(xiàn),軟硬件的綜合調(diào)試。最終一個(gè)完整的課程設(shè)計(jì)成果出 來(lái)了,很高興它能按著設(shè)計(jì)的思想與要求運(yùn)作起來(lái)。 當(dāng)然,這其中也有很多問(wèn)題,第一、 不夠細(xì)心。比如在PCB制作過(guò)程中沒有建立網(wǎng)絡(luò)報(bào)表導(dǎo)致了部分連線沒有倒入PCB板中,還 有部分封裝出現(xiàn)了錯(cuò)誤。

14、第二,實(shí)踐環(huán)節(jié)上,這次課設(shè)是對(duì)我所學(xué)的理論課程的一次檢驗(yàn), 對(duì)于這次單片機(jī)綜合課程實(shí)習(xí),使我們的動(dòng)手能力得到提升,同時(shí)糾正我們對(duì)“系統(tǒng)”這 一概念以往的錯(cuò)誤理解。 就實(shí)現(xiàn)功能來(lái)說(shuō),設(shè)計(jì)結(jié)果能夠符合題意,成功完成了此次實(shí)習(xí)要求,我們不只在乎 這一結(jié)果,更加在乎的,是這個(gè)過(guò)程。這個(gè)過(guò)程中,我們花費(fèi)了大量的時(shí)間和精力,更重 要的是,我們?cè)趯W(xué)會(huì)創(chuàng)新的基礎(chǔ)上,同時(shí)還懂得合作精神的重要性,學(xué)會(huì)了與他人合作。 在已度過(guò)的大學(xué)時(shí)間里,我們大多數(shù)接觸的是理論課。我們?cè)谡n堂上掌握的僅僅是專業(yè)課 的理論知識(shí),如何去鍛煉我們的實(shí)踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到 實(shí)踐中去呢?我想做類似實(shí)習(xí)就為我們提供了

15、良好的實(shí)踐平臺(tái)。 同時(shí)這次實(shí)習(xí)給我們帶來(lái)前所未有的的啟發(fā): 首先,查閱資料的必要性。在做本次實(shí)習(xí)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的設(shè) 計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必要的,同時(shí)也是 必不可少的。我們是在做單片機(jī)實(shí)習(xí),但我們不是藝術(shù)家,他們可以拋開實(shí)際盡情在幻想 的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實(shí)際的構(gòu)想永遠(yuǎn)只能是構(gòu)想, 永遠(yuǎn)無(wú)法升級(jí)為設(shè)計(jì),我們能做的就是理論結(jié)合實(shí)際。 其次,在這次課程設(shè)計(jì)中,我們運(yùn)用到了以前所學(xué)的專業(yè)課知識(shí),如:模擬和數(shù)字電 路知識(shí)等。雖然過(guò)去從未獨(dú)立應(yīng)用過(guò)它們,但在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很 高,這是我做這次課

16、程設(shè)計(jì)的又一收獲。 再次,在實(shí)習(xí)之前,我們要對(duì)所用單片機(jī)的內(nèi)部結(jié)構(gòu)有一個(gè)系統(tǒng)的了解,知道該單片 機(jī)內(nèi)有哪些資源;要有一個(gè)清晰的思路和一個(gè)完整的的軟件流程圖;在設(shè)計(jì)程序時(shí),不能 妄想一次就將整個(gè)程序設(shè)計(jì)好,反復(fù)修改、不斷改進(jìn)是程序設(shè)計(jì)的必經(jīng)之路;要養(yǎng)成注釋 程序的好習(xí)慣,一個(gè)程序的完美與否不僅僅是實(shí)現(xiàn)功能,而應(yīng)該讓人一看就能明白你的思 路,這樣也為資料的保存和交流提供了方便;在實(shí)習(xí)過(guò)程中遇到問(wèn)題是很正常的,但我們 應(yīng)該將每次遇到的問(wèn)題記錄下來(lái),并分析清楚,以免下次再碰到同樣的問(wèn)題。但是從中學(xué) 到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問(wèn)題和實(shí)踐能力提高都會(huì)受益于我在 以后的學(xué)習(xí)、工作和生活中

17、 最后,我們?cè)谶@次實(shí)習(xí)中我們使用了分模塊焊接,分模塊測(cè)試的方法進(jìn)行硬件電路的 焊接和測(cè)試,這是我們最寶貴的收獲,這樣做可以避免走很多彎路。使得調(diào)試也條理分明。 總體上說(shuō),這次實(shí)習(xí)中收獲很多,感觸也很多。 參考文獻(xiàn)參考文獻(xiàn) 1 徐維祥、劉旭敏. 單片微型機(jī)原理及應(yīng)用. 大連:大連理工大學(xué)出版社,1996 2 李光飛、樓然苗、胡佳文、謝象佐. 單片機(jī)課程設(shè)計(jì)與實(shí)例指導(dǎo). 北京: 北京航空航 天大學(xué)出版社,2004 3 余永權(quán). 89系列FLASH單片機(jī)原理及應(yīng)用. 北京:電子工業(yè)出版社,2002 4 李群芳,黃建. 單片機(jī)微型計(jì)算機(jī)與接口技術(shù). 北京:電子工業(yè)出版社,2001 5 樓然苗、李光飛.

18、 51系列單片機(jī)設(shè)計(jì)實(shí)例. 北京:北京航空航天大學(xué)出版社,2003 6 王守中 51單片機(jī)開發(fā)入門與典型實(shí)例. 北京:人民郵電出版社,2009 附錄附錄 1 1 程序清單程序清單 VOUT EQU P1.0 TEMP1 EQU 36H TEP1 EQU 37H DQ EQU P1.7 FLAG1 EQU 38H ORG 0000H JMP START ORG 0003H JMP PINT0 ;*主程序* START:MOV P3,0FFH MOV P0,0FFH MOV P1,0FFH MOV P2,0FFH MOV TMOD,#01H MOV TH0,#00H MOV TL0,#00H CL

19、R IE0 SETB PX0 SETB EA SETB EX0 CLR IT0 MOV R4,#4 SETB TR0 k: CPL P1.0 NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ R4,K JNB IE0,$ LCALL TEMP LCALL GET_TEMPER LCALL CHANGE LCALL WORK LCALL DISPLAY1 LJMP START PINT0:CLR TR0 CLR EX0 MOV 30H,TL0 MOV 31H,TH0 RETI TEMP: SETB DQ NOP CLR DQ MOV R0,#0FBH ;給延 時(shí)程

20、序賦初值 TSR1: DJNZ R0,TSR1 ; 延時(shí) SETB DQ MOV R0,#25H ;給延 時(shí)程序賦初值 TSR2: JNB DQ ,TSR3 ; S18B20 是否存在,存在就跳轉(zhuǎn)到 TSR3 DJNZ R0,TSR2 ;不 存在等待 TSR3: SETB FLAG1 ;置 標(biāo)志位,表明 DS18B20 存在; CLR P2.0 ;二極管 指示 AJMP TSR5 TSR4: CLR FLAG1 LJMP TSR7 TSR5: MOV R0,#06BH TSR6: DJNZ R0,TSR6 ;延時(shí) TSR7:SETB DQ ;表 明不存在 RET *讀轉(zhuǎn)換后的溫度值* GET_

21、TEMPER: SETB DQ LCALL TEMP JB FLAG1,TSS2 RET ;若 不存在則返回 TSS2: MOV A,#0CCH ;跳 過(guò) ROM LCALL WRITE_18B20 MOV A,#44H ;發(fā) 出溫度轉(zhuǎn)換命令 LCALL WRITE_18B20 LCALL TEMP MOV A,#0CCH ;跳 過(guò) ROM LCALL WRITE_18B20 MOV A,#0BEH ; 發(fā)出讀溫度換命令 LCALL WRITE_18B20 LCALL READ2_18B20 ;讀兩個(gè)字節(jié)的溫度 RET ; *寫 ds18b20 匯編程序* WRITE_18B20: MOV R

22、2,#8 CLR C WR1:CLR DQ MOV R3,#6 DJNZ R3,$ RRC A MOV DQ,C MOV R3,#23 DJNZ R3,$ SETB DQ NOP DJNZ R2,WR1 SETB DQ RET ; *讀 18B20 程序,讀出兩個(gè)字節(jié)的溫度 * READ2_18B20: MOV R4,#2 ;低位存在 29 H,高位存在 28H MOV R1,#29H RE00: MOV R2,#8 RE01: CLR C SETB C NOP NOP CLR DQ NOP NOP NOP SETB DQ MOV R3,#7 DJNZ R3,$ MOV C,DQ MOV R3

23、,#23 DJNZ R3,$ RRC A DJNZ R2,RE01 MOV R1,A DEC R1 DJNZ R4,RE00 RET ; *讀出的溫度進(jìn)行數(shù)據(jù)轉(zhuǎn)換* CHANGE: MOV A,29H ; MOV C,28H.0 ; 將 28H 中的最低位移入 C RRC A MOV C,28H.1 RRC A MOV C,28H.2 RRC A MOV C,28H.3 RRC A MOV 29H,A LCALL CONVERSE RET ;* *DISPLAY* CONVERSE: MOV A,29H;將 29H 中的 十六進(jìn)制數(shù)轉(zhuǎn)換成 10 進(jìn)制 MOV DPTR,#TABLE MOVC

24、A,A+DPTR MOV TEMP1,A TABLE: DB 165D,165D,165D,166D,166D,166D,167D,16 7D,167D,167D DB 168D,168D,168D,169D,169D,169D,170D,17 0D,170D,171D DB 171D,171D,172D,172D,172D,173D,173D,17 3D,174D,174D DB 174D,174D,175D,175D,175D RET ;* *計(jì)算子程序* WORK: ; MOV PSW, #18h ;選擇 3 區(qū) R 系列寄存器 MOV R3, 31H MOV R2, 30H MOV R

25、1, #00D MOV R0, TEMP1 LCALL MUL2BY2 MOV R3, #27H MOV R2, #10H LCALL DIV4BY2 LCALL HBCD RET *兩字節(jié)無(wú)符號(hào)數(shù)乘法程序* ; R7R6R5R4 = R3R2 * R1R0 速度 X 時(shí) 間/2 MUL2BY2: CLR A MOV R7, A MOV R6, A MOV R5, A MOV R4, A MOV 46H, #10H MULLOOP1: CLR C MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6

26、, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A JNC MULLOOP2 MOV A, R4 ADD A, R2 MOV R4, A MOV A, R5 ADDC A, R3 MOV R5, A MOV A, R6 ADDC A, #00H MOV R6, A MOV A, R7 ADDC A, #00H MOV R7, A MULLOOP2: DJNZ 46H, MULLOOP1 RET * 四字節(jié)/兩字節(jié)無(wú)符號(hào)數(shù)除法程序 * ;R7R6R5R4/R3R2=R7R6R5R4(商

27、). .R1R0(余數(shù))/10000 DIV4BY2: MOV 46H, #20H MOV R0, #00H MOV R1, #00H DIVLOOP1: MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A CLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, A DIVLOOP2: CPL C DJNZ 46H, DIVLOOP1 MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論