با سلام خدمت دوستان :
من دو برنامه رو میخواهم با هم ترکیب کنم :
:NO: برنامه سنسور آلتراسونیک را دارم (SRF04) :
$regfile = "m16adef.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0
Config Portd.4 = Output
Trigger Alias Portd.4
Trigger = 0
Config Portd.5 = Input
Config Portd.7 = Output
Led Alias Portd.7
Led = 0
Dim A As Word
Dim S As Single
Config Single = Scientific , Digits = 2
Const K = 0.1725
Waitms 50
Cursor Off
Cls
Lcd "SRF-05"
Locate 2 , 1
Lcd "AUTO Range"
Wait 3
Do
Trigger = 1
Waitus 15
Trigger = 0
Waitus 10
Pulsein A , Pind , 5 , 1
S = A * K
Cls
Locate 2 , 1
Lcd "dis: " ; S ; " cm"
If S < 20 Then
Led = 1
Waitms 20
Led = 0
End If
Waitms 100
Loop
End
:NO: و این هم برنامه صفحه کلید که عدد از کیبورد بگیره و روی LCD نمایش میده :
$regfile = "m16def.dat"
$crystal = 8000000
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Lcd = 16 * 2
Dim A As Byte
Cls : Home
Do
Locate 1 , 1 : Lcd "pleae the h = " ; A
L1:
A = Getkbd()
If A = 16 Then Goto L1
A = Lookup(a , Dat)
If A > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 12 , 4 , 5 , 6 , 13 , 1 , 2 , 3 , 14 , 11 , 0 , 12 , 15
$regfile = "m16def.dat"
$crystal = 8000000
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Lcd = 16 * 2
Dim A As Byte
Cls : Home
Do
Locate 1 , 1 : Lcd "pleae the h = " ; A
L1:
A = Getkbd()
If A = 16 Then Goto L1
A = Lookup(a , Dat)
If A > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 12 , 4 , 5 , 6 , 13 , 1 , 2 , 3 , 14 , 11 , 0 , 12 , 15
:NO: حالا من این دو برنامه رو با هم بدین صورت تلفیق کردم :
$regfile = "m16adef.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Portc.0 = Output
Trigger Alias Portc.4
Trigger = 0
Config Portc.1 = Input
Config Portc.3 = Output
Led Alias Portc.3
Led = 0
Dim A As Word
Dim S As Single
Dim C As Byte
Config Single = Scientific , Digits = 2
Const K = 0.1725
Waitms 50
Cursor Off
Cls
Lcd "SRF-05"
Locate 2 , 1
Lcd "AUTO Range"
Led = 1
Waitms 100
Led = 0
Wait 3
Do
L1:
Trigger = 1
Waitus 15
Trigger = 0
Waitus 10
Pulsein A , Pinc , 5 , 1
S = A * K
Cls
Locate 2 , 1
Lcd "dis: " ; S ; " cm"
If C < 20 Then
Led = 1
Waitms 20
Led = 0
End If
Waitms 100
C = Getkbd()
If C = 16 Then Goto L1
C = Lookup(c , Dat)
If C > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 10 , 1 , 2 , 3 , 10 , 11 , 0 , 12 , 10
ولی وقتی روی برد بورد میبندم ، عدد از صفحه کلید گرفته میشه ، اما یک ثانیه بعدش عدد 16 یا 165 نمایش داده میشه !!!
دوستان میتونن راهنمایی کنن ، کجای برنامه مشکل داره ؟؟؟؟
من دو برنامه رو میخواهم با هم ترکیب کنم :
:NO: برنامه سنسور آلتراسونیک را دارم (SRF04) :
$regfile = "m16adef.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0
Config Portd.4 = Output
Trigger Alias Portd.4
Trigger = 0
Config Portd.5 = Input
Config Portd.7 = Output
Led Alias Portd.7
Led = 0
Dim A As Word
Dim S As Single
Config Single = Scientific , Digits = 2
Const K = 0.1725
Waitms 50
Cursor Off
Cls
Lcd "SRF-05"
Locate 2 , 1
Lcd "AUTO Range"
Wait 3
Do
Trigger = 1
Waitus 15
Trigger = 0
Waitus 10
Pulsein A , Pind , 5 , 1
S = A * K
Cls
Locate 2 , 1
Lcd "dis: " ; S ; " cm"
If S < 20 Then
Led = 1
Waitms 20
Led = 0
End If
Waitms 100
Loop
End
:NO: و این هم برنامه صفحه کلید که عدد از کیبورد بگیره و روی LCD نمایش میده :
$regfile = "m16def.dat"
$crystal = 8000000
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Lcd = 16 * 2
Dim A As Byte
Cls : Home
Do
Locate 1 , 1 : Lcd "pleae the h = " ; A
L1:
A = Getkbd()
If A = 16 Then Goto L1
A = Lookup(a , Dat)
If A > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 12 , 4 , 5 , 6 , 13 , 1 , 2 , 3 , 14 , 11 , 0 , 12 , 15
$regfile = "m16def.dat"
$crystal = 8000000
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Lcd = 16 * 2
Dim A As Byte
Cls : Home
Do
Locate 1 , 1 : Lcd "pleae the h = " ; A
L1:
A = Getkbd()
If A = 16 Then Goto L1
A = Lookup(a , Dat)
If A > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 12 , 4 , 5 , 6 , 13 , 1 , 2 , 3 , 14 , 11 , 0 , 12 , 15
:NO: حالا من این دو برنامه رو با هم بدین صورت تلفیق کردم :
$regfile = "m16adef.dat"
$crystal = 8000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , Rs = Portd.2 , E = Portd.3
Config Kbd = Portb , Debounce = 200 , Delay = 200
Config Portc.0 = Output
Trigger Alias Portc.4
Trigger = 0
Config Portc.1 = Input
Config Portc.3 = Output
Led Alias Portc.3
Led = 0
Dim A As Word
Dim S As Single
Dim C As Byte
Config Single = Scientific , Digits = 2
Const K = 0.1725
Waitms 50
Cursor Off
Cls
Lcd "SRF-05"
Locate 2 , 1
Lcd "AUTO Range"
Led = 1
Waitms 100
Led = 0
Wait 3
Do
L1:
Trigger = 1
Waitus 15
Trigger = 0
Waitus 10
Pulsein A , Pinc , 5 , 1
S = A * K
Cls
Locate 2 , 1
Lcd "dis: " ; S ; " cm"
If C < 20 Then
Led = 1
Waitms 20
Led = 0
End If
Waitms 100
C = Getkbd()
If C = 16 Then Goto L1
C = Lookup(c , Dat)
If C > 9 Then Goto L1
Loop
End
Dat:
Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 10 , 1 , 2 , 3 , 10 , 11 , 0 , 12 , 10
ولی وقتی روی برد بورد میبندم ، عدد از صفحه کلید گرفته میشه ، اما یک ثانیه بعدش عدد 16 یا 165 نمایش داده میشه !!!
دوستان میتونن راهنمایی کنن ، کجای برنامه مشکل داره ؟؟؟؟

دیدگاه