基于嵌入式的溫度傳感器的設(shè)計_第1頁
基于嵌入式的溫度傳感器的設(shè)計_第2頁
基于嵌入式的溫度傳感器的設(shè)計_第3頁
基于嵌入式的溫度傳感器的設(shè)計_第4頁
基于嵌入式的溫度傳感器的設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄第一章 系統(tǒng)概要11.1 系統(tǒng)背景11.2 系統(tǒng)功能框圖1第二章 系統(tǒng)硬件設(shè)計22.1 系統(tǒng)原理圖22.2 單片機(MCU)模塊22.2.1 MC908GP32單片機性能概述22.2.2 內(nèi)部結(jié)構(gòu)簡圖與引腳功能32.2.3 GP32最小系統(tǒng)52.3 傳感器模塊62.4 信號放大模塊72.5 A/D轉(zhuǎn)換模塊72.5.1 進行A/D轉(zhuǎn)換的基本問題72.5.2 A/D轉(zhuǎn)換模塊的基本編程方法82.5.3 A/D芯片TCL2543概述82.6 串行通信模塊112.6.1 串行通信常用概念112.6.2 RS-232C總線標(biāo)準(zhǔn)12第三章 系統(tǒng)軟件設(shè)計133.1 MCU方(C)程序133.1.1 A/D

2、轉(zhuǎn)換子程序143.1.2 串行通信子程序173.2 PC方(VB)程序193.3 PC方界面23第四章 系統(tǒng)測試24第五章 總結(jié)展望245.1 總結(jié)245.2 展望25參考文獻25第一章 系統(tǒng)概要1.1 系統(tǒng)背景 溫度是日常生活、工業(yè)、醫(yī)學(xué)、環(huán)境保護、化工等領(lǐng)域遇到的一個物理量。溫度測量的基本方法是使用溫度計直接讀取。最常見的測量溫度的工具是各種各樣的溫度計,它們常常以刻讀的形式表示溫度的高低,人們必須通過讀取刻度的多少來測量溫度。由于單片機在檢測和控制系統(tǒng)中得到廣泛的應(yīng)用,利用單片機和溫度傳感器構(gòu)成的電子式智能溫度計就可以直接測量溫度,得到溫度的數(shù)字值并顯示出來,既簡單方便,又直觀準(zhǔn)確。 本

3、次課程設(shè)計的目的是以MC908GP32單片機為核心設(shè)計出一個路溫度測量系統(tǒng)。設(shè)計將溫度傳感器采樣得到的模擬信號轉(zhuǎn)換成數(shù)字信號,通過串口在PC的界面顯示出來。本次課程設(shè)計用溫度傳感器將被測溫度轉(zhuǎn)換為電量,經(jīng)過放大濾波電路處理后,由模數(shù)轉(zhuǎn)換器將模擬量轉(zhuǎn)換為數(shù)字量,再與單片機相連,通過可編程鍵盤顯示接口芯片實現(xiàn)溫度限值的設(shè)定。被測量經(jīng)過溫度傳感器轉(zhuǎn)換為電量,再放大后送給A/D轉(zhuǎn)換器。電量經(jīng)過A/D轉(zhuǎn)換為二進制數(shù)值,單片機根據(jù)設(shè)計目的完成相應(yīng)的軟件處理。處理完畢后,送鍵盤顯示處理芯片,然后再由數(shù)碼管顯示。A/D轉(zhuǎn)換模塊即模/數(shù)轉(zhuǎn)換模塊,功能是將電壓信號轉(zhuǎn)換為對應(yīng)的數(shù)字信號。實際應(yīng)用中,這個電壓信號可能

4、由溫度,濕度,壓力等實際物理量經(jīng)過傳感器和相應(yīng)的交換電路轉(zhuǎn)換而來。經(jīng)過A/D轉(zhuǎn)換后,MCU就可以處理這些物理量。這是一種低成本的利用單片機I/O口實現(xiàn)的溫度檢測電路,該電路非常簡單,易于實現(xiàn),并且適用于幾乎所有類型的單片機。1.2 系統(tǒng)功能框圖 數(shù)據(jù)采集與傳輸系統(tǒng)一般由信號調(diào)理電路,多路開關(guān),采樣保持電路,A/D,單片機,電平轉(zhuǎn)換接口,接收端(單片機、PC或其它設(shè)備)組成。 第二章 系統(tǒng)硬件設(shè)計2.1 系統(tǒng)原理圖 整個系統(tǒng)軟件設(shè)計分為兩個部分,作為主控的PC端的軟件設(shè)計及作為數(shù)據(jù)采集器的單片機終端節(jié)點的軟件設(shè)計。系統(tǒng)采用模塊化編程,將各部分功能分別實現(xiàn),主要的功能子程序有:數(shù)據(jù)采集、標(biāo)度變換、

5、數(shù)制轉(zhuǎn)換、數(shù)值顯示、發(fā)送、接收和部分中斷子程序。 圖2.1 系統(tǒng)原理圖2.2 單片機(MCU)模塊2.2.1 MC908GP32單片機性能概述 MC908GP系列單片機是HC80系列單片機大家族中具有通用性的一族,MC908GP32是MC908GP系列中的一個型號,MC908GP32單片機具有3種封裝形式,分別為40腳、42腳、44腳。MC908GP32單片機的主要特點如下:(1)512B片內(nèi)RAM;32KB片內(nèi)Flash程序存儲器,具有在線編程能力和保密功能。(2)時鐘發(fā)生器模塊,具有PLL電路,可產(chǎn)生各種工作頻率;內(nèi)部總線頻率最高可達8MHz。(3)增強的HC50 CPU結(jié)構(gòu),16種尋址方

6、式(比HC50多8種),16位變址寄存器和堆棧指針,存儲器至存儲器數(shù)據(jù)傳送,快速8*8指令,擴展的循環(huán)控制功能,BCD功能。(4)33根通用I/O腳,包括26根多功能I/O腳和5或7根專用I/O腳;PTA、PTC和PTD的輸入口有可選擇的上拉電阻;PTC0PTC4有25mA吸流和放流能力,其他口有15mA吸流和放流能力(總體驅(qū)動電流應(yīng)小于150mA);所有口有最高5mA輸入電流保護功能。(5) 增強型串行通信口SCI;串行外圍接口SPI;兩個16位雙通道定時器接口模 塊(TIM1和TIM2),每個通道可選擇為輸入捕捉、輸出比較和PWM,其時鐘可分別選為內(nèi)部時鐘的1、2、4、8、16、32和64

7、的分頻值;帶時鐘預(yù)分頻的定時基模塊有8種周期性實時中斷(1、4、16、256、512、1024、2048和4096Hz),可在STOP方式時使用外部32KHz晶振周期性喚醒 CPU;8位鍵盤喚醒口。(6)系統(tǒng)保護特性:計算機工作正常(COP)復(fù)位;低電壓檢測復(fù)位,可選為3V或5V操作;非法指令碼檢測復(fù)位;非法地址檢測復(fù)位。(7)具有PDIP40、SDIP42和QFP44封裝形式。(8)優(yōu)化用于控制應(yīng)用;優(yōu)化支持C語言。2.2.2 內(nèi)部結(jié)構(gòu)簡圖與引腳功能1. 內(nèi)部結(jié)構(gòu)簡圖(44引腳) 單片機(以下簡稱GP32單片機)的三種封裝形式只是引腳數(shù)量和形式有所區(qū)別,其它方面是一致的。圖中I/O口是按 4

8、4引腳的GP32給出的,對于42引腳的GP32單片機則沒有PTC5、PTC6兩個引腳,對于40引腳的GP32單片機則沒有PTC5、PTC6及 PTD6/T2CH0、PTD7/T2CH1四個引腳。從內(nèi)部結(jié)構(gòu)簡圖可以看出,GP32內(nèi)部有以下主要部分:CPU08、存儲器、定時器接口模塊、定時基模塊、看門狗模塊、通用I/O接口、串行通信接口 SCI、串行外設(shè)接口SPI、斷點模塊、A/D轉(zhuǎn)換模塊、鍵盤中斷模塊、時鐘發(fā)生模塊及鎖相環(huán)電路、低電壓禁止模塊、復(fù)位與中斷模塊、監(jiān)控模塊MON和系統(tǒng)設(shè)置模塊。2. GP32單片機的引腳功能40引腳的MC908GP32單片機的引腳圖,引腳功能分類簡介如下:(1) 電源

