• 沒有找到結果。

崑 山 科 技 大 學 電 機 工 程 系

N/A
N/A
Protected

Academic year: 2022

Share "崑 山 科 技 大 學 電 機 工 程 系"

Copied!
29
0
0

加載中.... (立即查看全文)

全文

(1)

崑 山 科 技 大 學 電 機 工 程 系

資料擷取之無線系統:

溫度感測

指導老師: 蔡和昌 老師

製作學生: 林裕皓 4940J009

白裕全 4940J019

邱瀚相 4940J050

(2)

目錄

一、專題動機 二、專題簡介

三、需要之硬體及軟體 四、元件介紹

五、電路圖

六、8051 程式碼、VB 程式碼 七、成果展示

八、結論

(3)

專題動機

通訊技術發展可說是一日千里,從過去以傳送聲音為主的類比電

話系統一直發展到數位多媒體傳輸系統,從有線傳輸發展到無線傳輸!

我們的生活都跟溫度息息相關,這次研究動機是想說除了透過溫度計 外還有什麼辦法可以更精準的看溫度,所以我們這組就想說用無線傳 輸來做溫度感測,我們直接讓溫度顯示在螢幕上,這樣能比溫度計來 的更準確!

(4)

專題介紹

這次的專題主要是利用溫度感測元件 DS1821 及 27MHz RF 數據傳 輸模組所完成的溫度感測裝置

此外,我們將溫度感測裝置的輸出以 RS232 接埠連接至電腦,用 VB 程式將測量結果顯示於螢幕完成一套無線溫度感測系統以下是本 專題之方塊圖

無線溫度感測之方塊圖

(5)
(6)

為了完成上述之溫控系統功能,再發射端需要一個無線傳送模組來發 送溫度資料,溫度偵測與樣率則為每秒一次,可視實際狀況及偵測裝 置其特性,改變取樣率,再接收端則需要一個無線接收模組來接 收溫度資料,並將遺資料傳送給電腦端之監督程式,來做溫度資料收 集及危急處理。系統架構方塊圖如圖一所示。

圖一 溫控系統架構方塊圖

(7)

需要之硬體及軟體

硬體

電腦主機及螢幕 示波器

電源供應器 探棒

27MHZ FSK RF 數據傳輸模組 89C51 單晶片

MAX232 訊號電位轉換 IC DS1821 溫度感測 IC

軟體

Visual Basic 6.0 Professional

(8)

元件介紹

DS1821 溫度感測 IC

DS1821 圖示及接腳介紹

PIN 功能簡介

VDD 電力供應伏特數

+5V

DQ 數據的進出

GND 數位訊號接地

DS1821 優點

1.微型化、低功耗、高性能

2.工作於-55℃至+125℃之溫度之間。

3.抗干擾能力強、易配合微處理器

4.輸出為數位訊號,不用另外加上解碼晶片,使用上更為方便。

(9)

27MHz 數據傳輸模組

傳送端模組

1.RFO:傳送資料天線 2.VCC:正電源(5V) 3.CND:接地

4.DIN :資料輸入腳

5.ENB :接 HIGH 可傳送資料、接 LOW 停止傳送資料

(10)

接收端模組

1.Ant :接收資料天線 2.GND :接地

3.VCC :正電源(5V) 4.GND :接地

5.D/O :資料輸出腳

6.A/O :出廠測試用,不需接

(11)

本專題模組乃採用頻率移位鍵調變技術

FSK Modulation,主要是採用頻率變化來表示數位訊號由於數位 訊號只有 0 和 1 兩種因此 FSK 調變輸出也只有兩種頻率變化

(12)

本模組的編碼法適合 Command mode/Data mode 切換先連續發射 10 次 High、Low 信號作為前導波形接著發射起始波形 600 微秒 High→600 微秒 Low→600 微秒 High→400 微秒 Low。接著把 8 位元資了分為前 後兩段:每次送出 4 位元的資料之前都加上 Low、High。其中每次 High、Low 皆為兩百微秒。

編碼法波形圖如下

(13)

電路圖

(14)

發送端

;DS1820 TXD OK

;Date:

;Design:

;Oscilllator Crystal: 11.05922MHz

;Inital State RFTD_DI REG P3.2 DS_DQ REG P3.3 BUFFER1 EQU 30H BUFFER2 EQU 31H BUFFER3 EQU 32H

ORG 0H JMP MAIN MAIN:

MOV SP,#5FH MOV P2,#01H CALL RESET_DS1821 MOV A,#01H CALL WRITE_DS1821 MOV A,#33H CALL WRITE_DS1821

CALL RESET_DS1821 MOV A,#02H CALL WRITE_DS1821 MOV A,#0AH CALL WRITE_DS1821

CALL RESET_DS1821 MOV A,#0A1H CALL WRITE_DS1821 CALL READ_DS1821

CALL RESET_DS1821

CALL WRITE_DS1821 CALL READ_DS1821

CALL RESET_DS1821 MOV A,#0CH CALL WRITE_DS1821 MOV A,#46H CALL WRITE_DS1821

CALL RESET_DS1821 MOV A,#ACH CALL WRITE_DS1821 CALL READ_DS1821 LOOPDS:

CALL RESET_DS1821 MOV A,#0EEH

CALL WRITE_DS1821

CALL RESET_DS1821 MOV A,#0AAH CALL WRITE_DS1821

MOV R1,#30

CALL READ_DS1821

CALL RESET_DS1821 MOV A, #22H CALL WRITE_DS1821

MOV R1,#30 CALL RF_TXD_D CALL RF_TXD_D CALL RF_TXD_D CALL RF_TXD_D CALL DELAY1S

(15)

DELAY1S:

MOV R5,#46 DLY$2: MOV R6,#100 DLY$1: MOV R7,#100 DLY$0: DJNZ R7,DLY$0 DJNZ R6,DLY$1 DJNZ R5,DLY$2

DELAY480U:

MOV R7,#221 JMP DELAYS DELAY380U:

MOV R7,#174 JMP DELAYS DELAY300U:

MOV R7,#150 JMP DELAYS DELAY200U:

MOV R7,#100 JMP DELAYS DELAY100U:

MOV R7,#50 JMP DELAYS DELAY60U:

MOV R7,#27 JMP DELAYS DELAY50U:

MOV R7,#25 JMP DELAYS DELAY30U:

MOV R7,#14 JMP DELAYS DELAY25U:

MOV R7,#12 JMP DELAYS DELAY20U:

JMP DELAYS DELAY15U:

MOV R7,#7 JMP DELAYS DELAY12U:

MOV R7,#5 JMP DELAYS DELAY10U:

MOV R7,#4 JMP DELAYS DELAYS: DJNZ R7,DELAYS RET

RF_TXD_D:

MOV A,@R1 MOV R4,#10 RF_PREAMLP:

SETB RFTD_DI CALL DELAY200U CLR RFTD_DI CALL DELAY200U DJNZ R4,RF_PREAMLP MOV R4,#2

RF_STARTLP:

SETB RFTD_DI CALL DELAY300U CALL DELAY300U CLR RFTD_DI CALL DELAY300U CALL DELAY300U DJNZ R4,RF_STARTLP SETB RFTD_DI CALL DELAY200U MOV R3,#4 RX_TD_OUT1:

RRC A

MOV RFTD_DI,C

(16)

DJNZ R3,RX_TD_OUT1

CLR RFTD_DI CALL DELAY200U

SETB RFTD_DI CALL DELAY200U

MOV R3,#4 RX_TD_OUT2:

RRC A

MOV RFTD_DI,C CALL DELAY200U DJNZ R3,RX_TD_OUT2

CLR RFTD_DI RET

RESET_DS1821:

SETB DS_DQ NOP

CLR DS_DQ

CALL DELAY480U SETB DS_DQ NOP

JNB DS_DQ, $ JB DS_DQ, $ JNB DS_DQ, $ CALL DELAY380U SETB DS_DQ

