簡易數(shù)字萬用表設(shè)計畢業(yè)設(shè)計_第1頁
簡易數(shù)字萬用表設(shè)計畢業(yè)設(shè)計_第2頁
簡易數(shù)字萬用表設(shè)計畢業(yè)設(shè)計_第3頁
簡易數(shù)字萬用表設(shè)計畢業(yè)設(shè)計_第4頁
簡易數(shù)字萬用表設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設(shè)計論文PAGEPAGE26目錄1、設(shè)計任務(wù)11.1設(shè)計目的12、設(shè)計思路與總體框圖13、系統(tǒng)硬件電路的設(shè)計…………..…………….23.1多用表主電路………23.2電阻測量輸入電路………2…………….334、系統(tǒng)的軟件設(shè)計…………………...45、系統(tǒng)的設(shè)計仿真…………………...55.1仿真原理圖………….….55.2實物圖……………………65.3主要元器件功能介紹…………….….66、總結(jié)與體會…………..206.1總結(jié)…………………….136.2體會……………137、參考文獻…….…….141、設(shè)計任務(wù)1.1設(shè)計目的采用8位8路A/D轉(zhuǎn)換器ADC0809和AT89S52單片機,設(shè)計一臺數(shù)字多用表,能進行電壓、電流和電阻的測量,測量結(jié)果通過LED數(shù)碼管顯示,通過按鍵進行測量功能轉(zhuǎn)換。1.2設(shè)計指標(biāo)及要求電壓測量范圍0~5V,測量誤差約為0.02V,電流測量范圍1~100mA,測量誤差約為0.5mA,電阻測量范圍0~1000Ω,測量誤差約為2Ω。2、設(shè)計思路與總體框圖2.1設(shè)計思路首先利用P0口數(shù)據(jù)地址復(fù)用,將地址通過P0口輸入到單片機中。再利用模數(shù)轉(zhuǎn)換將模擬信號轉(zhuǎn)換成數(shù)字信號,再次利用P0口將其輸入到單片機。最后,充分利用單片機強大的運算轉(zhuǎn)化功能將其轉(zhuǎn)成適當(dāng)?shù)亩M制信號控制數(shù)顯以確保正確的顯示被測量的讀數(shù)。2.2總體框圖89S5289S52振蕩電路復(fù)位電路ADC0809驅(qū)動LED顯示待測電阻電路阻待測電流電路待測電壓電路3、系統(tǒng)硬件電路的設(shè)計3.1數(shù)字多用表的主電路數(shù)字多表儀表主電路如圖1所示。89S52單片機通過線選方式擴展了A/D轉(zhuǎn)換器ADC0809和4位LED數(shù)碼管,單片機的P2.7引腳作為ADC0809的片選信號,因此A/D轉(zhuǎn)換器的端口地址為7FFFH.片選信號和信號一起經(jīng)或非門產(chǎn)生ADC0809的啟動信號START和地址鎖存信號ALE。片選信號和信號一起經(jīng)或非門產(chǎn)生輸出允許信號OE,OE=1時選通三態(tài)門使輸出鎖存器中的轉(zhuǎn)換結(jié)果送入數(shù)據(jù)總路線。ADC0809的EOC信號經(jīng)反相后接到89S52的引腳,用于產(chǎn)生A/D轉(zhuǎn)換完成中斷請求信號。ADC0809芯片的3位模擬量輸入通道地址輸入端A、B、C分別接到89S52的P0.0、P0.1和P0.2,故只要向端口地址0C000H分別寫入00H~07H,即可啟動模擬量輸入通道0~7進行A/D轉(zhuǎn)換。ADC0809參考正電壓為5V,參考負電壓為0V,時鐘輸入為2MHz。圖1數(shù)字多用表的主電路圖單片機的P1.0~P1.2引腳通過一個轉(zhuǎn)換開關(guān)接地,通過判斷P1.0~P1..2引腳電平的高低,決定是否進行電阻測量、電壓測量或電流測量。3.2數(shù)字多用表的電阻測量輸入電路圖2所示為數(shù)字多用表的電阻測量輸入電路。運算放大器的反饋電阻R作為待測量電阻,通過1000Ω電阻R接到電源-5V。假定運算放大器理想,那么放大器的輸出電壓RV=,將RV送給ADC0809,轉(zhuǎn)換后得到數(shù)字量為DV=。單片機讀取A/D轉(zhuǎn)換數(shù)據(jù),再經(jīng)過逆向運算可得R=,注意此時得到的R為二進制數(shù),需要轉(zhuǎn)化為十進制數(shù)后才能送給數(shù)碼管顯示。程序中采用4字節(jié)專利號除法,連續(xù)進行4次除以10的除法,依1000Ω范圍內(nèi)不超過2Ω,如果測量其他范圍的電阻,需要修改的數(shù)值,或者采用其他電路。3.3電壓測量輸入電路圖3所示為數(shù)字多用表的電壓測量輸入電路。待測電壓經(jīng)過低通濾波器濾除高頻干擾,再通過同相放大器送給ADC0809,電壓測量范圍為0~5V,ADC0809的分辨率為8位,測量誤差為5/2550.02V.3.4電流輸入測量電路圖4所示為數(shù)字多用表的電流輸入電路。電流測量范圍為1~100mA,因為ADC0809是電壓轉(zhuǎn)換器件,必須交電流轉(zhuǎn)換為電壓才能進行測量,這可以通過串接電阻R來實現(xiàn),注意R必須很?。ɡ?0.1Ω),否則影響電流數(shù)值。由于待測電流和R都很小,R兩端的電壓也很小,必須將其放大到ADC0809能夠分辨的范圍之內(nèi)。假設(shè)待測電流大小為I,R兩端節(jié)點電壓分別為V和V,V經(jīng)過反向緩沖電路之后V=-V。V和V經(jīng)過差分放大電路得: V=-(V-V)(V-V)再經(jīng)過同相放大電路得:AV=V將AV送給ADC0809轉(zhuǎn)換后得到數(shù)字量為: DAV=單片機讀取A/D轉(zhuǎn)換數(shù)據(jù),再經(jīng)過逆向運算可得I=有兩個問題值得注意,首先,由于電流的單位是mA,不能直接計算I的值應(yīng)先變換為I=再進行計算;其次,這么算出來的電流值誤差比較大,原因是LM324不是精密理想運算放大器,當(dāng)輸入信號很小時誤差比較大。因此需要對計算數(shù)值進行修正,方法是先計算DAV*50000,然后將結(jié)果減去102000這個數(shù)值是通過反復(fù)測試并經(jīng)過曲線擬合得到的。4、系統(tǒng)的軟件設(shè)計數(shù)字多用表的軟件程序(略)5、系統(tǒng)的設(shè)計仿真5.1仿真原理圖5.2實物圖5.3主要元器件功能介紹1、AT89S52芯片功能特性描述AT89S52引腳框圖:圖2.12AT89S52芯片引腳圖AT89S52主要性能:1、與MCS-51單片機產(chǎn)品兼容2、8K字節(jié)在系統(tǒng)可編程Flash存儲器3、1000次擦寫周期4、全靜態(tài)操作:0Hz~33Hz5、三級加密程序存儲器6、32個可編程I/O口線7、三個16位定時器/計數(shù)器8、八個中斷源9、全雙工UART串行通道10、低功耗空閑和掉電模式l1、掉電后中斷可喚醒l2、看門狗定時器13、雙數(shù)據(jù)指針l4、掉電標(biāo)識符功能特性描述:AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時器,2個數(shù)據(jù)指針,三個16位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。VCC:電源GND:地P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時,P1口接收低8位地址字節(jié)。表2.1P1口的第二功能P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX@RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,p2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。表2.2P3口的第二功能RST:復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機器周期高電平將使單片機復(fù)位。看門狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置“1”,ALE操作將無效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。XTAL2:振蕩器反相放大器的輸出端。Flash編程―并行模式:AT89S52帶有用作編程的片上Flash存儲器陣列。編程接口需要一個高電壓(12V)編程使能信號,并且兼容常規(guī)的第三方Flash或EPROM編程器。AT89S52程序存儲陣列采用字節(jié)式編程。編程方法:對AT89S52編程之前,需根據(jù)Flash編程模式表和圖13、圖14對地址、數(shù)據(jù)和控制信號設(shè)置。可采用下列步驟對AT89S52編程:1.在地址線上輸入編程單元地址信號2.在數(shù)據(jù)線上輸入正確的數(shù)據(jù)3.激活相應(yīng)的控制信號4.把EA/Vpp升至12V5.每給Flash寫入一個字節(jié)或程序加密位時,都要給ALE/PROG一次脈沖。字節(jié)寫周期時自身定制的,典型值僅50us。改變地址、數(shù)據(jù)重復(fù)第1步到第5步‘知道’全部文件結(jié)束。DataPollingAT89S52用DataPolling作為一個字節(jié)寫周期結(jié)束的標(biāo)志特征 2、ADC0809介紹ADC0809是帶有8位A/D轉(zhuǎn)換器、8路多路開關(guān)以及微處理機兼容的控制邏輯的CMOS組件。它是逐次逼近式A/D轉(zhuǎn)換器,可以和單片機直接接口。(1)ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖2.14ADC0809的內(nèi)部邏輯結(jié)構(gòu)上圖可知,ADC0809由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個A/D轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用A/D轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存A/D轉(zhuǎn)換完的數(shù)字量,當(dāng)OE端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。(2)引腳結(jié)構(gòu)圖2.15ADC0809引腳結(jié)構(gòu)圖IN0-IN7:8條模擬量輸入通道ADC0809對輸入模擬量要求:信號單極性,電壓范圍是0-5V,若信號太小,必須進行放大;輸入的模擬量在轉(zhuǎn)換過程中應(yīng)該保持不變,如若模擬量變化太快,則需在輸入前增加采樣保持電路。地址輸入和控制線:4條ALE為地址鎖存允許輸入線,高電平有效。當(dāng)ALE線為高電平時,地址鎖存與譯碼器將A,B,C三條地址線的地址信號進行鎖存,經(jīng)譯碼后被選中的通道的模擬量進轉(zhuǎn)換器進行轉(zhuǎn)換。A,B和C為地址輸入線,用于選通IN0-IN7上的一路模擬量輸入。通道選擇表如下表所示。表2.3地址輸入線的通道選擇CBA選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7數(shù)字量輸出及控制線:11條ST為轉(zhuǎn)換啟動信號。當(dāng)ST上跳沿時,所有內(nèi)部寄存器清零;下跳沿時,開始進行A/D轉(zhuǎn)換;在轉(zhuǎn)換期間,ST應(yīng)保持低電平。EOC為轉(zhuǎn)換結(jié)束信號。當(dāng)EOC為高電平時,表明轉(zhuǎn)換結(jié)束;否則,表明正在進行A/D轉(zhuǎn)換。OE為輸出允許信號,用于控制三條輸出鎖存器向單片機輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù);OE=0,輸出數(shù)據(jù)線呈高阻狀態(tài)。D7-D0為數(shù)字量輸出線。CLK為時鐘輸入信號線。因ADC0809的內(nèi)部沒有時鐘電路,所需時鐘信號必須由外界提供,通常使用頻率為500KHZ,VREF(+),VREF(-)為參考電壓輸入。ADC0809應(yīng)用說明:(1).ADC0809內(nèi)部帶有輸出鎖存器,可以與AT89S51單片機直接相連。(2).初始化時,使ST和OE信號全為低電平。(3).送要轉(zhuǎn)換的哪一通道的地址到A,B,C端口上。(4).在ST端給出一個至少有100ns寬的正脈沖信號。(5).是否轉(zhuǎn)換完畢,我們根據(jù)EOC信號來判斷。(6).當(dāng)EOC變?yōu)楦唠娖綍r,這時給OE為高電平,轉(zhuǎn)換的數(shù)據(jù)就輸出給單片機了。6、總結(jié)與體會6.1總結(jié)本次課程設(shè)計,雖然方案基本出來了,但是在硬件制作方面出現(xiàn)了幾個問題,這也暴露出我們知識方面的一欠缺。不足主要體現(xiàn)在以下幾個方面:(1)ADC0809的第10腳的時鐘信號,我們是通過單片機編程實現(xiàn)的但是由于頻率過低,只有500KHz,造成LED數(shù)碼管顯示不穩(wěn)定而出現(xiàn)閃爍現(xiàn)象。最終驗收時是通過從外部信號發(fā)生器輸入2MHz時鐘信號解決的。(2)萬用板焊接時,由于布線不太合理,使得背面線很零亂。并給后面的線路檢查帶來了不少麻煩。(3)對Proteus仿真軟件使用不熟練,使畫仿真圖時遇到不少問題。(4)51單片機基礎(chǔ)知識不扎實,電路分析遇到比較多的問題。 6.2體會這次課程設(shè)計暴露出了很多問題,但在做課程設(shè)計的過程中也學(xué)到了很多東西。比如查閱資料,動手焊接萬用板等等,這些都是平時很少做的。此次課程設(shè)計讓我對基于單片機的匯編語言有了新的認識,對本學(xué)期的單片機學(xué)習(xí)有很大的助益,也在激勵我們多動手,從實踐中去獲取新知識。在此要特別感謝老師在做設(shè)計期間精心指導(dǎo),他對我們要求非常嚴格。課程設(shè)計的順利完成離不開老師的幫助的。他為我提供了很多寶貴的資料。本次課程設(shè)計自始至是在他的指導(dǎo)和幫助下完成的,在此再一次向他致以深深的敬意和感謝! 7、參考文獻(1)張毅剛 單片機原理及應(yīng)用 高等教育出版社2010年8月(2)徐愛鈞 單片機原理實用教程 電子工業(yè)出版社2011年3月(2)張偉王力protel2004入門與提高人民郵電出版社2005年11月(3)常健生檢測與轉(zhuǎn)換技術(shù)機械工業(yè)出版社2000年2月(4)閻石數(shù)字電子技術(shù)基礎(chǔ)高等教育出版社1998年12月(5)童詩白模擬電子技術(shù)基礎(chǔ)高等教育出版社2001年(6)李伯成微型計算機原理與接口技術(shù)清華大學(xué)出版社2005年1月(7)李昌喜智能儀表原理與設(shè)計化學(xué)工業(yè)出版社2005年2月附錄系統(tǒng)源程序: org 0000h ;單片機復(fù)位地址 ajmp main ;轉(zhuǎn)移到主程序處 org 0100h ;main被定位在0x0100處main:mov sp,#80h ;初始化堆棧指針 jnb P1.0,cr jnb P1.1,cv jnb P1.2,cacr: mov R7,#00h lcalladc LCALLRDAT lcall DISPLAY sjmp mainCV: MOV R7,#01H LCALL ADC LCALLVDAT LCALL DISPLAY SJMP MAINCA: MOV R7,#02H LCALL ADC LCALL ADAT LCALL DISPLAY SJMP MAINADC: MOVA,R7;0808A/D轉(zhuǎn)換子程序 MOVDPTR,#7FFFH MOVX@DPTR,A JBP3.3,$ MOVXA,@DPTR;輸入轉(zhuǎn)換結(jié)果 RETvdat: mov R2,#00h mov R3,A mov R6,#01h mov R7,#0F4h call MULD2 ;乘以500 clr C mov A,r5 add A,#60h ;加96修正 mov r5,A mov A,r4 addc A,#00h mov r4,A mov A,r3 addc A,#00h mov r3,A mov A,r2 addc A,#00h mov r2,A mov r0,#30h mov r1,#34h mov A,R2 mov @r1,A inc r1 mov A,R3 mov @r1,A inc r1 mov A,R4 mov @r1,A inc r1 mov A,R5 mov @r1,A inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#0FFh call DIVD4 ;除以255 mov r1,#38h mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#0Ah call DIVD4 mov 43h,33h call DIVD4 mov 42h,33h call DIVD4 mov 41h,33h mov r0,#40h mov @r0,#00h inc r0 mov A,41h mov DPTR,#SEGMENT7 movc A,@A+DPTR orl A,#80h mov @r0,A inc r0 mov A,42h mov DPTR,#SEGMENT7 movc A,@A+DPTR mov @r0,A inc r0 mov A,43h mov DPTR,#SEGMENT7 movc A,@A+DPTR mov @r0,A retADAT: mov B,A mov A,#0B6h clr C ;以下根據(jù)范圍設(shè)置數(shù)值以防溢出 subb A,B jc LARGERA mov A,B subb A,#16h jc LESSA ajmp MIDDLEALARGERA: mov A,#0B6h ajmp CALCULATEALESSA: mov A,#16h ajmp CALCULATEAMIDDLEA: mov A,BCALCULATEA: mov r2,#0C3h mov r3,#50h mov r6,#00h mov r7,A call MULD2 ;乘以50000 clr C mov A,r5 subb A,#70h ;以下減去102000 mov r5,A mov 37h,A mov A,r4 subb A,#8Eh mov r4,A mov 36h,A mov A,r3 subb A,#01h mov r3,A mov 35h,A mov A,r2 subb A,#00h mov r2,A mov 34h,A mov r0,#30h mov r1,#38h mov @r1,#00h inc r1 mov @r1,#01h inc r1 mov @r1,#5Eh inc r1 mov @r1,#0A0h call DIVD4 ;除以89760 mov r1,#38h mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#0Ah mov DPTR,#SEGMENT7 call DIVD4 mov A,33h movc A,@A+DPTR mov 43h,A call DIVD4 mov A,33h movc A,@A+DPTR mov 42h,A call DIVD4 mov A,33h movc A,@A+DPTR cjne A,#3Fh,NOTEQU mov A,#00hNOTEQU: mov 41h,A mov 40h,#00h RETrdat: mov R2,#00h mov R3,A mov R6,#03h mov R7,#0E8h call MULD2 ;乘以1000 mov r0,#30h mov r1,#34h mov A,R2 mov @r1,A inc r1 mov A,R3 mov @r1,A inc r1 mov A,R4 mov @r1,A inc r1 mov A,R5 mov @r1,A inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#0FFh call DIVD4 ;除以255 mov r1,#38h mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#00h inc r1 mov @r1,#0Ah mov DPTR,#SEGMENT7 call DIVD4 ;連續(xù)進行4次除以10的操作 mov A,33h ;取得10進制值 movc A,@A+DPTR mov 43h,A call DIVD4 mov A,33h movc A,@A+DPTR mov 42h,A call DIVD4 mov A,33h movc A,@A+DPTR mov 41h,A call DIVD4 mov A,33h movc A,@A+DPTR cjne A,#3Fh,NONZERO mov A,#00hNONZERO: mov 40h,A retDELAY_5ms: mov R5,#01h ;設(shè)置R5初始計數(shù)值DELAY_5ms1: mov R6,#16h ;設(shè)置R6初始計數(shù)值DELAY_5ms2: mov R7,#70h ;設(shè)置R7初始計數(shù)值DELAY_5ms3: djnz R7,DELAY_5ms3 ;延時時間為Time=(((R7*2)+2+1)*R6+2+1)*R5+1 djnz R6,DELAY_5ms2 ; djnz R5,DELAY_5ms1 ; ret SEGMENT7: DB 3Fh ;7段數(shù)碼管字符0的abcdefg的值,a在最低位,最高位始終保留為0 DB 06h DB 5Bh DB 4Fh DB 66h DB 6Dh DB 7Dh DB 07h DB 7Fh DB 6Fh DISPLAY: mov DPTR,#0fEffh ;寫第一位數(shù)碼管 mov r1,#40h mov A,@r1 movx @DPTR,A setb C mov P1.4,C clr C mov P1.4,C call DELAY_5ms setb C mov P1.4,C inc r1 mov A,@r1 ;寫第二位數(shù)碼管 movx @DPTR,A setb C mov P1.5,C clr C mov P1.5,C call DELAY_5ms setb C mov P1.5,C inc r1 mov A,@r1 ;寫第三位數(shù)碼管 movx @DPTR,A setb C mov P1.6,C clr C mov P1.6,C call DELAY_5ms setb C mov P1.6,C inc r1 mov A,@r1 ;寫第四位數(shù)碼管 movx @DPTR,A setb C mov P1.7,C clr C mov P1.7,C call DELAY_5ms setb C mov P1.7,C ret ;雙字節(jié)二進制無符號數(shù)乘法;被乘數(shù)在R2(高位)、R3(低位)中,乘數(shù)在R6(高位)、R7(低位)中。;乘積在R2(高位)、R3、R4、R5(低位)中。;用到累加器A,B,PSW,R2~R7。;永遠不會產(chǎn)生進位。;在出口時總是清除C。;若結(jié)果超出2個字節(jié)范圍則OV=1。MULD2: MOV A,R3 MOV B,R7 MUL AB MOV R4,B MOV R5,A MOV A,R3 MOV B,R6 MUL AB ADD A,R4 MOV R4,A CLR A ADDC A,B MOV R3,A MOV A,R2 MOV B,R7 MUL AB ADD A,R4 MOV R4,A MOV A,R3 ADDC A,B MOV R3,A CLR A RLC A XCH A,R2 MOV B,R6 MUL AB ADD A,R3 MOV R3,A MOV A,R2 ADDC A,B MOV R2,A ORL A,R3 JZ MULD21 SETB OV RETMULD21: CLR OV RET ;四字節(jié)無符號數(shù)除法;R0存放被除數(shù),除數(shù),商數(shù)的地址。;從R0開始的連續(xù)四個字節(jié)為結(jié)果的余數(shù),入口時可以為任意,但在出口時發(fā)生變化。;其后的連續(xù)4個字節(jié)在入口時是被除數(shù),出口時是商數(shù)。;再其后的連續(xù)四個字節(jié)在入口時是除數(shù),出口時保持不變。;用到累加器A,B,PSW,R0~R7。;如果除數(shù)為零,則置OV=1標(biāo)志,否則清零。;在出口時總是清除C。DIVD4: MOV A,R0 MOV B,A ADD A,#08h MOV R1,A MOV A,#00h ORL A,@R1 INC R1 ORL A,@R1 INC R1 ORL A,@R1 INC R1 ORL A,@R1 JZ DIVD45 MOV R1,B MOV R2,#04hDIVD41: MOV @R1,#00h INC R1 DJNZ R2,DIVD41 MOV R3,#20hDIVD42: MOV R2,#08h MOV A,B MOV R0,A ADD A,#07h MOV R1,A CLR CDIVD43: MOV A,@R1 RLC A MOV @R1,A DEC R1 DJNZ R2,DIVD43 MOV A,R0 ADD A,#03h MOV R1,A MOV A,R0 ADD A,#0Bh MOV R0,A MOV A,@R1 SUBB A,@R0 MOV R4,A DEC R1 DEC R0 MOV A,@R1 SUBB A,@R0 MOV R5,A DEC R1 DEC R0 MOV A,@R1 SUBB A,@R0 MOV R6,A DEC R1 DEC R0 MOV A,@R1 SUBB A,@R0 MOV R7,A JC DIVD44 MOV A,B MOV R0,A ADD A,#03h MOV R1,A MOV A,R4 MOV @R1,A DEC R1 MOV A,R5 MOV @R1,A DEC R1 MOV A,R6 MOV @R1,A DEC R1 MOV A,R7 MOV @R1,A MOV A,R0 ADD A,#07h MOV R1,A INC @R1DIVD44: DJNZ R3,DIVD42 MOV R0,B CLR OV CLR C RETDIVD45: SETB OV CLR C RET end基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學(xué)生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設(shè)計基于單片機的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變

溫馨提示

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

評論

0/150

提交評論