9、類引腳VDD、VSS(20腳、19腳):電源供給端。VDDAD /VREFH、VSSAD /VREFL(31腳、32腳):內(nèi)部A/D轉(zhuǎn)換器的電源供給及參考電壓輸入端。VDDA、VSSA(1腳、2腳):時鐘發(fā)生器模塊(CGM)的電源供給端。(2) 控制類引腳(6腳):外部低有效復(fù)位輸入或輸出腳,有內(nèi)部上拉電阻。(14腳):外部中斷輸入腳,有內(nèi)部上拉電阻。(3) I/O類引腳PTA7/KBD7PTA0/KBD0(4033腳):8位通用雙向I/O口,每個可編程為鍵盤輸入腳。PTB7/AD7PTB0/AD0(3023腳):8位通用雙向I/O口,也可作為8路8位A/D轉(zhuǎn)換輸入腳。PTC4PTC0(117

10、腳):5位通用雙向I/O口。PTD5/T1CH1PTD0/ (22、21、1815腳):6種特殊功能、雙向I/O口,其中T1CH1、T1CH0用于定時器模塊(TIM1)。SPSCK、MOSI、MISO、 用于串行外圍接口(SPI)。PTE0/TxD、PTE1/RxD(12腳、13腳):2位雙向I/O口或串行通訊口。(4) 其它CGMXFC(3腳):CGM的外部濾波電容連接腳。OSC1、OSC2(5腳4腳):片內(nèi)振蕩器引腳。2.2.3 GP32最小系統(tǒng) 最小系統(tǒng)圖是能夠保證單片機正常工作的最小模塊,它使用了最少的器件,芯片,并組合了溫度測量的一些必備組件,如蜂鳴器,電阻,二極管,電容等。各部件相

11、互配合,共同完成了溫度測量系統(tǒng)全部工作。 GP32最小系統(tǒng)1.電源供給與濾波 GP32芯片的20、19腳(VDD、VSS)為芯片的電源輸入端,1、2腳(VDDA、VSSA)為內(nèi)部PLL模塊的電源供給。接在電源與地之間的0.1µF電容為濾波電容。PLL電路目的在于由頻率小的外部晶振產(chǎn)生較大頻率的內(nèi)部總線時鐘,提高芯片的抗干擾性。由于這部分內(nèi)容涉及的編程內(nèi)容很少,但原理較難理解,所以放入第14章介紹。這里只要知道GP32內(nèi)有PLL電路就可以了,而且GP32內(nèi)的PLL電路模塊需要外接電源。在MCU的第3腳,接有內(nèi)部PLL模塊的外部濾波電路。濾波電路的作用主要是增強電路工作穩(wěn)定性。2.晶振

12、電路 接MCU第4、5腳(OSC2、OSC1)之間的電路為晶振電路,這里選用的晶振頻率為f=32.768KHz。通過內(nèi)部PLL電路模塊,可獲得小于等于8MHz的內(nèi)部總線頻率。電路及其元件參數(shù)是由GP32參考手冊確定的。實際開發(fā)中,嵌入式應(yīng)用工程師往往根據(jù)參考手冊提供的電路及參數(shù),通過自己的實踐,構(gòu)筑MCU的外圍支撐電路,而不深究其工作原理。3.復(fù)位電路接在MCU第6腳( )的電路為芯片硬件復(fù)位電路。正常工作時該腳通過10K電阻接到電源正極(這里設(shè)為5V電源供電),所以應(yīng)為高電平。若按下復(fù)位按鈕RST,則第6腳通過51Ω接地,為低電平,芯片復(fù)位。2.3 傳感器模塊 溫度傳感器采用的是

13、NS公司生產(chǎn)的LM35,它具有很高的工作精度和較寬的線性工作范圍,該器件輸出電壓與攝氏溫度線性成比例。LM35與用開爾文標(biāo)準(zhǔn)的線性溫度傳感器相比更有優(yōu)越之處,LM35無需外部校準(zhǔn)或微調(diào),可以提供1/4的常用的室溫精度。 工作電壓:直流430V; 工作電流:小于133A 輸出電壓:+6V-1.0V 輸出阻抗:1mA負載時0.1; 精度:0.5精度(在+25時); 漏泄電流:小于60A; 比例因數(shù):線性+10.0mV/; 非線性值:1/4; 校準(zhǔn)方式:直接用攝氏溫度校準(zhǔn); 使用溫度范圍:-55+150額定范圍。 基于LM35開發(fā)的溫控系統(tǒng),工作穩(wěn)定可靠,具有體積小、靈敏度高、響應(yīng)時間短、抗干擾能力

