Вы находитесь на странице: 1из 18

4.

1 Thiet ke lu o giai thuat :



4.1.1 Lu o giai thuat cho vi ieu khien :








Hnh 4.1.1 Lu o chng trnh chnh hnh 4.1.2 Lu o x ly ngat












Trang 154



Trang 155
4.1.2 Lu o giai thuat cho VB :




Hnh 4.1.3 Lu o giai that cho VB


















4.2 Chng trnh phan mem :

4.2.1 Chng trnh Assembly cho vi ieu khien :

e giam sat c trang thai he thong, ta can chng trnh di vi ieu
khien e thu thap d lieu gi len cho may tnh x ly ong thi nhan cac tn hieu
ieu khien t tren may tnh gi xuong.
Chng trnh cho vi ieu khien c thiet ke nh sau :
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

; TRUYEN DU LIEU 4 KENH LEN MAY TINH, BYTE DAU TIEN LA
;KENH, 20 BYTE SAU LA DU LIEU
; PORT0 DIEU KHIEN ADC VA CHOT DIA CHI, PORT2 NHAN DU LIEU
;CHUYEN DOI
; NHAN TIN HIEU DIEU KHIEN BOM VA NHIET TU MAY TINH GOI
;XUONG, DONG HTOI GOI TIN HIEU
; GIAM SAT TRANG THAI BOM VA NHIET LEN DE MAY TINH HIEN
;THI

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; CHUONG TRINH CHINH
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ORG 0000H
JMP MAIN_PROGRAM
ORG 0023H
JMP SERIAL

ORG 0030H

MAIN_PROGRAM:
MOV P0,#255

MOV SCON,#53h
MOV TMOD,#20h

MOV TH1,#-12
SETB TR1
SETB EA
SETB ES


Trang 156


AGAIN: CLR P0.0 ; CHON KENH 0
CLR P0.1
CLR P0.2

MOV R6,#'0' ; GOI LEN PC KT '0'
MAIN_A: MOV A,R6
CALL SEND
CLR TI
CALL DELAY
MOV R5,#20 ; DOC MOI KENH 20 LAN

MAIN: LCALL CONVERT ; CHUYEN DOI
CLR TI
CALL DELAY

LCALL SEND ; SEND A LEN PC
CLR TI
CALL DELAY
DJNZ R5,MAIN ; LAP LAI 20 LAN

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

again1: SETB P0.0 ; CHON KENH 1
CLR P0.1
CLR P0.2

MOV R6,#'1' ; GOI LEN PC KT '1'
main_a1: MOV A,R6
CALL SEND
CLR TI
MOV R5,#20 ; DOC MOI KENH 20 LAN

main1: LCALL CONVERT ; CHUYEN THANH DU
CLR TI
CALLl DELAY

LCALL SEND ; SEND A LEN PC
CLR TI
CALL DELAY
DJNZ R5,MAIN1 ; LAP LAI 20 LAN

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Trang 157

again2: CLR P0.0 ; CHON KENH 2
SETB P0.1
CLR P0.2

MOV R6,#'2' ; GOI LEN PC KT '2'
main_a2: MOV A,R6
CALL SEND
CLR TI
MOV R5,#20 ; DOC MOI KENH 20 LAN

main2: LCALL CONVERT ; CHUYEN DOI
CLR TI
CALLl DELAY

LCALL SEND ; SEND A LEN PC
CLR TI
CALL DELAY
DJNZ R5,MAIN2 ; LAP LAI 20 LAN

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

again3: SETB P0.0 ; CHON KENH 3
SETB P0.1
CLR P0.2

MOV R6,#'3' ; GOI LEN PC KT '3'
main_a3: MOV A,R6
CALL SEND
CLR TI

MOV R5,#20 ; DOC MOI KENH 20 LAN

main3: LCALL CONVERT ; CHUYEN DOI
CLR TI
CALL DELAY

LCALL SEND ; SEND A LEN PC
CLR TI
CALL DELAY
DJNZ R5,MAIN3 ; LAP LAI 20 LAN



;xxxxxxxxxxx KIEM TRA TRANG THAI BOM VA NHIETxxxxxxxx

Trang 158


JB P2.0,PUMP
LCALL P_OFF
SJMP PP
PUMP: LCALL P_ON

PP: JB P2.1,HEAT
LCALL H_OFF
JMP AGAIN
HEAT: LCALL H_ON


JMP AGAIN ; LAM LAI TU KENH 0


;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; CAC CHUONG TRINH CON
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; ADC CHUYEN DU LIEU ANALOG THANH DIGITAL, PORT2 KET
;NOI
; DE NHAN KET QUA CHUYEN DOI, SAU DO CAT VAO THANH GHI
;A
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

CONVERT:
SETB P0.3
NOP
NOP
SETB P0.4
NOP
NOP
CLR P0.3
CLR P0.4

MOV A,P2
RET


;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; TRUYEN DU LIEU CHUA TRONG THANH GHI A LEN PC
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Trang 159

SEND:
MOV SBUF,A
CLR TI
CALL DELAY
RET


;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; CHUONG TRINH DELAY TOC DO MAY TINH XU LY DUOC
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

DELAY: MOV R4,#20
dl1: MOV R3,#255
DJNZ R3,$
DJNZ R4,dl1
RET

;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; DIEU KHIEN BOM VA NHIET
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

SERIAL: JB TI,ESC
MOV A,SBUF
CLR RI
CJNE A,#'4',SS_1
SETB P2.6
SJMP ESC
SS_1: CJNE A,#'5',SS_2
CLR P2.6
SJMP ESC
SS_2: CJNE A,#'6',SS_3
SETB P2.7
SJMP ESC
SS_3: CJNE A,#'7',ESC
CLR P2.7
ESC: CLR TI
RETI


;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
; GOI TIN HIEU GIAM SAT TRANG THAI BOM VA NHIET LEN MAY
;TINH
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Trang 160

P_ON: MOV A,#'8'
LCALL SEND
LCALL DELAY
RET

P_OFF: MOV A,#'9'
LCALL SEND
LCALL DELAY
RET

H_ON: MOV A,#'a'
LCALL SEND
LCALL DELAY
RET

H_OFF: MOV A,#'b'
LCALL SEND
LCALL DELAY
RET


END























Trang 161


4.2.2 Thiet ke chng trnh VB :

4.2.2a Thiet ke giao dien :

Tren may tnh ta thiet ke giao dien e giat sat cac thong so he thong ong
thi ve o th cac thong so o.
Nhiem vu cua may tnh la phan loai cac d lieu cua tng kenh e a ra
hien th, ong thi s dung cac d lieu o e ve o th. Giao dien chng trnh
c thiet ke gom cac khoi : Khoi hien th cac thong so he thong gom nhiet o,
mc va lu lng. Bieu o ba thong so he thong. Khoi ieu khien bm va nhiet t
may tnh.

Khoi hien th cac thong so he thong :



Hnh 4.2.1 Giao dien khoi hien th cac thong so he thong













Trang 162

Bieu o cac thong so he thong :



Hnh 4.2.2 o th cac thong so

Khoi ieu khien bm nhiet :



Hnh 4.2.3 Giao dien khoi ieu khien b nhiet











Trang 163




Hnh 4.2.4 Load chng trnh




Hnh 4.2.5 Giao dien chng trnh khi ang giam sat







Trang 164




Hnh 4.2.6 o th khi ang giam sat



























Trang 165

4.2.2b Chng trnh VB :

'KHAI BAO CAC BIEN DUNG CHUNG TRONG CHUONG TRINH

Dim k, tong
Dim tbuff
Dim ktr
Dim tru
Dim dem

Dim n As Double
Dim m As Double
Dim L As Double
Dim U

'HAM VE DO THI, XAY DUNG VOI 3 THONG SO

Private Sub SYSTEM_CHART(Y As Integer, X As Integer, Z As Integer)

With TChart1
.TimerEnabled = True
.TimerInterval = 2000
dem = TChart1.Series(0).Count
If dem = 1000 Then
TChart1.Series(0).Clear
End If
If dem = 1000 Then
TChart1.Series(1).Clear
End If
If dem = 1000 Then
TChart1.Series(2).Clear
End If
n = Y
m = X
L = Z
End With

End Sub

Private Sub Command7_Click()
Unload Me 'THOAT CHUONG TRINH
End Sub

Private Sub Command8_Click()

Trang 166

TChart1.ShowEditor 'HIEN THI MENU VE DO THI
End Sub

Private Sub Command9_Click()
Form1.PrintForm 'IN FORM
End Sub

Private Sub TChart1_OnTimer() 'LAY DU LIEU VE DE VE DO THI

With TChart1
.Series(0).Add n, "", clTeeColor
.Series(1).Add m, "", clTeeColor
.Series(2).Add L, "", clTeeColor
End With

End Sub

Private Sub Command1_Click()
com.Output = "4"
P.FillColor = vbGreen
End Sub

Private Sub Command2_Click()
com.Output = "5"
P.FillColor = &H4000&
End Sub

