ايران ويج

نسخه‌ی کامل: مشکل در شبیه سازی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

من یک برنامه نوشته ام و وقتی می خواهم آن را با پروتئوس شبیه سازی کنم همیچ اتفاقی نمی افته. در حالی که وقتی کدشو که با بیسکام نوشته ام دو سه خط کم می کنم دوباره شروع به کار می کنه.

اسم خطا
کد:
PC=F4240 is outside of ROM space
آیا مشکل از برنامه ای است که در بیسکام نوشته ام؟

فایل مورد نظر:
کد:
http://smn-soft.persiangig.com/other/SMNsoft-T.rar
[/code]
مهندس حجم برنامت زیاده و تو میکرویی که می خوای جا نمی شه !!!!

بهتره فرضا اگه با مگا 16 نوشتی تو خط اول واسه مگا 32 تعریفش کنی !!!!
سلام
این پیغامو تو نرم افزار پروتئوس می ده. توی بیسکام هم وقتی کامپایل می کنم 24 درصد رو بیشتر نشون نمی ده.
این کار رو با مگا 128 هم امتحان کردم ولی باز هم همون پیغام رو داد...
درضمن حجم کد ها هم خیلی زیاد نیست.

حالا باید چی کار کنم؟
پروتئوس ورژن چنده ؟

نکنه که کرکش قدیمی باشه !

الان 7.6 با کرک ورژن 2 هستش !!!
سلام

فکر کنم مال من ورژن یک باشه. اگه میشه لینک کرک ورژن دوشو بدین.

شما ورژن دو دارین؟ اگه دارین این مدار در سیستم شما به درستی کار می کنه؟


ممنون
با کرک ورژن دو هم امتجان کردم ولی نشد.

باید چی کار کنم؟
مهندس من برنامه شما رو الان دیدم !

هر چی نگاه کردم نفهمیدم چی کار کردی !

فکر کنم عددی که می خوای بگیری از جدول برگشتیت بیشتر از حد تعیین شده هستش و واسه همون قاطی می کنه !!!

البته اگه قرار هستش که یه دماسنج درست کنی خیلی راحت تر از این کارهایی هستش که شما کردی !
من الان برنامه و نقشه ات رو یه تغییر کلی دادم و از سنسور LM35 استفاده کردم که نتیجه اش این شدش :




دماسنج با دقت دهم درجه با نمایشگر هفت قطعه ای !



این نقشه برنامه :

[تصویر:  uqpg0ue95rr9lwai5cao_thumb.png]
روش کلیک کنین تا بزرگشو ببین !


و فایل های مورد نیاز ( اصل برنامه و تست پروتئوس ) :



اینم برنامش :

کد php:
$regfile = "m16def.dat" : $crystal = 1000000

Config Portb 
= Output , Portd = Output

Config Adc 
= Single , Prescaler = Auto , Reference = Internal

Dim A 
As Word , W As Word , C As Word
Dim First 
As Word , Secend As Word , Thirt As Word

Start Adc

Do

   
A = Getadc(7) : A = A * 25

   
If A > 10000 Then :
      
First = 10 : Secend = 10 : Thirt = 10
   
Else :
      
First = A / 1000 : W = First * 1000
      A 
= A - W : Secend = A / 100
      W 
= Secend * 100 : A = A - W : Thirt = A / 10
      
If First = 0 Then First = 14
   End 
If

   For 
C = 0 To 50
      Set Portd.1
      Set Portd.2
      Reset Portd.0
      Portb 
= Lookup(first , Digits)
      
Reset Portb.7
      Waitms 10

      Set Portd.0
      Set Portd.2
      Reset Portd.1
      Portb 
= Lookup(secend , Digits)
      
Set Portb.7
      Waitms 10

      Set Portd.0
      Set Portd.1
      Reset Portd.2
      Portb 
= Lookup(thirt , Digits)
      
Reset Portb.7
      Waitms 10
   Next

Loop


End
'******** Data **********************************
Digits:
Data 63 , 6 , 91 , 79 , 102 , 109 , 125 , 7 , 127 , 111 , 64 , 128 , 56 , 70 , 00
'     
0    1   2    3    4     5     6     7   8     9     -    dp    L    +
'************************************************