سلام
در برنامه ای من درپایین قرار می دهم مشکالی که دارم این است که به یکی از پایه های میکرو پالسی وارد میشود و تعداد آن در ال سی دی نمایش داده می شود تا اینج مشکلی ندارم حال میخواهم این عدد بدست آمده را بر 40 تقسیم کرده و یک عدد اعشار به وجود می آید بعد میخواهم عدد اعشار را روند کنم و یک عدد اعشار دو رقمی را به وجود بیاورم بعد از آن می خواهم عدد اعشار را ربع کنم مثلا عدد اعشارم بین 1 تا 25 بود در متغیرم اعشار را 25 نشان دهد و ... بعد که اعشار ربع شد در کنار عدد دیگر صحیح قرار بگیرد و برناهمه دوباره ادامه دارد ولی اهنوز در این مرحله مشکل دارم که عدد صحیح را ربع کنم در زیر برناه ای رو نوشتم تا جایی که عدد اعشار را جدا میکنم در پرتیوس مشکلی ندارم ولی وقتی از select case استفاده میکنم بیسکام خطا میگیره نمی دونم مشکل کجاست کسی می تونه راهنمایی کنه چیکار کنم ممنون میشم
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising , Noise Cancel = 0
Config Portb.1 = Input
Config Portd.6 = Input
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.1 , Rs = Porta.0
Enable Icp1
On Icp1 Q1
Dim A As Word
Dim B As Word
Dim X As Single
Dim Z As String * 1
Dim E As String * 1
Dim F As String * 1
A = Capture1
Enable Interrupts
Main:
Counter1 = 0
Do
If Pind.6 = 1 Then
Enable Icp1
Elseif Pind.6 = 0 Then
Disable Capture1
If Portb.1 <> 0 Then
Print A
Lcd A
Waitms 100
End If
End If
Loop
End
Q1:
A = Capture1
Print A
Lcd A
Wait 3
Cls
Counter1 = 0
X = A / 40
Lcd X
Wait 3
Cls
Z = Fusing(x , "##.##"
Lcd Z
Wait 3
Cls
E = Mid(z , 4 , 2)
Lcd E
Wait 2
Cls
F = Mid(z , 1 , 2)
Lcd F
Wait 2
Cls
Select Case E
Case 1 To 25 :
E = 25
Lcd E
Case 26 To 50 :
E = 50
Lcd E
Case 51 To 75:
E = 75
Lcd E
Case 76 To 99 :
E = 00
Incr F
Lcd E
End Select
Return
در برنامه ای من درپایین قرار می دهم مشکالی که دارم این است که به یکی از پایه های میکرو پالسی وارد میشود و تعداد آن در ال سی دی نمایش داده می شود تا اینج مشکلی ندارم حال میخواهم این عدد بدست آمده را بر 40 تقسیم کرده و یک عدد اعشار به وجود می آید بعد میخواهم عدد اعشار را روند کنم و یک عدد اعشار دو رقمی را به وجود بیاورم بعد از آن می خواهم عدد اعشار را ربع کنم مثلا عدد اعشارم بین 1 تا 25 بود در متغیرم اعشار را 25 نشان دهد و ... بعد که اعشار ربع شد در کنار عدد دیگر صحیح قرار بگیرد و برناهمه دوباره ادامه دارد ولی اهنوز در این مرحله مشکل دارم که عدد صحیح را ربع کنم در زیر برناه ای رو نوشتم تا جایی که عدد اعشار را جدا میکنم در پرتیوس مشکلی ندارم ولی وقتی از select case استفاده میکنم بیسکام خطا میگیره نمی دونم مشکل کجاست کسی می تونه راهنمایی کنه چیکار کنم ممنون میشم
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600
Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising , Noise Cancel = 0
Config Portb.1 = Input
Config Portd.6 = Input
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.1 , Rs = Porta.0
Enable Icp1
On Icp1 Q1
Dim A As Word
Dim B As Word
Dim X As Single
Dim Z As String * 1
Dim E As String * 1
Dim F As String * 1
A = Capture1
Enable Interrupts
Main:
Counter1 = 0
Do
If Pind.6 = 1 Then
Enable Icp1
Elseif Pind.6 = 0 Then
Disable Capture1
If Portb.1 <> 0 Then
Print A
Lcd A
Waitms 100
End If
End If
Loop
End
Q1:
A = Capture1
Print A
Lcd A
Wait 3
Cls
Counter1 = 0
X = A / 40
Lcd X
Wait 3
Cls
Z = Fusing(x , "##.##"

Lcd Z
Wait 3
Cls
E = Mid(z , 4 , 2)
Lcd E
Wait 2
Cls
F = Mid(z , 1 , 2)
Lcd F
Wait 2
Cls
Select Case E
Case 1 To 25 :
E = 25
Lcd E
Case 26 To 50 :
E = 50
Lcd E
Case 51 To 75:
E = 75
Lcd E
Case 76 To 99 :
E = 00
Incr F
Lcd E
End Select
Return
دیدگاه