مخفف عبارت “Liquid Crystal Display” به معنای صفحه نمایش کریستال مایع است. کریستالهای مایع موادی هستند که ظاهر مایع دارند، اما مولکولهای آنها آرایش خاصی نسبت به یکدیگر دارند. به همین دلیل کریستال مایع خصوصیاتی شبیه به مایع و جامد داشته و به همین دلیل با چنین اسم متناقضی خوانده میشوند. این مواد به شدت به دما حساس اند و اندکی حرارت لازم است تا آنها را به مایع واقعی درآورد و یا اندکی سرما تا به حالت معمولی تبدیل شود. انواع مختلفی از مواد شناخته شدهاند که در دمای معمولی چنین خصوصیاتی دارند. اما دستهای از آنهاهستند که به جریان الکتریسیته هم حساس هستند و مولکولهای آن متناسب با ولتاژ اعمالی تغییر زاویه میدهند. در بیشتر مدار های میکروکنترلری ما نیاز به نمایش اطلاعات برای کاربر داریم، برای این کار راه های مختلفی وجود دارد از جمله استفاده از چند LED ، استفاده از ۷segment ، استفاده از LCD و…، اما LCD ها به علت داشتن قابلیتهای بیشتر نمایش، ابعاد مختلف و برنامه ریزی آسان اغلب مورد توجه قرار می گیرند. در این مقاله نحوه اتصال LCD کاراکتری به میکروکنترلر به کمک نرم افزار کدویژن توضیح داده شده است.
اتصال LCD به AVR و نحوي پيكره بندي آن در بيسكام :
$regfile = "m32def.dat" Config Lcdpin = Pin Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.3 Config Lcd = 16 * 2
به كمك دستور بالا ما قادر خواهيم بود كه LCD را به هر پورتي كه مي خواهيم وصل كنيم. در خط اول برنامه ما تك تك پايه هاي LCD را معرفي كرديم و گفتيم DB4 ال سي دي را مي خواهيم به porta.4 وصل كنيم و همين طور تا آخر. و پايه هاي E و RS رو هم تعريف مي كنيم البته پايه RW رو هم زمين مي كنم چون ما اغلب در LCD مي نويسيم و كم پيش مياد كه بخواهيم ازش بخونيم. در خط بعدي هم تعداد سطر و ستون هاي LCD را براي ميكرو تعريف كرديم. نكته: چون در خط اول بايد دستورات پشت سر هم باشد مي مي توانيم به كمك يه آندرلاين " _" ادامه دستورات را در خط بعدي بنويسيم. اين كار صرفا براي اين كه طول برنامه زياد نشه و يا در موقع چاپ به هم نريزه .
دستورات LCD :
از دستور LCD مي توانيم محتواي يك متغيير يا تعداي كاراكتر (به تعداد ستون هاي LCD) را نمايش دهيم. به عنوان مثال ما مي خواهيم عبارتFZA.IR را روي LCD 16*2 نمايش دهيم.
LCD " WWW.FZA.IR "
عبارت را بايد بين اين دو " " علامت بنويسيم. اكنون اين عبارت روي LCD نمايش داده مي شود.
دستور CLS:
از اين دستور هم براي پاك كردن كل LCD استفاده مي نماييم. يعني هر جا ما نوشتيم CLS كل LCD پاك خواهد شد.
دستور Display :
به كمك اين دستور شما مي تواند صفحه نمايش LCD را روشن يا خاموش كنيد. براي خاموش كردن: Display off و براي روشن كردن: Display on دستور Cursor : به كمك اين دستور شما مي توانيد مكان نماي LCD را در چهار وضعيت تنظيم كنيد.
- Cursor no يعني مكان نما روشن باشد
- Cursor off يعني مكان نما خاموش باشد
- Cursor blink يعني مكان نما به صورت چشمك زن باشد
- Cursor noblink يعني مكان نما به صورت چشمك زن نباشد
دستور Locate :
قالب اين دستور به اين شكل مي باشد:
Locate x , y
كه X مشخص كننده سطر مي باشد و مي تواند از 1 تا 4 باشد. (با توجه به نوع LCD) و Y هم مشخص كننده ستوان مي باشد و مي توانيد از 1 تا 64 باشد. (با توجه به نوع LCD) به عنوان مثال شما مي خواهيد در وسط يه LCD 16*2 عبارت MC8051 را بنويسيد كه به صورت زير عمل مي كنيم:
Cls Locate 1,6 Lcd "MC8051"
در خط اول ما LCD رو پاك كرديم و در خط دوم مكان نما را به سطر اول و ستون 6 برديم و در اين مكان از LCD يعني در خانه ششم LCD عبارت را نوشتيم كه M در خانه 6 و Cدر خانه 7 و ... نوشته مي شود. دستور Shiftlcd : به كمك اين دستور مي توانيد كل صفحه نمايش رو به چپ يا راست انتقال دهيد. يعني به كمك اين دستور شما مي توانيد متن خود را روي LCD به حركت در آورديد مانند تابلو هاي روان.
$regfile = "m32def.dat" $crystal = 12000000 Config Lcdpin = Pin Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , _ Db7 = Porta.7 , E = Porta.2 , Rs = Porta.3 Config Lcd = 20 * 2 Dim A As Byte Do Locate 1 , 15 Lcd "MC8051" Waitms 500 For A = 1 To 20 Shiftlcd Right Waitms 100 Next Cls Loop End
در اين مثال ما عبارت MC8051 را در انتهاي يك LCD 20*2 نوشتيم و 500 ميلي ثانيه هم تاخير گذاشتيم و به كمك يك حلقه for دستور Shiftlcd Right را حدود 20 بار تكرار كرديم البته بايد يه تاخير هم قرار دهيم تا حركت متن را بتوانيم مشاهده كنيم. براي حركت به چپ هم از دستور Shiftlcd left استفاده مي كنيم.
دستور Deflcdchar :
به كمك اين دستور شما مي توانيد به جاي يك كاراكتر انگليسي خودتان يك كاراكتر فارسي بسازيد و يا اشكالي را ايجاد كنيد كه نحوي استفاد از آن را در زير توضيخ مي دهيم: براي اين كار ابتدا در يك خط از برنامه كليك كنيد (يا اول برنامه و يا در ميان خطوط برنامه جايي كه هيچ دستوري در آن خط نباشد.) بعد به منوي Tools برنامه بيسكام برويد و روي LCD Designer كليك كنيد در اينجا شما يك ماتريس 5 در 8 مي بينيد در واقع هون پيكسل هاي يك ستون LCDمي باشد. شكل يا هر چيز ديگر خود را در اينجا طراحي كنيد و بعد OK را بزنيد اكنون كدي به شكل زير براي شما درج مي شود: به عنوان مثال من كل پيكسل ها را سياه كردم و يك مثلث سفيد كوچك ميان اون درست كردم كه بعد بيسكام اين كد ها را به من داد:
Deflcdchar ?,31,19,21,22,22,21,19,31 ' replace ? with number (0-7)
در اينجا علامت ? به رنگ قرمز مي باشد و شما بايد از بين اعداد 0 تا 7 يكي را جايگزين اين علامت كنيد مثلا من عدد 5 را دادم.
Deflcdchar 5,31,19,21,22,22,21,19,31 ' replace ? with number (0-7)
حال براي نمايش اين شكل روي LCD از دستور CHR (?) استفاده مي كنيم:
حال اين مثلث در خانه 15 LCD نمايش داده مي شود.
در برنامه ی زیر اعداد خوانده شده از روی کیبرد بر روی lcd نمایش داده میشوند.
$regfile = "m32def.dat" '------------------------------------------------ 'micro: atmega16 'driver keyborad 4*3 'port=C 'A,B,C,D=C0,C1,C2,C3****1,2,3=C4,C5,C6 'PROGRAMER: MOHSEN GHASEMIAN '------------------------------------------------ $regfile = "m16def.dat" $crystal = 12000000 Config Lcdpin = Pin Db4 = Pina.4 , Db5 = Pina.5 , Db6 = Pina.6 , _ Db7 = Pina.7 , E = Pina.2 , Rs = Pina.3 Config Lcd = 20 * 2 Config Kbd = Portc Dim Key As Byte Main: Do Key = Getkbd() If Key = 7 Then Goto Character_0 If Key = 0 Then Goto Character_1 If Key = 4 Then Goto Character_2 If Key = 8 Then Goto Character_3 If Key = 1 Then Goto Character_4 If Key = 5 Then Goto Character_5 If Key = 9 Then Goto Character_6 If Key = 2 Then Goto Character_7 If Key = 6 Then Goto Character_8 If Key = 10 Then Goto Character_9 If Key = 11 Then Goto Character_pond If Key = 3 Then Goto Character_star Loop End Character_0: Cls Lcd "0" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_1: Cls Lcd "1" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_2: Cls Lcd "2" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_3: Cls Lcd "3" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_4: Cls Lcd "4" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_5: Cls Lcd "5" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_6: Cls Lcd "6" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_7: Cls Lcd "7" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_8: Cls Lcd "8" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_9: Cls Lcd "9" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_pond: Cls Lcd "#" Do Key = Getkbd() Loop Until Key = 16 Goto Main Character_star: Cls Lcd "*" Do Key = Getkbd() Loop Until Key = 16 Goto Main
نحوه راه اندازی lcd کارکتری با کدویژن را میتوانید از لینک زیر دانلود نمایید:
توجه :کاربر گرامی شما علاوه بر خرید مستقیم همچنین میتوانید این فایل را با خرید اشتراک ماهانه دانلود نمایید پس مشترک ماهانه ی سایت شوید و تا پایان مدت اشتراک از آپدیت ها و فایلهای جدید موجود در سایت بهره مند گردید.
لیست فایلهای اعضای اشتراکی
نام فایل :
آموزش راه اندازی lcd کارکتری به زبان کدویژن
حداقل اشتراک | محتویات | زمان ایجاد | حجم فایل | تعداد دانلودها |
رایگان | برنامه+شماتیک | چهارشنبه, 24 مهر 1392 18:03 | 800.72 KB | 0 |
تنها کاربران عضو یا دارای مجوز میتوانند دانلود نمایند |
توضیحات :