Lcd کاراکتری
این نوع lcd در چندین نوع ساخته میشوند و دارای چند سطر وستون می باشند که نام گذاری انها برمبنای سطر وستون می باشد .
در زیر نام این lcd اورده شده است:
16*1: که دارای یک سطر و 16 ستون می باشد.
16*1a: که دارای یک سطر و 16 ستون می باشد و میتوان ستون هشتم به بعد ان را ادرس دهی کرد.
16*2: که دارای 2 سطر و 16 ستون می باشد.
16*4 :که دارای 4 سطر و 16 ستون می باشد .
20*2 :که دارای 2 سطر و 20 ستون می باشد.
20*4 :که دارای 4 سطر و 20 ستون می باشد.
40*2 :که دارای 2 سطر و 40 ستون می باشد.
40*4: که دارای 4 سطر و40 ستون می باشد.
تمام lcd های کاراکتری دارای 16 پایه می باشد که در زیر اورده شده است :
پایه شماره 1 : VSS ، این پایه ،پایه گراند lcd است و باید به زمین مدار وصل شود.
پایه شماره 2 : VDDاین پایه پایه VCC، LCD است که باید به 5ولت وصل شود.
پایه شماره 3 : VEE این پایه روشنایی پیکسل های LCD را تعیین میکند واتصال ان طبق مدار روبرو است:
پایه شماره 4 : RS در lcd دو رجیستر به نام دستورالعمل وداده وجود دارد اگر rs =0 باشد lcd برای گرفتن دستورالعمل اماده می شود در غیر این صورت برای داده .مثلا دستور cls یک دستور العمل است و qwer که باید روی lcd نوشته شود یک داده است .
پایه شماره 5 :RW این پایه دو وضعیت دارد ، rw =1 برای خواندن از lcd و rw=0 برای نوشتن در lcd .
پایه شماره 6 : E با این پایه می توان LCD را انتخاب کرد.
پایه شماره 7 : DB0 این پایه برای گرفتن دیتا (اطلا عات) از LCD میباشد (پایه دیتا ی صفر) .
پایه شماره 8 : DB1 این پایه برای گرفتن دیتا (اطلا عات) از LCD میباشد (پایه دیتا ی یک).
پایه شماره 9 : DB2 این پایه برای گرفتن دیتا (اطلا عات) از LCD میباشد (پایه دیتا ی دو).
پایه شماره 10 : DB3 این پایه برای گرفتن دیتا (اطلا عات) از LCD میباشد (پایه دیتا ی سه).
پایه شماره 11 : DB4 این پایه برای ارسال دیتا (اطلا عات) به LCD میباشد (پایه دیتا ی چهار).
پایه شماره 12 : DB5 این پایه برای ارسال دیتا (اطلا عات) به LCD میباشد (پایه دیتا ی پنج).
پایه شماره 13 : DB6 این پایه برای ارسال دیتا (اطلا عات) به LCD میباشد (پایه دیتا ی شش).
پایه شماره 14 : DB7 این پایه برای ارسال دیتا (اطلا عات) به LCD میباشد (پایه دیتا ی هفت).
پایه شماره 15 : این پایه و پایه شماره 16 تغذیه LED پشت LCD می باشد که به 5ولت متصل میشود.
پایه شماره 16 : این پایه و پایه شماره 15 تغذیه LED پشت LCD می باشد که به 5ولت متصل میشود.
راه اندازی LCD در محیط بسکام:
Lcd میتواند ازدو طریق 8سیمه و 4سیمه به میکرو متصل شود.
Constant میتواند 4 به معنای استفاده از مد 4 سیمه یا 8 به معنای مد هشت سیمه باشد ( در صورتی که این دستور نوشته نشود ، مد 4 سیمه در نظر گرفته میشود.)
در مد چهار سیمه فقط میتوان روی lcd نوشت ولی در مد هشت سیمه میتوان اطلاعاتی را که قبلا روی lcd نوشته شده است را خواند و به میکرو ارسال کرد.
به طور کلی از خطوط دیتای 0 تا 3 برای خوانده از lcd و از خطوط 4 تا 7 برای نوشتن در lcd نوشته میشود در حالت نوشتن در lcd باید پایه RS پایین نگه داشته شود (صفر شود) ودر حالت خواندن از LCD باید پایه RS ،1 شود) 5 ولت وصل شود) .
از انجا که با وجود حافظه میکرو و راحت شدن کار برنامه نویسی نیازی به خواندن از LCD نمی باشد ،از پایه DB 0 تا DB3 استفاده نمی شود و پایه RW نیز به GND (صفر ولت متصل میشود).
دومین مرحله برای راه اندازی LCD معرفی کردن نام ان است:
برای این کار بعد از معرفی میکرو وکریستال با استفاده از دستور زیر می توان LCD ارمعرفی کرد:
که LCDNAME یکی از نام های با لا میباشد. مثلا معرفی LCD 2*16 :
مرحله بعد معرفی پایه های از میکرو است که lcd به انها وصل میشود: برای مد 4 سیمه:
کد php:
Config Lcdpin = Pin , Db4 = Pinx.y , Db5 = Pinx.y , Db6 = Pinx.y , Db7 = Pinx.y , Rs = Pinx.y , E = Pinx.y
X نام پورت است که یکی از پورت های a یا b یا c یا یd ... می باشد و y شماره پایه هست که از 0 تا 7 می باشد برای مثال در زیر lcd کاراکتری 16*2 به پورت (c (portc متصل است .
کد php:
"regfile="m16def.dat$
crystal=8000000$
Config Lcd = 16*2
Config lcdpin=pin,db4=pinc.0,db5=pinc.1,db6=pinc.2_
,db7=pinc.3,rs=pinc.4,e=pinc.
در این مثال که از میکرو مگا16(atmega16)استفاده شده ، اتصال میکرو وlcd به قرار زیر است:
پایه شماره 1 : VSS ، این پایه باید به زمین مدار وصل شود .
پایه شماره 2 : VDDاین پایه باید به 5ولت وصل شود.
پایه شماره 3 : VEE این پایه با یک مقاومت (مقدار مقاومت بستگی به روشنایی مورد نظر شما دارد)به vcc وصل میشود.
پایه شماره 4 : RS این پایه به پورت c پین شماره 4 یا پین c.4 متصل میشود (پایه 26 میکرو مگا16).
پایه شماره 5 :RW این پایه به gnd متصل میشود .
پایه شماره 6 : E این پایه به پورت c پین شماره 5 یا پین c.5 متصل میشود(پایه 27 میکرو مگا16) .
پایه شماره 7 : DB0 این پایه به جایی متصل نمی شود.
پایه شماره 8 : DB1 این پایه به جایی متصل نمی شود.
پایه شماره 9 : DB2 این پایه به جایی متصل نمی شود.
پایه شماره 10 : DB3 این پایه به جایی متصل نمی شود.
پایه شماره 11 : DB4 این پایه به پورت c پین شماره 0 یا پین c.0 متصل میشود(پایه 22 میکرو مگا16).
پایه شماره 12 : DB5 این پایه به پورت c پین شماره 1 یا پین c.1 متصل میشود(پایه 23 میکرو مگا16) .
پایه شماره 13 : DB6 این پایه به پورت c پین شماره 2 یا پین c.2 متصل میشود(پایه 24 میکرو مگا16) .
پایه شماره 14 : DB7 این پایه به پورت c پین شماره 3 یا پین c.3 متصل میشود(پایه 25 میکرو مگا16).
پایه شماره 15 : این پایه و پایه شماره 16 تغذیه LED پشت LCD می باشد که به 5ولت متصل میشود.
پایه شماره 16 : این پایه و پایه شماره 15 تغذیه LED پشت LCD می باشد که به 5ولت متصل میشود.
توجه کنید که اگر پایه VEE به 5ولت متصل شود پیکسل های LCD دارای بیشترین روشنای و اگر به گراند وصل شود دارای کمترین روشنایی می باشند.
اتصال پایه های 15 و16 اختیاری است .
برای مد 8 سیمه:
کد php:
Config Lcdpin = Portd , Rs = Pinc.5 , E = Pinc.6 , Rw = Pinc.7
در مثال بالا پایه db0 به پورت d.0 و پایه db1 به پورت d.1 و ... پایه db7 به پایه d.7 و پایه rs به پایه c.5 و پایه e به پایه c.6 و پایه rw به پایه c.7 متصل میگردد ، در این حالت یازده پایه از lcd اشغال میشود .
بعد از راه اندازی LCD نوبت کار کردن با ان است .
برای نوشتن روی LCD از دستور زیر استفاده می شود :
که X می تواند هر چیز ی باشد (البته در محدوده کارکتر های اسکی ).مانند:
یا
یا
برای پاک کردن lcd از دستور cls استفاده می شود .مانند:
کد php:
")(*&&^%$%$#@" lcd
Wait 1
Cls
Lcd "asdfgfghk”
با دستور زیر می توان در سطر ها و ستون های دیگر lcd نوشت.
که x ادرس سطر و y ادرس ستون می باشد.
کد php:
Locate 1,2
Lcd "qwert”
Locate 2,1
Lcd "123456"
Locate 2,8
Lcd "mnbv"
توجه کنید برای یک lcd ، مثلا 16*2 حداکثر x ،2 و حداکثر y ، 16 است .
با دستورات زیر میتوان به سطر های مختلف lcd پرش کرد و در انجا متن را نوشت :
با این دستور به خط بالای پرش میشود
با این دستور به خط پایینی پرش میشود
با این دستور به سطر اول ، ستون اول پرش میشود
با دو دستور بالا میتوان به ترتیب به خط سوم و چهارم پرش کرد (این دستور برای lcd های است که 4 سطر دارند)، مانند:
کد php:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Pinc.0 , Db5 = Pinc.1 , Db6 = Pinc.2 , Db7 = Pinc.3 , Rs = Pinc.4 , E = Pinc.5
Lowerline
Lcd "qwert"
Thirdline
Lcd "vcxz"
Fourthline
Lcd "1236"
Upperline
Lcd "erff"
Wait 2
Home
Lcd "123654"
End
با دستور زیر میتوان تعداد فضای خالی دلخواه را بر روی lcd ایجاد کرد:
تعداد x ستون خالی میماند ، وبعد از ستون x نوشتن ادامه میابد.
با استفاده از دستور زیر میتوانید lcd را روشن یا خاموش کنید:
On : lcd روشن میشود / off : lcd خاموش میشود.
با استفاده از دستور زیر میتوانید کنتراست (میزان نور (کم رنگی وپر رنگی) متن) متن را تغییر دهید:
X میزان کنتراست است که میتوانید بین 0 تا 3 باشد ، به ازای 0 کمترین کنتراست و به ازای 3 بیشترین کنتراست مشاهده میشود.
Lcd دارای یک مکان نما می باشد که با دستور زیر میتوان ان را روشن یا خاموش یا چشمک زن یا ثابت قرارداد .
Cursor On با این دستور مکان نما روشن می شود (در حالت عادی مکان نما روشن است ).
Cursor off با این دستور مکان نما خاموش می شود.
Cursor blink با این دستور مکان نما چشمک می زند .
Cursor noblink با این دستور مکان نما دیگر چشمک نمی زند.
با دستور زیر می توانید کاراکتر های روی lcd را به چپ یا راست شیفت دهید.
shiftlcd left این دستور کارکترها را به اندازه یک ستون به چپ منتقل میکند.
shiftlcd right این دستور کارکترها را به اندازه یک ستون به راست منتقل میکند .
با دستور زیر میتوانید مکان نما را به راست یا چپ منتقل کنید:
left این دستور مکان نما را به اندازه یک ستون به چپ منتقل میکند.
right این دستور مکان نما را به اندازه یک ستون به راست منتقل میکند .
کد php:
$regfile = "m16def.dat"
$crystal = 8000000
Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Pind.2 , Db5 = Pind.3 , Db6 = Pind.4 , Db7 = Pind.3 , Rs = Pind.0 , E = Pind.1
Lcdcontrast 1
Locate 2 , 1
Lcd "12356"
Shiftcursor Right
Wait 1
Display Off
Wait 1
Display On
Lcdcontrast 2
Locate 4 , 1
Lcd Spc(5)
Lcd "qwer"
Shiftcursor Left
End
منبع :
http://forum.iranled.com/showthread.php?tid=10869