14、強等特點。LM35的輸出電壓與攝氏溫度的線形關(guān)系可用下面公式表示,0時輸出為0 V,每升高1,輸出電壓增加10 mV。其電源供應(yīng)模式有單電源與正負雙電源兩種。正負雙電源的供電模式可提供負溫度的測量,單電源模式在25下電流約為50 mA,非常省電。2.4 信號放大模塊 由于溫度傳感器LM35輸出的電壓范圍為00.99 V,雖然該電壓范圍在AD轉(zhuǎn)換器的輸入允許電壓范圍內(nèi),但該電壓信號較弱,如果不進行放大直接進行AD轉(zhuǎn)換則會導(dǎo)致轉(zhuǎn)換成的數(shù)字量太小、精度低。系統(tǒng)中選用通用型放大器A741對LM35輸出的電壓信號進行幅度放大,還可對其進行阻抗匹配、波形變換、噪聲抑制等處理。系統(tǒng)采取同相輸入,電壓放大倍數(shù)

15、為5倍,電路圖如圖所示: 信號放大電路圖2.5 A/D轉(zhuǎn)換模塊2.5.1 進行A/D轉(zhuǎn)換的基本問題A/D轉(zhuǎn)換模塊(Analog To Digital Convert Module),即模/數(shù)轉(zhuǎn)換模塊,是將電壓信號轉(zhuǎn)換為對應(yīng)的數(shù)字信號。這個電壓量是由壓力傳感器把壓力轉(zhuǎn)換過來,傳到MCU處理。(1)采樣精度:是指數(shù)字量變化一個最小量時模擬信號的變化量,即通常所說的采樣位數(shù)。 (2)采樣速率:是指完成一次A/D采樣所要花費的時間。 (3)濾波:為了使采樣的數(shù)據(jù)更準(zhǔn)確,對采樣的數(shù)據(jù)進行篩選去掉誤差較大的毛刺。通常采用中值濾波和均值濾波來提高采樣精度。中值濾波是取3次采樣的中間值,均值濾波是取多次采樣的

16、算術(shù)平均值。 (4)物理量回歸:把A/D采樣值與實際物理量對應(yīng)起來。2.5.2 A/D轉(zhuǎn)換模塊的基本編程方法(1)A/D轉(zhuǎn)換初始化:對ADCLK寫入控制字節(jié),決定時鐘輸入源是內(nèi)部總線還是外部晶振,決定分頻系數(shù)等。 (2)啟動A/D轉(zhuǎn)換:對ADSCR寫入控制字節(jié),選取要轉(zhuǎn)換的通道、決定轉(zhuǎn)換結(jié)束數(shù)據(jù)獲取的方式、設(shè)置是連續(xù)轉(zhuǎn)換還是一次轉(zhuǎn)換等。 (3)獲A/D轉(zhuǎn)換結(jié)果:若是中斷方式,在A/D中斷程序中取得,若是查詢方式,通過ADSCR的第7位(COCO位)取得,當(dāng)COCO=1時可從ADR中取數(shù)。2.5.3 A/D芯片TCL2543概述一、引腳:TLC2543為20腳DIP封裝,引腳圖如下圖所示。 2.

17、5.3.1 TLC2543引腳圖 TLC2543具有4線制串行接口,分別為片選端(CS),串行時鐘輸入端(I/O CLOCK),串行數(shù)據(jù)輸入端(DATA IN)和串行數(shù)據(jù)輸出端(DATA OUT)。它可以直接與SPI器件進行連接,不需要其他外部邏輯。同時,它還在高達4MHz的串行速率下與主機進行通信。 TLC2543除了具有高速的轉(zhuǎn)換速度外,片內(nèi)還集成了14路多路開關(guān)。其中n路為外部模擬量輸入,3路為片內(nèi)自測電壓輸入。在轉(zhuǎn)換結(jié)束后,EOC引腳變?yōu)楦唠娖?,轉(zhuǎn)換過程中由片內(nèi)時鐘系統(tǒng)提供時鐘,無需外部時鐘。在AD轉(zhuǎn)換器空閑期間,可以通過編程方式進入斷電模式,此時器件耗電只有25pA。AD芯片TLC2