RET

WRITE_DS1821:

MOV B,#8 XMT_DATA:

CLR DS_DQ CALL DELAY10U RRC A

MOV DS_DQ,C CALL DELAY60U SETB DS_DQ DJNZ B,XMT_DATA SETB DS_DQ RET

READ_DS1821:

MOV B,#8 RCV_DATA:

SETB DS_DQ NOP

CLR DS_DQ SETB DS_DQ NOP

CALL DELAY15U MOV C,DS_DQ CALL DELAY30U RRC A

DJNZ B,RCV_DATA SETB DS_DQ NOP

MOV @R1,A RET

END

(17)

接收端

;ADRXD 01 OK

;Date:

;Design:

;Oscilllator Crystal: 11.05922MHz

;Iniral State

RF_RX .REF P0.0 BUFFER1 .EQU 30H BUFFER2 .EQU 31H BUFFER3 .EQU 32H BUFFER4 .EQU 33H

ORG 0H JMP MAIN MAIN:

MOV SP,#6FH ORL P0,#0FFH MOV P2,01H CALL INIT_UART LLP:

MOV R0,#30H CALL RF_RXDATA LLP2:

MOV R1,#31H CALL RF_RXDATA MOV A,BUFFER2 CLR C

XRL A,BUFFER1 JNC COMPR1 MOV A,BUFFER2 MOV BUFFER1,A JMP LLP2

COMPR1:

CALL RF_RXDATA MOV A,BUFFER3 CLR C

XRL A,BUFFER2 JNC COMPR2 MOV A,BUFFER3 MOV BUFFER1,A JMP LLP2

COMPR2:

MOV R0,#33H CALL RF_RXDATA MOV A,BUFFER4 CLR C

XRL A,BUFFER3 JNC COMPR3 MOV A,BUFFER4 MOV BUFFER1,A JMP LLP2

COMPR3:

MOV A,BUFFER4 CALL HEX_OUT CALL DELAY480U CALL DELAY480U CALL DELAY480U JMP LLP

DELAY480U:

MOV R7,#221 JMP DELAYS DELAY380U:

MOV R7,#174 JMP DELAYS

(18)

MOV R7,#150 JMP DELAYS DELAY200U:

MOV R7,#100 JMP DELAYS DELAY100U:

MOV R7,#50 JMP DELAYS DELAY60U:

MOV R7,#27 JMP DELAYS DELAY50U:

MOV R7,#25 JMP DELAYS DELAY30U:

MOV R7,#14 JMP DELAYS DELAY25U:

MOV R7,#12 JMP DELAYS DELAY20U:

MOV R7,#10 JMP DELAYS DELAY15U:

MOV R7,#7 JMP DELAYS DELAY12U:

MOV R7,#5 JMP DELAYS DELAY10U:

MOV R7,#4 JMP DELAYS DELAYS: DJNZ R7,DELAYS RET

RF_RXDATA:

MOV R2,#0 CLR C

WAIT_START_SIGNAL_H1:

NOP INC R2 JB RF_RX, WAIT_START_SIGNAL_H1 MOV A,R2 SUBB A,#140 JC RF_RXDATA MOV A,R2 SUBB A,#180 JNC RF_RXDATA MOV R2,#0 CLR C

WAIT_START_SIGNAL_H2:

NOP INC R2 JB RF_RX, WAIT_START_SIGNAL_H2 MOV A,R2 SUBB A,#140 JC RF_RXDATA MOV A,R2 SUBB A,#180 JNC RF_RXDATA MOV R2,#0 CLR C

WAIT_START_SIGNAL_L2:

NOP INC R2 JB RF_RX, WAIT_START_SIGNAL_L2 MOV A,R2

(19)

JC RF_RXDATA MOV A,R2 SUBB A,#180 JNC RF_RXDATA CALL DELAY200U CALL DELAY200U CLR A

MOV R3,#4

RXD_LBYTEP:

MOV C,RF_RX RRC A

