溫度測(cè)量系統(tǒng)畢業(yè)論文
《溫度測(cè)量系統(tǒng)畢業(yè)論文》由會(huì)員分享,可在線閱讀,更多相關(guān)《溫度測(cè)量系統(tǒng)畢業(yè)論文(19頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、溫度測(cè)量系統(tǒng) 1.1 系統(tǒng)概要 1.1.1 引言 溫度是表征物體冷熱程度的物理量。溫度通過(guò)物體隨溫度變化的某些特性來(lái)間接測(cè)量。溫度的測(cè)量和控制在激光器、光纖光柵的使用及其他的工農(nóng)業(yè)生產(chǎn)和科學(xué)研究中應(yīng)用廣泛。溫度檢測(cè)的傳統(tǒng)方法是使用諸如熱電偶、熱電阻、半導(dǎo)體PN結(jié)之類的模擬溫度傳感器。信號(hào)經(jīng)取樣、放大后通過(guò)模數(shù)轉(zhuǎn)換,再交自單片機(jī)處理。被測(cè)溫度信號(hào)從溫敏元件到單片機(jī),經(jīng)過(guò)眾多器件,易受干擾、不易控制且精度不高。因此,本設(shè)計(jì)介紹了一種溫度傳感器選用LM35、單片機(jī)選用MC908GP32的溫度測(cè)量系統(tǒng)。它能通過(guò)與單片機(jī),完成溫度采集和數(shù)據(jù)處理。該系統(tǒng)的溫度測(cè)量范圍為0~99℃,可以精確到一位小數(shù)
2、,可適用于工業(yè)場(chǎng)合及日常生活中[6]。 1.1.2 系統(tǒng)結(jié)構(gòu)分析 溫度傳 感器電路 信號(hào) 放大電路 A/D 轉(zhuǎn)換電路 單片機(jī) 系統(tǒng) 溫度 顯示系統(tǒng) 圖1 測(cè)溫系統(tǒng)的原理框圖 本測(cè)溫系統(tǒng)由溫度傳感器電路、信號(hào)放大電路、A/D轉(zhuǎn)換電路、單片機(jī)系統(tǒng)、溫度顯示系統(tǒng)構(gòu)成,如圖1所示。其基本工作原理:溫度傳感器電路將測(cè)量到的溫度信號(hào)轉(zhuǎn)換成電壓信號(hào)輸出到信號(hào)放大電路,與溫度值對(duì)應(yīng)的電壓信號(hào)經(jīng)放大后輸出至A/D轉(zhuǎn)換電路,把電壓信號(hào)轉(zhuǎn)換成數(shù)字量送給單片機(jī)系統(tǒng),單片機(jī)系統(tǒng)根據(jù)顯示需要對(duì)數(shù)字量進(jìn)行處理,再送溫度顯示系統(tǒng)進(jìn)行顯示。如圖2所示[2]。1.2 硬件電路設(shè)計(jì) 1.2.1 硬件
3、電路圖 1.2.2 溫度傳感器電路 溫度傳感器采用的是NS公司生產(chǎn)的LM35,它具有很高的工作精度和較寬的線性工作范圍,它的輸出電壓與攝氏溫度線性成比例,且無(wú)需外部校準(zhǔn)或微調(diào),可以提供1/4℃的常用的室溫精度。LM35的輸出電壓與攝氏溫度的線形關(guān)系可用下面公式表示,0℃時(shí)輸出為0 V,每升高1℃,輸出電壓增加10 mV。其電源供應(yīng)模式有單電源與正負(fù)雙電源兩種,其接法如圖3與圖4所示。正負(fù)雙電源的供電模式可提供負(fù)溫度的測(cè)量,單電源模式在25℃下電流約為50 mA,非常省電。本系統(tǒng)采用的是單電源模式。 1.2.3 信號(hào)放大電路 由于溫度傳感器LM35輸出的電壓范圍為0~0.99 V,
4、雖然該電壓范圍在A/D轉(zhuǎn)換器的輸入允許電壓范圍內(nèi),但該電壓信號(hào)較弱,如果不進(jìn)行放大直接進(jìn)行A/D轉(zhuǎn)換則會(huì)導(dǎo)致轉(zhuǎn)換成的數(shù)字量太小、精度低。系統(tǒng)中選用通用型放大器μA741對(duì)LM35輸出的電壓信號(hào)進(jìn)行幅度放大,還可對(duì)其進(jìn)行阻抗匹配、波形變換、噪聲抑制等處理。系統(tǒng)采取同相輸入,電壓放大倍數(shù)為5倍,電路圖如圖5所示[5]。 1.2.4 A/D轉(zhuǎn)換模塊 A/D轉(zhuǎn)換模塊(Analog To Digital Convert Module),即模數(shù)轉(zhuǎn)換,是將電壓信號(hào)轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字信號(hào)。 1.2.4.1 進(jìn)行A/D轉(zhuǎn)換的基本問(wèn)題: (1)采樣精度 數(shù)字量變化一個(gè)最小量時(shí)模擬信號(hào)的變化量,即采樣
5、位數(shù)。 (2)采樣速率 完成一次A/D采樣所要花費(fèi)的時(shí)間。 (3)濾波 對(duì)采樣的數(shù)據(jù)進(jìn)行篩選去掉誤差較大的毛刺。 (4)物理量回歸 把A/D采樣值與實(shí)際物理量對(duì)應(yīng)起來(lái)。 1.2.4.2 A/D轉(zhuǎn)換模塊的基本編程方法 (1)A/D轉(zhuǎn)換初始化 對(duì)ADCLK寫入控制字節(jié),決定時(shí)鐘輸入源是內(nèi)部總線還是外部晶振,決定分頻系數(shù)等。 (2)啟動(dòng)A/D轉(zhuǎn)換 對(duì)ADSCR寫入控制字節(jié),選取要轉(zhuǎn)換的通道、決定轉(zhuǎn)換結(jié)束數(shù)據(jù)獲取的方式、設(shè)置是連續(xù)轉(zhuǎn)換還是一次轉(zhuǎn)換等。 (3)獲A/D轉(zhuǎn)換結(jié)果 若是中斷方式,在A/D中斷程序中取得,若是查詢方式,通過(guò)ADSCR的第7位(COCO位)取得,當(dāng)
6、COCO=1時(shí)可從ADR中取數(shù)。 1.2.4.3 A/D芯片TCL2543概述 (1)TLC2543的引腳說(shuō)明 圖 6 TLC2543引腳圖 (2) TLC2543的編程要點(diǎn),控制字的格式控制字為從DATA INPUT端串行輸入TLC2543芯片內(nèi)部的8位數(shù)據(jù),它告訴TLC2543要轉(zhuǎn)換的模擬量通道、轉(zhuǎn)換后的輸出數(shù)據(jù)長(zhǎng)度、輸出數(shù)據(jù)的格式。 (3) TLC2543的內(nèi)部寄存器,輸入數(shù)據(jù)寄存器存放從DATA INPUT端移入的控制字。輸出數(shù)據(jù)寄存器存放轉(zhuǎn)換好的數(shù)據(jù),以供從DATA OUT端移出。轉(zhuǎn)換過(guò)程上電后,片選CS必須從高到低,才能開(kāi)始一次工作周期,此時(shí)EOC為高,輸入數(shù)
7、據(jù)寄存器被置0,輸出數(shù)據(jù)寄存器內(nèi)容是隨機(jī)的。開(kāi)始時(shí),片選CS為高,I/O CLOCK、DATA INPUT被禁止,DATA OUT呈高阻態(tài),EOC為高。使CS變低,I/O CLOCK、DATA INPUT使能,DATA OUT脫離高阻態(tài)。12個(gè)時(shí)鐘信號(hào)從I/O CLOCK端依次加入,控制字從DATA INPUT一位一位地在時(shí)鐘信號(hào)的上升沿時(shí)被送入TLC2543(高位先送入),同時(shí)上一周期轉(zhuǎn)換的A/D數(shù)據(jù),即輸出數(shù)據(jù)寄存器中的數(shù)據(jù)從DATA OUT一位一位地移出。TLC2543收到第4個(gè)時(shí)鐘信號(hào)后,通道號(hào)也已收到,因此,此時(shí)TLC2543開(kāi)始對(duì)選定通道的模擬量進(jìn)行采樣,并保持到第12個(gè)時(shí)鐘的下降
8、沿。在第12個(gè)時(shí)鐘下降沿,EOC變低,開(kāi)始對(duì)本次采樣的模擬量進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換時(shí)間約需10μs,轉(zhuǎn)換完成EOC變高,轉(zhuǎn)換的數(shù)據(jù)在輸出數(shù)據(jù)寄存器中,待下一個(gè)工作周期輸出。此后,可以進(jìn)行新的工作周期。 (4)TLC2543與MCU的接口方法,TLC2543與微處理器芯片的接口部分有五個(gè)引腳,分別是:時(shí)鐘輸入(I/O CLOCK)、串行控制字輸入(DATA INPUT)、片選輸入(CS)、A/D轉(zhuǎn)換串行數(shù)據(jù)輸出(DATA OUTPUT) 、轉(zhuǎn)換結(jié)束電平輸出(EOC)。經(jīng)分析TLC2543的工作時(shí)序,可以通過(guò)軟件估計(jì)轉(zhuǎn)換結(jié)束,免去EOC接線。TLC2543與具有SPI或相同接口能力的MCU可以直接
9、連接,對(duì)于沒(méi)有SPI接口的MCU可以通過(guò)軟件編程合成SPI操作。擴(kuò)展電路設(shè)計(jì),SPI模塊與TLC2543的接口擴(kuò)展。如下圖[1]。 MC908GP32 PTC0 MISO MOSI SPSCK PTC1 PTC2 TLC2543(第0片) AIN0 CS ∶ DATA OUT ∶ DATA INPUT ∶ I/O CLOCK AIN10
10、 模擬量輸入 ∶ ∶ ∶ TLC2543(第1片) AIN0 CS ∶ DATA OUT ∶ DATA INPUT ∶ I/O CLOCK AIN10 ∶ ∶ ∶ TLC2543(第2片) AIN0 CS ∶ DATA OUT ∶ DATA INPU
11、T ∶ I/OCLOCK AIN10 ∶ ∶ ∶ 圖 7 基于SPI的A/D轉(zhuǎn)換擴(kuò)展電路 1.2.5 單片機(jī)系統(tǒng) 單片機(jī)選用的是Freescale公司的MC908GP32,主要完成對(duì)A/D轉(zhuǎn)換電路的控制、對(duì)轉(zhuǎn)換后的數(shù)字量的處理以及對(duì)顯示模塊的控制,并且為ADC0809提供工作時(shí)鐘。其具體連接電路。如圖2所示。 1.2.5.1 MC908GP32單片機(jī)性能概述 MC908GP32有40腳、42腳、44腳三種封裝形式; MC908GP32的主要特點(diǎn)概述如下: (1)51
12、2B片內(nèi)RAM;32K片內(nèi)Flash程序存儲(chǔ)器,具有在線編程能力和保密功能 (2)時(shí)鐘發(fā)生器模塊,具有32KHz晶振PLL電路,可產(chǎn)生各種工作頻率;8MHz內(nèi)部總線頻率 (3)系統(tǒng)保護(hù)特性:計(jì)算機(jī)工作正常(COP)復(fù)位;低電壓檢測(cè)復(fù)位,可選為3V或5V操作;非法指令碼檢測(cè)復(fù)位;非法地址檢測(cè)復(fù)位。 (4)優(yōu)化用于控制應(yīng)用;優(yōu)化支持C語(yǔ)言。 (5)33根通用I/O腳,包括26根多功能I/O腳和5或7根專用I/O腳;PTA、PTC和PTD的輸入口有可選擇的上拉電阻;PTC0—PTC4有15mA吸流和放流能力,其他口有10mA吸流和放流能力 (總體驅(qū)動(dòng)電流應(yīng)小于150mA);所有口有最高5
13、mA輸入電流保護(hù)功能 (6)增強(qiáng)型串行通訊口SCI;串行外圍接口SPI;兩個(gè)16位雙通道定時(shí)器接口模塊(TIM1和TIM2),每個(gè)通道可選擇為輸入捕捉、輸出比較和PWM,其時(shí)鐘可分別選為內(nèi)部時(shí)鐘的1、2、4、8、6、32和64的分頻值;帶時(shí)鐘預(yù)分頻的定時(shí)基模塊有8種周期性實(shí)時(shí)中斷(1、4、16、256、512、1024、2048和4096Hz),可在STOP方式時(shí)使用外部32KHz晶振周期性喚醒CPU;8位鍵盤喚醒口。 1.2.5.2 MC908GP32結(jié)構(gòu)框圖(44Pin) 圖8 MC908GP32結(jié)構(gòu)圖 1.2.5.3 GP32內(nèi)部有
14、以下主要部分: 存儲(chǔ)器 定時(shí)接口模塊 定時(shí)基模塊 看門狗模塊 斷點(diǎn)模塊 串行通信接口SCI 串行外設(shè)接口SPI 并行I/O接口 A/D轉(zhuǎn)換模塊 鍵盤中斷模塊系統(tǒng)設(shè)置模塊 低電壓禁止模塊 CPU08 時(shí)鐘發(fā)生模塊及鎖相環(huán)電路 復(fù)位與中斷模塊 監(jiān)控模塊MON 1.2.5.4 GP32最小系統(tǒng) 硬件結(jié)構(gòu),但僅有一個(gè)MCU是無(wú)法工作的,它必須與以MC908GP32單片機(jī)為原型的HC08系列MCU的其他相應(yīng)的外圍電路一起,才能構(gòu)成一個(gè)最小系統(tǒng)。MC908GP32芯片(以40腳封裝為例)最小系統(tǒng)的外圍支撐電路包括電源與濾波電路、
15、晶振電路和復(fù)位電路。 1.2.5.5 MC908GP32最小系統(tǒng)電路圖 圖 9 MC908GP32最小系統(tǒng)電路圖 1.2.5.6 MC908GP32CB核心板實(shí)物圖 MON08接口 Core1 Core2 GP32最小系統(tǒng) Core3 Core4 電源開(kāi)關(guān) 晶振開(kāi)關(guān) 圖 10 MC908GP32CB核心板實(shí)物圖 1.2.6 溫度顯示系統(tǒng) 該溫度顯示系統(tǒng)較為簡(jiǎn)單,由可編程并行輸入輸出芯片8255A的A,B,C端口外接3個(gè)8段LED顯示器來(lái)實(shí)現(xiàn)。MC908GP32的P2.6為8255提供片選信號(hào),
16、74LS373的Q7,Q6接8255的A1,A0,可得到8255的A,B,C及控制口的地址為BF3FH,BF7FH,BFBFH,BFFFH。MC908GP32處理好的溫度數(shù)據(jù)輸出至8255,并由MC908GP32對(duì)8255編程控制其A,B,C端口輸出高電平或低電平,以便從8段LED顯示器顯示實(shí)際溫度。8段LED顯示器選用共陽(yáng)極,8255的A,B,C端口與8段LED顯示器之間接限流電阻,圖2中只畫出了PA口,PB,PC口的接法類似[4]。 1.2.7 異步串行通信的格式 SCI通常采用NRZ數(shù)據(jù)格式,即:standard non-return-zero mark/space data for
17、mat,譯為:“標(biāo)準(zhǔn)不歸零傳號(hào)/空號(hào)數(shù)據(jù)格式”?!安粴w零”的最初含義是:用正、負(fù)電平表示二進(jìn)制值,不使用零電平?!癿ark/space”即“傳號(hào)/空號(hào)”分別是表示兩種狀態(tài)的物理名稱,邏輯名稱記為“1/0”。 1.2.7.1 RS-232C總線標(biāo)準(zhǔn) (1)MCU引腳一般輸入/輸出使用TTL電平,而TTL電平的“1”和“0”的特征電壓分別為2.4V和0.4V,適用于板內(nèi)數(shù)據(jù)傳輸。為了使信號(hào)傳輸?shù)酶h(yuǎn),美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association) 制訂了串行物理接口標(biāo)準(zhǔn)RS-232C。RS-232C采用負(fù)邏輯,-3V~-15V為邏輯“1”,+3V~+
18、15V為邏輯“0”。RS-232C最大的傳輸距離是30m,通信速率一般低于20Kbps。 (2)RS-232接口,簡(jiǎn)稱“串口”,它主要用于連接具有同樣接口的室內(nèi)設(shè)備。目前幾乎所有計(jì)算機(jī)上的串行口都是9芯接口。下圖給出了9芯串行接口的排列位置,相應(yīng)引腳含義見(jiàn)下表[3] 4 1 2 3 5 6 7 8 9 圖 11 9芯串行接口排列圖 表1 9芯串行接口引腳含義表 引腳號(hào) 功 能 引腳號(hào) 功 能 1 2 3 4 5 接收線信號(hào)檢測(cè)(載波檢測(cè)DCD) 接收數(shù)據(jù)線(RXD) 發(fā)送數(shù)據(jù)線(TXD) 數(shù)據(jù)終端準(zhǔn)備就緒(DTR) 信號(hào)
19、地(SG) 6 7 8 9 數(shù)據(jù)通信設(shè)備準(zhǔn)備就緒(DSR) 請(qǐng)求發(fā)送(RTS) 清除發(fā)送 振鈴指示 1.2.7.2 SCI的外圍硬件電路 具有SCI接口的MCU,一般具有發(fā)送引腳(TxD)與接收引腳(RxD),不同公司或不同系列的MCU,使用的引腳縮寫名可能不一致,但含義相同。SCI的外圍硬件電路,主要目的是將MCU的發(fā)送引腳TxD與接收引腳RxD的TTL電平,通過(guò)RS-232電平轉(zhuǎn)換芯片轉(zhuǎn)換為RS-232電平。下圖給出一個(gè)基本SCI電平轉(zhuǎn)換電路 MAX232CPE 16 15 14 13 12 11 10 9 1 2 3 4 5 6 7 8
20、51Ω 232電平 OUT IN +5V +5V TTL電平 OUT IN TTL電平 轉(zhuǎn)為232電平 1μ4 圖 12 基本SCI電平轉(zhuǎn)換電路 1.3 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)的軟件部分用C語(yǔ)言編程,采用模塊化結(jié)構(gòu),主要由A/D轉(zhuǎn)換模塊、單片機(jī)內(nèi)部數(shù)據(jù)處理模塊、溫度顯示模塊等3部分構(gòu)成,便于修改和維護(hù)。 1.3.1 A/D轉(zhuǎn)換模塊 根據(jù)測(cè)量系統(tǒng)要求不同以及單片機(jī)的忙閑程度,通??刹捎?種軟件編程方式:程序查詢方式,延時(shí)方式和中斷方式。本系統(tǒng)采用延時(shí)方式。延時(shí)程序?qū)嶋H上是無(wú)條件傳送I/O方式,當(dāng)向A/D轉(zhuǎn)換器發(fā)出啟動(dòng)命令后,即進(jìn)行軟件延
21、時(shí),延時(shí)時(shí)間稍大于進(jìn)行一次A/D轉(zhuǎn)換所需要的時(shí)間,之后打開(kāi)A/D轉(zhuǎn)換器的輸出緩沖器讀數(shù)即為轉(zhuǎn)換好的數(shù)字量。A/D轉(zhuǎn)換時(shí)間為64個(gè)時(shí)鐘周期,因?yàn)橄到y(tǒng)中ADC0809的工作時(shí)鐘為500 kHz,故A/D轉(zhuǎn)換時(shí)間為128 μs,延時(shí)時(shí)間可大致選擇160μs。程序段如下[1]: //[ADC.h]A/D轉(zhuǎn)換頭文件------------------------------------------------------ #include "GP32C.h" //GP32 MCU映像寄存器名定義 #include "Type.h"
22、 //類型別名定義 #define COCOBit 7 void ADCinit(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ù)(均值濾
23、波) //[ADC.c]A/D轉(zhuǎn)換-----------------------------------------------------------* //硬件連接: // PTB0/AD0 接模擬量輸入端 //-------------------------------------------------------------------------* #
24、include "ADC.h" //ADCinit:A/D轉(zhuǎn)換初始化----------------------------------------------------* //功能:設(shè)置A/D轉(zhuǎn)換時(shí)鐘頻率為1MHz //-------------------------------------------------------------------------* void ADCinit(void) { ADCLK = 0b00110000; /
25、/||||||||_______不用 //||||___________選擇內(nèi)部總線時(shí)鐘 //|||____________分頻系數(shù)為2 } //ADCave:1路A/D轉(zhuǎn)換函數(shù)(均值濾波)------------------------------------------* //功能:通道channel進(jìn)行n次中值濾波,求和再作均值,得出均值濾波結(jié)果 //-------------------------------------------------------------------------*
26、 INT8U ADCave(INT8U channel, INT8U n) { INT8U i; INT16U j; j = 0; for (i = 0; i < n; i++) j += ADCmid(channel); j = j/n; return (INT8U)j; } //ADCmid:1路A/D轉(zhuǎn)換函數(shù)(中值濾波)------------------------------------------* //功能:獲取通道channel中值濾波后的A/D轉(zhuǎn)換結(jié)果
27、 //-------------------------------------------------------------------------* INT8U ADCmid(INT8U channel) { INT8U i,j,k,tmp; //1.取三次A/D轉(zhuǎn)換結(jié)果 i = ADCvalue(channel); j = ADCvalue(channel); k = ADCvalue(channel); if (i > j) { tmp = i;
28、 i = j; j = tmp; } if (k > i) { if (k > j) { tmp = j; } else { tmp = k; } } else { tmp = i; } return tmp; } //ADCvalue:1路A/D轉(zhuǎn)換函數(shù)---------------------------
29、-----------------------* //功能:獲取通道channel的A/D轉(zhuǎn)換結(jié)果 //-------------------------------------------------------------------------* INT8U ADCvalue(INT8U channel) { INT8U tmp; //1. 選取通道號(hào)ADch4-ADch0 = 00000-00111:AD0引腳 ~ AD7引腳 channel &= 0b00011111
30、; //取通道號(hào)變量的低五位(實(shí)際通道號(hào))
tmp = ADSCR & 0b11100000; //取ADSCR的高三位(取上電復(fù)位默認(rèn)值000)
ADSCR = tmp | channel; //合并上述8位
//2. 取A/D轉(zhuǎn)換結(jié)果
while ((ADSCR & (1< 31、中斷
//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));
}
}
注:為了使采樣數(shù)據(jù)更穩(wěn)定可靠,系統(tǒng)還采用了采樣平均值的方法以消除干擾。
1.3.2 單片機(jī)內(nèi)部數(shù)據(jù)處理模塊
1.3 32、.2.1 內(nèi)部數(shù)據(jù)處理
系統(tǒng)通過(guò)TLC2543轉(zhuǎn)換的數(shù)字量是與實(shí)際溫度成正比的數(shù)字量,但系統(tǒng)最后顯示的是實(shí)際溫度值,因此需要對(duì)數(shù)據(jù)進(jìn)行處理再通過(guò)8255輸出到LED顯示。設(shè)所測(cè)溫度值為T,A/D轉(zhuǎn)換后的數(shù)字量為X,則有:
VOUT=0.01 V/℃T℃
VOUT為L(zhǎng)M35的輸出電壓,即運(yùn)放μA741的輸入電壓,μA741的輸出電壓用V1表示。因?yàn)棣藺741的放大倍數(shù)為5,則有:
V1=5VOUT=0.05T
根據(jù)系統(tǒng)設(shè)置,溫度傳感器輸出電壓0~5 V對(duì)應(yīng)于轉(zhuǎn)換后的數(shù)字量0~255,則有: 0.05T/5=X/255
可以近似寫為: 0.0 33、5T/5=X/256
這樣除以256可通過(guò)把被除數(shù)右移8位來(lái)實(shí)現(xiàn)。由此可以得出X和T的關(guān)系:
T=100X/256
1.3.2.2 串口子程序
//[SCI.h]串行通信頭文件--------------------------
#include "GP32C.h" //GP32 MCU映像寄存器名定義
#include "Type.h" //類型別名定義
#define ReSendStatusR SCS1 //SCI狀態(tài)寄存器
#define ReTestBit 5 //接收緩沖區(qū)滿標(biāo)志位
34、
#define SendTestBit 7 //發(fā)送緩沖區(qū)空標(biāo)志位
#define ReSendDataR SCDR //數(shù)據(jù)寄存器
void SCIinit(void); //串行口初始化
void SCIsend1(INT8U o); //發(fā)送1字節(jié)
void SCIsendN(INT8U n, INT8U ch[]); //發(fā)送n字節(jié)
INT8U SCIre1(INT8U *p); //接收1字節(jié)
INT8U SCIreN(INT8U n, INT8U ch[] 35、); //接收n字節(jié)
_____________________________________________
串行通信驅(qū)動(dòng)文件包括SCI初始化、接收1字節(jié)、發(fā)送1字節(jié)、接收n字節(jié)和發(fā)送n字節(jié)函數(shù)。讀者可以直接使用這些函數(shù)進(jìn)行MCU的串行通信編程。
//[SCI.c]串行通信----------------------------------------------------------*
//硬件連接:
// MCU的串口與PC方的串口相連 36、
//-------------------------------------------------------------------------*
#include "SCI.h"
//SCIinit:串行口初始化----------------------------------------*
//功能:對(duì)串行口進(jìn)行初始化,默認(rèn)為允許SCI,正常碼輸出,8位數(shù) *
據(jù),無(wú)校驗(yàn), 37、 *
//允許發(fā)送器,允許接收器.查詢方式收發(fā),波特率為9600(設(shè)fBUS *
= 2.4576MHz) *
//------------------------------------------------------------*
void SCIinit(void)
{
//1.總線頻率fBUS = 2.4576MHz,定義波特率Bt = 9600
SCBR = 0b00000010;
//2.設(shè)置允許SCI,正常碼輸出,8位數(shù)據(jù),無(wú)校驗(yàn) 38、
SCC1 = 0b01000000;
//3.設(shè)置允許發(fā)送,允許接收,查詢方式收發(fā)
SCC2 = 0b00001100;
}
//SCIsend1:串行發(fā)送1個(gè)字節(jié)-----------------------------*
//功能:串行發(fā)送1個(gè)字節(jié) *
//-----------------------------------------------------*
void SCIsend1(INT8U o)
{
//判斷ReStatusR的第SendTestBit位是否 39、為1,是1可以發(fā)送
while (1)
if ((ReSendStatusR & (1< 40、--------------------*
void SCIsendN(INT8U n, INT8U ch[])
{
int i;
for(i=0; i 41、----------------------------------*
INT8U SCIre1(INT8U *p)
{
INT16U k;
INT8U i;
//ReStatusR第ReTestBit位為1表示可接收數(shù)據(jù)
for(k=0; k < 0xfbbb; k++)
if ((ReSendStatusR & (1< 42、
if (k >= 0xfbbb)
{
i = 0xff;
*p = 0x01;
}
return i;
}
//SCIreN:HC08串行接收N個(gè)字節(jié)-----------------------------------------*
//功能:接收N個(gè)字節(jié)數(shù)據(jù),并存放在ch數(shù)組中
//-------------------------------------------------------------------*
INT8U SCIreN(INT8U n 43、, INT8U ch[])
{
int m;
INT8U fp;
m = 0;
while (m < n)
{
ch[m] = SCIre1(&fp);
if (fp == 1)
{
return 1;
}
m++;
}
return 0;
}[2]
1.3.3 溫度顯示模塊
單片機(jī)處理好的溫度數(shù)據(jù)通過(guò)8255的3個(gè)端口輸出到3個(gè)LED上顯示,8255的A,B,C口的工作方式均設(shè)置為方式0,輸出。編程時(shí)只需分別從40H,41H,42H單元取數(shù)據(jù) 44、送A,B,C口輸出即可。
1.4 結(jié)語(yǔ)
該測(cè)溫系統(tǒng)經(jīng)過(guò)多次測(cè)試,工作穩(wěn)定可靠,體積小、集成度高、靈敏度高、響應(yīng)時(shí)間短、抗干擾能力強(qiáng)等特點(diǎn)。此外該系統(tǒng)成本低廉,器件均為常規(guī)元件,有很高的工程價(jià)值。如稍加改動(dòng),該系統(tǒng)可以很方便地?cái)U(kuò)展為集溫度測(cè)量、控制為一體的產(chǎn)品,具有一定工程應(yīng)用價(jià)值。如對(duì)該系統(tǒng)進(jìn)一步擴(kuò)展,還可以實(shí)現(xiàn)利用USB協(xié)議標(biāo)準(zhǔn)與PC機(jī)進(jìn)行數(shù)據(jù)通信,能夠把監(jiān)測(cè)到的溫度值保存到PC機(jī)中。
雖然時(shí)間倉(cāng)促,但此次設(shè)計(jì)能完成基本的測(cè)量溫度的功能。在此次設(shè)計(jì)過(guò)程中,學(xué)到了一些新的知識(shí),在此基礎(chǔ)上,對(duì)MC908GP32單片機(jī)又有了進(jìn)一步的了解與認(rèn)識(shí)。但畢竟知識(shí)與時(shí)間有限,這次自己對(duì)設(shè)計(jì)還有未認(rèn)清與未能完善的地方,在老師的指導(dǎo)下現(xiàn)在基本上是完成了設(shè)計(jì)的要求。
參考文獻(xiàn):
【1】王宜懷,劉曉升.嵌入式技術(shù)基礎(chǔ)與實(shí)踐.北京:清華大學(xué)出版社,2007.
【2】譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)(第二版).北京:清華大學(xué)出版社,2006.
【3】趙晶.Protel99高級(jí)應(yīng)用 北京:人民郵電出版社 2000
【4】林伸茂.8051單片機(jī)徹底研究基礎(chǔ)篇. 北京:人民郵電出版社 2004
【5】范風(fēng)強(qiáng)等.單片機(jī)語(yǔ)言C51應(yīng)用實(shí)戰(zhàn)集錦. 北京:電子工業(yè)出版社 2005
【6】萬(wàn)光毅,嚴(yán)義,邢春香.單片機(jī)實(shí)驗(yàn)與實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2006.4
19
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評(píng)估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功