18、543是一種12位開關(guān)電容逐次逼近式模數(shù)轉(zhuǎn)換器,帶有SPI(Serial Peripheral Interface)接口。它消除了以往許多AD芯片并行輸出、連線復(fù)雜的缺點,并在AD轉(zhuǎn)換結(jié)果串行輸出的同時,可以串行輸入下次AD轉(zhuǎn)換位的控制字。TLC2543的管腳如圖所示。它有三個輸入控制端:片選()、 IO時鐘(IOclock)以及數(shù)據(jù)輸入端(Data Input),同時還可以通過一個串行的三態(tài)輸出端與主處理器及其外圍串行口進行通訊,以輸出轉(zhuǎn)換結(jié)果。除了高速的轉(zhuǎn)換功能和通用的控制能力外, TLC2543的片內(nèi)還具有14通道多路器,可以選擇11個模擬輸入通道(AIN0AIN10)或3個內(nèi)部自測電壓

19、(selftest)中的一個。轉(zhuǎn)換結(jié)束時,EOC輸出端變高,指示轉(zhuǎn)換完成。二、控制字:TLC2543的工作過程如下:首先在8、12或16時鐘周期里向片內(nèi)控制寄存器寫入8位的控制字,控制字中的2位決定時鐘長度,在最后一個時鐘周期的下降沿啟動AD轉(zhuǎn)換過程,經(jīng)過一段轉(zhuǎn)換時間,在隨后的8、12或16個時鐘周期里,從DATA OUT腳讀出數(shù)據(jù)??刂谱值亩x見下表: 控制字的前四位(D7-D4)代表11個模擬通道的地址;當(dāng)其為1100-1110時,選擇片內(nèi)檢測電壓;當(dāng)其為1111時,為軟件選擇的斷電模式,此時,AD轉(zhuǎn)換器的工作電流只有25uA??刂谱值牡?位和第4位(D3一D2)決定輸出數(shù)據(jù)的長度,01表

20、示輸出數(shù)據(jù)長度為8位;11表示輸出數(shù)據(jù)長度為16位;X1表示輸出數(shù)據(jù)長度為12位,X可以為1或0。制字的第2位(D1)決定輸出數(shù)據(jù)的格式,0表示高位在前,1表示低位在前??刂谱值牡?位(D0)決定轉(zhuǎn)換結(jié)果輸出的格式。當(dāng)其為0時,為無極性輸出(無符號二進制數(shù)),即模擬電壓為Vnef+,時,轉(zhuǎn)換的結(jié)果為0FFFH;模擬電壓為Vnef-時,轉(zhuǎn)換的結(jié)果為0000H。其為1時,為有極性輸出(有符號二進制數(shù)),即模擬電壓高于(Vnef+-Vnef-)/2時符號位為0;模擬電壓低于(Vnef+-Vnef-)/2時符號位為1;模擬電壓為Vnef+時,轉(zhuǎn)換的結(jié)果為03FFH;模擬電壓為Vnef-時,轉(zhuǎn)換的結(jié)果為

21、0800H。模擬電壓為(Vnef+-Vnef-)/2時,轉(zhuǎn)換的結(jié)果為0000H。三、工作時序 :以MSB為前導(dǎo), 用CS進行12個時鐘傳送的工作時序如下圖所示。1.上電時,EOC=“1”,CS=“1”2.使CS下降,前次轉(zhuǎn)換結(jié)果的MSB即A11位數(shù)據(jù)輸出到Dout供讀數(shù)。3.將輸入控制字的MSB位即C7送到Din,在CS之后tsu=1.425us后,使CLK 上升,將Din上的數(shù)據(jù)移入輸入寄存器。4.CLK下降,轉(zhuǎn)換結(jié)果的A10位輸出到Dout供讀數(shù)。5.在第4個CLK下降時,由前4個CLK上升沿移入寄存器的四位通道地址被譯碼, 相應(yīng)模入通道接通,其模入電壓開始時對內(nèi)部開關(guān)電容充電。6.第8個

