




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘 要數據采集系統作為溝通模擬域與數字域的必不可少的橋梁有著非常重要的作用。本文介紹的重點是數據采集系統。數據采集與通信控制采用了模塊化的設計,數據采集與通信控制采用了單片機8051來實現,硬件部分是以單片機為核心,還包括模-數轉換模塊,顯示模塊,和串行接口部分,還有一些簡單的外圍電路。8路被測電壓通過通用adc0809模-數轉換,實現對采集到的數據進行模擬量到數字量的轉換,由單片機對數據進行處理,用lcd顯示模塊來顯示所采集的結果,并將數據通過串行口傳輸到pc機上,mcu與 pc機間的電平匹配采用max232接口芯片,由pc機完成數據接收和顯示,vb程序編寫了更加人性化的人機交互界面。關鍵詞
2、:單片機,lcd,模數轉換,串行傳輸abstract key words:前 言在各種測控系統中,往往需要對一些參數進行測量并送回計算機進行監控及處理,因此多路數據采集系統被廣泛應用于各種測控場合。單片機作為微型計算機的一個重要分支,應用廣泛,對人類社會產生了巨大的影響。intel公司生產的51系列單片機,由于具有集程度高、處理功能強、可靠性好、系統結構簡單、價格低廉、易于使用等優點。在我國已經得到了廣泛應用。在智能儀器儀表、工業檢測控制、電力電子、機電一體化方面取得了矚目的成就。數據采集系統作為溝通模擬域與數字域的必不可少的橋梁地位十分重要。基于單片機的數據采集系統完全能夠滿足各種測控系統需
3、要,實時性好,應用前景廣闊。對于本設計而言,其主要任務就是將05伏的直流電壓進行測量并送到遠端的pc機上進行顯示。由于采集的是直流信號,對于緩慢變化的信號不必加采樣保持電路,選用了市面上比較常見的逐次逼近型adc0809芯片,其轉換速度快,價格低廉,可以直接將直流電壓轉換為計算機可以處理數字量。考慮到本系統是采用5伏電池供電,選用了低功耗的lcd顯示器件,以滿足其在終端顯示采集結果的需求。終端鍵盤控制采用盡可能少的鍵來實現控制功能,為了防止鍵盤不用時的誤操作,設置了鎖鍵功能,在鍵盤的輸入的消抖方面采用了軟件消抖的方法,以降低硬件的開銷,來提高系統的抗干擾能力。軟件設計方面,采用了功能模塊化的設
4、計思想;鍵盤模數轉換等采用了中斷的方式來實現,大大提高了單片機的效率,實時處理能力。在上位機pc端運用了可視化編程語言vb,界面簡單明了,人機交互性界面好。第一章 課題分析與方案論證1.1數據采集系統在任何計算機測控系統中,都是從盡量快速,盡量準確,盡量完整的獲得數字形式的數據開始的,因此,數據采集系統作為溝通模擬域與數字域的橋梁起著非常重要的作用。70年代初,隨著計算機技術及大規模集成電路的發展,特別是微處理器及高速a/d轉換器的出現,數據采集系統結構發生了重大變革。原來由小規模集成的數字邏輯電路及硬件程序控制器組成的采集系統被微處理器控制的采集系統所代替。因為由微處理器去完成程序控制,數據
5、處理及大部分邏輯操作,使系統的靈活性和可靠性大大的提高,系統的硬件成本和系統的重建費用大大的降低。數據采集系統一般由信號調理電路,多路切換電路,采樣保持電路,a/d,單片機組成。1.1.1信號調理電路 調理與放大電路:包括:阻抗匹配、放大電路、隔離電路、濾波等電路。(1)阻抗匹配:放大電路與傳感器之間往往存在阻抗不匹配的現象,信號要進入a/d轉換器也存在阻抗匹配問題,阻抗不匹配會使信號在傳輸過程中嚴重畸變,導致嚴重檢測誤差,條例過程中必須十分注意阻抗匹配問題,一般阻抗匹配可以由運算放大器組成的跟隨器完成。(2)信號放大電路:是信號調理電路的核心,一般傳感器輸出的物理信號量值很小,需要通過放大調
6、理電路來增加分辨率和敏感性,將輸入信號放大為a/d轉換所需要的電壓范圍,為了獲得盡可能高的精度,應將輸入信號放大至與adc量程相當的程度。(3)信號隔離電路:隔離是指使用變壓器、光電耦合或電容耦合等方法在被測系統中與測試系統之間傳輸信號,避免直流的電流或電壓的物理連接的一種手段。(a)數據采集系統所監測的設備可能會有高壓瞬變現象,足以使計算機與數據采集板損壞,隔離可使傳感器信號與計算機隔離開,使系統安全得到保障。(b)保證數據采集各個環節間不受地電位或共態電壓差異的影響,從而影響測試精度,這是因為在采集信號時,都需要以“地”為基準,如果在兩“地”之間存在電位差,就可能導致地環路產生,從而導致所
7、采集的信號再現不準確,若這一電位差太大,可能危機測量系統的安全,利用隔離電路的信號模塊可以消除地環路,并保證準確的采集信號。模擬信號的隔離比數子信號的隔離難度大的多,成本高,常用的方法是,采用線性光耦或兩個特性幾乎完全接近的普通光耦用特殊的電路實現,另外,直接采用具有隔離作用的儀表放大器也行。(4)信號濾波:幾乎所有的數據采集系統都會不同程度的受到來自電源線或機械設備的50hz噪聲干擾,因此大多數信號調理電路包含低通濾波器,最大限度的剔除50hz或60hz的噪聲。交流信號(如振動)則往往需要防混淆濾波器,防混淆濾波器是一種低通濾波器,具有非常陡峭的截止頻率,幾乎可以將頻率高于采集板輸入信號帶寬
8、的信號全部剔除;若不除去,這些信號將會錯誤的顯示為數據采集系統輸入帶寬內的信號。1.1.2 多路切換電路通常被檢測的物理量有很多個,如果每一通道都要有放大和adc幾個環節就很不經濟。而且電路也復雜。采用模擬多路開關就可以使多個通路共用一個放大器和adc,采用時間分割法使幾個模擬開關通道輪流接通。這樣既經濟,又使電路簡單。模擬多路開關的選擇主要考慮導通電阻的要求,截止電阻的要求和速度要求。常用的模擬多路開關有cd4501,cd4066,ad7501,ad7507等。為降低截止通道的負載影響,提高開關速度,降低通道串擾,采用多級模擬多路開關來完成通道切換。1.1.3加采樣保持電路的原則一般情況下直
9、流和變化非常緩慢的信號可以不用采樣保持電路.其他情況都要加采樣保持電路。1.1.4 模-數轉換器(adc)adc是計算機同外界交換信息所必須的接口器件,它需要考慮的指標有:分辨率,轉換時間,精度,電源,輸入電壓范圍等。1.1.5基本微處理系統單片機構成了基本的微處理系統,它完成系統數據讀取,處理及邏輯控制,數據傳輸任務等。選擇msc-51系列8051單片機。完成任務書所要求的功能的系統框圖如下圖1-1-5所示 圖1-1-5系統框圖1.2方案論證1.2.1 模數轉換的選擇a/d轉換器的種類很多,就位數來分,有8位,10位,12位和16位等。位數越高分辨率就越高,價格也就越貴。a/d轉換器的型號很
10、多,在精度和轉換速度上差異很大。(a)雙積分a/d轉換器:雙積分式是一種間接式a/d轉換器,優點是轉換精度高,速度快缺點是轉換時間長,一般要4050ms,適用于轉換速度不快的場合。(b)逐次逼近式a/d轉換器:逐次逼近式的屬于直接式a/d轉換器,轉換精度高,速度高,價格適中,是目前種類最多,應用最廣的a/d轉換器,典型的8位模數轉換器有adc0809。 鑒于方案(b)的換速度比方案(a)快,價格適中,種類繁多,應用廣泛,在本設計中采用adc0809。051的選擇單片微機是屬于embedded system(嵌入系統),此系統的是把cpu 加上一些少量的內存和輸出入組件(i/o),
11、都嵌入在一顆芯片內,再使用特定的組譯和編譯軟件編輯程序,利用燒錄器把程序儲存到單芯片,如此加上一些簡單的周邊電路,即可變成一個控制系統,所以單芯片又稱為微控制器在本設計中選用intel8051其中內部已內建程序存儲器rom,不必再去外擴程序存儲器,使用更加方便。1.2.3 串行接口器件的選擇(a)pc機配有標準rs-232接口,單片機輸出的是ttl電平。因此,單片機與pc機之間通訊時,需要電平轉換。rs-232電平轉換芯片有mc1489,mc1488。mc1488內有三個與非門和一個相反器,供電電壓為+15v-15v或者+12v-12v,輸入為ttl電平,輸出為rs-232電平。mc1489內
12、部有四個相反器,輸入為rs232電平,輸出為ttl電平。 (b)采用max232作為單片機與pc之間通訊的橋梁。max232的優點是:一片芯片可以完成發送轉換和接收轉換的雙重功能。 單一電源+5v供電。方案(a)中的mc1488和mc1489,完成電平轉換時電路設計麻煩,比較容易出現錯誤,而且功能不如max232齊全。所以選擇方案(b)中的max232作為電平轉換的芯片,它不僅在功能上能滿足本系統的要求,且電路設計與連接比較簡單。1.2.4 顯示部分lcd是一種被動式的顯示器,即液晶本身并不發光,而是利用液晶經過處理后能改變光線通過方向的特性,而實現顯示的目的。液晶顯示器具有功耗低、抗干擾能力
13、強等優點被廣泛應用在各種儀器儀表和控制系統中。現在市面上的lcd顯示器多以模塊化形式出現,模塊由lcd控制器、lcd驅動器、lcd顯示裝置三部分組成,它與cpu之間是通過lcd控制器直接進行溝通的,使用方便。所以在本系統中采用低功耗的sdec廠生產的2a16drg lcd第二章 硬件設計2.1 模數轉換器adc08092.1.1 模數轉換器原理介紹在我們所測控的信號中均是連續變化的物理量,通常需要用計算機對這些信號進行處理,則需要將其轉換成數字量,a/d轉換器就是為了將連續變化的模擬量轉換成計算機能接受的數字量。根據a/d轉換器的工作原理,常用的a/d轉換器可分為兩種,雙積分式a/d轉換器和逐
14、次逼近式a/d轉換器。(1)雙積分a/d轉換器工作原理雙積分a/d轉換器采用間接測量的方法,它將被測電壓轉換成時間常數t,其工作原理如圖 所示,雙積分a/d轉換器由電子開關,積分器,比較器,計數器和控制邏輯等部分組成。比較器vxvref標準時鐘計數器控制邏輯電子開 關數據輸出所謂雙積分就是進行一次a/d轉換需要兩次積分。電路先對被測的輸入電壓vx進行固定時間(t0)的正向積分,然后控制邏輯將積分器的輸入端通過電子開關接參考電壓vr,由于參考電壓與輸入電壓反向且參考電壓值是恒定的,所以反向積分的斜率是固定的,從反向積分開始到結束,對參考電壓進行反向積分的時間t,正比于輸入電壓。圖2-1-1(a)
15、雙積分型a/d轉換器的電路原理圖圖2-1-1(b) 兩次積分的輸出曲線如圖2-1-1(b)所示,輸入電壓越大反向積分時間越長,用高頻標準脈沖計數測此時間,即可得到相應于輸入電壓的數字量。特點:可以有效的消除干擾和電源噪聲,轉換精度高,但是轉換速度慢。(2)逐次逼近型a/d轉換器逐次逼近型a/d轉換器由d/a轉換環節,比較環節和控制邏輯等幾部分組成。圖2-1-1(b)是逐次逼近型a/d轉換器的電路原理圖,其轉換原理為:a/d轉換器將一待轉換的模擬輸入電壓ui與一個預先設定的電壓ui(預定的電壓由逐次逼近型a/d轉換器中的d/a輸出獲得)電壓相比較,根據預設的電壓ui是大于還是小于待轉換成的模擬輸
16、入電壓uin來決定當前轉換的數字量是“0” 還是“1”,據此逐位比較,以便使轉換結果(相應的數字量)逐漸與模擬輸入電壓相對應的數字量接近。“預設的電壓”值的算發如下:使逐次逼近型a/d轉換器中的d/a的各位二進制數從最高位起依次置1,每變化一位就得到一個預設的電壓ui并使之與待轉換的模擬輸入電壓ui進行比較,若模擬輸入電壓ui小于預設的電壓ui,則使比較器中相應的位為0,若模擬輸入電壓ui大于預設的電壓ui,則使比較器中相應的輸出位為1,無論哪鐘情況,均應繼續比較下一位,直到最低位為止,此時逐次逼近型a/d轉換器中的d/a的數字輸入即為對應模擬輸入信號的數字量,將此數字量輸出就完成了a/d的轉
17、換過程。2.1.2adc0809模數轉換器的選擇逐次逼近式的屬于直接式a/d轉換器,轉換精度高,速度高,價格適中,是目前種類最多,應用最廣的a/d轉換器,典型的8位模數轉換器有adc0809圖2-1-2(a) adc0809內部結構adc0809采用工藝,片內帶有鎖存功能及8路模擬多路開關,可對8路05伏的輸入模擬電壓信號分時進行轉換,完成一次轉換約100微秒;片內具有多路開關的地址譯碼器和鎖存電路,高阻抗斬波器及穩定的比較器,256r電阻t型網絡和樹狀電子開關以及逐次逼近寄存器,輸出具有三態鎖存緩沖器,可直接接到單片機的數據總線上。(1)adc0809的介紹adc0809是8位逐次逼近式ad
18、轉換器,具有8個模擬量輸入通道,最大不可調誤差小于1lsb,典型時鐘頻率為640khz,每通道的轉換時間約為100s。adc0809沒有內部時鐘,必須由外部提供,其范圍為101280khz。 (2)引腳排列及各引腳的功能in0in7:8個通道的模擬量輸入端。可輸入05v待轉換的模擬電壓。d0d7:8位轉換結果輸出端。三態輸出,d7是最高位,d0是最低位。a、b、c:通道選擇端。當cba=000時,in0輸入;當cba=111時,in7輸入。ale:地址鎖存信號輸入端。該信號在上升沿處把a、b、c的狀態鎖存到內部的多路開關地址鎖存器中,從而選通8路模擬信號中的某一路。 start:啟動轉換信號輸
19、入端。從start端輸入一個正脈沖,其下跳沿啟動adc0809開始轉換。脈沖寬度應不小于100200ns。eoc:轉換結束信號輸出端。當eoc為 圖2-1-2(b)adc0809引腳圖高電平時表示轉換結束,啟動a/d轉換時它自動變為低電平。oe:輸出允許端。oe為低電平時,d0d7為高阻狀態,oe為高電平時,允許轉換結果輸出。clk:時鐘輸入端。adc0809的典型時鐘頻率為640khz,轉換時間約為100s。ref(-)、ref(+):參考電壓輸入端。adc0809的參考電壓為5v。vcc、gnd:供電電源端。adc0809使用5v單一電源供電。 (3)a/d轉換器的位數決定著信號采集的精度
20、和分辨率。對于8通道的輸入信號,要求分辨率為0.5%。8位的a/d轉換器,其精度為:輸入為05v時,分辨率為a/d轉換器的滿量程值 adc二進制位數量化誤差為2.1.3adc0809時序圖及其接口電路從時序圖2-1-3 可以看出,地址鎖存信號ale在上升沿將三位通道地址鎖存,相應通道的模擬量經過多路模擬開關送到a/d轉換器。啟動信號start上升沿復位內部電路,start的下降沿啟動轉換,此時轉換結束信號eoc呈低電平狀態,由于逐位逼近需要一定過程,所以,在此期間模擬輸入量應維持不變,比較器要一次次比較,直到轉換結束,此時變為高電平。若cpu發出輸出允許信號oe(輸出允許為高電平),則可讀出數
21、據,其有較高的轉換速度精度,及受溫度影響小。圖2-1-3 adc0809時序圖從時序圖2-1-3 可以看出,地址鎖存信號ale在上升沿將三位通道地址鎖存,相應通道的模擬量經過多路模擬開關送到a/d轉換器。啟動信號start上升沿復位內部電路,start的下降沿啟動轉換,此時轉換結束信號eoc呈低電平狀態,由于逐位逼近需要一定過程,所以,在此期間模擬輸入量應維持不變,比較器要一次次比較,直到轉換結束,此時變為高電平。若cpu發出輸出允許信號oe(輸出允許為高電平),則可讀出數據,其有較高的轉換速度精度,及受溫度影響小。圖2-1-4 adc0809與8051單片機的接口電路adc0809與mcs-
22、51系列單片機的接口方法接口電路如圖2-1-4所示。地址信號:74ls373輸出的低3位地址a2、a1、a0加到通道選擇端a、b、c,作為通道編碼。通道基本地址為0000h0007h。控制信號:8051的wr與p2.7經過或非門后接至0809的start及ale引腳。8051的rd與p2.7經或非門后接至0809的oe端。adc0809的eoc經反相后接到8051的p3.3(int1)。2.2 鍵盤鍵盤在單片機系統中是一個重要部件。為了輸入數據,查詢和控制系統的工作狀態,都要用到鍵盤,鍵盤是人工干預計算機的主要手段。在單片機控制系統中廣泛使用的是機械鍵盤。按鍵的動作不是立刻就完成的,抖動是表現
23、在輸入電壓信號上。在理想的狀態下按鍵引腳電平的變化如下圖(a)曲線,但是在實際中按鍵在按下或放開的瞬間,由于機械觸點存在彈跳現象,結果實際按鍵電壓波形如圖(b)曲線,即機械按鍵在按下和釋放瞬間存在抖動現象,抖動時間的長短與按鍵的機械特性有關,一般在5-15ms之間而按鍵穩定閉合期長短與操作者按鍵的時間有關,從數百毫秒到數秒之間,為了保證按鍵由“按下”到“松手”之間僅視為一次輸入或數據次輸入,(對于具有重復輸入功能的按鍵),必須在硬件或軟件上增加去抖動措施,以避免一次按鍵輸入一串數碼。圖2-2(a) 按鍵按下的輸出電平 在消除抖動的不良后果有倆種方法:一種是硬件實現,一種是軟件實現。(1)硬件消
24、抖是采用硬件電路的方法對鍵盤按下及釋放抖動進行消抖,經過消抖電路使按鍵電路的輸出電平信號只有兩種穩定。狀態,可以利用阻容濾波消抖電路,單穩態電路或觸發器消除抖動現象。(2)軟件上實現,可以用軟件延遲的方式來解決抖動的問題。在我設計的基于單片機的多路數據采集系統中,將采用軟件延遲的方法來解決抖動問題,這樣可以降低硬件成本。圖2-2(b)鍵盤硬件電路連接2.3單片機與pc機間的互連電路2.3.1串口通訊rs-232-c介紹目前串行通信接口標準都是在rs-232標準的基礎上經過改進而形成的。rs-323c標準是美國eia(電子工業聯合會)與bell等公司一起開發的1969年公布的通信協議。它適合于數
25、據傳輸速率在020000b/s范圍內的通信。這個標準對串行通信接口如信號線功能、電器特性都作了明確規定。由于通行設備廠商都生產與rs-232c制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信接口中廣泛采用。 1.電氣特性eia-rs-232c對電器特性、邏輯電平和各種信號線功能都作了規定。在txd和rxd上:邏輯1(mark)=-3v-15v邏輯0(space)=+315v在rts、cts、dsr、dtr和dcd等控制線上:信號有效(接通,on狀態,正電壓)+3v+15v信號無效(斷開,off狀態,負電壓)=-3v-15v以上規定說明了rs-323c標準對邏輯電平的定義。對于數據(信
26、息碼):邏輯“1”(傳號)的電平低于-3v,邏輯“0”(空號)的電平告語+3v;對于控制信號;接通狀態(on)即信號有效的電平高于+3v,斷開狀態(off)即信號無效的電平低于-3v,也就是當傳輸電平的絕對值大于3v時,電路可以有效地檢查出來,介于-3+3v之間的電壓無意義,低于-15v或高于+15v的電壓也認為無意義,因此,實際工作時,應保證電平在(315)v之間。eia-rs-232c與ttl轉換:eia-rs-232c是用正負電壓來表示邏輯狀態,與ttl以高低電平表示邏輯狀態的規定不同。因此,為了能夠同計算機接口或終端的ttl器件連接,必須在eia-rs-232c與ttl電路之間進行電平
27、和邏輯關系的變換。實現這種變換的方法可用分立元件,也可用集成電路芯片。2、db-9連接器db-9連接器作為提供多功能i/o卡或主板上com1和com2兩個串行接口的連接器。它只提供異步通信的9個信號。db-9型連接器的引腳分配與db-25型引腳信號完全不同。因此,若圖2-3-1(a)與配接db-25型連接器的dce設備連接,必須使用專門的電纜線。電纜長度:在通信速率低于20kb/s時,rs-232c所直接連接的最大物理距離為15m(50英尺)。最大直接傳輸距離說明:rs-232c標準規定,若不使用modem,在碼元畸變小于4%的情況下,dte和dce之間最大傳輸距離為15m(50英尺)。可見這
28、個最大的距離是在碼元畸變小于4%的前提下給出的。為了保證碼元畸變小于4%的要求,接口標準在電氣特性中規定,驅動器的負載電容應小于2500pf 最簡單連接圖2-3-1(b)2.3.2單片機與max232的連接max232是一種雙組驅動器/接收器max232芯片可完成ttleia雙向電平轉換,片內含有一個電容性電壓發生器以便在單+5伏電壓供電時,提供eia/tia-232-e電平。每個接收器將eia/tia-232-e電平轉換為5伏ttl/cmos電平。這些接收器具有1.3伏的典型門限值及0.5伏的典型遲滯,而且可以接收30伏輸入。每個驅動器將ttl/cmos輸入電平轉換為eia/tia-232-
29、e電平。所有的驅動器,接收器及電壓發生器都可以在德州儀器公司的元件庫中得到標準單元。max232的工作溫度范圍為0度至70度。圖2-3-2為max232芯片的工作電路圖。在實際應用中,器件對電源的噪聲很敏感。四個電容取同樣數值的電解電容1.0u/16v,用以提高抗干擾能力。在本設計中,可從max232芯片中兩路發送接收器中選用一路作為接口,應注意發送與接收的對應。圖2-3-2 max232的工作電路圖2.4單片機復位電路設計圖(a)上電復位電路圖(b)帶手動復位的電路圖2-4單片機復位電路單片機的復位只要保證rst端為高電平有效時間大于24個振蕩周期,單片機就能可靠復位。分析: (a) 二極管
30、d1的作用在于停電后,給電容 提供迅速的放電通道, 保證再次上電時rst為高電平,使單片機可靠復位,正常工作時,二極管d1反偏,對電路沒有影響,而斷電后,u逐漸下降,當u=0時,相當于u端與地等電位,這時電容c通過d1迅速放電,放電通路為c正極-電源u(與地等電位)-二極管d1正極-二極管負極-c負極,保證再上電時, rst為高電平(b)增加了手動復位按鈕,避免死機時通過關機復位,復位按鈕按下時,電容c通過r2放電,當電容c放電結束后,rst端的電位由r2, r1分壓比決定,由于r2 r1,因此rst為高電平,單片機進入復位狀態,松手后,電容c充電, rst端電位下降,單片機脫離復位狀態, r
31、2的作用在于限制按鈕按 下瞬間電容c的放電電流,避免產生火花,以保護按鈕的處點。2.5數據顯示部分2.5.1 lcd介紹lcd可以分為兩種類型,一種是文字式lcd,一種是繪圖模式lcd。市面上有各個不同品牌的文字顯示型lcd,但決大多都是采用日立公司編號為hd44780a的驅動器。在本設計中采用sdec的2a16drg。 lcd的內部內存(1)固定字型rom,稱為cg romcg rom內存儲192個5*7點陣的字型,這些字型均以固定。(2)數據顯示ram,稱為dd ramdd ram中用來存儲寫至lcd內部的字符,dd ram的地址分布為00h到67h,分別代表的各列位置,例如:要將“a”寫
32、入第2行的第1個位置,就先設置dd ram地址為40h,而后寫入41h至即可。(3)用戶自定義字型ram,稱為cg ram此區域只有64字節,可將用戶自行設計的字型寫入lcd中,一個字的大小為5*7點陣,共可以存儲8個字型,其顯示碼為00 h到07 h。 lcd的控制方式通過來控制lcd模塊,方式十分簡單,lcd其內部可以看成有兩組寄存器,一個為指令寄存器,一個為數據寄存器,由rs引腳來控制,所有對指令寄存器或數據寄存器的存取均需檢查lcd內部的忙碌標志,此標志用來告知lcd內部正在工作,并不允許接收任何的控制命令。而此位的檢查可以令rs=0時,讀取7位來加以判斷,當此位為0時,才可以寫入指令
33、寄存器或數據寄存器。2.5.2 lcd接口設計lcd接口設計可以分為8位及4位控制方式,傳統的控制方式是用8位d0d7數據線來傳送控制命令及數據,而使用4位控制方式是使用d4d7數據線來傳送控制命令及數據,如此一來單芯片的io控制線便可以減少了,省下來的控制線可以做其他硬件的設計。使用4位數據線做控制時需分兩次來傳送,先送出高4位數據,再送出低4位數據。本系統中有關lcd的控制是使用這種方式來設計,以最少的控制線來驅動lcd接口。圖2-5-2為4位控制電路,以8051 p0的4條與p2的2條輸出控制線來實現控制,p0還接有提升電阻以增加其驅動能力,控制信號說明如下:(1)rw lcd讀寫控制線
34、直接接地,由于rw=0時,lcd執行寫入的動作,rw=i時則執行讀取的動作。因此簡化設計后,則無法對lcd實現讀取的動作。所有控制數據的寫入需加入適當的延遲,以配合lcd內部控制信號的執行。(2)rs寄存器選擇控制線由p2.0控制,當rs=0時,可以寫入指令寄存器,如果rs=1則寫入數據寄存器(3)en起用控制線由p2.1控制,高電平動作。高電平時lcd動作起用有效。(4)vo亮度調整控制引腳直接接地使字符顯示最亮。(5)d0d7 雙向數據總線lcd數據讀寫方式以4位方式進行寫入,只用到d7d4,分別由p0.7p0.4控制。圖2-5-2 8051與lcd的接口電路第三章 軟件設計3.1中斷的介
35、紹及響應的過程cpu暫時中止其正在執行的程序,轉去執行請求中斷的外圍設備或驅動事件的服務程序,等處理完畢后再返回執行原來中止的程序叫做中斷cpu工作速度快,外圍設備工作速度慢,形成cpu等待,效率降低。運用中斷的方式后,不必花大量的時間去等待和查詢外圍設備的工作狀態。在實時控制系統中,現場各種參數和狀態的變化是隨機變化的,要求cpu能做出快速響應、及時處理。有了中斷系統,這些參數和狀態的變化可以作為中斷信號,使cpu中斷。發生中斷后, 圖3-1-2中斷響應過程 可以在相應的中斷服務程序中及時處理這些參數和狀態的變化。在本設計中,數據采集程序、鍵盤程序、串行數據傳輸都采用了中斷的方式編寫,提高了
36、其工作效率。3.2采用adc0809中斷方式的數據采集子程序8個通道轉換完否?送 通 道 數 到 r2送0通道地址給dptr置數據緩沖區首址置中斷發生標志啟動a/d轉換返 回允許中斷中 斷 服 務 程 序讀 端 口 數 據存 數 據數 據 緩 沖 區 地 址 加1返 回修 改 模 擬 量 通 道 地 址清 中 斷 標 志a)主程序流程圖 (b)中斷服務程序流程圖圖3-2數據采集程序流程圖samp: mov r0,#30h ;數據緩沖區首址 mov #8 ;8通道計數 mov dptr,#7ff8h ;指向通道0start:setb f0 ;置中斷發生標志movx dptr,a ;啟動a/d(p
37、2.7=0,wr=0)setb it0 ;置外部中斷0為邊沿觸發setb ex0 ;允許外部中斷0setb ea ;開中斷 loop: jbf0, loop ;判發生中斷標志1?djnz r2,start ;8個通道轉換結束retintdata:movx a,dptr;讀數據(p2.7=0,rd=0)硬件撤;銷中斷mov r0,a ;存數據inc r0inc dptr ;指向下一通道clr f0 ;清中斷標志reti 3.3 標度變換 在計算機控制系統中,生產中的各個參數都有著不同的數值和量綱,所有這些都經過調理電路轉換成a/d 轉換器所能接收的05伏同一電壓信號,又由a/d轉換成00ffh(
38、8位)的數字量,為進一步顯示記錄等,必須把這些數字量轉換成不同單位,以便操作人員對其進行檢測管理,這就是所謂的標度變換。線性參數標度變換:指一次儀表測量值與轉換結果具有線性關系或者一次儀表是線性刻度的。其標度變換公式為:a0一次測量儀表的下限am一次測量儀表的上限ax實際測量值 n0儀表下限對應的數字量nm儀表上限對應的數字量nx測量值對應的數字量3.4鍵盤處理程序在本設計中采用軟件消除抖動的方法來解決干擾的問題根據按鍵的功能一般分為兩種情況來處理:(a)對于每按鍵一次視為一次輸入的設定來說,在穩定閉合期內,不斷檢測按鍵是否已釋放,當發現按鍵被釋放后,讀出對應按鍵的編碼(或稱為鍵號)(b)對于
39、重要輸入功能的鍵設定來說,每隔一定時間,如500毫秒(即按下某鍵不動,一秒內重復輸入該鍵兩次)對按鍵進行檢測,發現按鍵依然被按下時,就輸入該鍵,直到按鍵被釋放。 鍵盤中斷程序:int1:clrex1push pswpush accmova,p1anla,#0e7hjnb psw.0,exitmov r0,#0hmov r5,#1lcall delaymov a,p1mov r5,#50jbp1.0,ex1jb p1.1,ex2jb p1.2,ex3ex1:incr0mova,r0adda,18hmovb,#8divabmovr6,bmov18h,r6lcall delayjnbp1.0,exi
40、tjmpex1ex2:clrcincr0mova,18hsubba,r0jncexitdivabmovr6,bmov18h,r6延 遲 消 抖完成通道號減1功能,并存入18h完成通道號加1功能,并存入18h恢 復 現 場開 中 斷結 束轉各功能子程序段初 始 化 鍵 盤完成鎖鍵功能是雙鍵否?ynyn中斷服務子程序關 中 斷保 護 現 場是否有鍵按下?lcalldelayjnbp1.1, exitjmpex2ex3:jb p1.2,ex3cplp1.3exit:clrie1mov p1,#18hpop accpop pswsetbex1reti圖3-4鍵盤中斷程序流程圖proc int13.5雙
41、字節二進制整數轉換為壓縮bcd碼整數子程序n*8送入位計數器r3n字節二進制數左移一位, 高位送入cy2*(結果單元)+cy 送入結果單元(十進制加)返 回r3減1為0?開 始0送入結果單0送入結果單元開 始元0送入結果單元開 始nibtd:mova, r0movr5, amovr6, amova, r7inca mova, r3 clranbd0: movr1, a incr1 djnzr3, nbd0 mova, r7 movb, #08h mulab movr3, anbd4: mova, r5movr0, amova, r7movr2, aclrcnbd1: mova, r0 rlca
42、 圖3.5二進制整數轉換為壓縮bcd碼 movr0, a整數子程序的程序流程圖 incr0 djnzr2, nbd1 mova, r6movr1, amova, r7movr2, a incr2nbd3:mova, r1 addca, r1 da a movr1, a incr1 djnzr2, nbd3djnzr3, nbd4ret3.6 三字節壓縮bcd碼轉換成ascii碼子程序movr2,#n ;字節數存r2 movr0,#50h ;ascii碼首地址movr2,#60h ;bcd碼首地址bcdasc:mova,r1 ;取bcd碼movr3,a ;bcd碼暫存r3anla,#0f0h ;
43、屏蔽低四位保留高四位swapa;a中的高低四位交換adda,#30h ;加30h得高位ascii碼送所要顯示的字符數lcd初始化并做顯示測試調用lcd第一行的顯示子程序設置第二行所要顯示的字符首址設置第一行所要顯示的字符及位置開 始設置所要顯示的位置調用lcd第二行的顯示子程序字符地址加1顯示位置加1字符顯示完否?返回mov a, r3 ;保存ascii碼inc r0mov a, r3 ;再取bcd碼anl a, #0fh;屏蔽高四位保留低四位add a, #30h ;加30h得低位ascii碼movr0,ainc r1inc r0djnzr2, bcdascret3.7 lcd顯示程序lcd
44、:rs equp2.0;lcd rs 引腳定義en equp2.1;lcd en 引腳定義begin:clren;lcd被禁用callset_lcd;lcd初始化并做顯示測試mov a,18h;設置所要顯示的字符mov b,#11;設置所要顯示lcd的位置calllcdp1;在lcd第一行顯;示字符movr4,#6movr1,#39hmovr2,#8 圖3-7 lcd顯示流程圖xu: incr1mova,r1;設置所要顯示的字符incr2movb,r2;設置所要顯示lcd的位置calllcdp2;在lcd第二行顯示字符djnzr4,xuset_lcd:;lcd初始化并做顯示測試clren;lc
45、d被禁用callinit_lcd;lcd初始化movr5,#10;延遲一下calldelaymovdptr,#lmess1;指針指到顯示消息1mova, #1;顯示在第一行calllcd_print;顯示執行消息1于lcd第一行movdptr,#lmess2;指針指到顯示消息2mova,#2;顯示在第二行calllcd_print;顯示執行消息2于lcd第二行 ret init_lcd1:;4位i/o初始化lcdmova,#28hcallwcom;雙列顯示,字型使用5*7點陣mova,#0ehcallwcom;光標出現不閃爍mova,#06h callwcom;每次向右移一位,顯示屏不移動mo
46、va,#01hcallwcom;清除lcd顯示屏retclr_line1:;清除lcd第一行字符mova,#80h;設置第一行地址callwcommovr0,#24;設置計數值cl: mov# ;載入空格符至lcdcallwdata;輸出字符至lcddjnar0, cl;計數結束ret;a=line 1 or 2;在lcd的第一行或第二行印出字符;dptr=message pointerlcd_print:cjnea,#1,line2line1:mova, 80h;設置lcd的第一行地址callwcomcallclr_linemova, #80hcallwcomjmpfillline2:mov
47、a, #0c0h;設置lcd的第二行地址callwcomcallclr_linemova, #0c0hcallwcomfill:clramovca, a+dptrcjnea, #0, l1retl1:callwdataincdptrjmpfillretclr_line:;清除lcd該行字符movr0, #24;設置計數值c1:mova, # ;載入空格符至lcdcallwdata;輸出字符至lcddjnzr0, c1;計數結束retde: movr7, #5;短暫延時djnzr7, $reten1:setben;短脈沖calldeclrencallderetinit_lcd:;lcd 4位接口
48、指令重置movp0, #30h;rs=0,r/w=0,d7d4=0011callen1movp0, #30hcallen1movp0, #30hcallen1movp0, #20h;啟動4位接口指令callen1;rs=0,r/w=0,d7d4=0010callinit_lcd1;lcd指令設置初始化retwcom:;write hi 4 bitmovp0, a;先寫入高4位命令clrrs;rs=0寫入命令callen1;產生高電平啟用脈沖rlca;向左移4位 rlcarlcarlca;write lo 4 bitmovp0, a;寫入低4位命令clrrs;rs=0寫入命令callen1;產生
49、高電平啟用脈沖retwdata:;write hi 4 bitmovp0, a;先寫入高4位命令setbrs;rs=1寫入數據callen1;產生高電平啟用脈沖rlca;向左移4位rlcarlcarlca;write lo 4 bitmovp0, a;寫入低4位命令setbrs ;rs=1寫入數據callen1;產生高電平啟用脈沖ret;-;delay r5*10ms;延遲子程序delay:movr6, #25;總延遲時間r5*10msd1: movr7, #99djnzr7, $djnzr6, d1djnzr5, delayret;-lmess1: db “channel:”lmess1:
50、db “voltage: mv”;-;在lcd第一行特定位置顯示字符;a=asc data所要顯示的字符;b=line x pos所要顯示的位置015lcdp1:;將a寄存器放入堆棧pushaccmova, badda, #80h;設置lcd的第一行地址callwcompopacc;由堆棧取出a寄存器的值callwdata;寫入所要顯示的字符ret;-;在lcd第二行特定位置顯示字符;a=asc data所要顯示的字符;b=line x pos所要顯示的位置015lcdp2:;將a寄存器放入堆棧pushaccmova, badda, #0c0h;設置lcd的第二行地址;callwcompopa
51、cc;由堆棧取出a寄存器的值callwdata;寫入所要顯示的字符retend3.8串行通信子程序圖3-8-1上位機人機交互界面3.8.1 上位機人機交互界面圖3-8-1為人機交互界面的外觀圖,用可視化編程語言vb編寫的可視化界面,簡潔明了,操作方便,串行通信采用了事件驅動行方式,使用micorsoft公司的控件micorsoft communication 實現串行通信。3.8.2 上位機通信及顯示程序(1)初始化代碼private sub form_load()mscomm.commport=2設置串口2mscomm.settings=2400,n,8,1波特率9600,無校驗,8位數據,一位停止位mscomm.inputlen=
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 室內消防箱管理制度
- 家委會經費管理制度
- 庫房紅黃線管理制度
- 強化對餐廳管理制度
- 影像科衛生管理制度
- 微信工作群管理制度
- 德智體美勞管理制度
- 快餐店前廳管理制度
- 性傳播疾病管理制度
- 患者床頭卡管理制度
- 老年友善醫院護理培訓
- 核電行業核電站安全運行與應急預案方案
- 培訓學員管理制度范文(2篇)
- 軟件定義網絡SDN
- 《有效團隊管理培訓》課件
- 2024-2025學年新教材高中化學 第四章 物質結構 元素周期律 4.1.1 原子結構與元素周期表教案 新人教版必修第一冊
- 2023-2024學年廣東省深圳市福田區七年級(下)期末英語試卷
- 2024年陜西省專業技術人員繼續教育學習平臺黨史黨紀專題學習考試答案
- 8.3 法治社會 課件高中政治統編版必修三政治與法治
- 醫療器械經營質量體系文件-質量管理制度
- DB11T 811-2011 場地土壤環境風險評價篩選值
評論
0/150
提交評論