




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
..>本科畢業論文題目:單片機仿真實驗開發專題:Proteus在單片機教學中的應用..>單片機仿真實驗開發摘要"單片機原理與應用"課程對許多專業來說是一門重要的專業課。目前,國內各高校以MCS-51單片機〔簡稱51系列〕為主要內容進展教學。近年來,隨著計算機技術的飛速開展,大量高性能、采用新技術的嵌入式系統CPU的面世,給傳統的單片機教學帶來沖擊,對微機教學方法的改進提出了新的課題。本文通過對單片機教學改革的思考,分析單片機實驗教學中存在的弊端,提出了一種新的實驗教學方法,在實踐環節中引入EDA技術,以新款的EDA軟件Proteus為平臺,設計一套符合時代需要的實驗系統。全文針對整個實驗系統,首先介紹了作為實驗系統軟件平臺的Proteus,表達其功能,分析選擇其作為軟件平臺的可行性和優越性。接著,詳細地介紹實驗各個系統模塊的實驗,并將其分解為一個個獨立的實驗展現出來,實驗難度有淺入深,有常規經典的實驗工程,也有新的、貼近實際應用的實驗工程;實驗過程清晰,Proteus對單片機及單片機外圍電路進展仿真,程序的變化在仿真元件的性質變化上得到表達;實驗原理得到詮釋,原理圖設計公開化,實驗原理容易理解,Proteus與Keil的聯調將硬件仿真的過程完美展現。該局部一方面是對單片機教學實驗系統的設計,另一方面是通過各種實驗來驗證新型EDA軟件Proteus的設計和仿真性能。本設計利用Proteus軟件仿真,解決傳統實驗教學模式的缺陷。本系統運行穩定,其優點是硬件電路簡單,軟件功能完善,控制系統可靠,性價比較高等,具有一定的實用和參考價值。關鍵詞:Proteus,單片機,仿真Single-chipmicrocomputersimulatione*perimentdevelopmentAbstractMicrocomputer’sPrincipalandApplicationisanimportantcourseformanymajors.Now,manycollegesinourcountryadoptMCS-51seriesMCUastheteachingcontent.However,withthedevelopmentofcomputertechnology,manyhighcapabilityandOSembeddedCPUshaveappearedwhichbringsanimpactandachallengefortheteachingcourseofMicrocomputer’sPrincipalandApplication.Thisthesisfinishedthedesigningofane*perimentalsystemforthecourseofmicrocontrolunitwhichismultifunctionalandopening.And,somenewteachingmethodsofmicrocomputer’scoursearediscussedinthearticle.Inthispaper,thecurrentteachingofthedefectswereanalyzed,anewe*perimentalteachingmethodsareintroduced,whichis,applicationofEDAtechnologiesine*periment.EDAsoftwareProteuspreciselymeetsvariousrequirementsforteaching.Thispaperdescribestheadvantagesofthismethod,andIdesignasetofSingle-chipSoftwareProteusasaplatformisintroduced,includingthesuperiorityofit,andfeasibilityofitsroleasateachingplatformSimulationsystem,whichreplacedthetraditionalSCMe*perimentalfunction.ThisdesignusingtheProteussoftwaresimulation,solvethedefectsoftraditionale*perimentalteachingmode.Thissystemstableoperation,itsadvantageishardwarecircuitissimple,softwarefunctionconsummation,thecontrolsystemisreliable,cost-effectivehigher,hascertainpracticalandreferencevalue.Keywords:Proteus,SCM,simulat..>目錄1緒論31.1單片機背景及教學意義31.2PROTEUS在單片機教學中的應用41.3用Proteus在單片機課程設計中的應用42Proteus的簡介42.1ProteusISIS簡介4.實現了單片機仿真和SPICE電路仿真結合5.支持主流單片機系統的仿真5.提供軟件調試功能5.具有強大的原理圖繪制功能5工具欄介紹72.2.1proteusISIS菜單欄72.2.2USISIS主工具欄7原理圖編輯窗口72.2.4預覽窗口8模型選擇工具欄82.2.6方向工具欄92.2.7仿真工具欄93.Proteus與KeilC的聯合仿真104根本實驗工程的開發11開關的實訓演練11指撥開關114.按鈕開關13計數器的實訓演練154.3中斷的實訓演練18.1單片機外中斷實驗的設計與仿真184.3.2單片機中斷優先級實驗的設計與仿真214.4D/A、A/D轉換的應用25.1單片機與DAC0832接口的設計與仿真25圖4-11DAC0832接口電路26單片機與ADC0808接口的設計與仿真28定時器的設計與仿真32串行口實驗和仿真37行列式鍵盤的設計與仿真395綜合試驗工程的開發425.1基于AT89C51的的60秒倒計時裝置的設計與仿真42基于單片機密碼鎖的設計和仿真455.3交通燈的設計與仿真57結論66致67參考文獻68附錄A69附錄B73附錄C771緒論1.1單片機背景及教學意義1970年微處理器研制成功之后,隨著就出現了單片機〔即單片的微型計算機〕。1971年美國的INTEL公司生產的4位單片機4004和1972年生產的雛形8位單片機8008,特別是1976年9月INTEL公司的MCS-48單片機問世以來,在短短的十幾年間,經歷了屢次更新換代,其開展速度大約每兩、三年要更新一代,集成度增加一倍,功能翻一番。單片機開展速度之快、應用范圍之廣已到達了驚人的地步,它已滲透到生產和生活的各個領域,應用非常廣泛。盡管目前單片機的品種很多,但其中最具典型性的當屬INTEL公司的MCS-51系列單片機系列。MCS-51是在MCS-48的根底上于80年代初開展起來的,雖然它仍然是8位單片機,但其功能有很大的增強。此外它還具有品種全、兼容性強、軟硬件資料豐富等特點。因此51系列單片機應用非常廣泛,成為繼MCS-48之后最重要的單片機品種。直到現在,MCS-51仍不失為單片機中的主流機型,MCS-51系列單片機主要包括8031、8051和8751等產品,具有構造緊湊、邏輯位操作功能豐富和直接面向控制的指令系統等優勢,堪稱一代"名機〞。隨著半導體技術的開展,51系列單片機的處理速度更快,性能更優越,在工業控制領域上占據十分重要的地位。現在片機的應用日益廣泛深入,諸如在智能儀表、家用電器和軍事設備的智能化以及實時過程控制等方面,單片機都扮演著非常重要的角色。單片機的設計開發具有廣闊的前景,估計近10年內8位的單片機將仍是主流機型,其設計也是嵌入式產品開發的根底。所以,單片機的學習十分必要。目前單片機技術在各個領域正得到越來越廣泛的應用,大多數院校都有單片機實驗室,單片機種類繁多,用單片機開發的產品差異很大技術開展快,用單片機實驗箱進展教學硬件電路上受到很大程度上的限制。Proteus的出現恰好解決了這個矛盾,可以將它與KeilC51結合隨時搭建一個單片機應用系統,并實現仿真,不僅能為學生提供豐富的實驗內容,而且能充分利用學校機房現有的計算機設備,減少硬件設備維護的工作量。通過單片機技術、課堂實驗箱實驗、Proteus仿真實驗這三方面共同作用可以幫助學生更好的理解單片機技術的知識點,提高單片機產品的開發能力扎扎實實學好單片機技術這門課程。1.2PROTEUS在單片機教學中的應用單片機課程的實踐性很強,實驗環節的教學應引起高度重視。而單片機課程的課內實驗學時有限,使用實驗箱僅停留在演示性及驗證性實驗的層次。為了解決這個問題,可以應用Proteus所提供的元器件模型和外設模型按照實驗內容來設計原理圖,再利用儀器儀表的輸入輸出效果對實驗結果進展檢測。這樣,學生一方面了解了單片機應用系統硬件電路構造,鍛煉了編程技術,也學習了儀器儀表的使用,提高了設計水平。1.3用Proteus在單片機課程設計中的應用在課程設計中,要求學生先應用Proteus設計仿真,在設計硬件電路時最好能考慮實驗箱的資源狀況,以使仿真的結果可在實驗箱上實現。等編程調試通過后可以移植到實驗箱上實現,驗證實物效果。在進展畢業設計時,也可以讓學生根據愛好和掌握知識的程度自由選擇設計題目,培養學生的自主創新意識。教師與學生共同探討方案的可行性之后,由學生在Proteus中設計硬件電路,編制程序并調試。等仿真成功之后,再購置元器件進展電路焊接、系統調試和程序固化,最終每組獨立完成一件作品。這種方法可以節省因方案不正確所造成硬件投入的浪費,并且在實驗過程中不會出現元器件的損耗問題。而使學生實驗能力和開發能力都得到較大提高。Proteus的簡介2.1ProteusISIS簡介ProteusISIS是英國Labcenter公司開發的電路分析與實物仿真軟件,可以仿真、分析〔SPICE〕各種模擬器件和集成電路,該軟件的特點是:.實現了單片機仿真和SPICE電路仿真結合具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統的仿真、RS-232動態仿真、I2C.支持主流單片機系統的仿真目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。.提供軟件調試功能在硬件仿真系統中也具有全速、單步、設置斷點等調試功能。同是,還可以觀察各個變量、存放器等的當前狀態,因此在該軟件仿真系統中也具有這些功能。同時,還支持第三方的軟件編譯和調試環境,如KeilC51μvision2等軟件。.具有強大的原理圖繪制功能用Proteus軟件虛擬單片機實驗的優點(1)內容全面實驗的內容包括軟件局部的匯編、C51等語言的調試過程,也包括硬件接口電路的大局部類型。對同一類功能的接口電路,可以采用不同的硬件來搭建完成,可以擴展學生的思路和提高學生的學習興趣。(2)硬件投入少,經濟優勢明顯Proteus所提供的軟件庫中,大局部可以直接用于接口電路的搭建,同時該軟件所提供的儀表,不管在數量還是在質量上都是可靠和經濟的。如果在實驗教學中投入這樣的真實儀器儀表,僅儀表的維護來講,其工作量也是比較大的。因此采用軟件的方式進展教學,其經濟優勢是比較明顯的。(3)學生可自行實驗,鍛煉解決實際工程問題的能力采用仿真軟件后,對于實際工程問題的研究,可以先在軟件環境中模擬通過,在進展硬件投入。這樣處理,不僅省時省力,還可以節省因方案不正確所造成的硬件投入的浪費。(4)實驗過程中損耗小,根本沒有元器件的損耗問題在傳統的實驗教學過程中,都涉及到因操作不當而造成的元器件和儀器儀表的損毀,也涉及到儀器儀表等工作時所造成的能源消耗。采用Proteus仿真軟件,則不存在上述的問題(5)與工程實踐最為接近,可以了解實際問題的解決過程在Proteus中做一個工程工程,并將其最后移植到一個具體的硬件電路中,讓學生了解將仿真軟件和具體的工程實踐如何結合起來,利于學生對工程實踐過程的了解和學習。(6)大量的范例,可供學生參考處理在系統設計時,存在對以有資源的借鑒和引用處理,而該仿真系統所提供的比較完善的系統設計方法和設計范例,可供學生參考和借鑒。安裝完PROTEUS后,運行ISISProfeeional,會出現如圖2-1所示。下面分別對窗口內個局部進展簡單介紹。圖2-1Proteus操作窗口roteusISIS菜單欄菜單欄包括文件〔F〕、查看〔V〕、編輯〔E〕、工具〔T〕、設計〔D〕、繪圖〔G〕、源代碼〔S〕、調試〔B〕、庫〔L〕、模板〔M〕、系統〔Y〕、幫助〔H〕,如圖2.2所示。圖-2菜單欄USISIS主工具欄主工具欄包括File欄、View工具欄、Edit工具欄和Design工具欄等。每個工具欄的翻開與關閉,以通過View(查看)|工具…命令進展設置。原理圖編輯窗口原理圖編輯窗口用于顯示當前編輯的原理圖的一局部。通過使用查看重畫命令可以使原理圖編輯窗口的內容重繪,這也會重繪預覽窗口。在任何其他的命令使得顯示有些凌亂的時候也可使用這個功能。藍色方框內為可編輯區,元件放置在編輯窗口里面。ISIS中坐標系統的根本單位是10nm,主要是為了和ARES保持一致,但坐標系統的識別單位被限制在1th。坐標原點默認在圖形編輯區的中間,圖形的坐標值顯示在屏幕右下角的狀態欄中,如預覽窗口預覽窗口課對選中的對象進展預覽,包括對元件列表中選中元件的預覽和對原理圖編輯窗口內的對象進展預覽。通過單擊鼠標可以改變綠色方框的位置,從而改變原理圖的可視范圍。模型選擇工具欄〔1〕主要模板:①用于選中元器件。②選擇元器件。③放置連接點。④放置標簽。⑤放置腳本。⑥用于繪制總線。⑦繪制子電路塊。〔2〕配件:①終端,對象選擇列出各種終端。②器件引腳,對象選擇列出各種引腳。③圖表,對象選擇列出各種仿真分析所需的圖表。④錄音機,對設計電路分割仿真時采用此模式。⑤信號發生器,對象選擇列出各種鼓勵源。⑥電壓探針,可顯示個探針處得電壓值。⑦電流探針,可顯示個探針處得電流值。⑧虛擬儀表,對象選擇列出各種虛擬儀器。〔3〕2D圖形:①畫各種直線。②畫各種方框。③畫各種圓。④畫各種圓弧。⑤畫各種多邊形。⑥畫各種文本。⑦畫符號。⑧畫原點。方向工具欄順時針/逆時針旋轉:旋轉角度只能是90的整數倍。可以用數字鍵盤的"+〞或"—〞鍵完成元器件的順時針或逆時針90。鏡像:完成水平鏡像和垂直鏡像。先右鍵單擊元件選中元器件,在左鍵單擊相應的旋轉按鈕。可以用快捷鍵Ctrl+M完成元器件的水平鏡像。仿真工具欄仿真控制按鈕運行單步運行暫停停頓對著寫工具熟練的掌握可以讓仿真進展的如魚得水。3.Proteus與KeilC的聯合仿真Keil是美國KeilSoftware公司開發的,是目前世界上最好的51單片機的匯編和C語言的開發工具。它支持匯編、C語言以及混合編程,同時具備功能強大的軟件仿真,在軟件模擬仿真方式下不需要任何單片機硬件即可完成用戶程序仿真調試;雖然Keil也提供了硬件仿真功能,但我們在利用它的硬件仿真功能時,會受到一定的限制。如果我們將Proteus與Keil聯合起來使用,充分利用各自的仿真功能,單片機軟硬件調試將變得十分有效。實現Proteus與KeilC的接口步驟如下:〔1〕把安裝目錄Proteus\MODELS下的VDM51.dll文件復制到Keil安裝目錄的\C51\BIN目錄中。
〔2〕修改Keil安裝目錄下Tools.ini文件,在C51字段參加TDRV5=BIN\VDM51.DLL("ProteusVSMMonitor-51Driver〞)并保存。注意:不一定要用TDRV5,根據原來字段選用一個不重復的數值就可以了。引號內的名字隨意。
〔3〕翻開Proteus,畫出相應電路,在Proteus的"Debug〞菜單中選中"UseRemoteDebugMONITOR〞。
〔4〕進入Keil的Project菜單OptionforTarget‘工程名’。在彈出界面選擇Debug選項卡,在Use的下拉列表框中選擇ProteusVSMMonitor-51Driver,并且選中Use單項選擇框,即在Use前面的小圓圈內出現小黑點。再單擊Settings按鈕,在Host文本框輸入,端口號為8000。
〔5〕在Keil中進展debug,同時在Proteus中查看直觀的結果。這樣就可以像使用仿真器一樣調試程序了。可以看出,Proteus可以很方便地與KeilC51集成開發環境連接,程序編譯好之后,立即可以進展軟、硬件結合的系統仿真。4根本實驗工程的開發按鈕是人們日常生活經常接觸的電子器件,它給我們的生活帶來了很大方便,它廣泛應用在工業和生活中。有按鈕開關、指撥開關、BCD指撥開關等。應用單片機的輸入口。試驗目的:〔1〕掌握單片機I/O口得輸入及輸出電路得設計。〔2〕掌握讀入按鍵狀態,并輸出到LED發光管顯示得程序設計方法。指撥開關實驗功能:如以下圖4-1-1所示,指撥開關的狀態由P2輸入,而其狀態將反映到P1所連接的LED上。…….以此類推。〔1〕電路設計元件清單:80C51、DIPSW_8、LED–RED、〔220歐姆〕。原理圖:4-1指撥開關電路參考程序根據功能需求與電路構造可知,當指撥開關on時,要由其連接的輸入口讀取到低電平〔即0〕;而假設要連接在P1的LED亮,則由P0輸出低電平即可。因此,在程序里,只要將P2讀取到的指撥開關直接輸出到P即可。當然,可不要忘了,事先將P2設計成輸入功能。〔2〕程序設計:ORG0START:MOVP2,#0FFH;設P2為輸入功能LOOP:MOVA,P2;讀入指撥狀態開關MOV P1,A;將開關狀態反響到P0LJMPLOOPEND程序調好后生成4.1.HE*文件,并加載該文件,運行ProteusISIS。運行撥動指撥開關可以看到可以看到如圖:〔3〕仿真仿真圖標,啟動仿真。圖4-2指撥開關仿真撥動指撥開關K3、K6,P1口上的燈D3、D6點亮。功能說明如圖4-1-3所示,假設按一下PB1,則P0.0所連接的LED亮;假設按一下PB2,則關閉P0.0所連接的LED(不亮)。〔1〕電路設計原件清單:80C51、BUTTON、LED-BIRG、RES〔220歐姆〕。圖4-3按鈕開關參考程序根據功能需求與電路構造可知,當按下按鈕開關時,能從其連接的輸入口讀取到低電平〔即0〕;而假設要連接在P0.0的LED亮,則由P0.0輸出低電平即可。因此,在程序里,假設P2.0讀取到0,則將P0.0設為0;假設P2.1讀取到0,則將P0.0設為1。同樣地,課不要忘了,事先將P2設計成輸入功能。〔2〕程序設計 ORG0START:MOVP2,#0FFH;將P2設計為輸入功能LOOP: JNBP2.0,ONJNBP2.1,OFFJMPLOOP;P0.0=0ON_1:JBP2.0,LOOP;去抖動JMPON_1OFF_1:JBP2.1,LOOPlJMPOFF_1END程序調好后生成4.2.HE*文件,并加載該文件,運行ProteusISIS。運行后按按鈕開關可K2以看到可以看到如圖:〔3〕仿真單機圖標,啟動仿真。圖4-4按鈕開關仿真單擊K2,燈D1點亮,再單擊K1燈熄滅。在數字電子技術中應用的最多的時序邏輯電路。計數器不僅能用于對時鐘脈沖計數,還可以用于分頻、定時、產生節拍脈沖和脈沖序列以及進展數字運算等。但是并無法顯示計算結果,一般都是要通過外接LCD或LED屏才能顯示。實驗目的:掌握二、十進制譯碼器和顯示電路同時計數配套使用的方法掌握加減計數功能說明如圖4-5所示,P0的低4位連接到7447〔BCD碼對7段LED數碼管的譯碼與驅動器〕。PB1具有增數的功能、PB2具有減數的功能,假設程序剛開場時,7段LED數碼管顯示0,按一下PB1,則7段LED數碼管顯示1、再按一下PB1,則7段LED數碼管顯示2…..;假設7段LED數碼管顯示9,按一下PB1,則7段LED數碼管顯示0.同樣地,假設7段LED數碼管顯示0,按一下PB2,則7段LED數碼管顯示9、再按一下PB2,則7段LED數碼管顯示8……依次類推。〔1〕電路設計原件清單:7SEG-COM-AN-GRN、80C51、7447、BUTTON、RES〔220歐姆〕。圖4-5計數器參考程序根據功能需求與電路構造可知,只要P0.0到P0.3輸出BCD碼,7段LED數碼管即可正確地顯示0~9的數字。在程序的開場,先將7段LED數碼管設為0,假設讀取到P2.0為0,假設讀取到P2.0為0,則進展加數的操作;假設讀取到P2.1為0,則進展減數的操作。〔2〕程序設計ORG0START: MOVA,#0;設定顯示器的初始值LOOP:MOVP0,A;顯示A的內容JNBP2.0,INCR JNBP2.1,DECR LJMPLOOPINCR:JNBP2.0,INCR;放開按鍵INCAADDA,#0DAA;將A的內容進展BCD調整LJMPLOOPDECR:JNBP2.1,DECR;放開按鍵 JZZERO;判斷A的內容是否為0 DEC A ADDA,#0 DAA LJMPLOOPZERO:MOVA,#9LJMPLOOP END程序調好后生成4.2.HE*文件,并加載該文件,運行ProteusISIS。運行按動按鈕PB1,PB2開關可以看到可以看到如圖4-2-2:〔3〕仿真單機圖標,啟動仿真。圖4-6計數器仿真按PB1實現加計數,按PB2實現減計數。4.3中斷的實訓演練中斷是指計算機在執行程序的過程中,當出現異常情況或特殊請求時,計算機停頓現行程序的運行,轉向對這些異常情況或特殊請求的處理,處理完畢后再返回現行程序的連續處,繼續執行原程序。中斷是單片機實時地處理內部或外部事件的一種內部機制。當*種內部或外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程序,轉而去進展中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續執行下去。4.3.1單片機外中斷實驗的設計與仿真設計與仿真目的理解中斷過程及作用,掌握單片機外中斷的電路設計。學習中斷應用及中斷效勞程序的設計方法。PROTEUS設計與仿真電路設計在PROTEUSISIS中設計如圖4-3-1所示的外中斷電路元件清單:3WATT470R,7SEG-COM-AN-GRN、AT89C51、BUTTON、RESPACK-8。原理圖:圖4-7中斷電路圖參考程序:根據功能需求與電路構造可知,上點運行,觀察到P0口上的數碼管中各段按a~g的順序點亮,每一時刻只有一段亮,循環進展。當單擊S0時,發生外中斷0,與P2口相接數碼管中的各段全部點亮半秒,再暗半秒,如此循環8次后,返回主程序繼續中斷前的工作。〔2〕程序設計 ORG00H SJMPSTAR ORG03H;將INT0中斷入口地址 ̄ SJMP INT0S;轉中斷效勞 ORG30STAR:MOVIE,#10000001B;開中斷MOVTCON,#1H;采用邊沿觸發 MOVA,#0FEH;P0口輸出初值 ST1: MOVP0,A ACALLDELAY;延時 RLA;改變輸出數據 SJMPST1;主循環 INT0S:PUSHACC;保護現場 MOVR2,#8;R2計算器賦初值 LOOP:CLRA MOVP2,A;數碼管亮 ACALLDELAY;延時 MOVA,#0FFH MOVP2,A;數碼管全暗 ACALLDELAY;延時 DJNZR2,LOOP;循環8次 POPACC;恢復現場,A RETI DELAY:MOVR7,#250;延時子程序,500ms D1:MOVR6,#250 D2:NOP NOP NOP NOP NOP NOP DJNZR6,D2 DJNZR7,D1 RET END程序調好后生成.HE*文件,并加載該文件到圖4-3-1中單片機的"ProgramFile〞屬性欄中并設置時鐘頻率為12MHZ。仿真單機圖標,啟動仿真。圖4-8中斷仿真圖未單擊外中斷0按鍵時,P0口接的數碼管上點亮以a~g的順序循環流動;當單機按鍵時,觸發外中斷0,主程序暫停,亮點暫停流動,外中斷效勞程序控制P2口數碼管閃爍8次"8〞后熄滅,中斷返回,主程序使亮點接著流動。如圖4-3-2所示,主程序暫停在亮點"d〞,中斷效勞程序正顯示"8〞。單片機中斷優先級實驗的設計與仿真設計與仿真的目的理解中斷優先級,中斷嵌套:理解中斷過程及中斷優先級的設置、中斷效勞程序的處理方法。功能說明:設置INT1為高優先級、INT0為低優先級。高優先級可中斷低優先級,但低優先級的中斷請求不能中斷高優先級;同一優先級不能相互中斷。電路設計在PROTEUSISIS中設計如圖4-2-3所示中斷優先級演示實驗電路。元件清單:3WATT470R、7SEG-COM-AN-GRN、AT89C51、BUTTON、RESPACK-8。原理圖:圖4-9優先級中斷電路如圖4-9所示,上電運行,觀察到單片機主程序控制P0口數碼管循環顯示0~8.按下兩種操作方式做中斷優先級實驗:①先單擊S1,發生INT1中斷,在INT1響應中斷未返回時單擊S0,觀察現象,并作出合理解釋。②先單擊S0,發生INT0中斷,在INT0中斷,在INT0響應中斷未返回時單擊S1,觀察現象,并作出合理解釋。程序設計ORG00H SJMPSTAR ORG03H;INT0中斷入口地址 SJMPINT0S;轉INT0中斷效勞程序 ORG13H;INT1入口地址 SJMPINT1S ORG30HSTAR:MOVIE,#85H;INT0開中斷MOVTCON,#5;邊沿出發方式 MOVA,#0FEH;P2口輸出初值 MOVP3,#0FFH SETBP*1 ST0:MOVA,#1 ST1:PUSHACC ACALLSEG7MOVP0,AACALLDELAYPOPACCINCA CJNEA,#9,ST1 SJMPST0 INT0S:PUSHACC MOVA,#0 LOOP:INCA PUSHACCACALLSEG7MOVP2,APOPACCACALLDELAYCJNEA,#8,LOOPPOPACCMOVP2,#0FFHRETIINT1S:PUSHACCMOVA,#0LOOP1:INCAPUSHACCACALLSEG7MOVP1,AACALLDELAYPOPACCCJNEA,#8,LOOP1MOVP1,#0FFHPOPACCRETIDELAY:MOVR7,#250D1:MOVR6,#250D2:NOPNOPNOPNOPNOPNOPDJNZ R6,D2DJNZR7,D1RETSEG7:INCAMOVCA,A+PCRET DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H END 程序調好后生成.HE*文件,并加載該文件到圖4-3-2中單片機的"ProgramFile〞屬性欄中并設置時鐘頻率為12MHZ。仿真單機圖標,啟動仿真。圖4-10優先級中斷仿真低優先級INT0中斷主程序。當主程序運行時,控制與P0口相接的數碼管循環顯示1~8;而P1、P2口的數碼管不顯示。當前主程序控制P0口顯示"2”時,單擊"低優先級〞按鈕,觸發INT0,INT0效勞程序控制P2口依次顯示1~8,當前顯示"2高優先級INT1中斷低優先級INT0.在上一步的根底上,即主程序INT0中斷在P0口輸出"2〞,在INT0效勞程序在P2口也輸出"2〞的時刻,單擊"高優先級〞按鈕,觸發高優先級INT1,所在INT0效勞程序在P2口輸出"2〞,接下來INT1控制P1口輸出3~8,關閉顯示,中斷返回至INT0顯示"5〞的斷電,接著P2口輸出"6〞、"7〞顯示"8〞,中斷返回至主程序斷點顯示"6〞。接著主程序控制P0口輸出循環顯示"7〞、"8〞。用PROTEUS圖形化的仿真演示功能,很好的演示了中斷優先級的原理。4.4D/A、A/D轉換的應用4.4.1單片機與DAC0832接口的設計與仿真單片機處理的數字量。實際應用中,常常需要將數字量轉換成模擬量來推動或控制外設。D/A轉換器就是一種將數字量轉換成模擬量〔電流、電壓等〕的電子器件,是應用廣泛的接口IC。由D/A轉換器組成的電路加上相應的軟件,便可解決單片機和受控外設之間的連接問題。設計與仿真目的理解單片機與DAC832典型的單緩沖方式接口電路;理解如何構建D/A轉換的數字量;理解單片機把DAC當作一個外RAM地址來訪問。PROTEUS設計與仿真電路設計在PROTEUSISIS中設計如圖4-11所示的單片機與DAC0832接口電路。原件清單:AT89C51、BUTTON、DAC0832、POT-LIN、PULLUP、UA741。原理圖:圖4-11DAC0832接口電路程序設計鋸齒波ORG00HJUCHI:MOVA,#00;第一個數據MOVDPTR,#7FFFH;片外RAM單元 JUCHI1: MOV*DPTR,A;輸出數據到DAINC A;數據更新,+1SJMPJUCHI1END半圓波 ORG00H BANYUAN:MOVR2,#00;起始值為0 MOVR1,#40;數據長度為40 BANY1:MOVDPTR,#TAB2;首地址給DPTR MOV A,R2 MOVCA,A+DPTR;查表取數MOVDPTR,#7FFFHMOV*DPTR,A;輸出數據到DAINCR2;數據序號更新DA,+1DJNZR1,BANY1;循環取數SJMPBANYUAN;復位 TAB2:DB0,40,56,67,77,85,91,102,107,111;送到DA的數據表DB114,117,120,122,124,125,127,127,128 DB128,127,127,125,124,122,120,117,114 DB111,107,102,97,91,85,77,67,56,40,0 END程序調好后分別生成DAC1.HE*、DAC2.HE*加載到單片機中。仿真單機圖標,啟動仿真。在DAC1.HE*、DAC2.HE*的控制下,可在模擬示波器上看到鋸齒波和半圓波如圖4-12所示。圖4-12DAC0832仿真單片機與ADC0808接口的設計與仿真A/D轉換器是一種能把輸入模擬電壓或電流信息變成與其正比的數字量信息的電路芯片。A/D轉換器用于實現模擬量到數字量的轉換。ADC0808是典型的8通道模擬輸入8位并行數字輸出的逐次逼近式A/D轉換器。該轉換器采用CMOS工藝,可實現8路模擬信號的分時采集。片內有8路模擬選通開關,以及相應的通道地址鎖存用譯碼電路。設計與仿真目的理解典型的單片機與ADC0808的接口電路;理解用延時方式編寫ADC0808轉換程序的方法;理解單片機把ADC0808當作一個片外RAM地址來訪問。PRPTEUS設計與仿真電路設計在PROTEUSISIS中設計如圖4-13所示的單片機與ADC0808的接口電路。原件清單:7SEG-MP*4-CA、7447、ADC0808、BUTTON、POT、RES。圖4-13ADC0808接口電路程序設計ETDATAEQU 30H ;ADC0808數據輸出值 ORG 0000H LJMP MAIN ORG 000BH LJMP T0* ;中斷0 ORG 001BH LJMP T1* ;中斷1 ORG 0030HMAIN: MOV TMOD,#12H ;T0工作在模式2,T1工作在模式1 MOV TH0,#216 MOV TL0,#216 MOV TH1,#(65536-4000)/256 ;4ms延時賦初值 MOV TL1,#(65536-4000)MOD256 SETB ET0 SETB ET1 SETB TR0 SETB TR1 SETB EALOOP: CLR ST ;產生啟動轉換的正脈沖信號 SETB ST CLR ST JNB EOC,$ ;等待轉換完畢 SETB OE ;允許輸出 MOV GETDATA,P0 ;暫存轉換結果 CLR OE ;關閉輸出 MOV A,GETDATA ;將轉換結果轉換為10進制數 MOV B,#100 DIV AB MOV 33H,A ;存放百位上的數 MOV A,B ;除以100后的余數 MOV B,#10 DIV AB MOV 34H,A ;十位上的數 MOV 35H,B ;個位上的數 LJMP LOOPT0*: CPL CLK RETIT1*: MOV TH1,#(65536-4000)/256 ;4ms延時賦值 MOV TL1,#(65536-4000)MOD256 MOV A,33H ;百位上的數 ORL A,#10H ;左邊第一個LED工作 MOV P1,A LCALL DELAY MOV A,34H ;十位上的數 ORL A,#20H ;左邊第二個LED工作 MOV P1,A LCALL DELAY MOV A,35H ;個位上的數 ORL A,#40H ;左邊第三個LED工作 MOV P1,A LCALL DELAY MOV P1,#00H ;左邊第四個無輸出 LCALL DELAY RETIDELAY: MOV R7,#255 DJNZ R7,$ RET END程序調好后生成ADC.HE*文件,并加載該文件到圖4-13中單片機的"ProgramFile〞屬性欄中并設置時鐘頻率為12MHZ。仿真單機圖標,啟動仿真。如圖4-5-2所示圖4-14ADC0808接口仿真ADC0808內部有輸出鎖存器,可以與AT89C51單片機直接相連。初始化時,使START和OR信號全為低電平。傳送到要轉換的通道的地址在A、B、C端口上。在START端給出一個至少有100ns寬的正脈沖信號。當EOC變為高電平時,表示轉換完成。數碼管顯示數據范圍為0~255。定時器是日常生活中最常用到的單片機系統,本實驗定時器設計一個秒表定時器T0工作在方式1。設計與仿真目的①初步了解定時器的應用。②掌握定時器的相關知識。PRPTEUS設計與仿真〔1〕電路設計在PROTEUSISIS中設計如圖4-15定時器秒表的應用電路。原件清單:7SEG-MP*2-CA、AT89C51、BUTTON、RESPACK-8。圖4-15秒表電路〔2〕程序設計 ORG 0000H LJMP MAINORG 000BH LJMP TI_T0 ORG 0030HMAIN: MOV TMOD,#01H ;定時器初始化 MOV TH0,#3CH ;定時50ms MOV TL0,#0B0H MOV IE,#82H MOV R0,#00H MOV R1,#00HD0: JB KEY,D00 ;判斷鍵是否按下 LCALL DELAY JBKEY,D00 SETB TR0 ;第一次按鍵,剛啟動定時器 SETB EA JNB KEY,$ SJMP D1D00: CALL DISPLAY ;沒按則調用顯示 SJMP D0D1: CALL DISPLAY JB KEY,D1 ;判斷是否有第二次按鍵 CALL DELAY ;沒按則繼續調用顯示 JB KEY,D1D2: CALL DELAY JB KEY,D1 CLR EA ;第二次按鍵,則暫停計數 CALL DISPLAY JNB KEY,$D3: JB KEY,D33 ;判斷是否有第三次按鍵 CALL DELAY JB KEY,D33 MOV R1,#00H ;第三次按鍵,則計數清零JNB KEY,$ SJMP D0D33: CALL DISPLAY SJMP D3;顯示程序DISPLAY:MOV A,R1MOV B,#10 DIV AB MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A SETB P2.6 ;顯示十位 CALL DELAY CLRP2.6 MOV A,B MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A ;顯示個位 CALL DELAY RET;延時程序DELAY: MOV R7,#20D4: MOV R6,#250 DJNZ R6,$ DJNZ R7,D4 RET;中斷程序TI_T0: MOV TH0,#3CH MOV TL0,#0B0H INC R0 CJNE R0,#02H,RETURN ;是否計到100ms MOV R0,#00H INC R1 ;到100ms,則加1 CJNE R1,#99,RETURN ;加到99時清零 MOV R1,#00HRETURN: RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HTAB1: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H END〔3〕仿真單機圖標,啟動仿真。圖4-16秒表仿真當第一次按下按鍵時,定時器開場計時。第二次按下按鍵時,停頓計時并計算第一次按下鍵盤與第二次按下鍵盤時間,送入P0口和P2口并將時間顯示出來,P0口顯示十位,P2口顯示個位。第三次按下鍵盤時使定時器清0,等待下一次按鍵。如圖4-17所示,將89C51的第10與11腳短路,讓串行數據輸出連接到串行輸入,以到達自己傳給自己的目的。另外,第11腳所要傳出的數據是來自PORT2所連接的指撥開關DIPSW狀態;而第11腳所接收的串行數據,將反映到P0所連接的LED上。PRPTEUS設計與仿真〔1〕電路設計在PROTEUSISIS中設計如圖4-17所示的串行口電路。原件清單:AT89C51、DIPSW-8、LED-BLUE、RES圖4-17串行電路圖〔2〕程序設計ORG0START:MOVTMOD,#20H;將Timer1設置mode2,作為比特率產生ANLPCON,#3FH;將SMOD設置為0MOVTH1,#0FDH;比特率設置為9600bit/sSETBTR1;啟動Timer1MOVSCON,#01010000B;設置串行口初始值MOVp2,#0FFH;將P2設置為輸入功能LOOP: MOVA,P2;讀取指撥開關狀態MOVSBUF,A;將ACC的內容復制到SBUFFJNBRI,$;檢查是否完成承受;完成承受,則RI串行中斷CLRRI;去除RI標志MOVP0,SBUF;將所承受的數據輸入到Port0CLRT1;去除TI標志JMPLOOPEND〔3〕仿真單機圖標,啟動仿真。圖4-18仿真圖在此所要采用的比特率為9600bit/s,首先利用TMOD存放器,將Timer設置mode2,在將PCON存放器的SMOD位設置為0,然后TH1存放器加載FDH〔即253〕,最后啟動Timer1,即可產生9600bit的比特率。另外,在SCON存放器里,將串行端口設置為mode1,即可由Port2所讀取的數據,放入SBUF存放器,CPU即自動傳送。另一方面,CPU也自動接收,當接收的SBUF存放滿了,即產生RI中斷。鍵盤上的按鍵行列組成矩陣,在行列的交點上都對應一個鍵。為了實現鍵盤的數碼輸入功能和命令處理功能,每個鍵都有一個處理子程序。為此每個按鍵對應一個鍵碼,以便根據鍵碼轉到相應的鍵處理子程序。設計與仿真的目的①掌握行列式鍵盤與單片機典型的接口電路;②理解掃描讀鍵法;PRPTEUS設計與仿真〔1〕電路設計在PROTEUSISIS中設計如圖4-19所示的行列式鍵盤電路。如圖4-19行列式鍵盤電路〔2〕程序設計 ORG 0000HLJMP MAINORG 0030HMAIN: MOV P3,#00HL1: MOV R3,#0F7H ;鍵盤行掃描的初值 MOV R1,#00H ;TABLE2的取碼指針L2: MOV A,R3MOV P2,AMOV A,P2MOV R4,ASETB C ;C=1 MOV R5,#04H ;列掃描數L3: RLC A JNC KEYIN ;C=0表示有按鍵INC R1 DJNZ R5,L3 ;4個掃描完畢 MOV A,R3 ;掃描下一個 SETB C ;使右移時,移入"1"RRC AMOV R3,A JC L2 ;4個行掃描完畢否JMP L1KEYIN: MOV R7,#10 ;消除抖動10毫秒D2: MOV R6,#248DJNZ R6,$DJNZ R7,D2D3: MOV A,P2 ;讀入的鍵盤值是否與R4相等*RL A,R4 JZ D3 ;按鍵松開否MOV A,R1MOV DPTR,#TABLE2 MOVC A,A+DPTR ;取鍵值MOV P3,AJMP L1TABLE2: DB 4FH,5BH,06H,3FH,07H,7DH,6DH,66HDB 7CH,77H,6FH,7FH,71H,79H,5EH,39HEND〔3〕仿真單機圖標,啟動仿真。4-20行列式鍵盤仿真使一條行線為低電平,如果這條線行線上沒有閉合鍵,則各列線的狀態都是高電平。如果行線上有閉合鍵,則相應的那條列線狀態為低電平。按下相應的按鍵就可以顯示相應的數字。5綜合試驗工程的開發5.1基于AT89C51的的60秒倒計時裝置的設計與仿真①理解中斷與定時器/計數器的綜合應用方法;②理解定時及定時中斷,掌握定時中斷程序設計方法;③理解在單片機中將十六進制轉換為十進制的方法。2.PROTEUS設計與仿真〔1〕電路設計在PROTEUSISIS中設計如圖5-1所示的60秒倒計時電路。原件清單:7SEG-COM-AN-GRN、AT89C51.BUS、、RES。圖5-160秒倒計時電路(2)程序設計及加載ORG00H SJMPSTAR ORG1BH SJMPT1S;轉到T1中斷效勞程序 ORG30HSTAR:MOVR2,#60;倒計時初值 MOVR4,#20;定時中斷溢出計數器R4初值為20 MOVIE,#88H;T1開中斷 MOV TMOD,#10H;T1方式1 MOVTH1,#10H;定時初值 MOVTL1,#0B0H;定時初值 SETBTR1;啟動T1 ACALLDIS;調用顯示子程序 SJMP$ T1S:MOVTH1,#3CH;中斷效勞 MOVTL1,#0B0H;重置初值 DJNZR4,T1S1;定時1s到否 MOVR4,#20;到1s,重置R4=20 DJNZR2,T1S0;倒計時遞減 CLRTR1;倒計時完畢,關定時器 T1S0:ACALLDIS;調顯示 T1S1:RETI;中斷返回 SEG7:INCA;A+1 MOVCA,A+PC;取顯示斷段 RET DB0C0H,0F9H,0A4H,0B0H;0~3共陽極型顯示碼 DB99H,92H,82H,0F8H;4~7共陽極型顯示碼; DB80H,90H,88H,83H;8~B共陽極型顯示碼 DB0C6H,0A1H,86H,8EH;C~F共陽極型顯示碼 DIS:MOVA,R2;十六進制轉化為10進制MOVB,#10 DIVAB ACALLSEG7 MOVP1,A;顯示十位 MOVA,B ACALLSEG7 MOVP2,A;顯示個位 RET END將程序生成目標代碼文件DJS.HE*加載到圖5-1中單片機的"ProgramFile〞屬性欄中,并設置時鐘頻率為12MHZ。〔3〕仿真單機圖標,啟動仿真。可以看到如圖5-2所示,兩位數碼管顯示自60起,每隔1秒遞減1,直止到遞減到0.圖5-260秒倒計時電路仿真隨著電子產品向智能化和微型化的不斷開展,單片機已成為電子產品研制和開發中首選的控制器。為了更好地推廣單片機在家電領域中的應用,本設計就是應用AT89C51單片機設計的電子密碼鎖。該設計除應用單片機外,還包括矩陣鍵盤、數碼顯示器、LED指示燈和報警系統。該密碼鎖具有平安、實用、本錢低等特點,符合住宅用鎖的要求,可作為產品進展開發。掌握通過定時中斷實現動態顯示;熟練對字位碼和字形碼的處理;掌握行列式鍵盤輸入的處理。2.PROTEUS設計與仿。〔1〕電路設計在PROTEUSISIS中設計如圖5-3所示的密碼鎖電路原件清單:74LS20、AT89C51、BUTTON、LED-GREEN、LM016L、RESPACK-8、SOUNDER。圖5-3密碼鎖電路〔2〕程序設計RSBITP2.7PASSBUFEQU40HKEYNUMBEREQU41H;存放識別后的按鍵號 ORG0000HAJMPMAINORG0003HJMPKEY_INTORG000BHAJMPINTT0ORG001BHAJMPINTT1ORG0030HMAIN:MOV30H,#07H;輸入密碼為7位最高只可設15位MOV42H,#200;設定報警的時間,42H單元里的數*50MSMOV43H,#250;設定開門時間14的倍數(實際上液晶顯示器執行指令占用了時間,開門時間會比14*250MS大) ;44H號單元存放輸入錯誤的次數;45H為定時器0中斷次數 ;46H為定時器1中斷次數MOV47H,#250;輸入密碼時間設定,50MS倍數 MOVSP,#60HCLROPENCLRSPEAK;初始化輸出設備CLRENTER;標志位初始化MOVTMOD,#11H;定時器工作方式2MOVTH0,#3CH;初值50MSMOVTL0,#0BH MOVTH1,#3CHMOVTL1,#0BHSETBEA SETBET0 SETBET1MOVTCON,#00000000B;電平觸發START:MOVR0,30HMOVR1,#31HSS1: MOVR1,#00H INCR1DJNZR0,SS1;將輸入密碼緩沖單元清零MOVP1,#0FH;初始化按鍵口 MOVR1,#31H;從31號單元開場存放按建輸入的密碼CLR20H;報警標志清零 CLR21H;密碼超時標志 MOV46H,#00H;超時后對定時器中斷次數清零,便于下一輪重新計時INIT:ACALLSELLCD;設定液晶工作方式ACALLLINE1;在第一行顯示MOVDPTR,#MES_P;顯示請輸入密碼ACALLDISPLAY setbE*0;開中斷,允許鍵盤輸入KEYIN:JB21H,ERR;超時轉到錯誤程序JNBENTER,KEYIN;等待ENTER按下CLRENTER clrE*0;密碼輸入完后鎖定鍵盤COMP:MOVDPTR,#PASSMOVR4,30H;密碼的長度MOVA,#0MOVR1,#31HLOOP:MOVR5,AMOVCA,A+DPTRMOVPASSBUF,A;取出系統設定的密碼MOVA,R1;從31號單元開場取出輸入的密碼CJNEA,PASSBUF,ERR;比較MOVA,R5INCAINCR1;取下一位DJNZR4,LOOP;正確MATCH:MOVA,#01HACALLENABLE;清屏,光標復位ACALLLINE1;從第一行開場顯示MOVDPTR,#MES_CACALLDISPLAY;顯示"請進" ACALLLINE2 MOVDPTR,#TAB_1 ACALLDISPLAYSETBOPEN;開門 MOV44H,#00H;輸入錯誤次數清零MOVR6,43HACALLDELAY CLROPEN;復位JMPSTART;錯誤ERR:ACALLBACKMOVR6,#03HACALLDELAY ACALLBACK;輸錯提示音,鳴兩下MOVA,#01HACALLENABLEACALLLINE1MOVDPTR,#MES_EACALLDISPLAY;顯示錯誤MOVR6,#40HACALLDELAY INC44H MOVA,44HCJNEA,#03H,EE0EE0:JCERROUT;輸錯不到三次返回 MOV44H,#00H;清零 ACALLWRANING;報警ERROUT:JMPSTARTKEY_INT:PUSHACCPUSHPSWCLRE*0ACALLDELAY10ms;延時消抖SETBTR1;啟動定時器ACALLSMKEY;按鍵識別 MOVA,KEYNUMBER;返回按鍵號ACALLBACK;按鍵發聲MOVR3,ACJNER3,#0BH,K1;ENTER是否按下SETBENTERCLRTRL;按下確認后關畢定時器MOV46H,#00H;對中斷次數清零AJMPKEY_RTNK1:ADDA,#30H;將
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云計算服務模式變革下的市場細分領域競爭格局研究報告
- 校園安全管理報告2025:智慧校園安全教育與培訓課程開發與應用
- 2025年醫院電子病歷系統與移動醫療設備集成優化報告
- 江蘇省鎮江市名校2025屆英語七下期中統考試題含答案
- 2025年醫藥企業研發外包(CRO)市場潛力與未來發展趨勢報告001
- 2025年醫藥企業研發外包(CRO)模式生物材料研發與產業化報告
- 2025年農村一二三產業融合發展的農產品質量安全監管報告
- 周期表課件教學課件
- 2025年公眾參與環境影響評價的公眾參與機制與公眾參與能力培養研究報告
- 2025年高校產學研合作技術轉移創新生態構建研究
- 公司法務部職責與職能
- 泉州市石獅市2024-2025學年六年級下學期小升初數學考前押題卷含解析
- 物流倉儲設備選型與配置規范
- 水電工程驗收單
- 2025年廣東省高中歷史學業水平考試綜合測評(一)歷史試題(原卷版+解析版)
- (2025)全國交管12123學法減分考試題庫附答案
- 攸縣2024-2025學年小學六年級第二學期小升初數學試卷含解析
- 2025譯林版高中英語高考復習必背全七冊單詞表(精校打印)
- 安保主管上半年工作總結
- 撬裝加油站承包合同協議書
- 國家開放大學行管本科《政府經濟學》期末考試總題庫2025春期考試版
評論
0/150
提交評論