22、CLK上升時,將Din腳的輸入控制字C0位移入輸入寄存器后,Din腳即無效。7.第11個CLK下降,上次AD結(jié)果的最低位A0輸出到Dout供讀數(shù)。至此,I/O數(shù)據(jù)已全部完成,但為實現(xiàn)12位同步,仍用第12個CLK脈沖,且在其第12個CLK下降時,模入通道斷開,EOC下降,本周期設(shè)置的AD轉(zhuǎn)換開始,此時使CS上升。8.經(jīng)過時間tconv=10us,轉(zhuǎn)換完畢,EOC上升。9.使CS下降,轉(zhuǎn)換結(jié)果的MSB位B11輸出到Dout供讀數(shù)。10.將新周期的輸入控制字的MSB位D7送到Din,在CS下降之處,tSU時間處由CLK上升將Din數(shù)據(jù)移入輸入寄存器。11.CLK下降,將AD結(jié)果的B10位輸出到Do

23、ut。上電時,第一周期讀取的Dout數(shù)據(jù)無效,應(yīng)舍去。2.6 串行通信模塊2.6.1 串行通信常用概念()異步串行通信的格式SCI通常采用NRZ數(shù)據(jù)格式,即:standard non-return-zero mark/space data format,譯為:“標(biāo)準(zhǔn)不歸零傳號/空號數(shù)據(jù)格式”?!安粴w零”的最初含義是:用正、負電平表示二進制值,不使用零電平?!癿ark/space”即“傳號/空號”分別是表示兩種狀態(tài)的物理名稱,邏輯名稱記為“1/0”。下圖給出了 8位數(shù)據(jù)、無校驗情況的傳送格式。(2)串行通信的波特率波特率:每秒內(nèi)傳送的位數(shù)。 波特率單位是位/秒,記為bps。通常情況下,波特率的單

24、位可以省略。通常使用的波特率有300、600、900、1200、1800、2400、4800、9600、19200、38400。 (3)奇偶校驗字符奇偶校驗檢查稱為垂直冗余檢查,它是每個字符增加一個額外位使字符中“1”的個數(shù)為奇數(shù)或偶數(shù)。奇校驗:如果字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),校驗位應(yīng)為“1”,如果“1”的數(shù)目是奇數(shù),校驗位應(yīng)為“0”。偶校驗:如果字符數(shù)據(jù)位中“1”的數(shù)目是偶數(shù),則校驗位應(yīng)為“0”,如果是奇數(shù)則為“1”。 (4)串行通信的傳輸方式單工:數(shù)據(jù)傳送是單向的,一端為發(fā)送端,另一端為接收端。這種傳輸方式中,除了地線之外,只要一根數(shù)據(jù)線就可以了。有線廣播就是單工的。全雙工:數(shù)據(jù)傳送是

25、雙向的,且可以同時接收與發(fā)送數(shù)據(jù)。這種傳輸方式中,除了地線之外,需要兩根數(shù)據(jù)線,站在任何一端的角度看,一根為發(fā)送線,另一根為接收線。一般情況下,MCU的異步串行通信接口均是全雙工的。半雙工:數(shù)據(jù)傳送也是雙向的,但是在這種傳輸方式中,除了地線之外,一般只有一根數(shù)據(jù)線。任何一個時刻,只能由一方發(fā)送數(shù)據(jù),另一方接收數(shù)據(jù),不能同時收發(fā)。2.6.2 RS-232C總線標(biāo)準(zhǔn) MCU引腳一般輸入/輸出使用TTL電平,而TTL電平的“1”和“0”的特征電壓分別為2.4V和0.4V,適用于板內(nèi)數(shù)據(jù)傳輸。為了使信號傳輸?shù)酶h,美國電子工業(yè)協(xié)會EIA制訂了串行物理接口標(biāo)準(zhǔn)RS-232C。RS-232C采用負邏輯,-

26、3V-15V為邏輯“1”,+3V+15V為邏輯“0”。RS-232C最大的傳輸距離是30m,通信速率一般低于20Kbps。RS-232接口,簡稱“串口”,它主要用于連接具有同樣接口的室內(nèi)設(shè)備。目前幾乎所有計算機上的串行口都是9芯接口。右圖給出了9芯串行接口的排列位置,相應(yīng)引腳含義見表。引腳號功能1接收線信號檢測(載波檢測DCD)2接收數(shù)據(jù)線(RxD)3發(fā)送數(shù)據(jù)線(TxD)4數(shù)據(jù)終端準(zhǔn)備就緒(DTR)5信號地(SG)6數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒(DSR)7請求發(fā)送(RTS)8清除發(fā)送9振鈴指示 表1 芯串行接口引腳含義表 圖2.6(a) 芯串行接口排列圖 圖2.6(b) MAX232芯片引腳圖 在MC

