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

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

الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 23-03-2013, 12:33 PM المشاركة 1   
افتراضي أضف شاشة عرض LCD الى مشاريعك. Twitter FaceBook Google+



السلام عليكم.
في أي مشروع هناك معلومات داخلة قد تكون درجة حرارة او شدة اضاءة ..... و معلومات خارجة هي نتاج اجراء عمليات ما على المعلومات الداخلة. فمثلا في دارة مقياس حرارة الكتروني المعلومة الخارجة هي قيمة درجة الحرارة في لحظة معينة. نستطيع أن نستعمل مجموعة من الليدات للتعبير عن درجة الحرارة أو مقياس غلفاني ازاحة مؤشره تتناسب مع درجة الحرارة ...
تمتاز هذه الطرق بالبساطة و السهولة لكنها لا تضاهي شاشة عرض التي بامكانها عرض النتائج بالحروف و الارفام أو بيانيا.
سوف نرى ان شاء الله كيف نستعمل شاشة LCD لعرض ما نريد بطريقة أكثر جاذبية و وضوح.
الشاشات المتوفرة نوعان:
1- شاشات نصية : تعرض مباشرة حروفا (لاتينية) و أرقاما و بعض الرموز. و هي سهلة الاستعمال لكنها محدودة (لا تعرض حروفا عربية مثلا).
2- شاشات بيانية ( Graphical ): يمكن التحكم في اي بكسل (أو مجموعة بكسلات معا) و بالتالي يمكننا عرض أي شيء نريد حتى الصور .

اعلانات

الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 23-03-2013, 12:40 PM المشاركة 2   
افتراضي


1-الشاشات النصية :
توجد منها عدة أنواع حسب عدد الاسطر التي يمكنها عرضها و عدد الحروف في كل سطر. منها ما يعرض سطرا واحدا ذو 16 أو 20 أو 40 حرفا و منها ما يعرض سطرين أو ثلاثة أو أربعة.
الحروف المعروضة هي لاتينية (او يابانية) مع الارقام العربية 0, 1, ....9 و بعض الرموز او ....الخ.
تعتمد هذه الشاشات على المتكاملة HD44780 التي بامكاننا ايجاد ملايين الصفحات حول كيفية برمجمتها على الشبكة.
أقطاب الشاشة:


شرح الاقطاب:
1- الارضي.
2- جهد التغذية +5 فو.
3- جهد التباين contrast : تستعمل مقاومة متغيرة كما هو مو ضح على الصورة. يضبط هذا الجهد في حدود 0,8 فو كما يمكن توصيل هذا القطب بالأرضي (0فو) مباشرة.
4- مدخل التحكم : يحدد نوع المعلومات المرسلة للشاشة هل هي بيانات أو تحكم؟ اذا كان الجهد على الفطب 4 هو 5 فو فان المعلومة المرسلة هي بيانات للعرض و اذا كان 0 فو فانها كود تحكم ( محي الشاشة, الازاحة الى اليمين ..... الخ).
5- مدخل التحكم قراءة أو كتابة: اذا كان الجهد المطبق على هذا المدخل هو 5 فو هذا يشير الى الشاشة اننا نريد قراءة معلومات منها و اذا كان 0 فو فاننا نريد ارسال معلومات الى الشاشة. عادة للتسهيل يربط هذا المدخل بالارضي لاننا لسنا بحاجة لقراءة معلومات من الشاشة. و بالتالي تكون الشاشة مربوطة في حالة كتابة فقط.
6- مدخل نبضة الكتابة: بعد تثبيت المعلومات نرسل نبضة موجبة لكتابة المعلومات داخل الشاشة.
7 الى 14 : 8 مداخل D0---D7. هنا توضع المعلومات التي نريد ارسالها للشاشة. يمكن استعمال الـ 8 بت هذه كاملة أو 4 بت فقط (D4--D7 ) و هذا مهم جدا لتسهيل الدارة و الاحتفاظ بمخارج المتحكم لوظائف أخرى.
15 و 16 : أطراف الدايود المضيء للشاشة (ان وجد). 15 هو المصعد و 16 المهبط. لا تنسى استعمال مقاومة حماية.

هذا مثال لتوصيل الشاشة بالمتحكم:



التعديل الأخير تم بواسطة : DELTA67 بتاريخ 23-03-2013 الساعة 01:46 PM
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 23-03-2013, 12:41 PM المشاركة 3   
افتراضي


2- الشاشات البيانية:

مساحة محجوزة


الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 25-03-2013, 12:29 PM المشاركة 4   
افتراضي


أردت أن أكمل الموضوع لكـــن للأسف لم أجد "زر التحريــــر" من أجل تعديل النـص!!!!


ahm7373
:: مهندس ::
تاريخ التسجيل: Apr 2008
المشاركات: 22
نشاط [ ahm7373 ]
قوة السمعة:0
قديم 26-03-2013, 05:20 AM المشاركة 5   
افتراضي


ممكن تكمل بإضافة رد جديد


الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 26-03-2013, 09:04 AM المشاركة 6   
افتراضي


لمــاذا لا يترك المشرفون لكاتبي المواضيع امكانية تعديل النص و لو بعد مدة طويلة ؟؟


الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 26-03-2013, 09:43 AM المشاركة 7   
افتراضي



هــذا مثال عن وصل شاشة LCD على الــ PORTD للـ ATMEGA8 :
هذا البرنامج يقوم باعداد الشاشة للعمل بنظام 4 بت 4bit MODE ثم محيها و أخيرا يعر ض الحرفين A و E .

كود:
 
;******************************************************

.include "m8def.inc"          ; Definition file for ATmega8
;****************************************************
;* Program Constants
;******************************************************

