![51系列單片機教學(xué)實驗板硬件設(shè)計.doc_第1頁](http://file.renrendoc.com/FileRoot1/2019-7/16/505ad868-e871-4418-ae33-545bc966c3ab/505ad868-e871-4418-ae33-545bc966c3ab1.gif)
![51系列單片機教學(xué)實驗板硬件設(shè)計.doc_第2頁](http://file.renrendoc.com/FileRoot1/2019-7/16/505ad868-e871-4418-ae33-545bc966c3ab/505ad868-e871-4418-ae33-545bc966c3ab2.gif)
![51系列單片機教學(xué)實驗板硬件設(shè)計.doc_第3頁](http://file.renrendoc.com/FileRoot1/2019-7/16/505ad868-e871-4418-ae33-545bc966c3ab/505ad868-e871-4418-ae33-545bc966c3ab3.gif)
![51系列單片機教學(xué)實驗板硬件設(shè)計.doc_第4頁](http://file.renrendoc.com/FileRoot1/2019-7/16/505ad868-e871-4418-ae33-545bc966c3ab/505ad868-e871-4418-ae33-545bc966c3ab4.gif)
![51系列單片機教學(xué)實驗板硬件設(shè)計.doc_第5頁](http://file.renrendoc.com/FileRoot1/2019-7/16/505ad868-e871-4418-ae33-545bc966c3ab/505ad868-e871-4418-ae33-545bc966c3ab5.gif)
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
51系列單片機教學(xué)實驗板硬件設(shè)計摘要51系列單片機教學(xué)實驗板既是一塊用戶實驗板,又是一種功能強大而實用的單片機開發(fā)調(diào)試工具。它與傳統(tǒng)的教學(xué)實驗板相比有如下的優(yōu)點:(1)價格低廉。(2)使用簡單方便,只要有帶rs232串口的pc機就能進行實驗。(3)功能全,基本上具備單片機常用的接口,如數(shù)模轉(zhuǎn)換、模數(shù)轉(zhuǎn)換、存儲器、led數(shù)碼管顯示、鍵盤人機接口、并行接口、串行接口,等等。采用本仿真開發(fā)實驗板,可使初學(xué)者迅速掌握單片機原理及應(yīng)用,熟悉匯編語言、甚至單片機c語言。用本仿真開發(fā)實驗板,對用戶源程序進行實時在線調(diào)試,可極大地縮短單片機應(yīng)用系統(tǒng)的開發(fā)時間。關(guān)鍵詞:單片機;實驗板;接口電路;匯編語言88the hardware designed of 51 serial single chip processor teaching experiment boardabstract51 serial single chip processor teaching experiment board is a user experiment board, and also a powerful and practical single chip processor develop and debug tools.compared with traditional teaching experiment board it has following advantages :( 1) cheap. (2) it is simple and convenient to use , so long as can carry on the experiment with a pc with rs232. ( 3) with complete function, possess the common user interface of the basic single chip processor, the adc block, the dac block, the memory , hid(human interface device, such as the led and the key board) , parallel interface, serial interface , and so on.with this experiment board, the beginners can easily to grasp the principle and application of the mcu,be familiar with assemble languages , even the c51 languages. the character of on system debug can shorten the time to study develop experiment board with emulation this, carry on to user source program real-time to debug online, can shorten construction period of the application system of the single chip processor greatly.key words: single chip processor; experiment board; interface; assemble 目 錄中文摘要英文摘要0前言11硬件電路設(shè)計21.1 仿真實驗板的概況2 1.2 仿真實驗板的資源21.3 電路原理圖說明 41.3.1單片機最小系統(tǒng)的電路說明 41.3.2 模數(shù)轉(zhuǎn)換器adc0809的接口電路61.3.3 數(shù)模轉(zhuǎn)換器dac0832的接口電路71.3.4 并行接口芯片8255a的接口電路81.3.5 數(shù)據(jù)/程序存儲器hm62256 91.3.6 動態(tài)led顯示與鍵盤101.3.7 蜂鳴器驅(qū)動電路131.3.8 電源131.3.9 rs-232串行接口142軟件電路設(shè)計172.1 匯編由語言程序設(shè)計步驟172.2 軟件實驗172.2.1 內(nèi)外存儲器清零182.2.2 二進制轉(zhuǎn)換bcd碼以及bcd碼求和、相減19 2.2.3 二進制轉(zhuǎn)換成ascii202.2.4 內(nèi)存塊移動212.2.5數(shù)據(jù)排序232.2.6 程序跳轉(zhuǎn)表252.2.7 延時程序262.3 硬件實驗272.3.1 外部存儲器控制信號檢測以及讀寫實驗27 2.3.2 d/a轉(zhuǎn)換實驗282.3.3 a/d轉(zhuǎn)換實驗322.3.4 定時器實驗332.3.5 8255a輸入輸出實驗 362.3.6 鍵盤掃描顯示實驗38總結(jié)46致謝47參考文獻48附錄a附錄b附錄c0前言近幾十年來,單片機因其體積小,重量輕,耗能省,價格低,可靠性高和通用靈活等優(yōu)點,在生產(chǎn)過程控制,制動檢測,數(shù)據(jù)采集與處理,科技計算,商業(yè)管理和辦公室自動化等方面獲得了廣泛的應(yīng)用。近幾年來,單片機的發(fā)展更為迅速,它已經(jīng)滲透到許多學(xué)科和領(lǐng)域,以及人們生活的各個方面。單片機在各個科學(xué)技術(shù)領(lǐng)域中的迅速發(fā)展,與單片機所構(gòu)成的技術(shù)及應(yīng)用系統(tǒng)特點有關(guān):單片機構(gòu)成的應(yīng)用系統(tǒng)有較大的可靠性。系統(tǒng)擴展和系統(tǒng)配置比較典型而規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。由于構(gòu)成的應(yīng)用系統(tǒng)是一個計算機系統(tǒng),相當(dāng)多的測控功能由軟件實現(xiàn),故具有柔性特點。 有優(yōu)異的性能價格比.因此,單片機技術(shù)已經(jīng)成為各高校自動化、測控、電子技術(shù)等相關(guān)專業(yè)的必修課程,社會上對該技術(shù)的需求也與日俱增。隨著單片機技術(shù)的發(fā)展,要求從業(yè)人員不僅有理論基礎(chǔ),還要有實踐能力,其教育市場十分廣闊。單片機教學(xué)實驗板是單片機簡單設(shè)計系統(tǒng),它體現(xiàn)了單片機系統(tǒng)的整體設(shè)計思路,熟悉這些應(yīng)用接口以后在單芯片軟硬件設(shè)計中受用無窮,因此近年來對這類實驗板的需求大大增加。目前各高校廣泛使用的單片機仿真實驗多是采用仿真頭或者外配jtag 邊界掃描技術(shù),仿真頭每套需要千元左右,jtag接口也要300500元一個,價格昂貴,且不利于進行細致的調(diào)試。利用at89c52教學(xué)實驗板來做8051實驗,課程設(shè)計,將可以省下你許多寶貴的時間和體力,提高工作效率,不必浪費太多的時間不斷嘗試錯誤;同時它啟發(fā)學(xué)生對科技的向往,激發(fā)創(chuàng)新意識,推動對新知識的學(xué)習(xí),培養(yǎng)自學(xué)能力,鍛煉動手的本領(lǐng)。本設(shè)計內(nèi)容涉及的教學(xué)實驗板,無需附加昂貴的仿真頭或者jtag接口,也能實現(xiàn)在系統(tǒng)仿真調(diào)試,大幅度的降低了造價,因此高校在投入等量資金下獲得更大的學(xué)生覆蓋密度,增強實驗效果;同時也滿足了自學(xué)者少投入,高效能的要求,市場前景十分廣闊。1硬件電路設(shè)計 1.1仿真實驗板概述為了學(xué)生學(xué)習(xí)單片機時具備基本的實驗條件,對單片機有形象而又具體的認識,專門設(shè)計了具有普遍適用的51系列教學(xué)仿真實驗板。該教學(xué)實驗板優(yōu)點是:(1)價格低廉。(2)使用簡單方便,只要有帶rs232串口的pc機就能進行實驗。(3)功能全,基本上具備單片機常用的接口,如adc、dac、存儲器、led數(shù)碼管、鍵盤、并行接口、串行接口,等等。由于同時具備上述特點,學(xué)生使用本實驗板來學(xué)習(xí)單片機可以有興趣、高效、自主地進行。51系列教學(xué)仿真實驗板既是一塊用戶實驗板,又是一種功能強大而實用的單片機開發(fā)調(diào)試工具,它充分利用pc機的系統(tǒng)資源,使用戶可以輕松完成8051單片機應(yīng)用系統(tǒng)的仿真調(diào)試工作,從而省去了價格昂貴的仿真器。用戶在pc機上完成軟件程序的編輯、編譯、連接,通過串行口通信方式將目標(biāo)程序下載到c51仿真開發(fā)實驗板中,可對匯編語言和高級語言源程序進行跟蹤調(diào)試,具有指令單步/過程單步運行,設(shè)置多個臨時斷點,隨時察看內(nèi)存數(shù)據(jù)或單片機內(nèi)部資源,在線修改源程序等多種功能。并且將單片機的引腳全部引出,可作為外部仿真頭使用。擴展了模擬信號發(fā)生電路(產(chǎn)生三角波、方波)、8255、ad0809、dac0832、62256、蜂鳴器、按鍵和led顯示接口電路,此外還預(yù)留了若干譯碼輸出口線,可供用戶擴展。采用本仿真開發(fā)實驗板,可使初學(xué)者迅速掌握單片機原理及應(yīng)用,熟悉匯編語言、甚至單片機c語言。用本仿真開發(fā)實驗板,對用戶源程序進行實時在線調(diào)試,可極大地縮短單片機應(yīng)用系統(tǒng)的開發(fā)時間。1.2教學(xué)仿真實驗板的資源圖2-1和2-2所示分別為實驗板的電路原理圖、pcb圖(見附錄)。實驗板上主要有以下資源:1.2.1電源:采用單一+12v電源供電(通過電源適配器由220v得到),通過7905實現(xiàn)穩(wěn)壓的+5v和不穩(wěn)壓的-23v電源。其中+5v為單片機及其外圍電路供電,-23v電源為運算放大器供。1.2. 2 配有32kram芯片62256,調(diào)試時用戶程序被下載到該芯片中,調(diào)試完成后可將其換為固化有用戶程序的2764/27256芯片,也可以保留62256用作為數(shù)據(jù)存儲器,但要把程序?qū)懭隺t89c52中。 1.2. 3 at89c52單片機。仿真實驗板僅僅占用單片機內(nèi)部串行口和定時器t1。我們可以采用盲調(diào)的方式也可以在用戶程序中使用單片機內(nèi)部串行口和定時器t1。單片機全部引腳都引出,可作為仿真插頭接口,還預(yù)置了若干譯碼輸出端口(地址線)以及數(shù)據(jù)線以便于用戶使用。1.2. 4 并行接口芯片8255。并行接口芯片8255是單片機系統(tǒng)最常用的器件,只要掌握了8255的接口技術(shù),也就不難掌握其他的接口芯片了。1.2. 5 8位a/dc芯片adc0809。雖然adc0809已經(jīng)落后,但采用它更便于學(xué)習(xí)和成本低廉。通過adc0809可以實現(xiàn)和掌握外圍器件的接口和數(shù)據(jù)采集原理。1.2. 6 8位d/ac芯片dac0832。同樣,雖然dac0832已經(jīng)落伍,但采用它便于和掌握外圍器件的接口和波形的產(chǎn)生。1.2. 7 動態(tài)掃描led。led顯示是單片機應(yīng)用系統(tǒng)常用的顯示方式之一,而動態(tài)掃描led是較難掌握的難點之一。雖然現(xiàn)在已經(jīng)很少采用8255來驅(qū)動led數(shù)碼管,但采用它便于直觀地觀察實驗現(xiàn)象,掌握動態(tài)掃描led的原理。1.2.8 動態(tài)掃描鍵盤。鍵盤是單片機應(yīng)用系統(tǒng)最常用的人機對話接口,而且動態(tài)掃描鍵盤更是較難掌握的難點之一。本實驗板配置動態(tài)掃描鍵盤是為了讀者通過實驗?zāi)軌虼_實掌握動態(tài)掃描鍵盤。表1-1和1-2分別給出了跳線1和跳線2的作用。表1-3給出了單片機存儲器空間的地址分配。表1-4和1-5分別給出了led顯示器的顯示碼和位選碼。這些數(shù)據(jù)在編程時是必不可少的依據(jù)。form 1-1 function of header 1表1-1 跳線1的作用跳線名連接方式說明netu11_13此兩腳短路時分別接通ad0809的每一通道。inx ( x = 07 )form 1-2 function of header 2表1-2 跳線2的作用跳線名連接方式說明tri此兩腳短路時將模擬信號發(fā)生器產(chǎn)生的三角波接入緩沖器。buffbuff此兩腳短路時將模擬信號發(fā)生器產(chǎn)生的方波接入緩沖器。squform 1-3 address assignment表1-3 地址分配接口電路地址范圍ad08090000 1fffhdac08322000 3fffh82554000 5fffh622568000 ffffhform 1-4 led show code表1-4 led顯示碼顯示數(shù)字0123456789顯示碼0xc00xf90xa40xb00x990x920x820xf80x800x90form 1-5 led location selecting code表1-5 led位選碼顯示位12345678位選碼0x7f0xbf0xdf0xef0xf70xfb0xfd0xfe1.3 電路原理說明1.3.1 單片機最小系統(tǒng)的電路原理圖3-1.所示為單片機at89c52(圖中標(biāo)明為8952)及其外部地址譯碼、鎖存電路圖。at89c52的p2的作為高位地址a8a15,其中a15控制譯碼器74hc138的使能端、,因而74hc138有效輸出片選信號時a15為低電平,即它所選的地址在低32k。同時a15、a14和a13又作為譯碼輸入,確定了片選端y0、y1和y2分別為0000 1fffh、2000 3fffh和4000 5fffh。 圖3-1單片機at89c52電路圖 fig. 3-1 single chip processor of at89c52 circuit picture 74hc573作為低位地址鎖存器,在ale的作用下鎖存p0口輸出的低位地址。請注意74hc573的輸入端和輸出端分別順序排列在芯片兩段,特別方便pcb版布線,因此建議讀者采用74hc573作為地址鎖存器,而不要像有些書籍所給的74hc3731。圖3-2所示為單片機at89c52的晶振、復(fù)位和引腳引出電路。晶振采用11.0592 mhz,該頻率有利于提高串口的通信可靠性,同時又保證單片機有較高的運行速度2。復(fù)位電路采用簡單的rc充、放電電路,在實驗板上電時,c103上的電壓不能突變,使單片機的復(fù)位端(圖中的rst點)處于高電平,在經(jīng)過約200300 ms的時間后,由于經(jīng)過r105的充電,rst點回到低電平,這一過程完成了單片機的復(fù)位。如果在調(diào)試過程中,出現(xiàn)死機、程序跑飛等情況,可以按下復(fù)位鍵s1強制單片機復(fù)位。 jp1的作用是把單片機的p1口和p3口的引腳引出,以方便讀者進行一些擴展實驗。圖3-2單片機at89c52的晶振,復(fù)位和引腳電路fig. 3-2 single chip processor of at 89c52, restoring to the throne and pin circuit1.3.2 模數(shù)轉(zhuǎn)換器adc0809的接口電路adc0809是一種8路模擬輸入逐次比較型ad轉(zhuǎn)換器,由于價格適中,與單片機的接口、軟件操作均比較簡單,目前在8位單片機系統(tǒng)中有著廣泛的使用。adc0809由8路模擬開關(guān)、地址鎖存與譯碼器、8位ad轉(zhuǎn)換器和三態(tài)輸出鎖存緩沖器組成。圖3-3所示為模數(shù)轉(zhuǎn)換器adc0809的接口電路。片選信號y0用于選擇adc0809。將y0與單片機寫信號(圖中標(biāo)為wr)相或非后給adc0809的ale端以將通道選擇信號add-aadd-c(分別接接單片機的地址信號a0a2)打入adc0809的通道選擇寄存器用于選擇adc0809的模擬輸入通道,同時該信號還接adc0809的轉(zhuǎn)換啟動端start,在打入通道選擇信號的同時啟動adc0809的轉(zhuǎn)換。將y0與單片機讀信號(圖中標(biāo)為rd)相或非后給adc0809的數(shù)據(jù)讀出使能端enable,用以從adc0809讀出轉(zhuǎn)換結(jié)果。adc0809的轉(zhuǎn)換結(jié)束信號eoc通過或非門構(gòu)成的反相器接單片機的外部中斷端,單片機可以通過中斷或查詢方式來判斷模數(shù)轉(zhuǎn)換是否結(jié)束和結(jié)果數(shù)據(jù)是否準(zhǔn)備好。單片機的ale信號通過計數(shù)器74ls393分頻后提供給adc0809作為時鐘信號,由clock端輸入到adc0809。 圖3-3模數(shù)轉(zhuǎn)換器adc0809接口電路fig. 3-3 the dac block of adc0809 interface circuit為了保證模數(shù)轉(zhuǎn)換的精度,adc0809采用模擬電路的電源供電以避免數(shù)字電路中難以避免的脈沖干擾。對adc0809的參考電源輸入端采用一大一小兩個電容進行濾波:大電容(10mf電解電容)用于濾除低頻干擾,但由于大電解電容存在較大的分別電感,因而它濾除高頻干擾的效果反而不如小電容,因此并聯(lián)一個高頻性能好的小電容用于濾除高頻干擾。通常在pcb板上這兩個電容都要盡可能地靠近adc0809參考電源輸入引腳安裝,以取得較好的效果3。1.3.3 數(shù)模轉(zhuǎn)換器dac0832的接口電路 dac0832芯片的功能是將輸入的數(shù)字量轉(zhuǎn)換成與其成比例的模擬量。dac0832是用cmos工藝集成的8位數(shù)據(jù)輸入d/a芯片,具有20個引腳,其輸出模擬量可有個不同的等級。圖3-4所示為數(shù)模轉(zhuǎn)換器dac0832的接口電路。片選信號y1直接接dac0832的片選端cs的緩沖寄存器鎖存端xfer,在與寫信號(圖中標(biāo)為wr)共同作用下把需轉(zhuǎn)換的數(shù)據(jù)經(jīng)過總線打入dac0832的數(shù)據(jù)緩沖器。 圖3-4數(shù)模轉(zhuǎn)換器dac0832的接口電路fig. 3-4 the dac block of adc0832 interface circuit 由dac0832轉(zhuǎn)換后的模擬信號是電流信號,經(jīng)過運放ma741(圖中標(biāo)為ua741)構(gòu)成的電流/電壓轉(zhuǎn)換電路變成電壓信號輸出,j2用于向外部引出由dac0832轉(zhuǎn)換后的模擬信號。由于運放ma741輸出的電壓信號為負極性,因而運放ma741不僅需要正電源,還需要負電源。圖中-agnd實際上是-23v的電源。為了簡化電源的設(shè)計,仿真實驗板的電源部分采用了特殊的設(shè)計,這將在后面加以詳細地介紹。1.3.4 并行接口芯片8255a的接口電路8255a是intel公司開發(fā)的一個可編程并行接口器件,為40條引腳雙列宣插式大規(guī)模集成電路。它采用單十5v電源供電、輸入輸出電平與ttl電路兼容。8255a廣泛用于擴展單片機的并行接口電路中。圖3-5所示為并行接口芯片8255a(圖中標(biāo)為8255,以下也簡稱為8255)的接口電路。片選信號y2直接接到8255的片選端,單片機寫信號(圖中標(biāo)為wr)接8255的寫信號,單片機讀信號(圖中標(biāo)為rd)接8255的讀信號,單片機的地址信號a11和a12分別接8255的地址信號a0和a1。單片機的復(fù)位信號rst接8255的復(fù)位信號reset。 8255的pa口和pb口用于動態(tài)地驅(qū)動led數(shù)碼管,其中pa口用于驅(qū)動段信號,pb口用于驅(qū)動位信號。注意:單片機和絕大多數(shù)的器件低電平的驅(qū)動能力強但又很有限,因而段驅(qū)動采用低電平有效(led發(fā)光)和選用共陽極led數(shù)碼管。r7101r7108為限流電阻。可見光的led的壓降一般在1.61.8v,工作電流520ma,據(jù)此可以計算限流電阻的阻值。但在計算動態(tài)掃描顯示的數(shù)碼管的限流電阻時應(yīng)該注意:(1)led的亮度與平均電流成正比,有n位數(shù)碼管時,瞬時電流(用于計算電阻阻值的電流)應(yīng)該比所需要亮度的工作電流(平均電流)大n倍。(2)注意瞬時電流不能超過25ma(8255的最大極限值),否則很容易燒毀8255。對于采用較小的數(shù)碼管時,還要注意瞬時電流不能超過數(shù)碼管的最大電流極限,特別是在調(diào)試和出現(xiàn)故障時,某位數(shù)碼管由于較長時間地通過接近甚至超過其最大電流極限而燒毀。r7113r7120為驅(qū)動三極管的限流電阻。由于有三極管來驅(qū)動數(shù)碼管的位(公共極陽極),因此限流電阻可以取較大的值。j1用于引出實驗板上沒有使用的pb口4個引腳pb47。 圖3-5并行接口芯片8255的接口電路fig. 3-5 the parallel interface of parallel chip 82551.3.5 數(shù)據(jù)/程序存儲器hm62256隨機存貯芯片(ram)hm62256的存貯量為32kb,地址線有(a0a14),是單片機應(yīng)用系統(tǒng)中最常見的數(shù)據(jù)存儲器。在實驗板中,hm62256(下面簡稱62256)更多的是充當(dāng)程序存儲器:在實驗和調(diào)試程序時,在單片機89c52駐留的監(jiān)控程序的控制下把用戶程序下載到62256中。所以,在下載程序時,對單片機at89c52駐留的監(jiān)控程序而言,62256是作為數(shù)據(jù)存儲器,把pc通過rs232下載的程序作為數(shù)據(jù)存放在62256中。而在調(diào)試時,在監(jiān)控程序的控制下,從單片機at89c52從62256中取出指令來執(zhí)行。因而62256的接口設(shè)計有特殊的要求:單片機把62256中存儲的內(nèi)容既能作為數(shù)據(jù)讀出,也能作為程序讀出。前面我們已經(jīng)說明,單片機在數(shù)據(jù)操作時間段中,從外部數(shù)據(jù)存儲器讀出數(shù)據(jù)時采用數(shù)據(jù)讀信號,而在取指時間段中,從外部程序存儲器讀出指令時采用指令數(shù)據(jù)讀信號。而62256只有一個讀信號,所以,在實驗板中采用和相與后接62256的端,稱為von neumann接法。圖10-8給出了數(shù)據(jù)/程序存儲器62256的接口電路,圖中62256的端標(biāo)為oe。a15反相后接62256的端(圖中標(biāo)為oe),說明62256的地址分配為高32k(8000hffffh)。 圖3-6數(shù)據(jù)/程序存儲器62256接口電路fig. 3-6 the interface of data / program memory 622561.3.6 動態(tài)led顯示器與鍵盤仿真實驗板采用了4位一體的共陽極led數(shù)碼管,這種數(shù)碼管的各同名段連接在一起共用一個引腳引出,各位(每位數(shù)碼管的公共端)單獨引出。 由于段驅(qū)動電流較小,為簡單起見,由8255的pa口直接驅(qū)動(加限流電阻)。而led數(shù)碼管的位電流較大,故采用三極管來驅(qū)動。位掃描信號由8255的pc口給出。圖3-7給出了動態(tài)led顯示器電路原理圖。相比于靜態(tài)顯示方式(1根口線驅(qū)動一個led),動態(tài)掃描方式需要的口線要少得多。如仿真實驗板上有8位數(shù)碼管,每位數(shù)碼管有8個 led,如果采用靜態(tài)驅(qū)動方式,則需要8864根口線來驅(qū)動。而采用動態(tài)驅(qū)動方式,只需要8(段驅(qū)動)8(位驅(qū)動)16根口線。動態(tài)方式利用了人眼的視覺暫留效應(yīng),每位數(shù)碼管依次顯示一個較短的時間,雖然每個瞬時只有一位數(shù)碼管在顯示,但對觀察者看來,好像所有的數(shù)碼管是在同時顯示一樣。圖3-7動態(tài)led顯示器與鍵盤接口電路fig. 3-7 dynamic led display and keyboard interface circuit雖然動態(tài)顯示方式節(jié)省了口線,但對編程提高了要求。每位數(shù)碼管顯示的時間(或頻率)需要在一個合理的范圍:顯示頻率通常在25hz以上才能保證較好的顯示效果。頻率低于25hz時,觀察者能夠看出數(shù)碼管在閃爍,頻率在25hz左右,有相當(dāng)一部分人能夠感覺到數(shù)碼管的閃爍,當(dāng)頻率增加到50hz時,數(shù)碼管看上去就十分流暢、舒服了。但顯示頻率再增加,幾乎沒有人能夠分辨出顯示效果的改善。顯示頻率過高,顯示程序耗時大幅度增加,編程困難,顯示亮度下降。利用顯示的位掃描,增加幾個口線就可以實現(xiàn)掃描(陣列)式鍵盤。在led數(shù)碼管顯示時,每個瞬時8255的pc口給出位掃描信號只有1根口線為低電平。由pc口的口線組成“列”,而pb口的4根線組成“行”,在行列的焦點上放置一個按鍵。如果在某個瞬時單片機檢測到pb口線上的低電平時,就可以根據(jù)檢測到低電平的pb口口線和此時給出低電平的pc口口線判斷出按鍵的位置,也就是鍵值。為了清楚起見,在中重新給出實驗板陣列式鍵盤接口電路。8255pb0pb1pb2pb3pc0pc1pc2pc3圖3-8陣列式鍵盤接口fig. 3-8 array type keyboard interface 在需要按鍵較多時,陣列式按鍵占用的口線較少,特別是在有l(wèi)ed數(shù)碼管動態(tài)掃描顯示的情況下,能夠大幅度節(jié)省口線,但陣列式按鍵的編程復(fù)雜,特別是需要作防抖處理時更為煩瑣。因而,實際應(yīng)用的單片機系統(tǒng)幾乎都采用專門的、同時具備led數(shù)碼管動態(tài)掃描顯示驅(qū)動功能和陣列式按鍵管理功能的集成電路,不但沒有提高成本,接口電路也大大地簡化,編程也極為簡單,耗用機時更少。這些芯片有ch451、bc728081和zlg7289a等。1.3.7 蜂鳴器驅(qū)動電路單片機口線的輸出低電平的驅(qū)動能力比高電平要強得多,但在保證符合邏輯電平時也只有5ma左右,不需要保證邏輯電平時(如驅(qū)動led時可以有10多個ma)。因此,如果要驅(qū)動較大功率的器件:(1)應(yīng)該以低電平有效;(2)外接功率驅(qū)動器件。蜂鳴器需要的驅(qū)動電流較大,根據(jù)上述考慮,仿真實驗板采用了圖3-9所示的蜂鳴器驅(qū)動電路。該電路結(jié)構(gòu)簡單、方便適用。雖然是采用分立元件,在需要驅(qū)動負載個數(shù)不多的情況下,采用這種電路是較為適宜的。如果需要驅(qū)動較多和較重的直流負載,可以選用像7反相功率驅(qū)動器mc14433這樣一類集成電路比較合適4。 圖3-9 蜂鳴器驅(qū)動電路 pig 3-9 buzzer drive the circuit 1.3.8 電源仿真實驗板電源電路如2-10所示。220v的交流電適配器輸出的12v直流由插座j1輸入。經(jīng)過c1001和c1002的濾波輸入到三端穩(wěn)壓器7905。注意:7905是-5v輸出的穩(wěn)壓集成電路,因而7905的輸出端(3端)比接地端(1端)要抵5v。所以在電路中把3端作為地(gnd),而把1端作為vcc,以保證單片機的工作電壓是所需的、穩(wěn)定的+5v。而把7905的輸入端(2端)作為模擬電路的負電源(-agnd)為運放等供電。圖3-10中的led發(fā)光管1006有兩個作用:(1)作為電源指示。(2)為模數(shù)轉(zhuǎn)換器提供基準(zhǔn)電源。由于發(fā)光管壓降一般在1.61.8v之間,而模數(shù)轉(zhuǎn)換器adc0809的參考電源需要2.5v,因此,串接一只普通的二極管1005,使基準(zhǔn)電源vref1在2.22.4v之間,基本上滿足電路的要求。仿真實驗板的數(shù)字電路和模擬電路的電源線采用了各自走線的方法,以減少數(shù)字電路和模擬電路之間的相互干擾,特別是數(shù)字電路對模擬電路的干擾。如果采用完全獨立的兩套電源為數(shù)字電路和模擬電路分別供電,將顯著地增加電路的復(fù)雜性和成本。電路中虛設(shè)兩個電阻r1007和r1008,分別將數(shù)字電路和模擬電路的電源連接在一起。實際電路可以將r1007和r1008以導(dǎo)線直接短接來代替。這種方法在不增加電路的復(fù)雜性和成本的情況下,顯著地降低數(shù)字電路和模擬電路之間的相互干擾1。 圖3-10仿真實驗板電源電路fig. 3-10 power circuit of emulation experiment board 1.3.9 rs-232串行接口實驗板上的串行接口是實驗板與pc通信的唯一通道,需調(diào)試的程序通過串行接口下載到實驗板中,而實驗板上程序的運行狀態(tài)和部分結(jié)果也需通過串行接口上傳到pc機。pc機上的串行接口是rs-232,rs-232包括了按位進行串行傳輸?shù)碾姎夂蜋C械方面的規(guī)定。rs-232關(guān)于電氣特性的要求規(guī)定,驅(qū)動器輸出電壓相對于信號地線在-5v-15v之間為邏輯1電平,表示傳號狀態(tài);輸出電壓相對于信號地線在5v15v之間為邏輯0電平,表示空號狀態(tài)。在接收端,邏輯1電平為-3v-15v,邏輯0電平為3v15v,即允許發(fā)送端到接收端有2v的電壓降。這樣的rs-232電平和ttl邏輯電路(單片機)產(chǎn)生的電平是不一樣的,因此,pc機與單片機at89c52之間必須經(jīng)過一定的電路轉(zhuǎn)換邏輯電平。圖3-11給出了實驗板上的rs232串行接口邏輯電平轉(zhuǎn)換電路。該電路由分立元件構(gòu)成,它等同max202的電平轉(zhuǎn)換功能。一個完整的rs-232接口有22根線,采用25根插針的標(biāo)準(zhǔn)連接器,各插針定義見表1-6。在使用pc機和單片機進行直接通信時,一股選用pc機端的9針串口,因此rs-232只需要少數(shù)幾根線即可正常工作。txdrxd是一對數(shù)據(jù)線,txd為發(fā)送數(shù)據(jù)輸出,rxd為接收數(shù)據(jù)輸入,當(dāng)pc機和單片機以全雙工方式直接通信時,雙方的這兩根線應(yīng)交叉連接。所有信號均通過信號地構(gòu)成回路,雙方的信號地相連。有以上這三條線(txd、rxd和信號地),單片機和pc機就可以分別對異步通信電路芯片編程,設(shè)置成不需要任何聯(lián)絡(luò)或握手信號、直接進行數(shù)據(jù)交換的方式。rs-232三線式直接數(shù)據(jù)通信接口如表1-7所示。圖3-11 rs232串行邏輯電平轉(zhuǎn)換電路 fig. 3-11 rs232 serial logic level transformation the circuitform1-6 definition of rs-232 signal表1-6 rs-232信號的定義引腳序號說明引腳序號說明1保護地13輔信道 允許發(fā)送(cts)2發(fā)送數(shù)據(jù)14輔信道 發(fā)送數(shù)據(jù)3接收數(shù)據(jù)15發(fā)送信號無定義dce為源4請求發(fā)送(rts)16輔信道 接收數(shù)據(jù)5允許發(fā)送(cts)17接收信號無定時6數(shù)傳機準(zhǔn)備好18未定義7信號地19請求發(fā)送(rts)8接收線信號檢測20數(shù)據(jù)終端準(zhǔn)備好9保留供數(shù)傳機測試21信號質(zhì)量檢測10保留供數(shù)傳機測試22振鈴指示11未定義23數(shù)據(jù)信號速率選擇12接收線信號檢測24接收數(shù)據(jù)無定時form 1-7 rs-232 data communication interface 表1-7 rs-232三線式直接數(shù)據(jù)通信接口說明引腳序號引腳序號 保護地(接外殼) 1 1發(fā)送數(shù)據(jù)txd 2 2接收數(shù)據(jù)rxd 3 3信號地 7 7請求發(fā)送rst 4 4消除發(fā)送cts 5 5載波檢測dcd 8 8數(shù)據(jù)裝置準(zhǔn)備好dtr 6 6數(shù)據(jù)終端準(zhǔn)備好dsr 20 20振鈴指示ri 22 22表1-7中,通常左邊為連接pc機的25針插頭時,右邊連接單片機實驗板只需2根信號線(另加1根地線)。信號線為雙方的2、3端交叉連接,而其它7端對應(yīng)連接,即完成了pc機與單片機仿真實驗板的連接。仿真實驗板配套的rs-232通訊線就是采用上述連接方式制成的。2軟件設(shè)計 在微機應(yīng)用系統(tǒng)的設(shè)計和開發(fā)中,主要工作集中在接口設(shè)計和程序涉及兩個方面,而匯編語言程序設(shè)計是開發(fā)單片機應(yīng)用系統(tǒng)軟件的關(guān)鍵。在這里著重介紹程序設(shè)計的基本方法,并舉例一些典型的匯編語言程序?qū)嵗?.1 匯編由語言程序設(shè)計步驟用微機完成某項任務(wù)時,往往應(yīng)根據(jù)問題的要求對硬件,軟件綜合考慮。在總體硬件確定情況下,程序設(shè)計一般可按如下步驟進行。(1) 分析問題分析問題就是要熟悉和明確問題的要求,明確已知條件以及對運算與控制的要求,準(zhǔn)確地規(guī)定要完成的任務(wù),建立數(shù)學(xué)模型。(2) 確定算法根據(jù)實際問題的要求和指令系統(tǒng)的特點,選擇解決問題的方法。算法是進行程序設(shè)計的依據(jù),它決定了程序的正確性和程序的質(zhì)量。(3) 設(shè)計程序流程圖程序流程圖是程序結(jié)構(gòu)的一種圖解表示法,它直觀,清晰地體現(xiàn)了程序設(shè)計思想,是程序設(shè)計一種常用工具。設(shè)計程序流程圖,是把算法轉(zhuǎn)化成程序的準(zhǔn)備階段。(4) 分配內(nèi)存單元分配內(nèi)存工作單元,確定程序和數(shù)據(jù)區(qū)的起始地址。(5) 編寫匯編語言源程序根據(jù)流程圖和指令系統(tǒng)編寫源程序。編寫員程序時,力求簡單明了,力求簡單明了層次清晰。(6)調(diào)試程序源程序編制好以后,必須上機調(diào)試。先將源程序通過匯編生成目標(biāo)程序,并消除愈發(fā)失誤;然后再使用系統(tǒng)進行聯(lián)調(diào)修改,直至預(yù)定一定的要求。2.2 軟件實驗51系列單片機具有豐富功能的指令系統(tǒng),它集中反映了51系列單片機是一個面向功能很強的單片微型機。掌握指令系統(tǒng),是熟悉和應(yīng)用單片機的軟件基礎(chǔ)。但是,要真正掌握指令系統(tǒng),一方面必須與單片機的硬件結(jié)構(gòu)結(jié)合起來學(xué)習(xí);另一方面要結(jié)合實際多做程序分析和進行簡單的程序設(shè)計及調(diào)試,才能收到應(yīng)有的效果。通過如下軟件試驗,我們能快速地掌握單片機工作原理和熟悉匯編語言的指令系統(tǒng)。說明:xcode-外部程序存儲器 xdata-外部數(shù)據(jù)存儲器 icode-片內(nèi)rom 片內(nèi)ram (00h7fh) idata-片內(nèi)ram (80hffh) sfr-特殊寄存器(80hffh)為了鍛煉學(xué)生的編程能力,同類型的編程只給出一個例程,思考部分要求學(xué)生課后自己完成。2.2.1 軟件實驗 存儲器清零一、實驗要求:指定存儲器中某塊的起始地址和長度,要求能將其內(nèi)容清零。二、實驗?zāi)康模?.掌握存儲器讀寫方法2.了解存儲器的塊操作的方法三、實驗說明通過本實驗,學(xué)生可以了解單片機讀寫存儲器的讀寫方法,同時也可以了解單片機編成,調(diào)試方法,如何將存儲器塊內(nèi)容固定值?例程:清除片內(nèi)數(shù)據(jù)存儲器(data+idata)清除片內(nèi)數(shù)據(jù)存儲器(data+idata),即片內(nèi)從00h至ffh所有單元。org 8000h ;實驗板開始執(zhí)行的第一條指令所處的地址ljmp main ;跳轉(zhuǎn)到主程序org 8030h ;主程序開始的地址;避開中斷入口地址main: mov r0, #0ffh ;使r0指向idata中的最大的地址ffh mov a, #0 ;清除累加器clr_ram: mov r0, a ;清除dptr所指向的idata單元djnz r0, clr_ram ;完成清除idatahalt: ljmp halt ;完成清除idata,在此死循環(huán),實際程序中應(yīng)為后續(xù)操作;= =;用以分隔程序,使程序清晰易懂end ;程序結(jié)束,編譯程序不理會end以后的內(nèi)容思考:如何編寫清除外部數(shù)據(jù)存儲器(xdata)的程序說明:89c52內(nèi)部有多個存儲空間,每個存儲空間都是具有連續(xù)的字節(jié)地址空間,其地址都是從0開始至最大存儲范圍的字節(jié)地址,就是說它們的地址是全部重疊的。因為idata區(qū)的地址和sfr的地址是重疊,我們通過區(qū)分訪問的存儲區(qū)了解決地址重疊問題。sfr只能通過直接尋址來訪問,而idata區(qū)只能通過間接尋址來訪問。但是外部數(shù)據(jù)存儲器(xdata)就只能使用dptr、r0或者r1間接尋址。2.2.2 軟件實驗 bcd碼轉(zhuǎn)換及運算一、實驗要求1. 將給定的一個二進制數(shù),轉(zhuǎn)換成十進制(bcd)碼2. 將二個給定bcd碼進行求和及相減二、實驗?zāi)康?. 掌握簡單的數(shù)據(jù)轉(zhuǎn)換算法2. 基本了解數(shù)值的各種表達方法3. 掌握求和相減要注意的地方三、計算機中的數(shù)值有各種表達方式,這是計算機的基礎(chǔ)。掌握各種數(shù)值之間的轉(zhuǎn)換是一種基本功。例程:二進制轉(zhuǎn)換成十進制(bcd碼)將二進制數(shù)(f3h)轉(zhuǎn)換成十進制數(shù)存放在30h,31h,32horg 0000h ljmp mainorg 0030hmain: mov r0, #30h ;給出百位存放地址 mov a, #0f3h ;給出要轉(zhuǎn)換的二進制數(shù) mov b, #64h ;將數(shù)除100,得到百位數(shù) div ab mov r0, a ;存百位數(shù) inc r0 ;給出十位數(shù)的存放地址 mov a, b ;將余數(shù)除10,得到十位數(shù) mov b, #0ah div ab mov r0, a ;存放十位數(shù) inc r0 ;得個位數(shù)地址 mov r0, b ;存放個位數(shù);= ;用以分隔程序,使程序清晰易懂 end ;程序結(jié)束,編譯程序不理會end以后的內(nèi)容 思考:1. bcd碼求和有兩個4位bcd碼,分別放在片內(nèi)ram的50h,51h單元和60h,61h單元中。求兩數(shù)之和并存放在40h,41h單元中。2. 壓縮的bcd碼相減被減數(shù)和減數(shù)為壓縮bcd碼,分別存于r3和r4中,其差值也存進r3中。3. 如果是壓縮bcd碼相加的程序應(yīng)該如何編程?說明:十位數(shù)相加時用addc指令,是考慮當(dāng)個位數(shù)相加的結(jié)果超過9時,將產(chǎn)生進位,在對十位數(shù)相加時應(yīng)該把它加進去。da a指令支隊累加器a起作用,它不能單獨使用并且在假發(fā)指令add和addc之后,也不適用于減法指令。為了能借用da a指令,可采用把減法變成補碼相加的辦法,用9ah減去減數(shù),得到10為模的減數(shù)的補碼。2.2.3 軟件實驗二進制轉(zhuǎn)換成ascii一、實驗要求 給出一個十六進制的數(shù),將其轉(zhuǎn)換成ascii值。二、實驗?zāi)康?. 了解十六進制值和ascii值得區(qū)別2. 了解如何將十六進制轉(zhuǎn)換成ascii值3. 了解如何查表進行數(shù)值轉(zhuǎn)換及快速計算三、實驗說明 此實驗讓我們了解數(shù)值的十六進制和ascii的區(qū)別,利用查表可能快速進行數(shù)值轉(zhuǎn)換。進一步了解數(shù)值的各種表達方法。例程:由十六進制數(shù)0-9的ascii碼為30h-39h和a-f的ascii碼為41h-46h可知,如果十六進制數(shù)小于0ah,則像應(yīng)該數(shù)的ascii碼為a+30h;如果該數(shù)等于或大于0ah,則相應(yīng)的ascii碼為a+37h。org 0030hmov r0, #3bh ;給指定單元賦值 mov a, r0 ;取十六進制數(shù)高四位anl a, #0f0hswap a acall hexasc ;調(diào)用轉(zhuǎn)換子程序 mov 30h, a ;將高四位運算結(jié)果放到30h單元mov a, r0 ;取十六進制數(shù)低四位anl a, #0fhacall hexasc ;調(diào)用轉(zhuǎn)換子程序mov 31h, a ;把低四位運算結(jié)果放到31h單元hexasc: cjne a,#0ah,
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金融服務(wù)居間合同委托書
- 物業(yè)服務(wù)外包合同
- 鍋爐購銷合同書
- 車輛租賃保險服務(wù)合同
- 語言編程及算法操作手冊
- 水產(chǎn)養(yǎng)殖與漁業(yè)技術(shù)作業(yè)指導(dǎo)書
- 軟件外包業(yè)軟件開發(fā)與項目管理流程優(yōu)化研究
- 綠色農(nóng)業(yè)生產(chǎn)技術(shù)方案
- 保姆雇傭勞動合同書
- 新夫妻離婚協(xié)議書參考樣板
- (正式版)HGT 6313-2024 化工園區(qū)智慧化評價導(dǎo)則
- 每個孩子都能像花兒一樣開放
- 單店爆破促銷活動模式精編文檔
- YS/T 34.1-2011高純砷化學(xué)分析方法電感耦合等離子體質(zhì)譜法(ICP-MS)測定高純砷中雜質(zhì)含量
- LY/T 2016-2012陸生野生動物廊道設(shè)計技術(shù)規(guī)程
- 松下panasonic-視覺說明書pv200培訓(xùn)
- 單縣煙草專賣局QC課題多維度降低行政處罰文書出錯率
- 毫針刺法(全)教學(xué)課件
- 金風(fēng)科技-風(fēng)電產(chǎn)業(yè)集團-供應(yīng)商現(xiàn)場作業(yè)基礎(chǔ)安全考試附答案
- 人工智能機器人科學(xué)小報手抄報簡報
- 三年級下冊美術(shù)課件-第1課 燈彩輝映|浙美版 (共19張PPT)
評論
0/150
提交評論