اطلاعیه

Collapse
No announcement yet.

سوالات مربوط به LCD های کاراکتری و گرافیکی

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

    نوشته اصلی توسط masoud_m_bf
    سلام
    من یه ال سی دی گرافیکی 128*64 دارم
    ی عکس هم دارم 16*14 پیکسل
    همه چیزش درسته
    فقط وقتی این عکس رو میخوام مثلا وسط صفحه نشون بدم در راستای X مشکلی نداره هر جا بخوام میتونم بذارم
    اماY پ8پیکسل 8 پیکسل جا بجا میشه
    یعنی مثلا وقتی مختصات 15 و 5 رو میدم عکس تو 15 و 0 نمایش داده میشه
    اگه نقطه 15 و 10 رو بدم تو نقطه 15 و 8 نشون داده میشه
    و...
    راه چاره چیه؟
    خیلی ممنون
    خیرین تا حالا کسی راه چاره ای ن.اندیشه؟ :angry:
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    دیدگاه


      پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

      سلام.

      من برای LCD های گرافیکی از نرم افزار PAINT ویندوز XPآ‌ استفاده می کنم. اما به تازگی با پیشرفت کارها ، دیگه این نرم افزار جواب نمیده. اگه ممکنه یه نرم افزار قوی و کامل همانندPAINT ویندوز که ساده باشه را معرفی کنید.

      بسیار ممنون

      دیدگاه


        پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

        نوشته اصلی توسط masoud_m_bf
        خیرین تا حالا کسی راه چاره ای ن.اندیشه؟ :angry:

        شما گفتید که با X مشکلی ندارید. امکان نداره. در بسکام مقادیر X و Yآ‌ حتما باید مضربی صحیح از عدد 8 باشد. اگر شما نمی توانید این امکان ضریب را فراهم کنید ، باید از نرم افزار FAST LCD استفاده کرده و به راحتی عکس خود را در مکان دلخواه نمایش دهید.

        من اینجوری بلد هستم و تجربه زیادی ندارم متاسفانه.

        :read:

        دیدگاه


          پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

          نوشته اصلی توسط masoud_m_bf
          خیرین تا حالا کسی راه چاره ای ن.اندیشه؟ :angry:

          البته خیلی جالبه !!!!!!!!!!!!!!!!!!!!!!!!!

          الآن من با LCD TOSHIBA 240 X 128 تست کردم حرکت در راستای X و Y با هر ضریبی ، به راحتی امکان پذیر بود. دقیقا تو عمل دیدم. اما موقع تبدیل عکس در بسکام حتما حتما ، عکستون که به فرمت BMP است ، باید ضریب صحیحی از 8 باشد.

          یعنی در کل اینجوری بگم که عکستون رو که میخواهید در بسکام تبدیل بزنید حتما باید مضرب صحیحی از 8 باشد اما متغیر X و Y می تواند هر ضریبی باشد البته این موضوع برخلاف ادعای خود شرکت BASCOM است!!!!!!!!!!!!!!!!!!!!!!!!

          :read:

          دیدگاه


            پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

            نوشته اصلی توسط masoud_m_bf
            خیرین تا حالا کسی راه چاره ای ن.اندیشه؟ :angry:

            من گفته قبلی خودم را کمی تصحیح می کنم. الآن یه تست کامل از ال سی دی گرفتم ، من در راستای Y مشکلی ندارم و به راحتی با تغیرات یک مرحله ای هم جواب میگیرم. اما تغییرات X فقط به مضرب 8 جواب می دهد.

            پس در راستای Y مشکلی نیست ، اما در راستای X فقط 8 تا 8 تا.

            :read:

            دیدگاه


              پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

              نوشته اصلی توسط HOSSEIN_VAKILZADEH

              من گفته قبلی خودم را کمی تصحیح می کنم. الآن یه تست کامل از ال سی دی گرفتم ، من در راستای Y مشکلی ندارم و به راحتی با تغیرات یک مرحله ای هم جواب میگیرم. اما تغییرات X فقط به مضرب 8 جواب می دهد.

              پس در راستای Y مشکلی نیست ، اما در راستای X فقط 8 تا 8 تا.

              :read:
              سلام
              خیلی ممنون
              تو زحمت افتادین
              خب حتما X و Y ما با هم فرق دارن
              من در راستای افقی نسب به خودم مشکلی ندارم
              اما در راستای عمودی به مشکل میخورم

              کسی راه حلی نداره؟ باور کنید پروژم رو زمین مونده الاف همینم
              آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

              116 کتابخانه مورد نیاز برای Altium Designer

              از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

              دیدگاه


                پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                با سلام،

                مقدمتا به این نکته توجه کنید که یک صفحه نمایش LCD گرافیکی در اصل یک آرایه 8 بیتی هست که هر بیت اطلاعات یک پیکسل رو در صفحه نمایش در خودش ذخیره میکنه و توسط کنترلر LCD روی صفحه نمایشگر نمایش داده میشه. در نتیجه، دسترسی به پیکسل های LCD هشت تایی خواهد بود. بطور مثال در LCD نوکیا 1100 داریم راجع به این بلوک آبی صحبت میکنیم :



                این آرایه در LCD های مختلف ممکنه به پیکسل های صفحه نمایش بصورت افقی و یا عمودی اشاره داشته باشه که به اون Byte Orientation میگن که مثلا در T6963 بصورت افقی و در KS0108 بصورت عمودی است.

                برای روشن شدن بهتر موضوع، به این تصویر که مربوط به یک نمایشگر با Byte Orientation عمودی است دقت کنید ( حالت عادی LCD نوکیا 1100 با رزلوشن 96 در 65 ) :



                مثلا اگر مقدار بایت 194 رو در تصویر بالا عدد 0b00000100 باینری ( 4 دسیمال ) قرار بدیم، پیکسلی در x=2 و y=18 روشن خواهد شد. اگر عدد 0b00001100 باینری ( 12 دسیمال ) رو قرار بدیم، پیکسل هایی در x=2 و y=18 و y=19 روشن خواهند شد و الی آخر ......

                با توجه به توضیحات ارائه شده، اگر روتین نمایش تصویر رو خیلی ساده نوشته باشند، امکان جابجایی تصویر در صفحه نمایش ( با فرض Byte Orientation عمودی ) در راستای x یک پیکسلی و در راستای y مضربی از 8 پیکسل خواهد بود! ولی اگر کمی حرفه ای نوشته شده باشه، در هر دو راستای x و y میتوان تصویر رو یک پیکسل در یک پیکسل جابجا کرد.... :nerd:
                مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                Sh_Nourbakhsh@Yahoo.com

                http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                دیدگاه


                  پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                  نوشته اصلی توسط aivhl
                  با سلام،

                  مقدمتا به این نکته توجه کنید که یک صفحه نمایش LCD گرافیکی در اصل یک آرایه 8 بیتی هست که هر بیت اطلاعات یک پیکسل رو در صفحه نمایش در خودش ذخیره میکنه و توسط کنترلر LCD روی صفحه نمایشگر نمایش داده میشه. در نتیجه، دسترسی به پیکسل های LCD هشت تایی خواهد بود. بطور مثال در LCD نوکیا 1100 داریم راجع به این بلوک آبی صحبت میکنیم :



                  این آرایه در LCD های مختلف ممکنه به پیکسل های صفحه نمایش بصورت افقی و یا عمودی اشاره داشته باشه که به اون Byte Orientation میگن که مثلا در T6963 بصورت افقی و در KS0108 بصورت عمودی است.

                  برای روشن شدن بهتر موضوع، به این تصویر که مربوط به یک نمایشگر با Byte Orientation عمودی است دقت کنید ( حالت عادی LCD نوکیا 1100 با رزلوشن 96 در 65 ) :



                  مثلا اگر مقدار بایت 194 رو در تصویر بالا عدد 0b00000100 باینری ( 4 دسیمال ) قرار بدیم، پیکسلی در x=2 و y=18 روشن خواهد شد. اگر عدد 0b00001100 باینری ( 12 دسیمال ) رو قرار بدیم، پیکسل هایی در x=2 و y=18 و y=19 روشن خواهند شد و الی آخر ......

                  با توجه به توضیحات ارائه شده، اگر روتین نمایش تصویر رو خیلی ساده نوشته باشند، امکان جابجایی تصویر در صفحه نمایش ( با فرض Byte Orientation عمودی ) در راستای x یک پیکسلی و در راستای y مضربی از 8 پیکسل خواهد بود! ولی اگر کمی حرفه ای نوشته شده باشه، در هر دو راستای x و y میتوان تصویر رو یک پیکسل در یک پیکسل جابجا کرد.... :nerd:
                  آقا خیلی ممنون
                  لطف کردین
                  الان سوال من اینه که چطور میتونم برنامه رو به قول شما کمی حرفه ای بنویسم؟ تو بسکام میشه اصلا؟
                  آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                  116 کتابخانه مورد نیاز برای Altium Designer

                  از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                  دیدگاه


                    پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                    نوشته اصلی توسط masoud_m_bf
                    آقا خیلی ممنون
                    لطف کردین
                    الان سوال من اینه که چطور میتونم برنامه رو به قول شما کمی حرفه ای بنویسم؟ تو بسکام میشه اصلا؟

                    به نظر من باید عکس ها رو حرفه ای در بیاری.


                    راستی دوستان از سوال من چه خبر ، نرم افزار پیشرفته تری نسبت به PAINT ویندوز ندارید که مثل اون ساده اما پیشرفته باشه؟

                    خیلی احتیاج دارم خواهش میکنم چند تا نرم افزار به من معرفی کنید. :cry2: :cry2:

                    :read:

                    دیدگاه


                      پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                      نوشته اصلی توسط HOSSEIN_VAKILZADEH

                      به نظر من باید عکس ها رو حرفه ای در بیاری.


                      راستی دوستان از سوال من چه خبر ، نرم افزار پیشرفته تری نسبت به PAINT ویندوز ندارید که مثل اون ساده اما پیشرفته باشه؟

                      خیلی احتیاج دارم خواهش میکنم چند تا نرم افزار به من معرفی کنید. :cry2: :cry2:

                      :read:
                      ببخشید دقیقا چه امکاناتی میخواید؟
                      الان که با پینت ویندوز ویستا یا 7 خیلی کارای خوبی میشه کرد
                      آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                      116 کتابخانه مورد نیاز برای Altium Designer

                      از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                      دیدگاه


                        پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                        نوشته اصلی توسط masoud_m_bf
                        آقا خیلی ممنون
                        لطف کردین
                        الان سوال من اینه که چطور میتونم برنامه رو به قول شما کمی حرفه ای بنویسم؟ تو بسکام میشه اصلا؟
                        روتینی که من نوشتم به سی هستش و برای LCD نوکیا 1100 و KS0108 اگر به کارتون میاد، براتون بزارمش ....
                        مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                        Sh_Nourbakhsh@Yahoo.com

                        http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                        دیدگاه


                          پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                          نوشته اصلی توسط aivhl
                          روتینی که من نوشتم به سی هستش و برای LCD نوکیا 1100 اگر به کارتون میاد، براتون بزارمش ....
                          اگه میشه لطف کنید بذارید
                          میتونم تغییرش بدم که به دردم بخوره دبگه؟
                          آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                          116 کتابخانه مورد نیاز برای Altium Designer

                          از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                          دیدگاه


                            پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                            نوشته اصلی توسط masoud_m_bf
                            اگه میشه لطف کنید بذارید
                            میتونم تغییرش بدم که به دردم بخوره دبگه؟
                            این فقط روش کار رو براتون مشخص میکنه، بقیه اش دیگه با خودتونه :

                            برای نوکیا N1100 :
                            کد:
                            	//------------------------
                            	void N11_DrawBitmap(_const unsigned char *bitmap, unsigned char x, unsigned char y, N11_Pmode mode)
                            	{
                            		unsigned char 		header, width, height;
                            		unsigned char			xx, yy, rr;
                            		unsigned int			xy;
                            		unsigned char			pd, pc, ps;
                            		unsigned char 		Cdata;
                            		
                            	 
                            		header = _pgm_read_byte(bitmap[0]); 	//header size & width & height
                            	 width = _pgm_read_byte(bitmap[1]);
                            	 height = _pgm_read_byte(bitmap[2]);
                            	
                            		ps = _ror(1 << (y%8));
                            	
                            		for(xx=0; xx<width; xx++)
                            		{
                            			pd = ps;
                            	 		Cdata = _pgm_read_byte(bitmap[xx+header]);
                            	
                            			for(yy=0, pc=0; yy<height; yy++,pc++)
                            			{
                            				if(pc==8)
                            				{
                            					xy = (unsigned char)(yy/8)*width + xx+header;
                            				 	Cdata = _pgm_read_byte(bitmap[xy]);
                            	
                            				 	pc = 0;
                            				}//if pc
                            	
                            				rr = (unsigned char)((y+yy)/8);
                            				pd = _rol(pd);
                            					
                            				
                            				//Draw BMP!
                            				if(mode == PIXEL_XOR)
                            				{
                            					if(bit_is_set(Cdata, pc))			N11_Cache[x+xx][rr] &= ~pd;
                            					else													N11_Cache[x+xx][rr] |= pd;
                            				}
                            				else
                            				{
                            					if(bit_is_set(Cdata, pc))			N11_Cache[x+xx][rr] |= pd;
                            					else													N11_Cache[x+xx][rr] &= ~pd;
                            				}
                            			}//for yy
                            		}//for xx
                            	
                            		N11_Update();
                            	} //*N11_DrawBitmap

                            و برای KS0108 :

                            کد:
                            //-------------------------------------------------
                            //--- Loads a Bitmap to GLCD ---//
                            void KS108_DrawBitmap(_const unsigned char *bitmap, unsigned char x, unsigned char y, Show_Mode mode)
                            {
                            	unsigned char 			width, height, header;
                            	unsigned char 			displayData;
                            
                            	unsigned char 			xx, yy, yyy;
                            	unsigned char				hh, ww;
                            	
                            	unsigned char				endShift;
                            	unsigned int				xy;
                            
                             header = _pgm_read_byte(bitmap[0]); 
                             width = _pgm_read_byte(bitmap[1]); 
                             height = _pgm_read_byte(bitmap[2]);
                             
                            	// Drawing position calculation
                            	ww = width;
                            	hh = height;
                            	
                            	if((x+ww) > DISPLAY_WIDTH)		ww = DISPLAY_WIDTH -x;
                            	if((y+hh) > DISPLAY_HEIGHT) 	hh = DISPLAY_HEIGHT -y;
                            	
                            	if(hh%8)			hh = hh/8+1;
                            	else					hh = hh/8;
                            	
                            	endShift = 0;
                            
                            	// Draw my BMP!
                            	if(mode != TRANS)			KS108_FillRect(x, y, width-1, height-1, WHITE);		//no transparent
                            
                            	for(yy=0; yy<hh; yy++)
                            	{
                            		yyy = y + (yy * 8);
                            
                            		if(yyy > (DISPLAY_HEIGHT-8))
                            		{
                            		 	endShift = y % 8;
                            			yyy = DISPLAY_HEIGHT -8;
                            		}
                            
                            		KS108_GotoXY(x, yyy);
                            		xy = (unsigned int)(yy)*width +header;
                            
                            		for(xx=0; xx<ww; xx++)
                            		{
                            			displayData = _pgm_read_byte(bitmap[xy++]);
                            			
                            			if(endShift)			KS108_WriteData((displayData << endShift)|KS108_ReadData());
                            			else							KS108_WriteData(displayData);
                            	 	}
                             }
                            	
                            	if(mode == INVERS)			KS108_InvertRect(x, y, width-1, height-1);			//invers color
                            } //KS108_DrawBitmap
                            مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                            Sh_Nourbakhsh@Yahoo.com

                            http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                            دیدگاه


                              پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                              با عرض سلام خدمت دوستان عزیز....
                              برای من تو برنامه نویسی PICمشکلی پیش اومده جریان از این قراره که هر برنامه ای مینویسم میکرو اجرامیکنه فقط میکرو ال سیدیو درایو نمیکنه ساده ترین برنامه های ال سیدی کاراکتریو هم اجرا نمیکنه ال سیدیو عوض کردم بیشتر از پنج شیش تا کامپایلر واسمبلر و ادیتور هم عوض کردم چیزی تغییر نکرد پروگرامر و هم عوض کردم میکروکنترلرم 18F452آیا برای این سری تنظیمات خاصیو باید انجام بدم سخت افزارو چندین بار چک کردم پورت هاروعوض و اتصالات هم چک کردم واقعا به بن بست خوردم ممنون میشم کمکم کنید

                              دیدگاه


                                پاسخ : سوالات مربوط به LCD های کاراکتری و گرافیکی

                                نوشته اصلی توسط amir PIC0
                                با عرض سلام خدمت دوستان عزیز....
                                برای من تو برنامه نویسی PICمشکلی پیش اومده جریان از این قراره که هر برنامه ای مینویسم میکرو اجرامیکنه فقط میکرو ال سیدیو درایو نمیکنه ساده ترین برنامه های ال سیدی کاراکتریو هم اجرا نمیکنه ال سیدیو عوض کردم بیشتر از پنج شیش تا کامپایلر واسمبلر و ادیتور هم عوض کردم چیزی تغییر نکرد پروگرامر و هم عوض کردم میکروکنترلرم 18F452آیا برای این سری تنظیمات خاصیو باید انجام بدم سخت افزارو چندین بار چک کردم پورت هاروعوض و اتصالات هم چک کردم واقعا به بن بست خوردم ممنون میشم کمکم کنید
                                با سلام،

                                به اینجا یه سری بزن، یه پروژه چند منظوره و کامل با سورس داره :
                                http://320volt.com/en/pic18f452-ile-grafik-lcd-saat-tarih-ve-alarm-devresi/

                                سورسش هم اینجاست :
                                http://320volt.com/wp-content/uploads/2009/09/pic18f452-glcd-saat-tarih-alarm-devresi.rar

                                این هم برای KS0108 با 16F88 و 16F877 :

                                http://320volt.com/ks0108-128x64-glcd-termometre-ccs-c-pic16f88-lm35/

                                http://320volt.com/protonda-glcd%E2%80%99ye-giris-grafik-lcd-uygulamalari/
                                مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....

                                Sh_Nourbakhsh@Yahoo.com

                                http://s2.picofile.com/file/7170362468/_Wall_e_.jp

                                دیدگاه

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