ايران ويج

نسخه‌ی کامل: مشکل در بسکام(اضطراری)
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام به دوستان عزیز.
کد برنامه ی ماشین حساب ساده به زبان بیسیک رو دارم که توی پروتئوس درست اجرا میشه ولی وقتی مدارو میبندم این عبارت به صورت چشمک زن ظاهر میشه:
0+0=0.0
من تازه کارم و خیلی وارد نیستم شاید از چیزهای پیش پا افتاده باشه که من بلد نیستم مثلا فیوز بیت ها و اینا
کد و عکس رو هم قرار میدم.من هر وقت این سایت سوالم رو مطرح میکنم بهم جواب میدین واقعا ازتون ممنونم
کد:
$regfile = "m16adef.dat"
$crystal = 1000000
Dim A As Word
Dim A1 As Word
Dim A2 As Word
Dim A3 As Word
Dim X As String * 2
Dim B As Word
Dim B1 As Word
Dim B2 As Word
Dim B3 As Word
Dim D As Single
Dim K1 As Byte
Dim K2 As Byte
Dim C As Byte
Config Kbd = Portb , Debounce = 50 , Delay = 100
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2

'*********************************

Main:

C = 0
Cls
Locate 1 , 5
Lcd "WELCOME"

'*********************************

Pro1:

K1 = Getkbd()
If K1 = 16 Then Goto Pro1
K2 = Lookup(k1 , Dat)
If K2 >= 10 Then
If K2 = 40 Then Goto Main
If K2 = 50 Then Goto Pro1
C = 0
Goto Pro3
End If

Incr C

If C = 1 Then
A1 = K2
A = A1
End If

If C = 2 Then
A2 = K2
A = A1 * 10
A = A + A2
End If

If C = 3 Then
A3 = K2
A1 = A1 * 100
A2 = A2 * 10
A = A1 + A2
A = A + A3
End If

Cls
Lcd A
If C = 3 Then
C = 0

'*********************************

Pro2:

K1 = Getkbd()
If K1 = 16 Then Goto Pro2
K2 = Lookup(k1 , Dat)
If K2 < 10 Then Goto Pro2
If K2 = 40 Then Goto Main
If K2 = 50 Then Goto Pro2
Goto Pro3
End If
Waitms 100
Goto Pro1

'*********************************

Pro3:

K2 = K2 / 10
Decr K2
X = Lookupstr(k2 , Sdat)
Cls
Lcd A ; X
Wait 1

'*********************************

Pro4:

K1 = Getkbd()
If K1 = 16 Then Goto Pro4
K2 = Lookup(k1 , Dat)
If K2 >= 10 Then
If K2 = 40 Then Goto Main
C = 0
Goto Pro6
End If

Incr C

If C = 1 Then
B1 = K2
B = B1
End If

If C = 2 Then
B2 = K2
B = B1 * 10
B = B + B2
End If

If C = 3 Then
B3 = K2
B1 = B1 * 100
B2 = B2 * 10
B = B1 + B2
B = B + B3
End If

Cls
Lcd A ; X ; B
If C = 4 Then

'*********************************

Pro5:

K1 = Getkbd()
If K1 = 16 Then Goto Pro5
K2 = Lookup(k1 , Dat)
If K1 <> 50 Then Goto Pro5
C = 0
Goto Pro6
End If
Waitms 100
Goto Pro4

'*********************************

Pro6:

Select Case X

Case Is = "/"
D = A / B

Case Is = "*"
D = A * B

Case Is = "-"
D = A - B

Case Is = "+"
D = A + B

End Select

Cls
Lcd A ; X ; B ; "=" ; D
Wait 1

'*********************************

Pro7:

K1 = Getkbd()
If K1 = 16 Then Goto Pro7
Goto Main

'*********************************

Dat:

Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 20 , 1 , 2 , 3 , 30 , 40 , 0 , 50 , 60

'*********************************

Sdat:

Data "/" , "*" , "-" , "ON" , "=" , "+"

لینک عکس
http://uploadkon.ir/fl/d/Njk4NjI%3D
اگه میخوای زودتر نتیجه بگیری شبیه ساز و سورس رو زیپش کن و پیوستش کن.
بعدشم اگه میخوای کد بزاری از اون علامت مربع استفاده کن تا اینطوری نشه
(۰۵-خرداد-۱۳۹۴, ۱۷:۴۸:۵۷)alikiller990 نوشته است: [ -> ]سلام به دوستان عزیز.
کد برنامه ی ماشین حساب ساده به زبان بیسیک رو دارم که توی پروتئوس درست اجرا میشه ولی وقتی مدارو میبندم این عبارت به صورت چشمک زن ظاهر میشه:
0+0=0.0
من تازه کارم و خیلی وارد نیستم شاید از چیزهای پیش پا افتاده باشه که من بلد نیستم مثلا فیوز بیت ها و اینا
کد و عکس رو هم قرار میدم.من هر وقت این سایت سوالم رو مطرح میکنم بهم جواب میدین واقعا ازتون ممنونم
$regfile = "m16adef.dat"
$crystal = 1000000
Dim A As Word
Dim A1 As Word
Dim A2 As Word
Dim A3 As Word
Dim X As String * 2
Dim B As Word
Dim B1 As Word
Dim B2 As Word
Dim B3 As Word
Dim D As Single
Dim K1 As Byte
Dim K2 As Byte
Dim C As Byte
Config Kbd = Portb , Debounce = 50 , Delay = 100
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2