27、U中,若用RS-232C總線進行串行通信,則需要外接電路實現(xiàn)電平轉(zhuǎn)換。在發(fā)送端需要用驅(qū)動電路將TTL電平轉(zhuǎn)換成RS-232C電平,在接收端需要用接收電路將RS-232C電平轉(zhuǎn)換成TTL電平。電平轉(zhuǎn)換器不僅可以由晶體管分立元件構(gòu)成,也可以直接使用集成電路。該系統(tǒng)使用MAX232芯片,該芯片使用單一+5V電源供電實現(xiàn)電平轉(zhuǎn)換。圖給出了MAX232的引腳。MAX232芯片引腳含義說明如下: VCC(16腳):正電源端,一般接+5V GND(15腳):地 VS+(2腳):VS+=2VCC-1.5V VS-(6腳):VS-=-2VCC-1.5V C2+、C2-(4、5腳):一般接1F的電解電容 C1+、

28、C1-(1、3腳):一般接1F的電解電容輸入輸出引腳分兩組,基本含義見表2。在實際使用時,若只需要一路SCI,可以使用起中的任何一組。組別TTL電平引腳方向典型接口RS-232電平引腳方向典型接口11112輸入輸出接MCU的TxD接MCU的RxD1314輸入輸出連接到接口與其他設(shè)備通過RS-232相接2109輸入輸出接MCU的TxD接MCU的RxD87輸入輸出連接到接口與其他設(shè)備通過RS-232相接 表2 MAX232芯片I/O引腳分類與基本接法第三章 系統(tǒng)軟件設(shè)計3.1 MCU方(C)程序軟件設(shè)計包括MCU的程序設(shè)計和PC機端的軟件設(shè)計。MCU的所有程序文件如下表所示。文件類型文件名功能簡介

29、頭文件GP32C. hGP32 MCU映像寄存名定義頭文件EnDisInt.h開放或禁止MCU各模塊中斷頭文件Type.h類型別名定義頭文件Includes.h總頭文件AD.hA/D轉(zhuǎn)換頭文件SCI.h串行通信頭文件C語言子函數(shù)文件Setup.c芯片初始化文件SCI.c串口通信文件AD.cA/D轉(zhuǎn)換文件C語言主函數(shù)Main.c主函數(shù)文件3.1.1 A/D轉(zhuǎn)換子程序1. A/D轉(zhuǎn)換有關(guān)頭文件ADC.h/ADC.hA/D轉(zhuǎn)換頭文件-#include GP32C.h /GP32 MCU映像寄存器名定義#include Type.h /類型別名定義#define COCOBit 7void ADCin

30、it(void); /A/D轉(zhuǎn)換初始化 INT8U ADCvalue(INT8U channel); /1路A/D轉(zhuǎn)換函數(shù)INT8U ADCmid(INT8U channel); /1路A/D轉(zhuǎn)換函數(shù)(中值濾波) INT8U ADCave(INT8U channel, INT8U n); /1路A/D轉(zhuǎn)換函數(shù)(均值濾波)2. A/D轉(zhuǎn)換有關(guān)C語言子函數(shù)AD.C/*- ADsub.c-*文件描述:本文件包含了A/D轉(zhuǎn)換的3個子函數(shù),分別為: *(1)advalue:獲取1路A/D轉(zhuǎn)換結(jié)果 * unsigned char advalue(unsigned char channel) *(2)adm

31、id:獲取中值濾波后的A/D轉(zhuǎn)換結(jié)果 * unsigned char admid(unsigned char channel) *(3)adave:獲取均值濾波后的A/D轉(zhuǎn)換結(jié)果 * unsigned char adave(unsigned char n, * unsigned char channel) /以下為子程序源代碼/包含頭文件#include GP32C.H#define COCOBit 7 /轉(zhuǎn)換完成標(biāo)志位/*advalue:1路A/D轉(zhuǎn)換函數(shù)-*功能:獲取通道channel的A/D轉(zhuǎn)換結(jié)果 *參數(shù):channel=通道號 *返回:該通道的A/D轉(zhuǎn)換結(jié)果 *-*/ unsigne

