یکشنبه 20 بهمن 1392 @ 00:45

برنامه کد هگز آماده فلاشر برای میکرو

توضیح برنامه:


این برنامه یک برنامه ساده برای کنترل 2 چراغ قرمز در یک چهار راه است طرز کار ان بدین گونه است که هنگامی که لامپ قرمز چراغ اول روشن است لامپ سبز چراغ دوم روشن است و چراغ  عابر پیاده اول روشن و چراغ عابر پیاده دوم خاموش است .


سپس بعد ازمدت 50 ثانیه همچنان که لامپ قرمز اول روشن  است لامپ سبز چراغ دوم خاموش شده ولامپ زرد چراغ دوم روشن می شود و چراغ عابر پیاده اول به علامت   هشدار به مدت 10 ثانی به صورت چشمک زن روشن و خاموش می شود (حالت دوم)وسپس بعد از این 10 ثانیه مدار به حالت سوم رفته و بعد از ان هم به حالت چهارم می رود وبعد دوباره به حالت اول برگشته و این حلقه ادامه پیدا میکند.حالت سوم و چهادم هم مثل حالت اول و دوم کار می کند با این تفاوت که وضعیت هدایت چراغ ها عکس می شود .    

 

کد برنامه :

 

   $regfile = "m8def.dat"    ‘*  تعیین نوع میکرو و مقدار کریستال               

    $crystal = 1000000         ‘*وتعیین پورت به عنوان خروجی                                     

    Config Portb = Output                                            

    Dim S As Byte                

'-------------------------------------------------

    R1 Alias Portd.0         ‘*   تعویض نام پایه های پورت با نامهای مناسب دلخواه 

    Y1 Alias Portd.1                      

    G1 Alias Portd.2                       

    R2 Alias Portd.3                 

    Y2 Alias Portd.4         

    G2 Alias Portd.5         

    A1 Alias Portd.6         

    A2 Alias Portd.7         

 

    S = 20 : Y2 = 0 : G1 = 0 ‘*مقدار دهی اولیه به متغیر و پایه های پورت                                         

'------------------------------------------------                               

 Main:                                                           

    S = 20 : R1 = 1 : R2 = 0 : Y1 = 0 : G2 = 1 : A1 = 1 : A2 = 0     ‘*  حالت اول           

    Wait 50                                                      

'--------------------------------------------                                                      

    G2 = 0 : Y2 = 1                                                          

Next1:                                                              

    Toggle A1                                                    

    Waitms 500                   ‘*           حالت دوم

    Decr S                                                     

    If S > 0 Then                                                

    jmp next1                                                      

    Else                                                          

'-------------------------------------------

    S = 20 : R1 = 0 : R2 = 1 : Y2 = 0 : G1 = 1 : A1 = 0 : A2 = 1

    Wait 50                                   ‘*حالت سوم

    G1 = 0 : Y1 = 1

'-------------------------------------------------

Next2:

    Toggle A2

    Waitms 500

    Decr S                                   ‘*حالت چهارم

    If S > 0 Then

    jmp next2

    Else

    jmp main

'----------------------------------------

End If

End If                                      ‘* پایان برنامه

End

‘------------------------------------------