اطلاعیه

Collapse
No announcement yet.

برنامه نویسی سون سگمنت . کمک

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برنامه نویسی سون سگمنت . کمک

    سلام یه درایور ساختم و میخوام با atmega8 مقدار دیوتی سایکل 0 تا 256 رو روی نمایشگر نشون بدم هر چقدر کلنجار رفتم نتونستم این برناممه
    لطفا کمک کنید :angry:

    توابع a0 تا a9 بر اساس نحوه نصب پایه های سون به میکرو نشاندهنده اعداد 0 تا 9 هستند و chap rast vasat هم هرکدام پایه مشترک و فعال کننده سون صدگان دهگان و یکان هستند

    دیوتی سایکل با دکمه های بالا و پایین تغییر میکند

    ضمنا مبتدی هم هستم :wow:

    کد:
    $regfile = "m8def.dat"
    $crystal = 1000000
    
    ''''''''''''''''''''' PWM & adc'''''''''''''''''''''
    
    Ddrd.5 = 1
    Ddrd.6 = 1
    Ddrb.6 = 1
    Ddrb.7 = 1
    Ddrd.3 = 1
    Ddrd.2 = 1
    Ddrb.3 = 1
    Ddrb.2 = 1
    Ddrb.0 = 1
    Ddrd.7 = 1
    Ddrb.4 = 0
    Ddrd.0 = 0
    Ddrb.5 = 0
    
    Chap Alias Portd.3
    Vasat Alias Portd.2
    Rast Alias Portb.6
    
    Down Alias Pinb.5
    Up Alias Pinb.4
    First Alias Pind.0
    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
    Config Timer0 = Timer , Prescale = 1024
    
    
    
    Dim Pwm As Integer
    Dim T As Integer
    
    Declare Sub A1
    Declare Sub A0
    Declare Sub A2
    Declare Sub A3
    Declare Sub A4
    Declare Sub A5
    Declare Sub A6
    Declare Sub A7
    Declare Sub A8
    Declare Sub A9
    Do
    
    If Up = 1 Then
    If Pwm = 1023 Then Pwm = 1022
    Pwm = Pwm + 1
    Pwm1a = Pwm
    End If
    
    If Down = 1 Then
    If Pwm = 0 Then Pwm = 1
    Pwm = Pwm - 1
    Pwm1a = Pwm
    End If
    
    
    
    ''''''''''''''''''''''''''''''''''''''''''''
    T = Pwm / 200
    If T = 0 Then
    Chap = 1
    Call A0
    Waitms 4
    End If
    
    If T = 1 Then
    Chap = 1
    Call A2
    Waitms 4
    End If
    
    ''''''''''''''''''''''''''''''''''''''''''''''
    
    T = Pwm Mod 100
    T = T / 10
    If T = 0 Then
    Vasat = 1
    Call A0
    Waitms 4
    End If
    
    If T = 1 Then
    Vasat = 1
    Call A1
    Waitms 4
    End If
    
    If T = 2 Then
    Vasat = 1
    Call A2
    Waitms 4
    End If
    
    If T = 3 Then
    Vasat = 1
    Call A3
    Waitms 4
    End If
    
    If T = 4 Then
    Vasat = 1
    Call A4
    Waitms 4
    End If
    
    If T = 5 Then
    Vasat = 1
    Call A5
    Waitms 4
    End If
    
    If T = 6 Then
    Vasat = 1
    Call A6
    Waitms 4
    End If
    
    If T = 7 Then
    Vasat = 1
    Call A7
    Waitms 4
    End If
    
    If T = 8 Then
    Vasat = 1
    Call A8
    Waitms 4
    End If
    
    If T = 9 Then
    Vasat = 1
    Call A9
    Waitms 4
    End If
    
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    
    T = Pwm Mod 10
    
    If T = 0 Then
    Rast = 1
    Call A0
    Waitms 4
    End If
    
    If T = 1 Then
    Rast = 1
    Call A1
    Waitms 4
    End If
    
    If T = 2 Then
    Rast = 1
    Call A2
    Waitms 4
    End If
    
    If T = 3 Then
    Rast = 1
    Call A3
    Waitms 4
    End If
    
    If T = 4 Then
    Rast = 1
    Call A4
    Waitms 4
    End If
    
    If T = 5 Then
    Rast = 1
    Call A5
    Waitms 4
    End If
    
    If T = 6 Then
    Rast = 1
    Call A6
    Waitms 4
    End If
    
    If T = 7 Then
    Rast = 1
    Call A7
    Waitms 4
    End If
    
    If T = 8 Then
    Rast = 1
    Call A8
    Waitms 4
    End If
    
    If T = 9 Then
    Rast = 1
    Call A9
    Waitms 4
    End If
    
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    
    
    
    
    
    
    
    
    
    Loop
    
    Sub A0
    Portd.5 = 1
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 0
    Portb.0 = 0
    Portd.7 = 0
    End Sub
    
    Sub A1
    Portd.5 = 1
    Portd.6 = 1
    Portb.7 = 1
    Portb.3 = 1
    Portb.2 = 0
    Portb.0 = 1
    Portd.7 = 0
    End Sub
    
    Sub A2
    Portd.5 = 0
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 0
    Portb.0 = 1
    Portd.7 = 1
    End Sub
    
    Sub A3
    Portd.5 = 0
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 1
    Portb.0 = 0
    Portd.7 = 1
    End Sub
    
    Sub A4
    Portd.5 = 0
    Portd.6 = 0
    Portb.7 = 1
    Portb.3 = 1
    Portb.2 = 1
    Portb.0 = 0
    Portd.7 = 0
    End Sub
    
    Sub A5
    Portd.5 = 0
    Portd.6 = 1
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 1
    Portb.0 = 0
    Portd.7 = 0
    End Sub
    
    Sub A6
    Portd.5 = 0
    Portd.6 = 1
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 0
    Portb.0 = 0
    Portd.7 = 0
    End Sub
    
    Sub A7
    Portd.5 = 1
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 1
    Portb.2 = 1
    Portb.0 = 0
    Portd.7 = 1
    End Sub
    
    Sub A8
    Portd.5 = 0
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 0
    Portb.0 = 0
    Portd.7 = 0
    End Sub
    
    Sub A9
    Portd.5 = 0
    Portd.6 = 0
    Portb.7 = 0
    Portb.3 = 0
    Portb.2 = 1
    Portb.0 = 0
    Portd.7 = 0
    End Sub
لطفا صبر کنید...
X