32、d char advalue(unsigned char channel) /選取通道號ADCH4-ADCH0=00000-00111unsigned char tmp;channel&=0b00011111;tmp=ADSCR&0b11100000;tmp=tmp|channel;ADSCR=tmp; /取A/D轉(zhuǎn)換結(jié)果 while(1)if(ADSCR&(1j) tmp=i; i=j; j=tmp; if (k=j) tmp=j; else if (k=i) tmp=k; else tmp=i; return tmp; /*adave:1路A/D轉(zhuǎn)換函數(shù)(均值濾波)-*功能:對通道chan

33、nel的A/D轉(zhuǎn)換結(jié)果求n次平均值 *參數(shù):n=平均次數(shù),channel=通道號 *返回:該通道均值濾波后的A/D轉(zhuǎn)換結(jié)果 *-*/ unsigned char adave(unsigned char n,unsigned char channel) /求n次A/D轉(zhuǎn)換的平均值 unsigned char i; unsigned int j; j=0; for (i=0;in;i+) j+=admid(channel); j=j/n; return (unsigned char)j; 3. A/D轉(zhuǎn)換08C測試主程序/總頭文件#include Includes.h/主程序void main(v

34、oid) DisableMCUint(); /禁止總中斷 /1. 芯片初始化 MCUinit(); /2. 模塊初始化 SCIinit(); /(1) 串行口初始化 ADCinit(); /(2) A/D轉(zhuǎn)換初始化 while (1) /在通道0做A/D轉(zhuǎn)換,200次中值濾波,串口發(fā)送均值濾波結(jié)果 SCIsend1(ADCave(0, 200); 3.1.2 串行通信子程序串行通信驅(qū)動文件包括SCI初始化、接收1字節(jié)、發(fā)送1字節(jié)、接收n字節(jié)和發(fā)送n字/SCI.c串行通信-*/硬件連接: /MCU的串口與PC方的串口相連 /-*#include SCI.h/SCIinit:串行口初始化-*/功能

35、:對串行口進行初始化,默認為允許SCI,正常碼輸出,8位數(shù)據(jù),無校驗 /允許發(fā)送器,允許接收器.查詢方式收發(fā),波特率為9600(設(shè)fBUS= 2.4576MHz) /-*void SCIinit(void) /1.總線頻率fBUS = 2.4576MHz,定義波特率Bt = 9600 SCBR = 0b00000010; /2.設(shè)置允許SCI,正常碼輸出,8位數(shù)據(jù),無校驗 SCC1 = 0b01000000; /3.設(shè)置允許發(fā)送,允許接收,查詢方式收發(fā) SCC2 = 0b00001100;/SCIsend1:串行發(fā)送1個字節(jié)-*/功能:串行發(fā)送1個字節(jié) /-*void SCIsend1(INT

36、8U o) /判斷ReStatusR的第SendTestBit位是否為1,是1可以發(fā)送 while (1) if (ReSendStatusR & (1SendTestBit) != 0) ReSendDataR = o; break; /SCIsendN:串行發(fā)送N個字節(jié)-*/功能:發(fā)送數(shù)組中的N個字節(jié)數(shù)據(jù) /-*void SCIsendN(INT8U n, INT8U ch) int i; for(i=0; in; i+) SCIsend1(chi); /SCIre1:串行收一個字節(jié)數(shù)據(jù)-*/功能:從串行口接收1個字節(jié)的數(shù)據(jù) /-*INT8U SCIre1(INT8U *p) INT16U

37、 k; INT8U i; /ReStatusR第ReTestBit位為1表示可接收數(shù)據(jù)for(k=0; k 0xfbbb; k+) if (ReSendStatusR & (1= 0xfbbb) i = 0xff; *p = 0x01; return i;/SCIreN:HC08串行接收N個字節(jié)-*/功能:接收N個字節(jié)數(shù)據(jù),并存放在ch數(shù)組中 /-*INT8U SCIreN(INT8U n, INT8U ch) int m; INT8U fp; m = 0; while (m sx Then Timer1.Enabled = True: Timer2.Enabled = False: Shap

38、e1.Visible = True: Shape2.Visible = True: Shape2.BackColor = &H808080 If Text1.Text xx Then Timer2.Enabled = True: Timer1.Enabled = False: Shape1.Visible = True: Shape2.Visible = True If Text1.Text = xx Then Timer1.Enabled = False: Timer2.Enabled = False: Shape1.Visible = True: Shape2.Visible = True x(i) = i * 5 If i = 0 Then graph1.Line (-95, 0)-(x(i) - 90), buf(i), RGB

溫馨提示

  • 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

提交評論