.equ	lcdrs  = 0            ; RS sur PORTD,0
.equ	lcde = 1             ; E sur PORTD,1
                    ; D4-D7  sur PORTD,4-7

; ATTENTION: la tension de contraste broche CO doit être de l'ordre de 0,8 V


;******************************************************
;* Program Variables Definitions
;******************************************************
.def mpr =r16 ; Multipurpose Register
.def	wreg = r17
;****************************************************
;Code segment
.cseg

;Reset and Interrupt Vectors
.org		0x000         ; Define start of Code segment

		rjmp	reset	               	;Reset Handler
;*****************************************************
;* Func: RESET
;* Desc: Reset Handler Routine
;*****************************************************
;Reset procedure
reset:		    ;Set the stack pointer to the top of RAM
		ldi	mpr,low(RAMEND)
		out	SPL,mpr
        ldi	mpr,high(RAMEND)
		out	SPH,mpr
        rjmp MAIN
;****************************************************
;* Func: MAIN
;* Desc: Main Entry into program
;******************************************************
MAIN:

    ldi r16,0
	out PORTD, r16

    ldi	R16,0b11111111
    out	DDRD,R16                 ; Port D en sortie
    
    rcall LCD_INIT

	ldi	wreg, 0x41	               ;write 'A' to the LCD char data RAM
	rcall	LCD_DATA
	

	rcall delay
	ldi	wreg, 0x45	                ;write 'E' to the LCD char data RAM
	rcall	LCD_DATA
		
loop:
    rjmp  loop
;  ============================================== 
;	Initialize LCD module 
LCD_INIT: 
	rcall delay2                  ; wait after power on

	ldi	wreg,0x20	                  ;Function set, 4 line interface 
	out	PORTD,wreg               	       ;Put on port 	
    nop	                             ;wait for data setup time 
	sbi	PORTD,lcde	                  ;Toggle enable line
	nop
	nop
	
	cbi	PORTD,lcde 
	rcall	delay
	
;	At this point, the normal 4 wire command routine can be used 
 
 	ldi	wreg,0x28                    ;0b00101000 = Function set, 4 wire, 2 lines, 5x7 font 
	rcall	LCD_CMD
	rcall	delay
	
	ldi	wreg,0x0C                  ;0b00001100 = Display on, no cursor, no blink 
	rcall	LCD_CMD
	rcall	delay

	ldi	wreg,0x06         ;0b00000110 = Address increment, no scrolling 
	rcall	LCD_CMD
        rcall	delay

	ldi	wreg,0x01	           	;Clear LCD command 
	rcall	LCD_CMD
	rcall	delay
ret 
 ;========================================== 
;	Send command in wreg to LCD 
LCD_CMD: 
	push	wreg		          ;Save character 
	
	andi	wreg,0xF0	 ;Strip off lower bits 
	out	PORTD,wreg	             ;Put on port 	
    
	nop			                 ;wait for data setup time 

	sbi	PORTD,lcde                          ; Toggle enable line
	nop
	nop
	
	cbi	PORTD,lcde  
	pop	wreg		               ;Recall character
	swap	wreg		                 ;Get lower nibble 
	andi	wreg,0xF0	            ;Strip off lower bits 
	out	PORTD,wreg	                   ;Put on port 	
    nop
	sbi	PORTD,lcde	                 ;Toggle enable line
    
    nop
	nop
	
	cbi	PORTD,lcde  
ret 
;=========================================== 
;	Send character data in wreg to LCD 

LCD_DATA: 
	push	wreg	                  	;Save character 
	 
	andi	wreg,0xF0	                ;Strip off lower bits 
	out	PORTD,wreg	               ;Put on port
	nop
	sbi	PORTD,lcdrs	               ;Register select set for data 	
    nop
	nop
	
	sbi	PORTD,lcde	                ;Toggle enable line
	nop
	;nop
	
	cbi	PORTD,lcde  
	pop	wreg		                 ;Recall character
	swap	wreg	                      	;Get lower nibble 
	andi	wreg,0xF0                  	;Strip off lower bits 
	out	PORTD,wreg	                    ;Put on port
	nop
	sbi	PORTD,lcdrs	                 ;Register select set for data 	
    nop
	nop

	sbi	PORTD,lcde	                       ;Toggle enable line
    nop
	nop
	cbi	PORTD,lcde 	
    cbi	PORTD,lcdrs	
ret 
; =========================================== 
delay:
	clr	r2
	LCD_delay_outer:
	clr	r3
		LCD_delay_inner:
		dec	r3
		brne	LCD_delay_inner
	dec	r2
	brne	LCD_delay_outer
ret

delay2:
  ldi r20, 3
wait:
  rcall delay
  dec r20
  brne wait
ret


التعديل الأخير تم بواسطة : DELTA67 بتاريخ 26-03-2013 الساعة 10:39 AM

الصورة الرمزية DELTA67
DELTA67
:: ضو فضي ::
تاريخ التسجيل: Aug 2010
المشاركات: 350
نشاط [ DELTA67 ]
قوة السمعة:79
قديم 26-03-2013, 10:26 AM المشاركة 8   
افتراضي


لاحظ سهولة استعمال الشاشات النصية. لعرض حرف (أو رمز) يكفي ارسال الكود أسكي ASCII الموافق له الى الشاشة.


و هــذه مجموعة الاوامر للتحكم بالشاشة:


و أخيــــرا خوارزمية توضح كيف نعد الشاشة للعمل بــ 4 بت فقط:


أتمنى أنكم قد أستفدتم و لا تحرمونا من دعائكم.



التعديل الأخير تم بواسطة : DELTA67 بتاريخ 26-03-2013 الساعة 10:30 AM
إضافة رد

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

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

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


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

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