ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





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









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11
  1. #1
    2008/01/11
    29
    0

    کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    سلام

    توضیحات پروژه :

    یک برد داریم که ورودی پالس یک دستگاه رو میخونه و اون رو به صورت اعشار در دو رقم صحیح و دو رقم اعشار در می آورد و در ادامه این برد به چهار استپ موتور اتصال دارد و هر استپ موتور به یک زنجیر اتصال دارد که روی هر زنجیر اعداد 0 تا 9 حک شده حال دستگاه به این صورت کار می کند ابتدا وقتی دستگاه روشن می شود موتور ها حرکت می کنند و به یک نقطه برخورد کرده و بعد یکم برعکس می چرخند و روی نقطه 0 صفر قرار می گیرند در ادامه پالس وارد شده و یک عدد اعشاری چهار رقمی می دهد و موتورها به ترتیب حرکت کرده و روی عدد مربوطه قرار می گیرند در پایان یک جک عمل کرده آن عدد را روی جنس مربوطه حک می کند تا اینجا برنامه نویسی من مشکلی نداشته و برد و دستگاه من درست کار می کند . مشکل من در ادامه کار است دیگر قرار نیست موتور ها حرکت کنند و روی صفر قرار بگیرند بلکه باید با ورود ÷الس بعدی و عدد اعشار دیگر برنامه خود تشخیص داده و موتور ها رو بر روی عدد مورد نظر قرار دهد مثال در پالس اول عدد اعشار 14/25 رو نشان می دهد حرکت موتور ها مشکلی ندارد با select case ان را انجام دادم و روی عدد مورد نظر قرار گرفت در پالس دوم عدد مربوطه مثلا 25/50 شد حال موتور ها بدین صورت باید حرکت کنند عدد 1 به 2 تبدیل شده پس موتور مربوطه به مقدار یک عدد جلو می رود و به ترتیب اعداد دیگر هم همین طور باید کنترل شوند .

    من برنامه مربوطه را قرار می دهم لطفا اگر کسی می تواند کمک کند حتی اگر ایده هم دارید برای من بنویسید .




    $regfile = "m128def.dat"
    $crystal = 8000000
    $baud = 9600

    Config Timer1 = Counter , Edge = Falling , Capture Edge = Rising , Noise Cancel = 0
    Config Porta = Output
    Config Portb = Output
    Config Portc = Output
    Config Portd = Output
    Config Portf = Output
    Config Porte = Output
    Config Pind.5 = Input
    Config Portd.7 = Output
    Config Portd.4 = Input
    Config Portd.6 = Input
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Porte.4 , Db5 = Porte.5 , Db6 = Porte.6 , Db7 = Porte.7 , E = Portb.7 , Rs = Portb.6
    Dim A1 As Word
    Dim A2 As Single
    Dim A3 As String * 1
    Dim A4 As Single
    Dim A5 As Word
    Dim A6 As Word
    Dim A7 As String * 10
    Dim A8 As String * 10
    Dim A9 As String * 10
    Dim A10 As String * 10
    Dim A11 As Word
    Dim A12 As Byte
    Dim A13 As Single
    Dim A14 As Single
    Dim A15 As Word
    Dim T1 As String * 10
    Dim T2 As String * 10
    Dim T3 As String * 10
    Dim T4 As String * 10
    Dim A16 As String * 10
    Dim T As String * 10
    Dim D1 As Byte , I As Byte , C As Byte , X As Byte
    Dim D2 As Byte , I1 As Byte , C1 As Byte , X1 As Byte
    Dim D3 As Byte
    Dim D4 As Byte
    Dim O As Byte
    Dim Kl As Byte


    Do
    Goto Mahdi

    Kardan:
    Enable Interrupts
    On Icp1 Q1
    Goto Main
    Loop
    End 'end program

    Mahdi:
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until Pind.5 = 1
    Waitms 200
    X = 0
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C
    Waitms 20
    Next I
    Incr X
    Loop Until X = 1
    X = 0
    Waitms 200


    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until Pind.5 = 1
    X = 0
    Waitms 200
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C
    Waitms 20
    Next I
    Incr X
    Loop Until X = 1
    X = 0
    Waitms 200



    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until Pind.5 = 1
    X = 0
    Waitms 200
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C
    Waitms 20
    Next I
    Incr X
    Loop Until X = 1
    X = 0
    Waitms 200



    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until Pind.5 = 1
    X = 0
    Waitms 200
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C
    Waitms 20
    Next I
    Incr X
    Loop Until X = 1
    X = 0
    Waitms 200
    Goto Kardan




    Main:
    Counter1 = 0
    Do

    If Pind.4 = 1 Then
    Enable Icp1
    Elseif Pind.4 = 0 Then
    Disable Capture1
    If Portd.6 <> 0 Then
    Print A1
    Lcd A1
    Waitms 100
    End If

    End If

    Loop
    Q1:
    A1 = Capture1
    Print A1
    Lcd A1 ; " Palse"
    Counter1 = 0

    A2 = A1 / 40

    A3 = Fusing(a2 , "##.###&quot

    A4 = Val(a3)

    A5 = A4 * 1000
    A6 = A5 + 1
    A7 = Str(a6)
    A8 = Format(a7 , "00.000&quot
    A9 = Right(a8 , 3)
    A10 = Left(a8 , 2)
    A11 = Val(a9)
    A12 = Val(a10)

    Select Case A11

    Case 0 To 124 :
    A11 = 00
    Case 125 To 374 :
    A11 = 25
    Case 375 To 624:
    A11 = 50
    Case 625 To 874 :
    A11 = 75
    Case 875 To 999 :
    A11 = 00
    Incr A12
    End Select

    A13 = A11 / 100
    A14 = A12 + A13
    Locate 2 , 1
    Lcd A14

    A15 = A14 * 100

    A16 = Str(a15)
    T = Format(a16 , "0000&quot
    Locate 2 , 8
    Lcd T

    T1 = Mid(t , 4 , 1)
    T2 = Mid(t , 3 , 1)
    T3 = Mid(t , 2 , 1)
    T4 = Mid(t , 1 , 1)
    D1 = Val(t1)
    D2 = Val(t2)
    D3 = Val(t3)
    D4 = Val(t4)

    Select Case D4
    Case 1 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 4
    X = 0

    Case 2 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 9
    X = 0

    Case 3 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 13
    X = 0

    Case 4 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 18
    X = 0

    Case 5 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 22
    X = 0

    Case 6 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 26
    X = 0

    Case 7 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 30
    X = 0

    Case 8 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 34
    X = 0

    Case 9 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portb = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 38
    X = 0
    End Select


    Select Case D3
    Case 1 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 4
    X = 0

    Case 2 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 9
    X = 0

    Case 3 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 13
    X = 0

    Case 4 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 18
    X = 0

    Case 5 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 22
    X = 0

    Case 6 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 26
    X = 0

    Case 7 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 30
    X = 0

    Case 8 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 34
    X = 0

    Case 9 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portd = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 38
    X = 0
    End Select


    Select Case D2
    Case 1 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 4
    X = 0

    Case 2 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 9
    X = 0

    Case 3 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 13
    X = 0

    Case 4 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 18
    X = 0

    Case 5 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 22
    X = 0

    Case 6 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 26
    X = 0

    Case 7 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 30
    X = 0

    Case 8 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 34
    X = 0

    Case 9 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Portc = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 38
    X = 0
    End Select



    Select Case D1

    Case 1 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 4
    X = 0

    Case 2 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 9
    X = 0

    Case 3 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 13
    X = 0

    Case 4 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 18
    X = 0

    Case 5 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 22
    X = 0

    Case 6 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 26
    X = 0

    Case 7 :

    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 30
    X = 0

    Case 8 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 34
    X = 0

    Case 9 :
    Do
    For I = 0 To 3
    C = Lookup(i , Table2)
    Porta = C

    Waitms 20
    Next
    Incr X
    Loop Until X = 38
    X = 0
    End Select


    Do
    For I = 0 To 3
    C = Lookup(i , Table1)
    Portf = C

    Waitms 5
    Next
    Incr X
    Loop Until X = 7
    X = 0
    Waitms 300
    Set Portd.7
    Waitms 200
    Reset Portd.7

    Cls


    Goto Mahdi
    Return


    Table1:
    Data &B00000001 , &B00000010 , &B00000100 , &B00001000

    Table2:
    Data &B00001000 , &B00000100 , &B00000010 , &B00000001


  2. #2
    2010/01/25
    447
    2

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    شما باید هشت تا متغیر بایتی تعریف کنی چهار تا برای نگهداری ارقام فعلی و چهار تا برای نگهداری ارقام قبلی و چهار تا متغیر integer هم برای حاصل تفریق ارقام فعلی از ارقام قبلی (برای جداسازی ارقام هم از تقسیم متوالی بر 10 استفاده کن)

    بقیه اش هم معلومه دیگه اگه مثلا یه متغیر integer مقدارش منفی شد باید با select case جهت چرخش رو عوض کنی کلا همه چی با select case انجام میشه
    مثلا اگر متغیر integer یک بود در اینجهت و این مقدار بچرخ اگر 2 بود در اینجهت و این مقدار و ...
    من نمىآ*توانم فرضیه «بىآ*اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ*دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org
  3. #3
    2008/01/11
    29
    0

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    میشه یک مثال ساده برای یک عدد که قرارپشت سر هم بیاد برام بزارید
  4. #4
    2010/01/25
    447
    2

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    مثلا برای 14.25 و رقم بعدی 25.01 که شما اعشارشون رو بر میداری که میشن 1425 و 2501 و با تقسیم متوالی بر ده توی هشت تا متغیر بایتی ذخیره میکنید ( باید بعد از هر تقسیم باقیمانده را ذخیره کنی و در آخرین تقسیم خارج قسمت رو)
    بعد ارقام متناظر رو ار هم کم میکنید که حاصل میشه
    -4 و -2 و 1 و 1 به ترتیب ارقام اعشاری و صحیح هستند.
    حالا با select case عدد متناظر با موتور مربوطه را تقسیم بندی میکنید
    مثلا برای -4 باید در جهت عکس و به اندازه 4 واحد بچرخد که روی 1 خواهد ایستاد
    برای -2 باید در جهت عکس و 2 واحد بچرخد که روی 0 خواهد ایستاد
    برای 1 باید در جهت معمولی و به اندازه یک واحد بچرخد و الی آخر ...
    شما با select case تمام حالتهای ممکن برای یک رقم را که فکر کنم 19 حالت میشه رو باید تشکیل بدین و عدد مربوط به هر موتور رو با این روش دیکد کنبد
    من نمىآ*توانم فرضیه «بىآ*اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ*دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org
  5. #5
    2008/01/11
    29
    0

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    سلام
    ممنون که دارید کمکم می کنید
    من با select case و چیزهایی رو که گفتی مشکل ندارم مشکل من در ابتدای کار است من قبل از راهنمایی شما به گرفتن هشت متغییر هم رو آوردم حتی گفتم از حافظه eeprom استفاده کنم ولی مغز من یاریم نکرد که چگونه این کار رو کنم . میشه در اونجا که گفتید شما 4 تا متغییر برای ارقام فعلی و 4 تا برای ارقام قبلی در نظر بگبیرم چگونه برای برنامه تعریف کنم این رو مهم تعریف کردن ارقام فعلی و قبلی رو میگم در برنامه من همین طور که میبینی پالس بر 40 تقیسم میشه و بعد یک رقم اعشار میده که 4 تا متغیر براش تعریف کردم وهر کدام با کیس سلکت کارش رو انجام میده این عدد کارش تمام شد و در متغییر D4 ریخته شد ه من خودم گفتم میریزم در حافظه ایپرام و بعد با یه متغیر دیگر فرا میخونمش مثلا 4X (( یک عدد از 4 رقم مثال می زنم )) ولی در ادامه دیدم باز نمیشه چرا وقتی اول کار مثلا d4 رو صفر قرار میگیرد بعد میشه یه عدد ی بعد این عدد در حافظه قرار میگیره با نام d4 بعد فرا میخونیش با x4 ببخشید بعد ش رو نتونستم برای خودم حلاجی کنم و گیج شدم میشه بی زحمت یه برنامه بنوسید و نشان بدید ریختن و نگهداشتن این اعداد رو در متغیر و بعدش تفریق کردن آن را ممنون میشم از تون . نباید زیاد این کار سخت باشد ولی مغز من گیر پاش کرده یاری نمی کند .





  6. #6
    2010/01/25
    447
    2

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    خواهش میکنم

    مثلا فرض کنیم متغیر a1 یک متغیر single مربوط به عدد قبلی (با دو رقم اعشار) و متغیر b1 یک متغیر single مربوط به عدد فعلی (با دو رقم اعشار)است. اگر a و b دو متغیر word باشند . پس داریم:

    کد:
    dim c as byte,d as byte,e as byte,f as byte,g as byte,h as byte,i as byte,j as byte,quotient as word,k as integer,l as integer,m as integer, n as integer,a1 as single,b1 as single
    
    a=a1*100 'برای از بین بردن اعشار
    b=b1*100
    
    f=a mod 10         ' تفکیک ارقام a
    quotient= a/10
    e=quotient mod 10
    quotient=quotient/10
    d=quotient mod 10
    c= quotient/10
    
    j=b mod 10          'تفکیک ارقام b
    quotient= b/10
    i=quotient mod 10
    quotient=quotient/10
    h=quotient mod 10
    g= quotient/10
    
    k=g-c                ' تفریق ارقام تفکیک شده از هم 
    l=h-d
    m=i-e
    n=j-f
    
    select case k           'برای تعیین چرخش موتور اول که رقم دهگان عدد صحیح را نمایش میدهد
    case -9
    case -8
    .
    .
    case 0
    case 1
    case 2
    .
    .
    .
    case 9
    select case l            'برای تعیین چرخش موتور دوم که رقم یکان عدد صحیح را نمایش میدهد
    select case m           'برای تعیین چرخش موتور سوم که رقم دهگان عدد اعشاری را نمایش میدهد
    select case n           'برای تعیین چرخش موتور چهارم که رقم یکان عدد اعشاری را نمایش میدهد
    من نمىآ*توانم فرضیه «بىآ*اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ*دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org
  7. #7
    2008/01/11
    29
    0

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    باز هم از شما تشکر می کنم
    من جواب شما رو قبلا چند بار بهش رسیدم و کار شما رو انجام دادم
    ولی یه موضوع رو شما اینجا فراموش کردی
    اونم بار اول است وقتی موتور ها رو صفر قرار دارند و یک پالس خوانده می شود دیگر یک عدد اعشار داریم 2 تا رقم نداریم که در جواب شما قرار گیرند اون موقع باید چیکار کرد همه هم و غم من تو این سوال است و ذهنم و مشغول کرده
  8. #8
    2010/01/25
    447
    2

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    نقل قول نوشته اصلی توسط rayanelectronic
    باز هم از شما تشکر می کنم
    من جواب شما رو قبلا چند بار بهش رسیدم و کار شما رو انجام دادم
    ولی یه موضوع رو شما اینجا فراموش کردی
    اونم بار اول است وقتی موتور ها رو صفر قرار دارند و یک پالس خوانده می شود دیگر یک عدد اعشار داریم 2 تا رقم نداریم که در جواب شما قرار گیرند اون موقع باید چیکار کرد همه هم و غم من تو این سوال است و ذهنم و مشغول کرده
    خب مغلومه دیگه !
    کافیه a1 را برابر 0 و a2 را برابر مقدار خوانده شده قرار دهید و برای دفعه بعدی
    a1=a2 و a2 را برابر مقدار خوانده شده قرار دهید و الی آخر
    من نمىآ*توانم فرضیه «بىآ*اخلاقى انسان» را بپذیرم، و من اخلاق را منحصرا امرى انسانى و متعلق به انسان مىآ*دانم که هیچ نوع قدرت مافوق انسانى در پشت آن وجود ندارد
    آلبرت اینشتین
    منبع: http://fa.wikiquote.org
  9. #9
    2016/04/13
    21
    3

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    کد:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.3 Standard
    Automatic Program Generator
    :copyright: Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
    

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    Project : Version : Date : 08/17/2016 Author : farah Company : Comments: Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *****************************************************/

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <mega32.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <delay.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <stdio.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <alcd.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    <stdlib.h>

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    HX711_DOUT PINB.0

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    HX711_SCK PORTB.1

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    C0 PIND.4

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    C1 PIND.5

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    C2 PIND.6

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    C3 PIND.7 void Delay__hx711_us(void) {

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ("nop")

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    ("nop") } unsigned long HX711_Read(void) { unsigned long count; unsigned char i; HX711_DOUT=1; Delay__hx711_us(); HX711_SCK=0; count=0; while(HX711_DOUT); for(i=0;i<24;i++) //gain --> 128 { HX711_SCK=1; count=count<<1; HX711_SCK=0; if(HX711_DOUT) count++; } HX711_SCK=1; count=count & 0xfff000; // taeen deghat Delay__hx711_us(); HX711_SCK=0; return(count); } flash char shift[4]={0xFE,0xFd,0xFb,0xF7}; flash char layout[16]={'c','2','3','/', '1','5','6','*', '4','8','9','-', '7','0','#','+'}; char keypad(); char buffer[10]; void main(void) { char mux; int i; char sh=0; char s[10]; PORTD=0xF0; DDRD=0x0F; // Alphanumeric LCD initialization // Connections are specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTA Bit 0 // RD - PORTA Bit 1 // EN - PORTA Bit 2 // D4 - PORTA Bit 4 // D5 - PORTA Bit 5 // D6 - PORTA Bit 6 // D7 - PORTA Bit 7 // Characters/line: 16 lcd_init(16); DDRB = 1<<DDB1 ; lcd_putsf(" HX711 "); delay_ms(2000); lcd_clear(); while (1) { lcd_gotoxy(0,0); sprintf(buffer,"w=%u",HX711_Read()); lcd_puts(buffer); delay_ms(250); mux=0; for(i=0;i<16;i++) { sh= keypad(); lcd_gotoxy(i,1); mux=mux*10+sh; lcd_putchar(sh); if(sh=='#') { itoa(mux,s); lcd_puts(s); } if(sh=='c') { lcd_clear(); break; } } } } char keypad() { int row=0,column=-1,position=0,k; while(1) { for(row=0;row<4;row++) { PORTD=shift[row]; if(C0 == 0){column=0;} if(C1 == 0){column=1;} if(C2 == 0){column=2;} if(C3 == 0){column=3;} if(column!=-1) { position=(row*4)+column; while(C0 == 0){} while(C1 == 0){} while(C2 == 0){} while(C3 == 0){} column=-1; delay_ms(50); k=layout[position]; return k; } } } }
    تو این برنامه میخوام کیپو و سنسور hx711را به atmega32وصل کنم.....کیپد و سنسور جدا جدا جواب میدن...ولی وقتی هر دو رو وصل میکنم ..میکرو فقط میتونه یک بار وزنو بخونه...هر تغییزی هم دادم نشد
    ویرایش توسط اشکان غفارزاده : 2016/08/20 در ساعت 21:40
  10. #10
    2010/08/19
    کردستان
    1,925
    896

    پاسخ : کمک در برنامه نویسی از برنامه نویسان حرفه ای در مورد پروژه ام حتی با یک ایده

    با سلام
    پروژ] دانشجویی یا قراره صنعتی باشه ؟
    چون نمونه کد خواندن HX711 صرفا برای تست روی سایت گذاشته شده و باید تغییراتی مطابق دیتاشیت در اون ایجاد بشه.
    احتمالا این که با هم کار نمی کنن یه جای برنامه میکرو گیر می کنه. حلقه ای یا چیزی. یه ٍLED بزارید تو حلقه اصلی تا از روند برنامه مطمئن بشین.
    البته ببخشید وقت تست و رفع ایراد نمونه کد نیس و به صورت کلی مباحث رو گفتم.
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 11

موضوعات مشابه

  1. برنامه نویسی حرفه ای میکرو
    توسط dalmif در انجمن پروسسورهای ARM
    پاسخ: 3
    آخرين نوشته: 2015/10/17, 21:56
  2. یک سئوال حاشیه ایی درباره برنامه نویسان حرفه ای AVR
    توسط laleh_slm در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2014/03/06, 16:16
  3. پاسخ: 2
    آخرين نوشته: 2012/12/09, 05:58
  4. ایده برنامه نویسی برای المان زیر در ربات مسیریاب
    توسط DRT در انجمن ربات های مسیر یاب
    پاسخ: 11
    آخرين نوشته: 2012/09/05, 02:20
  5. کمک در مورد برنامه نویسی دو پروژه با codvision
    توسط houlia در انجمن میکروکنترلرهای AVR
    پاسخ: 6
    آخرين نوشته: 2011/12/05, 18:56

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •