اطلاعیه

Collapse
No announcement yet.

معرفی نرم افزارEasy 7segmen (راه اندازی آسانتر 7Segment) به روز شد!!! نسخه 1.2

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

    معرفی نرم افزارEasy 7segmen (راه اندازی آسانتر 7Segment) به روز شد!!! نسخه 1.2

    درود بر ایرانیان

    شاید تا حالا برایتان پیش افتاده باشه که بخواهید مداری با سون سگمنت طراحی کنید و بعد هم برد اون مدار رو هم بزنید و موقع PCB کردن کمی برایتان سخت باشد که آن پایه های دلخواه میکروکنترلر را به سون سگمنت متصل کنید... (برای برد یک رو ) و شاید در برابر این مشکل مجبور شوید برای راحتی PCB در برنامه نویسی محاسبه کنید که مقابل آن عدد سون سگمنت چه عددی برابر با پورت قرار بدهم تا سون سگمنت نمایش دهد ... و مشکلاتی از این قبیل ...
    من خودم شخصا" به این گونه مشکلات برخوردم و همیشه دنبال نرم افزاری بودم که این محاسبات را انجام دهد تا دیگر لازم نباشد خودمان محاسبه کنیم و وقتمان گرفته شود ...
    از اونجایی که نمیدونستم چی توی گوگل بزنم و بگردم نرم افزاری پیدا نکردم و این شد که به فکر افتادم تا این نرم افزار را خودم بنویسم تا هم خودم و هم دوستان استفاده کنند ...



    توضیح مختصری درباره نرم افزار easy 7segment :
    قبل از اجرای نرم افزار ، مداری که قرار است طراحی کنید برای خودتان معلوم کنید
    به عنوان مثال میخواهیم این مدار را ببندیم

    پایه های میکرو کنترلر رو به این شکل بستیم
    کد:
    PORTD.2 = a
    PORTD.0 = b
    PORTD.4 = c
    PORTD.5 = d
    PORTD.7 = e
    PORTD.1 = f
    PORTD.3 = g
    موقعی که فایل اجرایی نرم افزار را اجرا میکنید این را می پرسد
    کد:
    Which Pin of the PORTs is connected to the Pin'a' of the 7Segment?
    میگه که
    می خواهید پایه a سون سگمنت را به کدام یک از پایه های میکروکنترلر متصل کنید ؟
    در این مثال پایه PORTD.2 است که باید وارد کنیم 2
    و پرسش دوم
    کد:
    Which Pin of the PORTs is connected to the Pin'b' of the 7Segment?
    می خواهید پایه b سون سگمنت را به کدام یک از پایه های میکروکنترلر متصل کنید ؟
    در این مثال پایه PORTD.0 است که باید وارد کنیم 0
    و این اعداد را وارد میکنیم تا پایه g و بعد که تمام شد یک سری محاسباتی را انجام میدهد و جواب رو بهتون میگه
    از اونجایی که کپی گرفتن از این اعداد نشدنی هست :mrgreen: این برنامه را ببندید و میبینید که یک فایل با پسوند TXT در مسیر همان فایل اجرایی به شما می دهد .
    محتویات این فایل به این صورت است :
    کد:
     PORTx.2 ——˄˄˄—— a
     PORTx.0 ——˄˄˄—— b
     PORTx.4 ——˄˄˄—— c
     PORTx.5 ——˄˄˄—— d
     PORTx.7 ——˄˄˄—— e
     PORTx.1 ——˄˄˄—— f
     PORTx.3 ——˄˄˄—— g
    
    Source Code for ATmel Studio(GCC Compiler):
    uint8_t common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
    uint8_t common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
    
    Source Code for CodevisionAVR:
    unsigned char common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
    unsigned char common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
    
    Source Code for Bascom AVR:
    Common_cathode:
    Data 183 , 17 , 173 , 61 , 27 , 62 , 190 , 21 , 191 , 63 , 189 , 186 , 166 , 185 , 174 , 142
    Common_anode:
    Data 72 , 238 , 82 , 194 , 228 , 193 , 65 , 234 , 64 , 192 , 66 , 69 , 89 , 70 , 81 , 113
    
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    خیلی خب ... کار شما در اینجا به پایان رسیده ...
    کد را برای نرم افزار مخصوص خودتون انتخاب کنید و Copy بگیرید و ببرید در برنامه مورد نظرتون و Paste کنید
    به عنوان مثال من میخوام با برنامه کدویژن کار کنم و نوع سون سگمنت هم کاتد مشترک است و باید این را کپی بگیرم .
    کد:
    unsigned char common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
    حالا توی برنامه نویسی به همین راحتی نمایش میدهم ... میکروی مگا16
    [code=c]#include <mega16a.h>
    #include <delay.h>

    void main(void)
    {
    unsigned char x=0,
    common_cathode[20]={183,17,173,61,27,62,190,21,191,63,189,186,166,18 5,174,142};
    DDRD = 0xFF;
    while (1)
    {
    PORTD = common_cathode[x];
    delay_ms(500);
    x++;
    if(x == 16)x=0;
    }
    }[/code]
    این برنامه به صورت hex از 0 تا F را شمارش می کند
    سورس کد + شبیه سازی در پروتئوس 7.10

    خوب عزیزان
    امیدوارم که از این برنامه لذت برده باشید :nerd:


    پیشرفت نامه :
    [hr]
    1393/09/05 - نسخه 1.0 : نمایش اعداد بر روی 7Segment
    1393/09/08 - نسخه 1.1 : اضافه کردن برنامه نمایش حروف بر روی 7Segment
    1393/09/26 - نسخه 1.2 : اضافه نمودن نمونه کد(مثال) و نقطه 7Segment و اصلاح جملات انگلیسی(با همکاری آقا روح الامین عزیز)

    دریافت فایل از سرور کمکی نسخه 1.2

    موفق و پیروز باشید

    تغییرات جدید :
    { نسخه 1.2 ضمیمه شد }
    فایل های پیوست شده
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    #2
    نمایش دادن حروف انگلیسی روی 7segment

    درودی دوباره
    اخیرا" دیده شده که برخی از دوستان علاقه به نمایش دادن حروف انگلیسی روی 7segment هستند از این رو رفتم برنامه ای که چندی پیش نوشته بودم را ارتقاع دادم و قابلیت اینکه بتوانید حروف انگلیسی هم نمایش دهید اضافه شده است . البته کمی ناخواناست ولی به هر صورت خوبه ...
    نمایش حروفها به این صورت است .

    [hr]

    توضیحی کوتاه در مورد نرم افزار :
    فرض کنید در مدار قبل میخواهیم حروف انگلیسی را نمایش دهیم ...
    همان مراحلی که گفتم را تکرار میکنیم ولی با این تفاوت که محتوای فایلی که به ما می دهد فرق می کند
    خروجیش به این شکل هست ...
    کد:
     PORTx.2 ——˄˄˄—— a
     PORTx.0 ——˄˄˄—— b
     PORTx.4 ——˄˄˄—— c
     PORTx.5 ——˄˄˄—— d
     PORTx.7 ——˄˄˄—— e
     PORTx.1 ——˄˄˄—— f
     PORTx.3 ——˄˄˄—— g
    
    Source Code for ATmel Studio(GCC Compiler):
    uint8_t common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
    uint8_t char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,148,
    			  152,183,143,31,136,62,170,179,176,35,155,59,173};
    uint8_t common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
    uint8_t char_ca[30]={96,69,89,70,81,113,192,100,125,78,100,93,107,
    			  103,72,112,224,119,193,85,76,79,220,100,196,82};
    
    Source Code for CodevisionAVR:
    unsigned char common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
    unsigned char char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,148,
    			  152,183,143,31,136,62,170,179,176,35,155,59,173};
    unsigned char common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
    unsigned char char_ca[30]={96,69,89,70,81,113,192,100,125,78,100,93,107,
    			  103,72,112,224,119,193,85,76,79,220,100,196,82};
    
    Source Code for Bascom AVR:
    Common_cathode:
    Data 183 , 17 , 173 , 61 , 27 , 62 , 190 , 21 , 191 , 63 , 189 , 186 , 166 , 185 , 174 , 142
    Char_cc:
    Data 159 , 186 , 166 , 185 , 174 , 142 , 63 , 155 , 130 , 177 , 155 , 162 , 148 , _
       152 , 183 , 143 , 31 , 136 , 62 , 170 , 179 , 176 , 35 , 155 , 59 , 173
    Common_anode:
    Data 72 , 238 , 82 , 194 , 228 , 193 , 65 , 234 , 64 , 192 , 66 , 69 , 89 , 70 , 81 , 113
    Char_ca:
    Data 96 , 69 , 89 , 70 , 81 , 113 , 192 , 100 , 125 , 78 , 100 , 93 , 107 , _
       103 , 72 , 112 , 224 , 119 , 193 , 85 , 76 , 79 , 220 , 100 , 196 , 82
    
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
    خوب
    در مثال قبلی با برنامه کدویژن و با سون سگمنت کاتد مشترک کار کردیم و باید این قسمت را کپی بگیریم
    [code=cpp]unsigned char common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,18 5,174,142};
    unsigned char char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,1 48,
    152,183,143,31,136,62,170,179,176,35,155,59,173};[/code]
    سپس برنامه رو به صورت شکل زیر مینویسیم ...
    [code=c]#include <mega16a.h>
    #include <delay.h>

    void main(void)
    {
    unsigned char x=0,
    common_cathode[20]={183,17,173,61,27,62,190,21,191,63,189,186,166,18 5,174,142};
    unsigned char char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,1 48,
    152,183,143,31,136,62,170,179,176,35,155,59,173};
    DDRD = 0xFF;
    while (1)
    {
    for(x=0;x<16;x++)//0-1-2-3-4-5-6-7-8-9-A-b-C-d-E-F
    {
    PORTD = common_cathode[x];
    delay_ms(500);
    }
    for(x=0;x<26;x++)//A-B-C-...-X-Y-Z
    {
    PORTD = char_cc[x];
    delay_ms(500);
    }
    }
    }[/code]
    بعدا برید توی پروتئوس و لذت ببرید ...
    امیدوارم که از این پستم لذت برده باشید :nerd:


    دریافت نرم افزار ( نسخه 1.2 ) از سرور سایت :

    http://www.eca.ir/forum2/index.php?a...0;attach=12000
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #3
      پاسخ : معرفی نرم افزارEasy 7segment(برای راه اندازی آسانتر سون سگمنت) [با سه کامپایلر ]

      اقا سامان ببخشید با بسکام هم توضیح میدید؟
      http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

      دیدگاه


        #4
        نمونه کد بسکام برای راه اندازی 7segment

        نوشته اصلی توسط MAHDI ZAMANI
        اقا سامان ببخشید با بسکام هم توضیح میدید؟
        بله ...
        چرا که نه ...
        توی همون مثال بالا تا همون قسمتی که فایل out.txt را استخراج می کند را انجام میدهیم و بعدش محتوای فایل به این صورت هست :
        کد:
         PORTx.2 ——˄˄˄—— a
         PORTx.0 ——˄˄˄—— b
         PORTx.4 ——˄˄˄—— c
         PORTx.5 ——˄˄˄—— d
         PORTx.7 ——˄˄˄—— e
         PORTx.1 ——˄˄˄—— f
         PORTx.3 ——˄˄˄—— g
        
        Source Code for ATmel Studio(GCC Compiler):
        uint8_t common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
        uint8_t char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,148,
        			  152,183,143,31,136,62,170,179,176,35,155,59,173};
        uint8_t common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
        uint8_t char_ca[30]={96,69,89,70,81,113,192,100,125,78,100,93,107,
        			  103,72,112,224,119,193,85,76,79,220,100,196,82};
        
        Source Code for CodevisionAVR:
        unsigned char common_cathode[16]={183,17,173,61,27,62,190,21,191,63,189,186,166,185,174,142};
        unsigned char char_cc[30]={159,186,166,185,174,142,63,155,130,177,155,162,148,
        			  152,183,143,31,136,62,170,179,176,35,155,59,173};
        unsigned char common_anode[16]={72,238,82,194,228,193,65,234,64,192,66,69,89,70,81,113};
        unsigned char char_ca[30]={96,69,89,70,81,113,192,100,125,78,100,93,107,
        			  103,72,112,224,119,193,85,76,79,220,100,196,82};
        
        Source Code for Bascom AVR:
        Common_cathode:
        Data 183 , 17 , 173 , 61 , 27 , 62 , 190 , 21 , 191 , 63 , 189 , 186 , 166 , 185 , 174 , 142
        Char_cc:
        Data 159 , 186 , 166 , 185 , 174 , 142 , 63 , 155 , 130 , 177 , 155 , 162 , 148 , _
           152 , 183 , 143 , 31 , 136 , 62 , 170 , 179 , 176 , 35 , 155 , 59 , 173
        Common_anode:
        Data 72 , 238 , 82 , 194 , 228 , 193 , 65 , 234 , 64 , 192 , 66 , 69 , 89 , 70 , 81 , 113
        Char_ca:
        Data 96 , 69 , 89 , 70 , 81 , 113 , 192 , 100 , 125 , 78 , 100 , 93 , 107 , _
           103 , 72 , 112 , 224 , 119 , 193 , 85 , 76 , 79 , 220 , 100 , 196 , 82
        
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
        اگر 7segment ما آند مشترک باشه این قسمت رو کپی میگیریم
        [code=qbasic]Common_anode:
        Data 72 , 238 , 82 , 194 , 228 , 193 , 65 , 234 , 64 , 192 , 66 , 69 , 89 , 70 , 81 , 113
        Char_ca:
        Data 96 , 69 , 89 , 70 , 81 , 113 , 192 , 100 , 125 , 78 , 100 , 93 , 107 , _
        103 , 72 , 112 , 224 , 119 , 193 , 85 , 76 , 79 , 220 , 100 , 196 , 82
        [/code]

        و می بریم در برنامه اصلی و این قسمت را در آخر برنامه کپی میزنیم و برنامه زیر را مینویسیم
        [code=qbasic]$regfile = "m16def.dat"
        $crystal = 8000000

        Config Portd = Output

        Dim Var As Byte



        Do
        For Var = 0 To 9
        Portd = Lookup(var , Common_anode)
        Waitms 500
        Next
        For Var = 0 To 25
        Portd = Lookup(var , Char_ca)
        Waitms 500
        Next

        Loop

        End

        Common_anode:
        Data 72 , 238 , 82 , 194 , 228 , 193 , 65 , 234 , 64 , 192 , 66 , 69 , 89 , 70 , 81 , 113
        Char_ca:
        Data 96 , 69 , 89 , 70 , 81 , 113 , 192 , 100 , 125 , 78 , 100 , 93 , 107 , _
        103 , 72 , 112 , 224 , 119 , 193 , 85 , 76 , 79 , 220 , 100 , 196 , 82
        [/code]

        موفق باشید
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


          #5
          پاسخ : معرفی نرم افزارEasy 7segment(برای راه اندازی آسانتر سون سگمنت) [با سه کامپایلر ]

          امتحان نکردم ولی خیلی ایده باحالیه

          پس باید نرم فزار باحالی باشه خیلی معرکست. :applause: عالیه.

          من این این برنامه رو خودم نوشتم که همین کار رو میکنه ولی اینقدر روش فکر کردم که داشت مغذم دود میکرد

          [code=c]

          union S_Byte
          {
          unsigned char Byte_SEC_BCD;
          struct Bit_SEC_BCD{
          unsigned Bit0:1;
          unsigned Bit1:1;
          unsigned Bit2:1;
          unsigned Bit3:1;
          unsigned Bit4:1;
          unsigned Bit5:1;
          unsigned Bit6:1;
          unsigned Bit7:1;
          } SEC_BITS;
          }SS_Byte;

          union M_Byte
          {
          unsigned char Byte_MIN_BCD;
          struct Bit_MIN_BCD{
          unsigned Bit0:1;
          unsigned Bit1:1;
          unsigned Bit2:1;
          unsigned Bit3:1;
          unsigned Bit4:1;
          unsigned Bit5:1;
          unsigned Bit6:1;
          unsigned Bit7:1;
          } MIN_BITS;
          }MM_Byte;

          union H_Byte
          {
          unsigned char Byte_HOUR_BCD;
          struct Bit_HOUR_BCD{
          unsigned Bit0:1;
          unsigned Bit1:1;
          unsigned Bit2:1;
          unsigned Bit3:1;
          unsigned Bit4:1;
          unsigned Bit5:1;
          unsigned Bit6:1;
          unsigned Bit7:1;
          }HOUR_BITS;
          }HH_Byte;


          ----------------------------------------------


          S=bin2bcd(second);
          M=bin2bcd(minute);
          H=bin2bcd(hour);


          SS_Byte.Byte_SEC_BCD=S;
          MM_Byte.Byte_MIN_BCD=M;
          HH_Byte.Byte_HOUR_BCD=H;


          PORTA.0=SS_Byte.SEC_BITS.Bit4;
          PORTA.1=SS_Byte.SEC_BITS.Bit7;
          PORTA.2=SS_Byte.SEC_BITS.Bit6;
          PORTA.3=SS_Byte.SEC_BITS.Bit5;
          PORTA.4=SS_Byte.SEC_BITS.Bit1;
          PORTA.5=SS_Byte.SEC_BITS.Bit2;
          PORTA.6=SS_Byte.SEC_BITS.Bit3;
          PORTA.7=SS_Byte.SEC_BITS.Bit0;

          PORTB.0=MM_Byte.MIN_BITS.Bit0;
          PORTB.1=MM_Byte.MIN_BITS.Bit3;
          PORTB.2=MM_Byte.MIN_BITS.Bit2;
          PORTB.3=MM_Byte.MIN_BITS.Bit1;
          PORTB.4=MM_Byte.MIN_BITS.Bit4;
          PORTB.5=MM_Byte.MIN_BITS.Bit7;
          PORTB.6=MM_Byte.MIN_BITS.Bit6;
          PORTB.7=MM_Byte.MIN_BITS.Bit5;

          PORTD.0=HH_Byte.HOUR_BITS.Bit0;
          PORTD.1=HH_Byte.HOUR_BITS.Bit3;
          PORTD.2=HH_Byte.HOUR_BITS.Bit2;
          PORTD.3=HH_Byte.HOUR_BITS.Bit1;
          PORTD.4=HH_Byte.HOUR_BITS.Bit4;
          PORTD.5=HH_Byte.HOUR_BITS.Bit7;
          PORTD.6=HH_Byte.HOUR_BITS.Bit6;
          PORTD.7=HH_Byte.HOUR_BITS.Bit5;





          [/code]
          "زمان خط است نه دایره" چه ایده بدی بوده گرد ساختن ساعت. احساس میکنی همیشه فرصت تکرار است.
          ساعت دروغ میگوید. دروغ. زمان بر گرد یک دایره نمی چرخد! زمان بر روی خطی مستقیم میدود. و هیچگاه، هیچگاه، هیچگاه باز نمیگردد.
          ساعت خوب، ساعت شنی است! هر لحظه به تو یادآوری میکند که دانه ای که افتاد دیگر باز نمیگردد.
          پس بهتره یکم به ثانیه هایی که داریم فکر کنیم تا به راحتی از دستشون ندیم....

          دیدگاه


            #6
            پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

            ی سوال دیگه من یه متغیر tempدارم برای دما هست میخوام روی سون سگمنت نشون بدم باید رقم های عدد اصلی رو دونه دونه جدا کنم واسه این که رقم ها رو جدا کنم چطوری برنامه بنویسم؟
            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

            دیدگاه


              #7
              پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

              نوشته اصلی توسط MAHDI ZAMANI
              ی سوال دیگه من یه متغیر tempدارم برای دما هست میخوام روی سون سگمنت نشون بدم باید رقم های عدد اصلی رو دونه دونه جدا کنم واسه این که رقم ها رو جدا کنم چطوری برنامه بنویسم؟
              [code=qbasic]Dim Sadgan As Byte , Dahgan As Byte , Yekan As Byte
              Dim A As Word
              Dim Temp As Single

              Temp = 153

              sadgan = temp / 100
              a = sadgan * 100
              temp = temp - a
              dahgan = temp / 10
              a = dahgan * 10
              temp = temp - a
              yekan = temp[/code]
              موفق باشید
              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
              معرفی نرم افزار Codewizard PWM
              با من بیشتر آشنا شوید

              دیدگاه


                #8
                پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

                نوشته اصلی توسط سامان اسدی
                [code=qbasic]Dim Sadgan As Byte , Dahgan As Byte , Yekan As Byte
                Dim A As Word
                Dim Temp As Single

                Temp = 153

                sadgan = temp / 100
                a = sadgan * 100
                temp = temp - a
                dahgan = temp / 10
                a = dahgan * 10
                temp = temp - a
                yekan = temp[/code]
                موفق باشید
                سلام مجدد.
                استاد ببخشید من بازم این قسمت رو نفهمیدم!
                sadgan = temp / 100 که میشه 1.53
                a = sadgan * 100 که میشه 153 (چه فرقی کرد تقسیم و ضرب کردن مجددش؟
                temp = temp - a میشه 0
                خوب الان چه نتیجه ای گرفتیم؟!!
                تشکر نکن، صلوات بفرست:

                [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

                دیدگاه


                  #9
                  پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسا&

                  نوشته اصلی توسط MAHDI ZAMANI
                  ممنون استاد
                  نوشته اصلی توسط محمد نعمت الهیان
                  سلام مجدد.
                  استاد ببخشید من بازم این قسمت رو نفهمیدم!
                  درود به همه
                  آقا من کوچیک همه هستم ... بهم نگید استاد ...

                  نوشته اصلی توسط محمد نعمت الهیان
                  sadgan = temp / 100 که میشه 1.53
                  a = sadgan * 100 که میشه 153 (چه فرقی کرد تقسیم و ضرب کردن مجددش؟
                  temp = temp - a میشه 0
                  خوب الان چه نتیجه ای گرفتیم؟!!
                  آهااا ... دوستمون به نکته خیلی خوبی اشاره کردند ...
                  ببینید دوستان
                  محدوده متغیرها چند نمونه هستند
                  1 - بدون علامت (از 0 تا اعداد مثبت)
                  2 - با علامت (از منفی اعداد تا مثبت اعداد)
                  3 - اعشار علامت دار

                  متغیرهای word و Byte از نوع اول هستند و متغیرهای نوع Single از نوع اعشاری علامت دار هستند ...
                  اگر متغیر های بدون علامت را برابر با اعشار قرار دهیم تنها مقدار صحیح آن را وارد متغیر میکند ...
                  یعنی
                  sadgan = temp / 100 در اینجا sadgan مساوی با 1 میشود چون sadgan از نوع Byte است
                  a = sadgan * 100 الان مقدار a برابر 100 میشود و چون متغیر sadgan برابر است با 1 .
                  بقیش هم خودتون متوجه می شوید

                  موفق باشید
                  [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                  معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                  معرفی نرم افزار Codewizard PWM
                  با من بیشتر آشنا شوید

                  دیدگاه


                    #10
                    پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

                    سلام اقا سامان سون شگمنت با 7447 چطوری راه اندازی کنم؟
                    http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                    دیدگاه


                      #11
                      پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

                      نوشته اصلی توسط MAHDI ZAMANI
                      سلام اقا سامان سون شگمنت با 7447 چطوری راه اندازی کنم؟
                      درود

                      طبق نقشه پیش بروید

                      اگر با این آی سی کار کردید اون برنامه ای که نوشتم دیگه به دردتون نمی خوره ...
                      باید ورودی هاش به صورت کد BCD باشد ...
                      مثلا
                      ABCD
                      0000 میشه 0
                      0010 میشه 2
                      0111 میشه 7

                      موفق باشید
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


                        #12
                        پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت) [با 3 کامپایلر ]

                        خب متغیر دما که temp باشه رو چطوری bcd تبدیل کنم؟
                        http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                        دیدگاه


                          #13
                          نرم افزار Easy 7segmen (برای راه اندازی آسانتر سون سگمنت)

                          نوشته اصلی توسط MAHDI ZAMANI
                          خب متغیر دما که temp باشه رو چطوری bcd تبدیل کنم؟
                          اون رو دیگه باید اینطوری مدار رو بست

                          مثلا میخواهیم 150 را نمایش دهیم
                          ابتدا باید 1 را نمایش دهیم و بعد خاموش کنیم و بعدی 5 نمایش دهیم باز خاموش کنیم و بعد 0 را نمایش دهیم بعد خاموشش کنیم ...
                          این مراحل را باید انجام داد
                          خوب حالا باید میان هر مرحله چند میلی ثانیه ای صبر کنیم و بریم برای مرحله بعدی ...
                          بنابراین برای اینکار باید به طور مداوم این روند را انجام داد تا نمایش کامل شود ...
                          اگر سرعت این کار پایین باشد به صورت چشمک زن ظاهر میشود ...
                          برای رفع این مشکل باید سرعت را بالا برد ...
                          اگر بیش از حد سرعت را بالا ببریم باعث کم نوری میشود و از طرفی پردازش کارمان بیشتر هم می شود ...
                          بنابراین باید کاری کنیم که نه سیخ بسوزد نه کباب :mrgreen:
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #14
                            پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسا&

                            اقا سامان من بستم مدار رو a=pd.0
                            b=pd.1
                            c=pd.2
                            d=pd.3
                            e=pd.4
                            f=pd.5
                            g=pd.7
                            و مشرک ها به
                            مشترک صدگان به pb.0
                            مشترک دهگان به pb.1
                            مشترک یکان بهpb.2
                            سون سگمن کاتد مشترک هست و پایه های مشترک با bc337 به سون سگمنت متصل شده حالا میشه یه برنامه نمونه برای من قرار بدید تا موضوع برای من و امثال من قابل فهم تر بشه من خودم هر کار میکنم درست نمیشه
                            اگه زحمت نیست یه متغیر هم تعیرف کنید که من هر عددی به اون متغیر میدم روی سون سگمنت نمایش در بیاد تا ببینم
                            پیشاپیش ممنون از وقتی برای فهموندن به من قرار میدید

                            اضافه شده در تاریخ :
                            اقا سامن درست شد
                            $regfile = "m8def.dat"
                            $crystal = 8000000

                            Config Portd = Output
                            Config Portb = Output

                            Dim Var As Byte

                            DIM Sadgan AS Byte , Dahgan AS Byte , Yekan AS Byte
                            DIM A AS Word
                            DIM Temp AS SINGLE


                            Temp = 159

                            sadgan = temp / 100
                            a = sadgan * 100
                            temp = temp - a
                            dahgan = temp / 10
                            a = dahgan * 10
                            temp = temp - a
                            yekan = temp

                            DO

                            Set Portb.0
                            Portd = Lookup(sadgan , Char_ca)
                            Waitms 2
                            Reset Portb.0



                            Set Portb.1
                            Portd = Lookup(dahgan , Char_ca)
                            Waitms 2
                            Reset Portb.1



                            Set Portb.2
                            Portd = Lookup(yekan , Char_ca)
                            Waitms 2
                            Reset Portb.2







                            LOOP

                            END


                            Char_ca:
                            Data 63 , 6 , 155 , 143 , 166 , 173 , 189 , 7 , 191 , 175 , 159 , 188 , 57 , 158 , 185 , 177
                            اینم برنامه برای کسایی میخوان استفاده کنن اما بعضی چراغا کمرنگ روشنن
                            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                            دیدگاه


                              #15
                              پاسخ : معرفی نرم افزار Easy 7segmen (برای راه اندازی آسا&

                              نوشته اصلی توسط MAHDI ZAMANI
                              اقا سامان من بستم مدار رو
                              کد:
                              a=pd.0
                              b=pd.1
                              c=pd.2
                              d=pd.3
                              e=pd.4
                              f=pd.5
                              g=pd.7
                              و مشرک ها به
                              مشترک صدگان به pb.0
                              مشترک دهگان به pb.1
                              مشترک یکان بهpb.2
                              سون سگمن کاتد مشترک هست و پایه های مشترک با bc337 به سون سگمنت متصل شده حالا میشه یه برنامه نمونه برای من قرار بدید تا موضوع برای من و امثال من قابل فهم تر بشه من خودم هر کار میکنم درست نمیشه
                              اگه زحمت نیست یه متغیر هم تعیرف کنید که من هر عددی به اون متغیر میدم روی سون سگمنت نمایش در بیاد تا ببینم
                              پیشاپیش ممنون از وقتی برای فهموندن به من قرار میدید

                              اضافه شده در تاریخ :
                              اقا سامن درست شد
                              [code=qbasic]$regfile = "m8def.dat"
                              $crystal = 8000000

                              Config Portd = Output
                              Config Portb = Output

                              Dim Var As Byte

                              DIM Sadgan AS Byte , Dahgan AS Byte , Yekan AS Byte
                              DIM A AS Word
                              DIM Temp AS SINGLE

                              Temp = 159

                              sadgan = temp / 100
                              a = sadgan * 100
                              temp = temp - a
                              dahgan = temp / 10
                              a = dahgan * 10
                              temp = temp - a
                              yekan = temp

                              DO

                              Set Portb.0
                              Portd = Lookup(sadgan , Char_ca)
                              Waitms 2
                              Reset Portb.0

                              Set Portb.1
                              Portd = Lookup(dahgan , Char_ca)
                              Waitms 2
                              Reset Portb.1



                              Set Portb.2
                              Portd = Lookup(yekan , Char_ca)
                              Waitms 2
                              Reset Portb.2

                              LOOP

                              END


                              Char_ca:
                              Data 63 , 6 , 155 , 143 , 166 , 173 , 189 , 7 , 191 , 175 , 159 , 188 , 57 , 158 , 185 , 177[/code]
                              اینم برنامه برای کسایی میخوان استفاده کنن اما بعضی چراغا کمرنگ روشنن
                              سلام
                              اگر با ترانزیستور کار کرده باشید باید از کد زیر استفاده کنید :
                              [code=qbasic]$regfile = "m8def.dat"
                              $crystal = 8000000

                              Config Portd = Output
                              Config Portb = Output

                              Dim Var As Byte

                              DIM Sadgan AS Byte , Dahgan AS Byte , Yekan AS Byte
                              DIM A AS Word
                              DIM Temp AS SINGLE

                              Temp = 159

                              sadgan = temp / 100
                              a = sadgan * 100
                              temp = temp - a
                              dahgan = temp / 10
                              a = dahgan * 10
                              temp = temp - a
                              yekan = temp

                              DO

                              Reset Portb.0
                              Portd = Lookup(sadgan , Common_anode)
                              Waitms 2
                              Set Portb.0

                              Reset Portb.1
                              Portd = Lookup(dahgan , Common_anode)
                              Waitms 2
                              Set Portb.1

                              Reset Portb.2
                              Portd = Lookup(yekan , Common_anode)
                              Waitms 2
                              Set Portb.2

                              LOOP

                              END

                              Common_anode:
                              Data 192 , 249 , 100 , 112 , 89 , 82 , 66 , 248 , 64 , 80 , 96 , 67 , 198 , 97 , 70 , 78[/code]

                              ولی اگر پایه ها رو به خود میکرو وصل کرده باشید کدش به این شکل خواهد شد :
                              [code=qbasic]$regfile = "m8def.dat"
                              $crystal = 8000000

                              Config Portd = Output
                              Config Portb = Output

                              Dim Var As Byte

                              Dim Sadgan As Byte , Dahgan As Byte , Yekan As Byte
                              Dim A As Word
                              Dim Temp As Single

                              Temp = 159

                              sadgan = temp / 100
                              a = sadgan * 100
                              temp = temp - a
                              dahgan = temp / 10
                              a = dahgan * 10
                              temp = temp - a
                              yekan = temp

                              Do

                              Set Portb.0
                              Portd = Lookup(sadgan , Common_anode)
                              Waitms 2
                              Reset Portb.0

                              Set Portb.1
                              Portd = Lookup(dahgan , Common_anode)
                              Waitms 2
                              Reset Portb.1

                              Set Portb.2
                              Portd = Lookup(yekan , Common_anode)
                              Waitms 2
                              Reset Portb.2

                              Loop
                              End

                              Common_anode:
                              Data 192 , 249 , 100 , 112 , 89 , 82 , 66 , 248 , 64 , 80 , 96 , 67 , 198 , 97 , 70 , 78[/code]

                              موفق باشید
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه

                              لطفا صبر کنید...
                              X