'*********************************

Main:

C = 0
Cls
Locate 1 , 5
Lcd "WELCOME"

'*********************************

Pro1:

K1 = Getkbd()
If K1 = 16 Then Goto Pro1
K2 = Lookup(k1 , Dat)
If K2 >= 10 Then
If K2 = 40 Then Goto Main
If K2 = 50 Then Goto Pro1
C = 0
Goto Pro3
End If

Incr C

If C = 1 Then
A1 = K2
A = A1
End If

If C = 2 Then
A2 = K2
A = A1 * 10
A = A + A2
End If

If C = 3 Then
A3 = K2
A1 = A1 * 100
A2 = A2 * 10
A = A1 + A2
A = A + A3
End If

Cls
Lcd A
If C = 3 Then
C = 0

'*********************************

Pro2:

K1 = Getkbd()
If K1 = 16 Then Goto Pro2
K2 = Lookup(k1 , Dat)
If K2 < 10 Then Goto Pro2
If K2 = 40 Then Goto Main
If K2 = 50 Then Goto Pro2
Goto Pro3
End If
Waitms 100
Goto Pro1

'*********************************

Pro3:

K2 = K2 / 10
Decr K2
X = Lookupstr(k2 , Sdat)
Cls
Lcd A ; X
Wait 1

'*********************************

Pro4:

K1 = Getkbd()
If K1 = 16 Then Goto Pro4
K2 = Lookup(k1 , Dat)
If K2 >= 10 Then
If K2 = 40 Then Goto Main
C = 0
Goto Pro6
End If

Incr C

If C = 1 Then
B1 = K2
B = B1
End If

If C = 2 Then
B2 = K2
B = B1 * 10
B = B + B2
End If

If C = 3 Then
B3 = K2
B1 = B1 * 100
B2 = B2 * 10
B = B1 + B2
B = B + B3
End If

Cls
Lcd A ; X ; B
If C = 4 Then

'*********************************

Pro5:

K1 = Getkbd()
If K1 = 16 Then Goto Pro5
K2 = Lookup(k1 , Dat)
If K1 <> 50 Then Goto Pro5
C = 0
Goto Pro6
End If
Waitms 100
Goto Pro4

'*********************************

Pro6:

Select Case X

Case Is = "/"
D = A / B

Case Is = "*"
D = A * B

Case Is = "-"
D = A - B

Case Is = "+"
D = A + B

End Select

Cls
Lcd A ; X ; B ; "=" ; D
Wait 1

'*********************************

Pro7:

K1 = Getkbd()
If K1 = 16 Then Goto Pro7
Goto Main

'*********************************

Dat:

Data 7 , 8 , 9 , 10 , 4 , 5 , 6 , 20 , 1 , 2 , 3 , 30 , 40 , 0 , 50 , 60

'*********************************

Sdat:

Data "/" , "*" , "-" , "ON" , "=" , "+"

لینک عکس
http://uploadkon.ir/fl/d/Njk4NjI%3D

سلام
اگر مدار همان مدار عكس ارسالي شماست مشخص است كه از كريستال خارجي
استفاده نكرده ايد
شما بايد در كامپايل فيوز بيتها را براي نوسان داخلي ميكرو تنظيم
كنيد با فركانس يك مگاهرتز
اگر براي كامپايل از نرم افزار بسكام استفاده ميكنيد
در قسمت فيوز بيتها تمام حالتها پيش بيني شده است و با يك
تيك ميتوانيد چهار فيوز بيت اصلي را تنظيم كنيد

كد برنامه اگر از جاي معتبري است نبايد مشكلي داشته باشد البته من
هنوز انرا كاملا تحليل نكرده ام اما خودتان هم ميگوييد كه در شبيه ساز
جوابها درست است و تعريف كريستال هم در برنامه ارتباطي
به تعريف فيوز بيتهاي براي نوسان داخلي ندارد يعني در برنامه ميكرو
اولويت بر تعريف فيوز بيت است وبعد كد برنامه


موفق باشيد