امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در بسکام(اضطراری)
نویسنده پیام
alikiller990 آفلاین
تازه وارد

ارسال‌ها: 11
موضوع‌ها: 5
تاریخ عضویت: فروردین ۱۳۹۴

تشکرها : 9
( 0 تشکر در 0 ارسال )
ارسال: #1
مشکل در بسکام(اضطراری)
سلام به دوستان عزیز.
کد برنامه ی ماشین حساب ساده به زبان بیسیک رو دارم که توی پروتئوس درست اجرا میشه ولی وقتی مدارو میبندم این عبارت به صورت چشمک زن ظاهر میشه:
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
(آخرین ویرایش در این ارسال: ۰۷-خرداد-۱۳۹۴, ۰۱:۳۴:۰۸، توسط omid_phoenix.)
۰۵-خرداد-۱۳۹۴, ۱۷:۴۸:۵۷
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #2
RE: مشکل در بسکام(اضطراری)
اگه میخوای زودتر نتیجه بگیری شبیه ساز و سورس رو زیپش کن و پیوستش کن.
بعدشم اگه میخوای کد بزاری از اون علامت مربع استفاده کن تا اینطوری نشه

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۰۵-خرداد-۱۳۹۴, ۲۰:۵۱:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sharin, kimiafars
vigraz آفلاین
عضو افتخاری
****

ارسال‌ها: 164
موضوع‌ها: 0
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 341
( 336 تشکر در 151 ارسال )
ارسال: #3
RE: مشکل در بسکام(اضطراری)
(۰۵-خرداد-۱۳۹۴, ۱۷:۴۸:۵۷)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

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

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


موفق باشيد
(آخرین ویرایش در این ارسال: ۰۷-خرداد-۱۳۹۴, ۰۰:۴۲:۲۷، توسط vigraz.)
۰۶-خرداد-۱۳۹۴, ۱۷:۳۳:۲۹
ارسال‌ها
پاسخ
تشکر شده توسط : omid_phoenix, sharin, alikiller990


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] خواندن داده های یک فایل روی هارد در برنامه بسکام Ambassador 1 739 ۲۸-تير-۱۳۹۹, ۱۶:۱۴:۱۴
آخرین ارسال: Ambassador
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
  [سوال] کانتر در بسکام questnet 7 3,486 ۱۲-مرداد-۱۳۹۷, ۰۱:۵۵:۵۴
آخرین ارسال: questnet
  مشکل در کار با تایمر 1 در بسکام klick 3 4,535 ۳۰-بهمن-۱۳۹۵, ۰۴:۰۴:۴۲
آخرین ارسال: omid_phoenix
  افکت کم نور و پر نور شدن تدریجی با بسکام؟ رسول21 19 18,305 ۲۱-بهمن-۱۳۹۵, ۱۴:۲۹:۴۲
آخرین ارسال: hadikh73
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
Question [فوری] اتصال lcd گرافیکی به پایه های دلخواه میکرو در بسکام behzadsen 4 4,337 ۰۵-دى-۱۳۹۵, ۱۵:۲۵:۳۰
آخرین ارسال: behzadsen
  ولتمتر با AVR و بسکام electroavr 163 141,219 ۰۹-شهریور-۱۳۹۵, ۰۹:۱۹:۲۴
آخرین ارسال: alimogmov
  [سوال] کتابخانه بسکام برای ks0108 mmolah 1 2,736 ۰۳-خرداد-۱۳۹۵, ۰۷:۵۵:۲۵
آخرین ارسال: mmolah
  [سوال] سوالی راجع به بسکام mohamadgmail 1 2,117 ۲۷-آذر-۱۳۹۴, ۰۲:۴۷:۰۴
آخرین ارسال: omid_phoenix

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS