قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

mikro.man7
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2014
المشاركات: 109
نشاط [ mikro.man7 ]
قوة السمعة:0
قديم 17-05-2016, 12:14 AM المشاركة 1   
افتراضي لو حد شغال بللغه باسكوم avr محتاج مساعدة Twitter FaceBook Google+



فى مشكله بسيطه واقفه معايا وهيا انو عملت دايره قياس الفولت
بللغه البيزك او باسكوم avr
المشكلة انو الدايرة شغاله كويس على بروتس ما فيهاش اي مشاكل
لاكن لما وصلت الدايره عملى المشكله
انو شاشاه 7 سيجمنت ما بتظهرش ارقام بتظهر علامات عشوائيه مش زي ما طالع معايا في بروتوس
المشكله التانيه انو قرايه الفولت الانلوج بيهيس يعني بيديني ارقام مختلفه وانا ما غيرتش فى المقاومه

في ملحوظه بس
انا فى مقومات مش معايا قيمتها صريحه فا بضطر انو اعمل مقومتين توازاى او توالى عشان اوصل للمقاومه المطلوبه
مثلا المقاومه 5 كيلو اوم انا عامل مقومتان توازي عشان اوصل لل5 كيلو

المشكله فين مش عارف ??



كود:
'$programmer = 23
$regfile = "m328pdef.dat"
$crystal = 16000000
$hwstack = 60
$swstack = 60
$framesize = 60
$baud = 115200
'------------------------------------
'------------------------------------
'Config Pind.2 = Output
'Config Pind.3 = Output
'Config Pind.4 = Output
'Config Pind.5 = Output
'Config Pind.6 = Output
'Config Pind.7 = Output
'//7SEGMENT PIN OUT  // A B C D E F G
Config Pinb.5 = Output
Config Pinb.4 = Output
Config Pinb.3 = Output
Config Pinb.2 = Output

Config Pind.7 = Output
Config Pind.6 = Output
Config Pind.5 = Output

'//CONTROLED 1 2 3
Config Pind.4 = Output
Config Pind.3 = Output
Config Pind.2 = Output


Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Single = Scientific , Digits = 1
'------------------------------------
'------------------------------------
Dim F As Byte
Dim X As Byte
Dim S As Single
Dim Temp As Byte
Dim 7seg As Byte
Dim C As Byte
Dim G As Byte
Dim K As Byte
Dim Ldr As Word
Dim Ldr_v As Single
Dim E As Byte


Const V_ref = 5
Const Factor = 21.8
'-------------------------------------
'-------------------------------------
Do
Gosub Read_adc
'-----------------
Gosub Calc_lux
'-----------------
Temp = S * 10
If Temp <= 99 Then
  K = Temp / 10
  E = Temp Mod 10
  C = Lookup(k , D7seg )
  F = Lookup(e , D7seg )
  For X = 0 To 40
         Portd.3 = 0 : Portd.2 = 0
         Portb.5 = C.0
         Portb.4 = C.1
         Portb.3 = C.2
         Portb.2 = C.3
         Portd.7 = C.4
         Portd.6 = C.5
         Portd.5 = C.6

         Portd.3 = 1
         Waitms 5
         Portd.3 = 0 : Portd.2 = 0

         Portb.5 = F.0
         Portb.4 = F.1
         Portb.3 = F.2
         Portb.2 = F.3
         Portd.7 = F.4
         Portd.6 = F.5
         Portd.5 = F.6
        Portd.2 = 1
         Waitms 5
      Next X

Else

If Temp > 99 And Temp < 199 Then

       K = Temp Mod 100
       If K >= 0 And K <= 9 Then
      C = Lookup(1 , D7seg )
      F = Lookup(0 , D7seg )
      G = Lookup(k , D7seg )
        Else
        Temp = Temp Mod 100

        K = Temp / 10

        E = Temp Mod 10

      C = Lookup(1 , D7seg )
      F = Lookup(k , D7seg )
      G = Lookup(e , D7seg )
       End If



Else

    K = Temp Mod 200
       If K >= 0 And K <= 9 Then
      C = Lookup(2 , D7seg )
      F = Lookup(0 , D7seg )
      G = Lookup(k , D7seg )
        Else
        Temp = Temp Mod 100

        K = Temp / 10

        E = Temp Mod 10

      C = Lookup(2 , D7seg )
      F = Lookup(k , D7seg )
      G = Lookup(e , D7seg )
       End If



End If

For X = 0 To 10
          Portd.4 = 0 : Portd.3 = 0 : Portd.2 = 0
         Portb.5 = C.0
         Portb.4 = C.1
         Portb.3 = C.2
         Portb.2 = C.3
         Portd.7 = C.4
         Portd.6 = C.5
         Portd.5 = C.6

         Portd.4 = 1
         Waitms 5
          Portd.4 = 0 : Portd.3 = 0 : Portd.2 = 0

         Portb.5 = F.0
         Portb.4 = F.1
         Portb.3 = F.2
         Portb.2 = F.3
         Portd.7 = F.4
         Portd.6 = F.5
         Portd.5 = F.6

         Portd.3 = 1
         Waitms 5

         Portd.4 = 0 : Portd.3 = 0 : Portd.2 = 0

         Portb.5 = G.0
         Portb.4 = G.1
         Portb.3 = G.2
         Portb.2 = G.3
         Portd.7 = G.4
         Portd.6 = G.5
         Portd.5 = G.6

         Portd.2 = 1
         Waitms 5

      Next X



End If
Loop
End
'---------------------
Read_adc:
   Ldr = Getadc(1)

Return
'---------------------
Calc_lux:
   Ldr_v = Ldr * V_ref
   Ldr_v = Ldr_v / 1024
   S = Ldr_v * Factor
   S = S / V_ref
Return

D7seg:
Data &B0000001 , &B1001111 , &B0010010 , &B0000110 , &B1001100 , &B0100100 , &B0100000 , &B0001111 , &B00000000 , &B0000100
دا مللفات الدايره كامله
http://www.kuwaiti.co/g025afqbc98v


التعديل الأخير تم بواسطة : mikro.man7 بتاريخ 17-05-2016 الساعة 12:20 AM
اعلانات
إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 09:30 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025