Private Sub Command3_Click()
com.Output = "6"
H.FillColor = vbRed
End Sub

Private Sub Command4_Click()
com.Output = "7"
H.FillColor = &H40&
End Sub

Private Sub Form_Load()

com.CommPort = 1
com.Settings = "2400,n,8,1"
If com.PortOpen = False Then
com.PortOpen = True
End If

Trang 167


com.InputLen = 0
com.RThreshold = 1

Timer1.Interval = 100
Timer1.Enabled = True
Label1.Visible = False

Form1.Caption = "SUPERVISING IN PROGRESS" & Space(30)
Timer2.Enabled = False
Frame3.Visible = False

End Sub

Private Sub com_OnComm()

Dim X1 As Integer
Dim X2 As Integer
Dim X3 As Integer

Select Case com.CommEvent
Case comEvReceive
k = k + 1
tbuff = com.Input
Text2.Text = tbuff 'ky tu nhan ve

Text4.Text = k
If k = 1 Then
ktr = tbuff
Text3.Text = ktr
End If

If ktr = "0" Then
t2.Text = (Asc(tbuff) / 255) * 5
tong = (tong + Val(t2.Text))
t4.Text = k

If k = 21 Then
tru = Val(Asc("0")) / 255
tong = tong - (tru * 5)
t3.Text = Round((tong / (k - 1)), 3) + 17.755
TEMPE.Text = t3.Text

SYSTEM_CHART X1, X2, X3

Trang 168


k = 0
tong = 0
End If

ElseIf ktr = "1" Then
t2a.Text = (Asc(tbuff) / 255) * 50

tong = (tong + Val(t2a.Text))
t4a.Text = k
If k = 21 Then
tru = Val(Asc("1")) / 255
tong = tong - (tru * 50)

t3a.Text = Round((tong / (k - 1)), 3) + 9.742
LEVEL.Text = t3a.Text

k = 0
tong = 0
tru = 0
End If


ElseIf ktr = "2" Then
t2b.Text = (Asc(tbuff) / 255) * 5
tong = (tong + Val(t2b.Text))
t4b.Text = k
If k = 21 Then
tru = (Val(Asc("2")) / 255) * 5
tong = tong - tru

t3b.Text = Round((tong / (k - 1)), 3) + 11.946
FLOW.Text = t3b.Text

k = 0
tong = 0
tru = 0
End If

ElseIf ktr = "3" Then
t2c.Text = (Asc(tbuff) / 255) * 5
tong = (tong + Val(t2c.Text))
t4c.Text = k
If k = 21 Then

Trang 169

tru = (Val(Asc("3")) / 255) * 5
tong = tong - tru

t3c.Text = Round((tong / (k - 1)), 3)
k = 0
tong = 0
tru = 0
End If

Else
k = 0
tong = 0
tru = 0
End If


'TRANG THAI BOM NHIET xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

If tbuff = "8" Then
P.FillColor = vbGreen
ElseIf tbuff = "9" Then
P.FillColor = &H4000&
ElseIf tbuff = "a" Then
H.FillColor = vbRed
ElseIf tbuff = "b" Then
H.FillColor = &H40&
End If

'VE DO THIxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

X1 = Val(TEMPE.Text)
X2 = Val(LEVEL.Text)
X3 = Val(FLOW.Text)

SYSTEM_CHART X1, X2, X3 'GOI HAM VE DO THI

End Select
End Sub



Private Sub Timer1_Timer()

TL.Width = TL.Width + 100

Trang 170


If (TL.Width >= 3375) Then 'LOAD CHUONG TRINH
Timer1.Enabled = False
Timer2.Enabled = True

TChart1.Visible = True
LBLLOADING.Visible = False
Frame3.Visible = True
TL.Visible = False
Label5.Visible = False
TEXT1.Visible = False
Label1.Visible = True
Frame2.Visible = True
Frame1.Visible = True
TXTTHOIGIAN.Visible = True

End If

Dim X As String
Dim Y As String

Y = Left(TEXT1.Text, Len(TEXT1.Text) - 1)
X = Right(TEXT1.Text, 1)
TEXT1.Text = X + Y

End Sub

Private Sub Timer2_Timer()
'xxxxxxxxxxxxxxxxxxxxxxxxxxxx tieu de chu chay

Dim t As String
Dim U As String
Dim d

U = Left(Form1.Caption, Len(Form1.Caption) - 1)
t = Right(Form1.Caption, 1)
Form1.Caption = t + U


d = Now 'NGAY GIO HIEN HANH HE THONG
TXTTHOIGIAN.Text = d

End Sub

Trang 171

Вам также может понравиться