باسلام
من در مورد برنامه زیر مشکلی داشتم در سیمولاتور بسکام چکش کردم جواب می دهد اما پرش دارد در پروتئوس هم برنامه پرش دارد نمی دانم شاید میکرو ریست می شود به طوری که اصلا نمی توان صفحه نمایش را خواند
از اساتید استدعا دارم راهنماییم کنند
regfile = "M16def.dat"
$crystal = 1000000
Config Portd = Output
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input
Config Pinb.5 = Input
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 20 * 4
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Portd = Output
Config Portb = Input
Config Debounce = 50
Start Adc
Seting Alias Pinb.2 : Up Alias Pinb.3 : Down Alias Pinb.4 : Menu Alias Pinb.5
Dim T0 As Word , T1 As Word , Temp As Word
Dim A As Byte , B As Word , C As Byte , D As Byte , E As Byte , F As Single
Dim O As Byte , Of As Byte , M As Byte , S As Byte , , Cx As Byte
Dim X As Word , Y As Word , Z As Word , Ch As Single , Tc As Single , Tr As Single
Dim W As Word , U As Single , J As Single , L As Single , H As Single , Q As Single,
Dim V As Single , R As Single , Pv As Single , Pc As Single , N As Single
Declare Sub Tempsens
Declare Sub Key
Declare Sub Llcd
Cursor Off
Do
Call Key
Call Tempsens
Call Llcd
Loop
End
'============================================ ===================================
Sub Key
If M <> 0 Then
If Seting = 0 Then
Incr S
Waitms 200
If S > 3 Then S = 0
End If
If S = 1 Then
Locate 2 , 4
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
If S = 2 Then
Locate 3 , 3
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
If S = 3 Then
Locate 4 , 4
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
End If
If Menu = 0 Then
Incr M
Cls
Waitms 1000
If M > 1 Then M = 0
Cls
O = C
Of = D
Cx = E
S = 0
End If
If Up = 0 Then
If S = 1 Then
Incr O
Waitms 50
If M = 1 Then C = O
End If
If S = 2 Then
Incr Of
Waitms 50
If M = 1 Then D = Of
End If
If S = 3 Then
Incr Cx
Waitms 50
If M = 1 Then E = Cx
End If
End If
If Down = 0 Then
If S = 1 Then
Decr O
Waitms 150
If M = 1 Then C = O
End If
If S = 2 Then
Decr Of
Waitms 150
If M = 1 Then D = Of
End If
If S = 3 Then
Decr Cx
Waitms 150
If M = 1 Then E = Cx
End If
End If
End Sub
'============================================ ===================================
Sub Tempsens
X = Getadc(0)
Y = Getadc(1)
Temp = X - Y
Temp = Temp / 4
Ch = Temp * 1.8
Ch = Ch + 502
Tc = T1 + 470
Tr = Ch / Tc
Z = Getadc(2)
Z = Z / 3
U = Tr ^ 6
U = 0.16934 * U
F = Log(tr)
F = 1.28862 * F
J = 1 / Tr
J = 6.09648 * J
H = 5.92714 - J
H = H - F
H = H + Y
L = Tr ^ 6
L = 0.4357 * L
Q = Log(tr)
Q = 13.4721 * Q
V = 1 / Tr
V = 15.6875 * V
N = 15.2518 - V
N = N - Q
N = N + L
R = W * N
R = R + H
R = Exp(r)
Pv = Pc * R
Pv = A
Waitms 1000
End Sub
'============================================ ===================================
Sub Llcd
If M = 0 Then
Locate 2 , 1
Lcd "Temp=" ; Temp ; Chr(0) ; "c"
Locate 3 , 1
Lcd "pv=" ; A ; "psia"
Locate 4 , 1
Lcd "p=" ; Z ; "psia"
End If
If M = 1 Then
Locate 2 , 1
Lcd "pc=" ; C ; " " ; "psia"
Locate 3 , 1
Lcd "w=" ; D ; " "
Locate 4 , 1
Lcd "T1=" ; E ; " "
End If
من در مورد برنامه زیر مشکلی داشتم در سیمولاتور بسکام چکش کردم جواب می دهد اما پرش دارد در پروتئوس هم برنامه پرش دارد نمی دانم شاید میکرو ریست می شود به طوری که اصلا نمی توان صفحه نمایش را خواند
از اساتید استدعا دارم راهنماییم کنند
regfile = "M16def.dat"
$crystal = 1000000
Config Portd = Output
Config Pinb.2 = Input
Config Pinb.3 = Input
Config Pinb.4 = Input
Config Pinb.5 = Input
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
Config Lcd = 20 * 4
Config Adc = Single , Prescaler = Auto , Reference = Internal
Config Portd = Output
Config Portb = Input
Config Debounce = 50
Start Adc
Seting Alias Pinb.2 : Up Alias Pinb.3 : Down Alias Pinb.4 : Menu Alias Pinb.5
Dim T0 As Word , T1 As Word , Temp As Word
Dim A As Byte , B As Word , C As Byte , D As Byte , E As Byte , F As Single
Dim O As Byte , Of As Byte , M As Byte , S As Byte , , Cx As Byte
Dim X As Word , Y As Word , Z As Word , Ch As Single , Tc As Single , Tr As Single
Dim W As Word , U As Single , J As Single , L As Single , H As Single , Q As Single,
Dim V As Single , R As Single , Pv As Single , Pc As Single , N As Single
Declare Sub Tempsens
Declare Sub Key
Declare Sub Llcd
Cursor Off
Do
Call Key
Call Tempsens
Call Llcd
Loop
End
'============================================ ===================================
Sub Key
If M <> 0 Then
If Seting = 0 Then
Incr S
Waitms 200
If S > 3 Then S = 0
End If
If S = 1 Then
Locate 2 , 4
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
If S = 2 Then
Locate 3 , 3
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
If S = 3 Then
Locate 4 , 4
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
Waitms 10
Cursor On Blink
Waitms 10
Cursor Off Noblink
End If
End If
If Menu = 0 Then
Incr M
Cls
Waitms 1000
If M > 1 Then M = 0
Cls
O = C
Of = D
Cx = E
S = 0
End If
If Up = 0 Then
If S = 1 Then
Incr O
Waitms 50
If M = 1 Then C = O
End If
If S = 2 Then
Incr Of
Waitms 50
If M = 1 Then D = Of
End If
If S = 3 Then
Incr Cx
Waitms 50
If M = 1 Then E = Cx
End If
End If
If Down = 0 Then
If S = 1 Then
Decr O
Waitms 150
If M = 1 Then C = O
End If
If S = 2 Then
Decr Of
Waitms 150
If M = 1 Then D = Of
End If
If S = 3 Then
Decr Cx
Waitms 150
If M = 1 Then E = Cx
End If
End If
End Sub
'============================================ ===================================
Sub Tempsens
X = Getadc(0)
Y = Getadc(1)
Temp = X - Y
Temp = Temp / 4
Ch = Temp * 1.8
Ch = Ch + 502
Tc = T1 + 470
Tr = Ch / Tc
Z = Getadc(2)
Z = Z / 3
U = Tr ^ 6
U = 0.16934 * U
F = Log(tr)
F = 1.28862 * F
J = 1 / Tr
J = 6.09648 * J
H = 5.92714 - J
H = H - F
H = H + Y
L = Tr ^ 6
L = 0.4357 * L
Q = Log(tr)
Q = 13.4721 * Q
V = 1 / Tr
V = 15.6875 * V
N = 15.2518 - V
N = N - Q
N = N + L
R = W * N
R = R + H
R = Exp(r)
Pv = Pc * R
Pv = A
Waitms 1000
End Sub
'============================================ ===================================
Sub Llcd
If M = 0 Then
Locate 2 , 1
Lcd "Temp=" ; Temp ; Chr(0) ; "c"
Locate 3 , 1
Lcd "pv=" ; A ; "psia"
Locate 4 , 1
Lcd "p=" ; Z ; "psia"
End If
If M = 1 Then
Locate 2 , 1
Lcd "pc=" ; C ; " " ; "psia"
Locate 3 , 1
Lcd "w=" ; D ; " "
Locate 4 , 1
Lcd "T1=" ; E ; " "
End If
دیدگاه