CALL DELAY200U DJNZ R3,RXD_LBYTEP CALL DELAY200U CALL DELAY200U MOV R3,#4

RXD_LBYTEP:

MOV C,RF_RX RRC A

CALL DELAY200U DJNZ R3,RXD_LBYTEP MOV R3,#4

RET

INIT_UART:

MOV SCON,#01010000B MOV TMOD,#00100000B MOV TH1,#250

SETB TR1

SETB T1 RET

UART_TXD:

MOV A,@R1 JNB TI,$

CLR TI MOV SBUF,A RET

HEX_OUT:

PUSH A

MOV DPTR,#ASCT ANL A,#F0H SWAP A

MOVC A,@A + DPTR MOV BUFFER4,A MOV R1,#33H CALL UART_TXD POP A

PUSH A ANL A,#0FH MOVC A,@A + DPTR MOV BUFFER4,A MOV R1,#33H CALL UART_TXD POP A RET

ASCT: DB "0123456789ABCDEF"

.END

(20)

VB 程式碼

Dim UART_DATA As Variant Dim Num() As Byte

Dim DSyt As String Dim V1 As Interger Dim TMP As Single

Dim Buffer(0 To 15) As Single Dim BufMAT(1 To 3000) As Single Dim BufMATCNT As Interger Private Sub Combol_click()

MSComm1.CommPort = Combo1.ListIndex + 1

If MSComm1.PortOpen = False Then MSComm1.PortOpen = Ture

Else

MSComm1.PortOpen = False End If

'MSComm1.PortOpen = Ture End Sub

Private Sub Command1_click() If Timer1.Enabled = False Then Timer1.Enabled = Ture

Command1.Caption = "停止收集溫度"

Else

Timer1.Enabled = False

Command1.Caption = "開始收集溫度"

End If End Sub

Private Sub Command2_Click() CreatMat

(21)

Private Sub Command3_Click() Dim i As Integer

For i = 0 To 15 Buffer(i) = 0 Next i

For i = 1 To 3000 BufMAT(i) = 0 Next i

BufMATCNT = 0 End Sub

Private Sub Command4_Click()

Call sndplaySonud(vbNullString, 0) End

End Sub

Private Sub Form_Load() Dim i As Integer

MSComm1.ConnPort = 1 Combo1.ListIndex = 0

MSComm1.Settings = "4800,N,8,2"

MSComm1.InputLen =0

'MSComm1.PortOpen = Ture

MSComm1.InputMode = comInputModeBinary

For i = 0 To 15 Buffer(i) = 0 Next i

(22)

Call SetLenShape End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Call sndPlaySound(vbNullString, 0)

End Sub

Private Sub Text1_Change() Check1.Value = 0

End Sub

Private Sub Text2_Change() Check1.Value = 0

End Sub

Private Sub Timer1_Timer() Dim i As Integer

Do DoEvents

Loop Until MSComm1.InBufferCount >= 2

UART_DATA = MSComm1.Input

Num = UART_DATA

Call DStrToTEMP

Labell.Caption = Str(TMP)

For i = 15 To 1 Step -1 Buffer(i) = Buffer(i - 1) Next i

Buffer(0) = TMP

BufMATCNT = BufMATCNT +1

If BufMATCNT >= 3000 Then BufMATCNT = 1

(23)

Labe18.Caption = "溫度暫存器:" + Str(BufMATCNT) Call SetLenShape

If ((TMP >= Val(Text1.Text)) Or (TMP <= Val(Text2.Text))) And Check1.Value Then

'MsgBox "溫度超過" + Str(Text1.Text) + "以上", 48 Label1.ForeClolor = vbRed

Call sndPlaySound(App.Path + "\notify.wav", 1 + 8) End If

End Sub

Sub DStrToTEMP()

sum = NUMToHex

TMP = sum * 0.02 * 10 '轉成溫度

'數位資料 128 等於 25.6'C '數位之料 129 等於 25.8'C End Sub

Function NUMToHex() As Integer '轉 16 進制數值 Dim i As Integer

Dim ch As String * 1 Dim sum As Integer Sum = 0

DStr = Chr(Num(0)) + Chr(Num(1)) For i = 0 To 1

ch = Mid(DStr, i + 1, 1) Select Case ch

Case "0":

sum = sum + 0 * (16 ^ (1 - i))

Case "1":

sum = sum + 1 * (16 ^ (1 - i))

Case "2":

(24)

Case "3":

sum = sum + 3 * (16 ^ (1 - i))

Case "4":

sum = sum + 4 * (16 ^ (1 - i))

Case "5":

sum = sum + 5 * (16 ^ (1 - i))

Case "6":

sum = sum + 6 * (16 ^ (1 - i))

Case "7":

sum = sum + 7 * (16 ^ (1 - i))

Case "8":

sum = sum + 8 * (16 ^ (1 - i))

Case "9":

sum = sum + 9 * (16 ^ (1 - i))

Case "A":

sum = sum + 10 * (16 ^ (1 - i))

Case "B":

sum = sum + 11 * (16 ^ (1 - i))

Case "C":

sum = sum + 12 * (16 ^ (1 - i))

Case "D":

sum = sum + 13 * (16 ^ (1 - i))

Case "E":

sum = sum + 14 * (16 ^ (1 - i))

(25)

sum = sum + 15 * (16 ^ (1 - i)) End Select

Next i

NUMToHex = sum End Function

Sub SetLenShape() '設定長度 Dim i As Integer

For i = 15 To 0 Step -1

Shape1(i).Height = (2658 / 50) * Buffer(i)

Shape1(i).Top = 4380 + 2685 - ((2685 / 50) * Buffer(i)) -15 Next i

End Sub

Sub CreateMAT() '紀錄為 MATLAB 檔 Dim i As Integer

Open App.Path + "\AD590temp.m" For Output As #1 Print #1,"%" + Str(Date) +Str(Time)

Print #1,"%溫 度 紀 錄"

Print #1,"clear"

Print #1,"TMP=["

For i = 1 To BufMATCNT

Print #1, Str(BufMAT(i)) Next i

Print #1,"];"

Print #1,"plot(TMP)"

Print #1,"%END"

Close #1 End Sub

(26)

成果展示

此為發射端

圖中可以看到 DS1821 溫度 IC 以及 27MHZ FSK RF 數據傳輸模組的發射端而在電

路中我們使用了一顆穩壓 IC 及一顆 86C51

(27)

成果展示

此為接收端

(28)

VB 未執行

VB 啟動後

可以看到溫度為 24 度簡易測試只要將手指放在 DS1821 溫度 IC 上便

(29)

結論

1、電路學、電子學、通訊系統的基本應用。

2、IsSpice、VB 程式的基本運用。

3、學習到無線通訊模組內部結構與ㄧ些課堂上所沒有的知識。

4、儀器設備的使用,像電子式示波器、電源供應器。

5、工作分配及團隊合作的重要。

參考文獻

相關文件

FUEL LEVEL TRANSMITTER: Low Level Fuel Pressure : High Pressure TRANSFER PUMP SWITCH : ON. 與繼電器 K1 串聯之 Blocking

阿吉老師將簡介 micro:bit 開發程式環境,並分享 micro:bit 內建感測器程式編寫、數位/類比信號讀取及寫入,並了解 如何用 micro:bit 連接電子模組編寫程式進行機電整合。.

如圖1-16所示,NOT運算會改變邏輯準位。輸入為 HIGH (1) 時,輸出為LOW (0)。當輸入為LOW時,輸出

( )附圖是某電信公司的通話費計算方式:300 秒以內只繳基本費,超過 300 秒之後的費用與

The four e/g-teaching profiles identified in this study are outlined as follows: parsimony (low e-teaching and medium, below- average g-teaching), conservation (low e-teaching and

Low temperature High temperature YM theory confinement deconfinement D4 brane model solitonic D4 localized D3

• 在一台每秒可進行

• cost-sensitive classifier: low cost but high error rate. • traditional classifier: low error rate but