ايران ويج

نسخه‌ی کامل: تحلیل یه برنامه به زبان بیسیک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام مدتی بود دنبال یه برنامه فلاشر کم نورپنور یا همون فید بودم الحمدلله پیداش کردم یه نرم افزار داره از شرکت تیراژه که رایگانه بحر حال کدشو در زیر قرار میدم دوستانی که دستی در برنامه نویسی دارند یه تحلیل خط به خط کنند برامون برنامه رو تا ما هم بفهمیم چی شده؟فقط دوستان حرفه ای بیان :nerd: متشکرم

کد php:
'Genarated with LEDFFC by Tirajeh TEG.
'
other Proudct Listed in www.tirajeh-teg.ir

   $regfile 
"M8DEF.DAT"
   
$crystal 1000000

   Config Portb.1 
Output
   Config Portb.2 
Output
   Config Portc 
Output

   
Declare Sub Efct00
   
Declare Sub Initial_set
   
Declare Sub Initial_reset

   Dim Rpt_cnt_00 
As Byte Rpt_cnt_01 As Byte Rpt_cnt_02 As Byte
   Dim Pwm_t_on 
As Byte Pwm_t_of As Byte

   
Do
      
Call Efct00
   Loop

Sub Efct00
:
   
Pwm_t_on 1
   Pwm_t_of 
99
   
For Rpt_cnt_00 1 To 100
      
For Rpt_cnt_01 0 To 1
         Call Initial_set
         
For Rpt_cnt_02 0 To Pwm_t_on
            Waitus 50
         Next
         Call Initial_reset
         
For Rpt_cnt_02 0 To Pwm_t_of
            Waitus 50
         Next
      Next
      Pwm_t_on 
Pwm_t_on 1
      Pwm_t_of 
Pwm_t_of 1
   Next
   Call Initial_set

   Pwm_t_on 
99
   Pwm_t_of 
1
   
For Rpt_cnt_00 1 To 100
      
For Rpt_cnt_01 0 To 1
         Call Initial_set
         
For Rpt_cnt_02 0 To Pwm_t_on
            Waitus 50
         Next
         Call Initial_reset
         
For Rpt_cnt_02 0 To Pwm_t_of
            Waitus 50
         Next
      Next
      Pwm_t_on 
Pwm_t_on 1
      Pwm_t_of 
Pwm_t_of 1
   Next
   Call Initial_set
End Sub

Sub Initial_set
:
   
Set Portb.1
   Set Portb.2
   Portc 
255
End Sub

Sub Initial_reset
:
   
Reset Portb.1
   Reset Portb.2
   Portc 
0
End Sub

End 
(۱۳-فروردین-۱۳۹۲, ۱۲:۱۷:۱۳)رسول21 نوشته است: [ -> ]با سلام مدتی بود دنبال یه برنامه فلاشر کم نورپنور یا همون فید بودم الحمدلله پیداش کردم یه نرم افزار داره از شرکت تیراژه که رایگانه بحر حال کدشو در زیر قرار میدم دوستانی که دستی در برنامه نویسی دارند یه تحلیل خط به خط کنند برامون برنامه رو تا ما هم بفهمیم چی شده؟فقط دوستان حرفه ای بیان :nerd: متشکرم

کد php:
'Genarated with LEDFFC by Tirajeh TEG.
'
other Proudct Listed in www.tirajeh-teg.ir

 $regfile 
"M8DEF.DAT" نوع میکرو
  $crystal 
1000000   سرعت کاری
 در اینجا پایه ها به عنوان خروجی تعریف شدن
 Config Portb.1 
=  Output
 Config Portb.2 
Output
 Config Portc 
Output
تعریف 
sub 
 که با دستور
 
<call
فراخونی میشه ..بجایی که باید و دستورات رو هی بنویسه میاد و
 
<call>
 
رو میزاره که برای خودش راحتر باشه که هم حجم برنامش کم تر بشه 
و هم قابل فهم تر باشه
 
Declare Sub Efct00
 
Declare Sub Initial_set
 
Declare Sub Initial_reset
تعریف متغییر
 Dim Rpt_cnt_00 
As Byte Rpt_cnt_01 As Byte Rpt_cnt_02 As Byte
 Dim Pwm_t_on 
As Byte Pwm_t_of As Byte
حلقه اصلی
 
Do
صدا زده sub efect00
 Call Efct00
 Loop

Sub Efct00
:
مقدار دهی متغییر
 Pwm_t_on 
1
 Pwm_t_of 
99
حلقه 
for 
که از مقدار 1 شروع میشه و وقتی شد 100 ازش خارج میشه
 
For Rpt_cnt_00 1 To 100
حلقه 
for
 
که از مقدار 0 شروع میشه و وقتی شد 1 ازش خارج میشه
 
For Rpt_cnt_01 0 To 1
صدا زده Initial_set
 Call Initial_set
حلقه 
for 
که از مقدار 0 شروع میشه و وقتی شد مقدار متغییر  
Pwm_t_on>
ازش خارج میشه
 
For Rpt_cnt_02 0 To Pwm_t_on
 Waitus 50
 Next
 Call Initial_reset
 
For Rpt_cnt_02 0 To Pwm_t_of
 Waitus 50
 Next
 Next
 Pwm_t_on 
Pwm_t_on 1
 Pwm_t_of 
Pwm_t_of 1
 Next
 Call Initial_set

 Pwm_t_on 
99
 Pwm_t_of 
1
 
For Rpt_cnt_00 1 To 100
 
For Rpt_cnt_01 0 To 1
 Call Initial_set
 
For Rpt_cnt_02 0 To Pwm_t_on
 Waitus 50
 Next
 Call Initial_reset
 
For Rpt_cnt_02 0 To Pwm_t_of
 Waitus 50
 Next
 Next
 Pwm_t_on 
Pwm_t_on 1
 Pwm_t_of 
Pwm_t_of 1
 Next
 Call Initial_set
End Sub

Sub Initial_set
:
 
Set Portb.1
 Set Portb.2
 Portc 
255
End Sub

Sub Initial_reset
:
 
Reset Portb.1
 Reset Portb.2
 Portc 
0
End Sub

End 
خیلی اسونه برنامش.. همنجوری که من توضیح دادم تا اخرش ادامه پیدا میکنه...
در مورد sub
ببین بعضی وقتا من یه زیر برنامه دارم که میخوام اجرا بشه با دستور call انگار من اون دستورات رو اوردم و اونجا نوشتمش...همین..