 |
:: مهندس متواجد ::
تاريخ التسجيل: Oct 2010
الدولة: المغرب
المشاركات: 157
|
|
نشاط [ abdellah48 ]
قوة السمعة:
|
|
30-07-2012, 03:51 PM
المشاركة 19
|
|
اليكم هذا المثال موجود بموقع الميكروسي لكيفية تحريك كلمة ما من خلاله تتعرف على أوامر للتحريك نحو اليمين واليسار تفضلوا:
كود:
// LCD module connections
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB2_bit;
sbit LCD_EN_Direction at TRISB3_bit;
sbit LCD_D4_Direction at TRISB4_bit;
sbit LCD_D5_Direction at TRISB5_bit;
sbit LCD_D6_Direction at TRISB6_bit;
sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
char txt1[] = "mikroElektronika";
char txt2[] = "EasyPIC6";
char txt3[] = "Lcd4bit";
char txt4[] = "example";
char i; // Loop variable
void Move_Delay() { // Function used for text moving
Delay_ms(500); // You can change the moving speed here
}
void main(){ pcon.f3=1;
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,6,txt3); // Write text in first row
Lcd_Out(2,6,txt4); // Write text in second row
Delay_ms(2000);
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Out(1,1,txt1); // Write text in first row
Lcd_Out(2,5,txt2); // Write text in second row
Delay_ms(2000);
// Moving text
for(i=0; i<4; i++) { // Move text to the right 4 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
while(1) { // Endless loop
for(i=0; i<8; i++) { // Move text to the left 7 times
Lcd_Cmd(_Lcd_shift_left);
Move_Delay();
}
for(i=0; i<8; i++) { // Move text to the right 7 times
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay();
}
}
}
هذه الجملة void Move_Delay()هي الدالة المسؤولة عن التحريك ويمكن تغيير الزمن الموجود داخلها لتسريع أو جعل الحركة بطيئة ,
مابداخل void main() :
نقوم بتصفير الشاشة من خلال الأمر
كود:
Lcd_Cmd(_LCD_CLEAR);
والغاء المؤشر من خلال الأمر
كود:
Lcd_Cmd(_LCD_CURSOR_OFF);
ثم كتابة النص lcd4bit في الصف الأول العمود 6 وأيضا كتابة النص 4 example في الصف 2 العمود 6 ثم ننتظر تانيتين
كود:
Lcd_Out(1,6,txt3);Lcd_Out(2,6,txt4);
ونقوم بتصفير الشاشة من خلال الأمر
كود:
Lcd_Cmd(_LCD_CLEAR);
بعدها نكتب انص microelectronica في الصف 1 العمود 5 وأيضا كتابة النص easypic6 في الصف 2 العمود 5 ثم ننتظر لمدة ثانيتين بعدها نقوم بتحريك الجملتين mecroelectronika و easypic6 أربع مرات نحو اليمين جملة for هي للعد 4 مرات وينفد مابداخلها
كود:
Lcd_Cmd(_LCD_SHIFT_RIGHT);
Move_Delay()
بعده ندخل في حلقة تكرارية لا متناهية سينفذ ما بداخلها
تحريك الجملتين 7 مرات نحو اليسار ثم 7 نحو اليمين وتكرر هذه العملية .
التعديل الأخير تم بواسطة : abdellah48 بتاريخ 30-07-2012 الساعة 05:49 PM
|