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

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

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 25-08-2013, 08:15 PM المشاركة 1   
افتراضي المبدأ الأساسى لتحريك رسالة نصية على شاشة العرض LCD بلغة Basic والمترجم Proton Twitter FaceBook Google+



المبدأ الأساسى لتحريك رسالة نصية على شاشة العرض LCD بلغة Basic والمترجم Proton
الدائرة الكهربية :
















الفكرة الأساسية :







البرنامج :

كود:
;Basic-LCD-Scrolling-Message-16F628A Device 16F628A ;PIC type : Any type capable of driving LCD Xtal 4
All_Digital=TRUE ;All I/O as digital non ADC or non Comparator ;I will use default connections as in circuit diagram
;*** Define variables *** Dim Message_array[16] As Byte ;16 elements = LENGTH OF LCD = 16 characters Dim Datum As Byte ;data is special word so :Datum = data storage Dim C As Byte ;Just as loop Counter
;*** Alias Constant *** Symbol SPEED = 200 ; Scroll speed Symbol LCD_LENGTH = 15 ; We are using 2x16 LCD (in this case 0-15)
DelayMS 500 ; Wait LCD to stabilized Cls ; Clear Screen
; *** Here is your message *** DATA "0123456789ABCDEFGHJKILMNO..... " ; Store in code memory
START: C=0 ; Clear pointer Repeat ; Do a loop Message_array[C]=" " ; Clear array , 16 position Inc C ; Increment pointer Until C=LCD_LENGTH ; Finish the job
LOOP: Restore ; Point to the first character of DATA table While 1=1 ; Make an endless loop READ Datum ; Get the first character ..ans so on ..store in Datum Message_array[15]=Datum ; Save first character to last position of the array GoSub SCROLL_MESSAGE ; Go to Print & Shift then Return back here to get next character Wend ; END OF STATEMENT
SCROLL_MESSAGE: Print At 1,1,Str Message_array ' Display the message DelayMS SPEED ' Wait
For C=0 To LCD_LENGTH-1 ' Make a loop for shifting one character to left Message_array[C] = Message_array[C+1] ' Shift left the bytes contents : C0=C1,C1=C2,C2=C3,..C14=C15 Next ' Finish the job Return ' Back
End

اعلانات

الصورة الرمزية F.Abdelaziz
F.Abdelaziz
:: استاذ و مشرف قسم الالكترونيات ::
تاريخ التسجيل: May 2007
المشاركات: 6,894
نشاط [ F.Abdelaziz ]
قوة السمعة:328
قديم 25-08-2013, 11:19 PM المشاركة 2   
افتراضي


إضافة نص مع تسليط الضوء على الحرف الأول عن طريق وميضه :

البرنامج بعد الإضافة :

كود:
; LCD-Scrolling-flashing-Message-16F628A Device 16F628A ;PIC type : Any type capable of driving LCD Xtal 4 All_Digital=TRUE ;All I/O as digital non ADC or non Comparator ;I will use default connections as in circuit diagram ;*** Define variables *** Dim Message_array[16] As Byte ;16 elements = LENGTH OF LCD = 16 characters Dim Datum As Byte ;data is special word so :Datum = data storage Dim C As Byte ;Just as loop Counter ;************************************************************************************ Dim Flash_array[20] As Byte 'flash array Dim X As Bit ' flash flag ;************************************************************************************ ;*** Alias Constant *** Symbol SPEED = 200 ; Scroll speed Symbol LCD_LENGTH = 15 ; We are using 2x16 LCD (in this case 0-15) DelayMS 500 ; Wait LCD to stabilized Cls ; Clear Screen ; *** Here is your message *** DATA "0123456789ABCDEFGHJKILMNO..... " ; Store in code memory START: C=0 ; Clear pointer Repeat ; Do a loop Message_array[C]=" " ; Clear array , 16 position Inc C ; Increment pointer Until C=LCD_LENGTH ; Finish the job LOOP: Restore ; Point to the first character of DATA table While 1=1 ; Make an endless loop READ Datum ; Get the first character ..ans so on ..store in Datum Message_array[15]=Datum ; Save first character to last position of the array GoSub SCROLL_MESSAGE ; Go to Print & Shift then Return back here to get next character Wend ; END OF STATEMENT SCROLL_MESSAGE: GoSub FLASH ' Print At 1,1,Str Message_array ' Display the message Print At 2,1,Str Flash_array ' DelayMS SPEED ' Wait For C=0 To LCD_LENGTH-1 ' Make a loop for shifting one character to left Message_array[C] = Message_array[C+1] ' Shift left the bytes contents : C0=C1,C1=C2,C2=C3,..C14=C15 Next ' Finish the job Return ' Back '----FLASH MESSAGE---- FLASH: If X=0 Then Str Flash_array=" " ; clear first character only to flash X=1 Return EndIf If X=1 Then Str Flash_array="PROTON IDE 2009" X=0 Return EndIf
End

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

الصورة الرمزية Omar Mekkawy
Omar Mekkawy
:: مهندس متميز ::
تاريخ التسجيل: Aug 2011
الدولة: مصر
المشاركات: 1,523
نشاط [ Omar Mekkawy ]
قوة السمعة:0
قديم 02-09-2013, 09:27 PM المشاركة 3   
افتراضي


سلام عليكم أستاذي
والله شروحاتك حلوة كتييير
ربنا يجعله بميزان حسناتك

لدي سؤالين ( أسف الأسئلة كتيرة ) ههههههه
1
- هو حضرتك اتعلمت اللغة هذه من وين ؟ لاني مولقيت مصدر لتعلمها بالانترنت !!

2 - انا جربت اتعامل مع ال LCd كثيراً لكن أقع بمشكلة هي ال Delay المناسب لكي تبقى الحروف ثابتة وماترعشي يعني مثلاً أنا باحاول اجعل الميكروكونترولر يقرأ بيانات من السيريال بورت ويظهرها على الشاشة انا واضع الدالة الخاصة بالكتابة على الشاشة في حلقة تكرارية فطبعاً الشاشة بترعش فهل ليها حل ؟

يعطيك العافية أستاذي

إضافة رد

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

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

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


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

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