سلام به همگی به کمکتون احتیاج دارم در حد المپیک که بد جور گیرم با اجازتون میخوام یه سری اطلاعاتو بین دو تا میکرو انتقال بدم و روی ال سی دی هم نشون بدم به وسیله دو تا پایه rxd و txd داخل پروتئوس خیلی عالی جواب گرفتم اما تو مدارم اصلا جواب نمی ده همه جای برناممو چک کردم سالم بوده اما دریافت و ارسال دیتا انجام نمیشه از همه اساتید خواهش می کنم کمکم کنید :angry: :cry2:
این گیرندمه :
$regfile = "m16def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200
Dim Er As Byte
Declare Function Show() As Byte
Config Portd.5 = Input
Config Portd.6 = Input
Config Portd.7 = Input
Config Portd.4 = Output
Reset Portd.4
Config Int0 = Falling
Config Int1 = Falling
Config Portc = Output
Enable Interrupts
Enable Int0
Enable Int1
Enable Urxc
Enable Utxc
Dim Go As Bit
Go = 0
On Int0 Menu
On Int1 On_off
Dim Tto As Word
Tto = 0
Dim Exdo As Byte
Exdo = 1
Dim Indoor As Bit
Indoor = 0
Dim Bw As Byte
Dim Ind As Byte
Dim Rd1(20) As String * 20
Dim Rsd As String * 20
Dim On_off_flag As Bit , Ismenu As Byte
Dim To_off As Bit , Showp As Byte
Dim Welcom As Bit
Dim I As Byte , Show1 As Byte , Inda As Byte
Dim A1 As Byte
Dim Fd As Byte , Ed As Bit , Pcc As Byte , Pcc1 As Byte
Dim Backmenu As Bit
Backmenu = 0
Fd = 0
Ed = 0
A1 = 1
To_off = 0
I = 0
On_off_flag = 0
Welcom = 0
Ismenu = 0
Showp = 0
Dim T1 As Byte , T2 As Byte , Power1 As String * 15 , Mode1 As Byte , Firenu As Byte
Readeeprom T1 , 0
Readeeprom T2 , 5
Readeeprom Mode1 , 10
Readeeprom Firenu , 15
If T1 = 255 Then
T1 = 1
Writeeeprom T1 , 0
Else
T1 = T1
End If
If T2 = 255 Then
T2 = 1
Writeeeprom T2 , 5
Else
T2 = T2
End If
If Mode1 = 255 Then
Mode1 = 1
Writeeeprom Mode1 , 10
Else
Mode1 = Mode1
End If
If Firenu = 255 Then
Firenu = 8
Writeeeprom Firenu , 15
Else
Firenu = Firenu
End If
Dim Ftime As Bit
Ftime = 0
'some routines to control the display are in the glcdKS108.lib file
$lib "glcdKS108.lib"
'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Porta , Ce = 3 , Ce2 = 4 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 2
Dim B As Byte , I1 As Byte
Setfont Font8x8
Cls
Dim Dand As Byte
Dand = 1
Do
If On_off_flag = 1 Then
If Welcom = 1 Then
If Ftime = 0 Then
Print "#start@"
Ftime = 1
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd1(dand) = Rd1(dand) + String(1 , B)
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B2 As Byte
B2 = 1
For B2 = 1 To 10
Rd1(b2) = ""
Next
End If
Loop
End If
Power1 = Rd1(1)
Pcc = Val(rd1(3))
Portc = Pcc
Toggle Portc
Cls
Showpic 0 , 0 , Wel
Waitms 1500
Cls
Waitms 10
Setfont Font8x8
Showpic 0 , 0 , Head
Lcdat 4 , 0 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 0 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 0 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 0 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 0 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 0 , "TIME CUT : " ; T2
Else
Lcdat 7 , 0 , "TIME CUT : " ; "0" ; T2
End If
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
'------------------------------------------------------------------------
Exdo = 1
Welcom = 0
End If
If Ismenu = 0 Then
If Showp = 2 Then
Cls
Waitms 10
Setfont Font8x8
Showpic 0 , 0 , Head
Waitms 10
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
Showp = 0
End If
'------------------------------------------------
If To_off = 1 Then
Set Portd.4
Cls
Showpic 0 , 0 , Bye
Reset Portc.0
Reset Portc.1
Reset Portc.2
Reset Portc.3
Reset Portc.4
Reset Portc.5
Reset Portc.6
Reset Portc.7
Wait 3
Cls
Reset Portd.4
On_off_flag = 0
Fd = 0
Exdo = 0
Ismenu = 90
End If
Backmenu = 0
'------------------------------------------------
'------------------------------------------------------------------------
Waitms 10
If Exdo = 1 Then
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "@" Then
Else
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd1(dand) = Rd1(dand) + String(1 , B)
If Fd = 1 Then Rsd = Rsd + String(1 , B)
End If
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B21 As Byte
B21 = 1
For B21 = 1 To 10
Rd1(b21) = ""
Next
Rsd = ""
End If
Loop
If Len(rsd) = 11 Then
Power1 = Rd1(1)
Pcc = Val(rd1(3))
If Pcc = Pcc1 Then
Else
Portc = Pcc
Toggle Portc
Pcc1 = Pcc
End If
End If
Do
If Inkey() = "@" Then Exit Do
Print "@"
Print "#" ; T1 ; "&" ; T2 ; "&" ; Firenu ; "&" ; Mode1 ; "*"
Waitms 10
Loop
End If
If Pind.7 = 0 Then
Cls
Waitms 10
Showp = 2
End If
Else
Set Portd.4
If Showp = 1 Then
Cls
Setfont Font8x8
Showpic 0 , 0 , He
Showp = 2
End If
Select Case Ismenu
Case 1
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom Firenu , 15
If Firenu < 8 Then
Incr Firenu
Writeeeprom Firenu , 15
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom Firenu , 15
If Firenu > 1 Then
Decr Firenu
Writeeeprom Firenu , 15
If Firenu =< Mode1 Then
Select Case Firenu
Case 1
Mode1 = 1
Case 2
Mode1 = 2
Case 3
Mode1 = 3
Case 4
Mode1 = 5
Case 5
Mode1 = 8
Case 6
Mode1 = 10
Case 7
Mode1 = 12
End Select
Writeeeprom Mode1 , 10
End If
Show1 = Show()
Waitms 200
End If
End If
'-------------------------------------------------
Case 2
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom Mode1 , 10
Select Case Firenu
Case 1
If Mode1 < 1 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 2
If Mode1 < 2 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 3
If Mode1 < 3 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 4
If Mode1 < 5 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 5
If Mode1 < 8 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 6
If Mode1 < 10 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 7
If Mode1 < 12 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 8
If Mode1 < 15 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
End Select
Elseif Pind.6 = 0 Then
Readeeprom Mode1 , 10
If Mode1 > 1 Then
Decr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
End If
'--------------------------------------------------
Case 3
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom T1 , 0
If T1 < 20 Then
Incr T1
Writeeeprom T1 , 0
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom T1 , 0
If T1 > 1 Then
Decr T1
Writeeeprom T1 , 0
Show1 = Show()
Waitms 200
End If
End If
'-----------------------------------------------------
Case 4
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom T2 , 5
If T2 < 20 Then
Incr T2
Writeeeprom T2 , 5
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom T2 , 5
If T2 > 1 Then
Decr T2
Writeeeprom T2 , 5
Show1 = Show()
Waitms 200
End If
End If
'----------------------------------------------------
Case Else
Ismenu = 0
Exdo = 1
End Select
End If
End If
Loop
End
On_off:
Set Portd.4
If On_off_flag = 1 And Ismenu = 0 Then
Exdo = 0
To_off = 1
End If
If On_off_flag = 0 Then
Backmenu = 1
On_off_flag = 1
Welcom = 1
I = 0
To_off = 0
Exdo = 0
End If
Return
Menu:
If On_off_flag = 1 Then
Exdo = 0
Select Case Ismenu
Case 0
Showp = 1
Ismenu = 1
Case 1
Ismenu = 2
Case 2
Ismenu = 3
Case 3
Ismenu = 4
Case 4
Ismenu = 5
End Select
End If
Return
Function Show() As Byte
Select Case Ismenu
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
Case 1
Lcdat 4 , 0 , "FIRE NUMBER : " ; "0" ; Firenu , 1
If Mode1 >= 10 Then
Lcdat 5 , 0 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 0 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 0 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 0 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 0 , "TIME CUT : " ; T2
Else
Lcdat 7 , 0 , "TIME CUT : " ; "0" ; T2
End If
'------------------------------------------------------------
Case 2
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1 , 1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1 , 1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
'----------------------------------------------------------
Case 3
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1 , 1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1 , 1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
'----------------------------------------------------------
Case 4
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2 , 1
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2 , 1
End If
Case Else
End Select
End Function
Wel:
$bgf "WELL.BGF"
Bye:
$bgf "BYE.BGF"
Head:
$bgf "HEAD.BGF"
He:
$bgf "HE.BGF"
'end program
$include "font8x8.font" و اینم فرستنده :$regfile = "m16def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200
Enable Interrupts
Enable Urxc
Enable Utxc
Config Portb = Input
Config Portd.4 = Input
Config Portd.5 = Input
Pow Alias Pind.4
Bat Alias Pind.5
Pob Alias Pinb
Dim Tdel As Byte , Tcut As Byte , Fnum As Byte , Mode1 As Byte
Dim Power1 As String * 10
Dim Pins As Byte
Dim Fd As Bit
Dim Rd1 As String * 15
Dim Rd(20) As String * 20
Dim Rsd As String * 20
Dim O_f As Byte
O_f = 1
Dim Er As Byte
Dim Indoor As Bit
Indoor = 0
Dim B As Byte , Bw As Byte
Dim Bats As String * 5
Dim Dand As Byte
Dand = 1
Do
'-------------------------------------
If Pow = 1 Then
Power1 = " ON"
Else
Power1 = "OFF"
End If
If Bat = 1 Then
Bats = "hight"
Else
Bats = " low"
End If
Pins = Pob
'----------------------------------------------
If O_f = 1 Then
Do
Pins = Pob
B = Inkey()
If B = "@" Then Exit Do
If Fd = 1 Then Rd1 = Rd1 + String(1 , B)
If B = "#" Then
Rd1 = ""
Fd = 1
End If
Loop
If Rd1 = "start" Then
O_f = 2
Print "#" ; Power1 ; "&" ; Bat ; "&" ; Pins ; "*"
End If
Else
Do
If Inkey() = "@" Then Exit Do
Print "@"
Print "#" ; Power1 ; "&" ; Bats ; "&" ; Pins ; "*"
Waitms 10
Loop
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "@" Then
Else
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd(dand) = Rd(dand) + String(1 , B)
End If
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B21 As Byte
B21 = 1
For B21 = 1 To 10
Rd(b21) = ""
Next
End If
Loop
Tdel = Val(rd(1))
Tcut = Val(rd(2))
Fnum = Val(rd(3))
Mode1 = Val(rd(4))
End If
Loop
End
$regfile = "m16def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200
Dim Er As Byte
Declare Function Show() As Byte
Config Portd.5 = Input
Config Portd.6 = Input
Config Portd.7 = Input
Config Portd.4 = Output
Reset Portd.4
Config Int0 = Falling
Config Int1 = Falling
Config Portc = Output
Enable Interrupts
Enable Int0
Enable Int1
Enable Urxc
Enable Utxc
Dim Go As Bit
Go = 0
On Int0 Menu
On Int1 On_off
Dim Tto As Word
Tto = 0
Dim Exdo As Byte
Exdo = 1
Dim Indoor As Bit
Indoor = 0
Dim Bw As Byte
Dim Ind As Byte
Dim Rd1(20) As String * 20
Dim Rsd As String * 20
Dim On_off_flag As Bit , Ismenu As Byte
Dim To_off As Bit , Showp As Byte
Dim Welcom As Bit
Dim I As Byte , Show1 As Byte , Inda As Byte
Dim A1 As Byte
Dim Fd As Byte , Ed As Bit , Pcc As Byte , Pcc1 As Byte
Dim Backmenu As Bit
Backmenu = 0
Fd = 0
Ed = 0
A1 = 1
To_off = 0
I = 0
On_off_flag = 0
Welcom = 0
Ismenu = 0
Showp = 0
Dim T1 As Byte , T2 As Byte , Power1 As String * 15 , Mode1 As Byte , Firenu As Byte
Readeeprom T1 , 0
Readeeprom T2 , 5
Readeeprom Mode1 , 10
Readeeprom Firenu , 15
If T1 = 255 Then
T1 = 1
Writeeeprom T1 , 0
Else
T1 = T1
End If
If T2 = 255 Then
T2 = 1
Writeeeprom T2 , 5
Else
T2 = T2
End If
If Mode1 = 255 Then
Mode1 = 1
Writeeeprom Mode1 , 10
Else
Mode1 = Mode1
End If
If Firenu = 255 Then
Firenu = 8
Writeeeprom Firenu , 15
Else
Firenu = Firenu
End If
Dim Ftime As Bit
Ftime = 0
'some routines to control the display are in the glcdKS108.lib file
$lib "glcdKS108.lib"
'First we define that we use a graphic LCD
Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Porta , Ce = 3 , Ce2 = 4 , Cd = 0 , Rd = 1 , Reset = 5 , Enable = 2
Dim B As Byte , I1 As Byte
Setfont Font8x8
Cls
Dim Dand As Byte
Dand = 1
Do
If On_off_flag = 1 Then
If Welcom = 1 Then
If Ftime = 0 Then
Print "#start@"
Ftime = 1
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd1(dand) = Rd1(dand) + String(1 , B)
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B2 As Byte
B2 = 1
For B2 = 1 To 10
Rd1(b2) = ""
Next
End If
Loop
End If
Power1 = Rd1(1)
Pcc = Val(rd1(3))
Portc = Pcc
Toggle Portc
Cls
Showpic 0 , 0 , Wel
Waitms 1500
Cls
Waitms 10
Setfont Font8x8
Showpic 0 , 0 , Head
Lcdat 4 , 0 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 0 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 0 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 0 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 0 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 0 , "TIME CUT : " ; T2
Else
Lcdat 7 , 0 , "TIME CUT : " ; "0" ; T2
End If
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
'------------------------------------------------------------------------
Exdo = 1
Welcom = 0
End If
If Ismenu = 0 Then
If Showp = 2 Then
Cls
Waitms 10
Setfont Font8x8
Showpic 0 , 0 , Head
Waitms 10
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
Showp = 0
End If
'------------------------------------------------
If To_off = 1 Then
Set Portd.4
Cls
Showpic 0 , 0 , Bye
Reset Portc.0
Reset Portc.1
Reset Portc.2
Reset Portc.3
Reset Portc.4
Reset Portc.5
Reset Portc.6
Reset Portc.7
Wait 3
Cls
Reset Portd.4
On_off_flag = 0
Fd = 0
Exdo = 0
Ismenu = 90
End If
Backmenu = 0
'------------------------------------------------
'------------------------------------------------------------------------
Waitms 10
If Exdo = 1 Then
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "@" Then
Else
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd1(dand) = Rd1(dand) + String(1 , B)
If Fd = 1 Then Rsd = Rsd + String(1 , B)
End If
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B21 As Byte
B21 = 1
For B21 = 1 To 10
Rd1(b21) = ""
Next
Rsd = ""
End If
Loop
If Len(rsd) = 11 Then
Power1 = Rd1(1)
Pcc = Val(rd1(3))
If Pcc = Pcc1 Then
Else
Portc = Pcc
Toggle Portc
Pcc1 = Pcc
End If
End If
Do
If Inkey() = "@" Then Exit Do
Print "@"
Print "#" ; T1 ; "&" ; T2 ; "&" ; Firenu ; "&" ; Mode1 ; "*"
Waitms 10
Loop
End If
If Pind.7 = 0 Then
Cls
Waitms 10
Showp = 2
End If
Else
Set Portd.4
If Showp = 1 Then
Cls
Setfont Font8x8
Showpic 0 , 0 , He
Showp = 2
End If
Select Case Ismenu
Case 1
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom Firenu , 15
If Firenu < 8 Then
Incr Firenu
Writeeeprom Firenu , 15
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom Firenu , 15
If Firenu > 1 Then
Decr Firenu
Writeeeprom Firenu , 15
If Firenu =< Mode1 Then
Select Case Firenu
Case 1
Mode1 = 1
Case 2
Mode1 = 2
Case 3
Mode1 = 3
Case 4
Mode1 = 5
Case 5
Mode1 = 8
Case 6
Mode1 = 10
Case 7
Mode1 = 12
End Select
Writeeeprom Mode1 , 10
End If
Show1 = Show()
Waitms 200
End If
End If
'-------------------------------------------------
Case 2
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom Mode1 , 10
Select Case Firenu
Case 1
If Mode1 < 1 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 2
If Mode1 < 2 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 3
If Mode1 < 3 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 4
If Mode1 < 5 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 5
If Mode1 < 8 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 6
If Mode1 < 10 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 7
If Mode1 < 12 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
Case 8
If Mode1 < 15 Then
Incr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
End Select
Elseif Pind.6 = 0 Then
Readeeprom Mode1 , 10
If Mode1 > 1 Then
Decr Mode1
Writeeeprom Mode1 , 10
Show1 = Show()
Waitms 200
End If
End If
'--------------------------------------------------
Case 3
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom T1 , 0
If T1 < 20 Then
Incr T1
Writeeeprom T1 , 0
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom T1 , 0
If T1 > 1 Then
Decr T1
Writeeeprom T1 , 0
Show1 = Show()
Waitms 200
End If
End If
'-----------------------------------------------------
Case 4
Show1 = Show()
If Pind.5 = 0 Then
Readeeprom T2 , 5
If T2 < 20 Then
Incr T2
Writeeeprom T2 , 5
Show1 = Show()
Waitms 200
End If
Elseif Pind.6 = 0 Then
Readeeprom T2 , 5
If T2 > 1 Then
Decr T2
Writeeeprom T2 , 5
Show1 = Show()
Waitms 200
End If
End If
'----------------------------------------------------
Case Else
Ismenu = 0
Exdo = 1
End Select
End If
End If
Loop
End
On_off:
Set Portd.4
If On_off_flag = 1 And Ismenu = 0 Then
Exdo = 0
To_off = 1
End If
If On_off_flag = 0 Then
Backmenu = 1
On_off_flag = 1
Welcom = 1
I = 0
To_off = 0
Exdo = 0
End If
Return
Menu:
If On_off_flag = 1 Then
Exdo = 0
Select Case Ismenu
Case 0
Showp = 1
Ismenu = 1
Case 1
Ismenu = 2
Case 2
Ismenu = 3
Case 3
Ismenu = 4
Case 4
Ismenu = 5
End Select
End If
Return
Function Show() As Byte
Select Case Ismenu
Lcdat 8 , 1 , "POWER CONECT:" ; Power1
Case 1
Lcdat 4 , 0 , "FIRE NUMBER : " ; "0" ; Firenu , 1
If Mode1 >= 10 Then
Lcdat 5 , 0 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 0 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 0 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 0 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 0 , "TIME CUT : " ; T2
Else
Lcdat 7 , 0 , "TIME CUT : " ; "0" ; T2
End If
'------------------------------------------------------------
Case 2
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1 , 1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1 , 1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
'----------------------------------------------------------
Case 3
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1 , 1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1 , 1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2
End If
'----------------------------------------------------------
Case 4
Lcdat 4 , 1 , "FIRE NUMBER : " ; "0" ; Firenu
If Mode1 >= 10 Then
Lcdat 5 , 1 , "WORK MODE : " ; Mode1
Else
Lcdat 5 , 1 , "WORK MODE : " ; "0" ; Mode1
End If
If T1 >= 10 Then
Lcdat 6 , 1 , "TIME DELAY : " ; T1
Else
Lcdat 6 , 1 , "TIME DELAY : " ; "0" ; T1
End If
If T2 >= 10 Then
Lcdat 7 , 1 , "TIME CUT : " ; T2 , 1
Else
Lcdat 7 , 1 , "TIME CUT : " ; "0" ; T2 , 1
End If
Case Else
End Select
End Function
Wel:
$bgf "WELL.BGF"
Bye:
$bgf "BYE.BGF"
Head:
$bgf "HEAD.BGF"
He:
$bgf "HE.BGF"
'end program
$include "font8x8.font" و اینم فرستنده :$regfile = "m16def.dat" ' specify the used micro
$crystal = 8000000 ' used crystal frequency
$baud = 19200
Enable Interrupts
Enable Urxc
Enable Utxc
Config Portb = Input
Config Portd.4 = Input
Config Portd.5 = Input
Pow Alias Pind.4
Bat Alias Pind.5
Pob Alias Pinb
Dim Tdel As Byte , Tcut As Byte , Fnum As Byte , Mode1 As Byte
Dim Power1 As String * 10
Dim Pins As Byte
Dim Fd As Bit
Dim Rd1 As String * 15
Dim Rd(20) As String * 20
Dim Rsd As String * 20
Dim O_f As Byte
O_f = 1
Dim Er As Byte
Dim Indoor As Bit
Indoor = 0
Dim B As Byte , Bw As Byte
Dim Bats As String * 5
Dim Dand As Byte
Dand = 1
Do
'-------------------------------------
If Pow = 1 Then
Power1 = " ON"
Else
Power1 = "OFF"
End If
If Bat = 1 Then
Bats = "hight"
Else
Bats = " low"
End If
Pins = Pob
'----------------------------------------------
If O_f = 1 Then
Do
Pins = Pob
B = Inkey()
If B = "@" Then Exit Do
If Fd = 1 Then Rd1 = Rd1 + String(1 , B)
If B = "#" Then
Rd1 = ""
Fd = 1
End If
Loop
If Rd1 = "start" Then
O_f = 2
Print "#" ; Power1 ; "&" ; Bat ; "&" ; Pins ; "*"
End If
Else
Do
If Inkey() = "@" Then Exit Do
Print "@"
Print "#" ; Power1 ; "&" ; Bats ; "&" ; Pins ; "*"
Waitms 10
Loop
Do
B = Inkey()
If B = "*" Then Exit Do
If B = "@" Then
Else
If B = "&" Then
Incr Dand
Else
If Fd = 1 Then Rd(dand) = Rd(dand) + String(1 , B)
End If
End If
If B = "#" Then
Fd = 1
Dand = 1
Dim B21 As Byte
B21 = 1
For B21 = 1 To 10
Rd(b21) = ""
Next
End If
Loop
Tdel = Val(rd(1))
Tcut = Val(rd(2))
Fnum = Val(rd(3))
Mode1 = Val(rd(4))
End If
Loop
End
دیدگاه