اطلاعیه

Collapse
No announcement yet.

راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

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

    #16
    پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

    از من گفتن بود شما میتونید اینترنتی هم خرید کنید
    پروگرمر چیزیه که الان هر شهرستانی هم پیدا میشه بیشتر بگردید
    این هم پی سی بی و لینک سایت
    پی سی بی :
    http://www.kmitl.ac.th/~kswichit/cheapcable/LAYOUT.PDF
    سایت:
    http://www.kmitl.ac.th/~kswichit/cheapcable/index.html

    در ضمن من این مدار رو تست نکردم البته انقد سادست که تست نمیخواد
    من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

    دیدگاه


      #17
      پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

      خیلی ممنون
      ولی تو سایت نوشته واسه سری 89S ولی مداری ساعت من 89C هست

      اشکالی ایجاد نمی کنه که؟
      ما ندرتا به آنچیزی که داریم فکر می کنیم در حالی که پیوسته در فکر چیزهائی که نداریم هستیم

      دیدگاه


        #18
        پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

        اگه تو عکس مدار دقت کنی یه جای آیسی داره که مخصوص اون سری هست
        بغلش هم یه دونه جای سوکت دیگست که شما میتونی میکروی مورد نظرتو بهش وصل کنی
        این جای آیسی مخصوص اون سری ها هست شما میتونی نصب نکنی
        در ضمن اگه کارکرد پایه هاشون یکی باشه مشکلی نداره

        در هر صورت این آموزش فارسی رو ببین متوجه منظورم میشی که میگم مدار و ... نمیخواد
        http://kharazmi.robotic.lxb.ir/post/...STK200/300.htm

        http://www.tebyan.net/newindex.aspx?pid=108935

        http://www.serasidis.gr/circuits/avrprog/avrprog.htm
        من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

        دیدگاه


          #19
          پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

          خب اونوطر که به مدار نگاه کردم اونجا یه zif سوکت هست آی سی روش نشسته
          شما میگی من اون آی سی رو نصب نکنم درسته؟
          و قسمت AVR هم متصل میشه به میکروی ساعت تا اینجاش درسته؟
          اونجور که تو لینک اول توضیح داده انگار نیازی برای ساخت مدار نیست و باید میکرو رو مستقیما با تغذیه به پورت LPT وصل کنم؟

          اگه اینجوری باشه فقط کافیه من یه پورت نری LPT پیدا کنم و روی برد بورد میکروی ساعت رو بهش وصل کنم و پروگرم کنم و تمام؟
          درسته؟

          اگه یکم گیج میزنم ببخشید :biggrin: دیگه چون من اصلا از میکرو سر در نمیارم اصلــــــــــا برا همین نمیفهمم موضوع چیه

          ببخشید
          ما ندرتا به آنچیزی که داریم فکر می کنیم در حالی که پیوسته در فکر چیزهائی که نداریم هستیم

          دیدگاه


            #20
            پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

            نوشته اصلی توسط saeid.s97
            خب اونوطر که به مدار نگاه کردم اونجا یه zif سوکت هست آی سی روش نشسته
            شما میگی من اون آی سی رو نصب نکنم درسته؟
            و قسمت AVR هم متصل میشه به میکروی ساعت تا اینجاش درسته؟
            اونجور که تو لینک اول توضیح داده انگار نیازی برای ساخت مدار نیست و باید میکرو رو مستقیما با تغذیه به پورت LPT وصل کنم؟

            اگه اینجوری باشه فقط کافیه من یه پورت نری LPT پیدا کنم و روی برد بورد میکروی ساعت رو بهش وصل کنم و پروگرم کنم و تمام؟
            درسته؟

            اگه یکم گیج میزنم ببخشید :biggrin: دیگه چون من اصلا از میکرو سر در نمیارم اصلــــــــــا برا همین نمیفهمم موضوع چیه

            ببخشید
            اگه نتیجه بده کاراتون گیج زدن ها مهم نیست خوب هم هست ولی اگه نتیجه نده اونوقته که :angry:
            ببینید تقریبا درست گفتید اگه اون دو تا عکس رو دقت کنید (پست های قبلی) بهتر میتونید متوجه بشید
            شما فقط کافیه پورت نرگی پرینتر به همراه سیم تهیه کنید
            هر کدوم از شماره های اون پورت به یه جا وصل میشه (لینک فارسی که دادم رو دقت کنید اونجا توضیح داده )
            حالا دیتاشیت میکروتون هم از سایت اتمل بگیرید (مدل رو سرچ کنید میاد)
            خب تو صفحه 2 یا 3 اسم هر پایه رو زده با عکس
            شما میکروتون رو تو دست که میگیرید یه شیار بالاش داره اون شیار میشه راهنمای شماره پایه ها
            با عکس تطبیق بدید تا بفهمید کی به کیه
            حالا کافیه طبق اون مدار هر کدوم از پین های پورت پرینتر رو به اون پایه که لازمه وصل کنید واسلام و علیکم و........
            از اینجا به بعد هم جواب نمیدم سوالاتونو چون میدونم الان کلی سوال تو ذهنتونه شرط جواب دادن اینه که فردا برید قطعات رو تهیه کنید ببندید بعد اگر خدایی ناکرده گیر کردید بگید تا بگم :applause: :applause: :twisted:
            الان چون کار نکردید اینجوریه باور کنید راحت ترین کار عمل کردنه قطعات رو بگیرید بیاید بقیشو با هم میریم جلو
            من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

            دیدگاه


              #21
              پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

              دوست عزیز اینکه پشتکار داری و میخوای با اطلاعات کمت یه پروگرمر بسازی عالیه ولی اگه یکی بخری بهتره درسته 20هزار تومن حدودا (پروگرمر STK500) پولش هست ولی مطمئن باش تا هر مداری بخوای بسازی بدردت میخوره. اینی که داری میسازی اگه درست مونتاژ کنی تازه فقط یه سری از میکرو ها رو پوشش میده ولی اون پروگرمر 20هزاری کل میکرو های AVR رو پوشش میده و USB هم هست اینی هم که میخوای با مدار چاپی درست کنی 10هزاری باید خرجش کنی بعد نرم افزاراش هم باید دانلود کنی بخری بهتره.
              من تو ساختش تجربه ندارم اگه داشتم کمکت میکردم . زبان C هم بلد نیستم. اگه کسی میتونه این فایل C برای همین پروژه ساعت رو تبدیل به HEX کنه منم این ساعت رو میسازم.
              کسی این کار رو بکنه ممنون میشم چون من فقط یکم بسکام بلدم و کدویژن هیچی
              C.txt - 4 KB

              کد:
              /*
               * DigitalClock.c
               * Written in AVR Studio 5
               * Compiler: AVR GNU C Compiler (GCC)
               *
               * Created: 12/10/2011 1:17:19 PM
               * Author:	AVR Tutorials
               * Website:	www.AVR-Tutorials.com
               */ 
              #define F_CPU	4000000UL
              #include <avr/delay.h>
              #include <avr/io.h>
              #include <avr/interrupt.h>
               
              #define SegDataPort		PORTB
              #define SegDataPin		PINB
              #define SegDataDDR		DDRB
               
              #define SegCntrlPort	PORTC
              #define SegCntrlPin		PINC
              #define SegCntrlDDR		DDRC
               
               
              /*Global Variables Declarations*/
              unsigned char hours = 0;
              unsigned char minutes = 0;
              unsigned char seconds = 0;
               
               
              /*Function Declarations*/
              /*****************************************************************************/
              /*Decimal Digit (0-9) to Seven Segment Values Encoder*/
              unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common);
               
              /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Handler*/
              ISR(TIMER1_COMPA_vect);
               
               
              /*Main Program*/
              /*****************************************************************************/
              int main(void)
              {
                SegDataDDR = 0xFF;
              	SegCntrlDDR = 0x3F;
              	SegCntrlPort = 0xFF;
               
              	TCCR1B = (1<<CS12|1<<WGM12);
              	OCR1A = 15625-1;
              	TIMSK = 1<<OCIE1A;
              	sei();
               
               
              	while(1)
                {
                  /* Set Minutes when SegCntrl Pin 6 Switch is Pressed*/
              		if((SegCntrlPin & 0x40) == 0 )
              		{	
              			_delay_ms(200);
              			if(minutes < 59)
              				minutes++;
              			else
              				minutes = 0;
              		}
                  /* Set Hours when SegCntrl Pin 7 Switch is Pressed*/			
              		if((SegCntrlPin & 0x80) == 0 )
              		{	
              			_delay_ms(200);
              			if(hours < 23)
              				hours++;
              			else
              				hours = 0;
              		}			
               
              		SegDataPort = DigitTo7SegEncoder(seconds%10,1);
              		SegCntrlPort = ~0x01;
              		SegDataPort = DigitTo7SegEncoder(seconds/10,1); 
              		SegCntrlPort = ~0x02;
              		SegDataPort = DigitTo7SegEncoder(minutes%10,1);
              		SegCntrlPort = ~0x04;
              		SegDataPort = DigitTo7SegEncoder(minutes/10,1); 
              		SegCntrlPort = ~0x08;
              		SegDataPort = DigitTo7SegEncoder(hours%10,1); 
              		SegCntrlPort = ~0x10;
              		SegDataPort = DigitTo7SegEncoder(hours/10,1);
              		SegCntrlPort = ~0x20;
               
                }
              	return 0;
              }
               
              /*
              * Function Description:
              * Encode a Decimal Digit 0-9 to its Seven Segment Equivalent.
              *
              * Function Arguments:
              * digit - Decimal Digit to be Encoded
              * common - Common Anode (0), Common Cathode(1)
              * SegVal - Encoded Seven Segment Value 
              *
              * Connections:
              * Encoded SegVal is return in the other G-F-E-D-C-B-A that is A is the least
              * significant bit (bit 0) and G bit 6.
              */
              unsigned char DigitTo7SegEncoder(unsigned char digit, unsigned char common)
              {
              	unsigned char SegVal;
               
              	switch(digit)	
              	{	
              		case 0:	if(common == 1)	SegVal = 0b00111111;
              				else			SegVal = ~0b00111111;
              				break;
              		case 1:	if(common == 1)	SegVal = 0b00000110;
              				else			SegVal = ~0b00000110;
              				break;
              		case 2:	if(common == 1)	SegVal = 0b01011011;
              				else			SegVal = ~0b01011011;
              				break;
              		case 3:	if(common == 1)	SegVal = 0b01001111;
              				else			SegVal = ~0b01001111;
              				break;
              		case 4:	if(common == 1)	SegVal = 0b01100110;
              				else			SegVal = ~0b01100110;
              				break;
              		case 5:	if(common == 1)	SegVal = 0b01101101;
              				else			SegVal = ~0b01101101;
              				break;
              		case 6:	if(common == 1)	SegVal = 0b01111101;
              				else			SegVal = ~0b01111101;
              				break;
              		case 7:	if(common == 1)	SegVal = 0b00000111;
              				else			SegVal = ~0b00000111;
              				break;
              		case 8:	if(common == 1)	SegVal = 0b01111111;
              				else			SegVal = ~0b01111111;
              				break;
              		case 9:	if(common == 1)	SegVal = 0b01101111;
              				else			SegVal = ~0b01101111;		
              	}		
              	return SegVal;
              }
               
              /*Timer Counter 1 Compare Match A Interrupt Service Routine/Interrupt Handler*/
              ISR(TIMER1_COMPA_vect)
              {
              	seconds++;
               
              	if(seconds == 60)
              	{
              		seconds = 0;
              		minutes++;
              	}
              	if(minutes == 60)
              	{
              		minutes = 0;
              		hours++;		
              	}
              	if(hours > 23)
              		hours = 0;
              }
              برخی آدمها[ تنها ] به یک دلیل از مسیر زندگی ما می گذرند [ تا ] به ما درسهایی بیاموزند ؛ که اگر می ماندند هرگز [ آن درسها را ] یاد نمی گرفتیم …

              دیدگاه


                #22
                پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                دوستان خیلی ممنون از راهنمائی هاتون
                آقا پویا این کد شما چه ویژگی هائی داره ینی با مال من فرق می کنه؟
                ما ندرتا به آنچیزی که داریم فکر می کنیم در حالی که پیوسته در فکر چیزهائی که نداریم هستیم

                دیدگاه


                  #23
                  پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                  الان آقا سعید بدتر سوالاش زیاد میشه :rolleyes:
                  من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

                  دیدگاه


                    #24
                    پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                    آره والا :biggrin:
                    الآن یه سوال دیگه اینکه پورت پرینتر کدوم خانواده از میکرو هارو ساپورت می کنه و میشه با پورت پرینتر پروگرمشون کرد؟
                    ما ندرتا به آنچیزی که داریم فکر می کنیم در حالی که پیوسته در فکر چیزهائی که نداریم هستیم

                    دیدگاه


                      #25
                      پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                      خانواده هایی که با روش SPI پروگرم میشن رو ساپورت میکنه اگه اشتباه نکنم
                      من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

                      دیدگاه


                        #26
                        پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال ب&

                        سلام
                        آقا چطور این کد رو به hex تبدیل کنم تو کد ویژن که سر در نیاوردم یه بخشی بود اونم فقط واسه سری ATmega بود ولیAt89c51 رو نداشت
                        ما ندرتا به آنچیزی که داریم فکر می کنیم در حالی که پیوسته در فکر چیزهائی که نداریم هستیم

                        دیدگاه


                          #27
                          پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                          کد ویژن ندارم نمیدونم
                          از بچه هایی که با کد ویژن کار میکنن بپرس
                          قطعات رو گرفتی ؟
                          من دوست ندارم خودم را درگیر مسئله بهشت یا جهنم بکنم ، چون در هر دو قسمت دوستان خوبی دارم !

                          دیدگاه


                            #28
                            پاسخ : راهنمائی در مورد طراحی ساعت دیجیتال با سگمنت

                            نوشته اصلی توسط saeid.s97
                            دوستان خیلی ممنون از راهنمائی هاتون
                            آقا پویا این کد شما چه ویژگی هائی داره ینی با مال من فرق می کنه؟
                            این برنامه ساعت با میکرو AVR ATmega 16 هستش برنامه شما رو ندیدم فقط چون من Codevision بلد نیستم نمیتونم تبدیلش کنم به hex.
                            برای اینکه بهتر بفهمی بهت میگم برای اینکه برنامه رو بریزی تو میکرو باید قبلش تبدیلش کنی به hex یعنی زبان میکرو. بعد فایل hex رو میریزی تو میکرو
                            برخی آدمها[ تنها ] به یک دلیل از مسیر زندگی ما می گذرند [ تا ] به ما درسهایی بیاموزند ؛ که اگر می ماندند هرگز [ آن درسها را ] یاد نمی گرفتیم …

                            دیدگاه

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