View Full Version : سوال: روشن کردن LCD
محمدامین شریفی
چهارشنبه 15 خرداد 1387, 18:50 عصر
دوستان من در حال نوشتن پروژه ای با اسمبلی هستم که موضوعش گاهنامه(تقویم)سال 1387 است وشبیه به گاه نامه های دیواریست.
در همین هین استاد مدار ما هم از ما خواسته با چیزایی که گفته یه گیت ببندیم.
تو همین هیری ویری استاد آزمایشگاه ما هم کار کردن با curciut maker یا proteus از ما خواسته
من هم می خواهم با همون اسمبلی که نوشتم روز و ماه و سال را در lcd نشان دهم.
اگه تو هر کدوم از درس ها که بلد هستید(مخصوصا avr و مدار) از ابتدا بگویید چی به چی هست و وسایلش را بگویید که بخرم.
سپاس گزار
محمدامین شریفی
جمعه 17 خرداد 1387, 00:21 صبح
یعنی هیچ کس نیست که با assembly یا vb یا c برنامه ی avr برای روشن کردن LCD نوشته باشه
shaniaki
جمعه 17 خرداد 1387, 03:22 صبح
با عرض ادب:
لطفا به جای شرح حال نوشتن صریح و واضح یک سوال را در هر تاپیک مطرح کنید.
LCDها بر دو دوسته هستند: Dot-Matrix و Alphanumeric. شما قصد کار با کدام را دارید؟ در نوع اول باید تک تک نقطه ها را کنترل و روشن خاموش بکنید که کار با آن پیچیده تر است ولی آزادی عمل بیشتری دارید(مثلا فارسی هم می توانید بنویسید) اما در نوع دوم شما فقط کد کاراکترهایی که میخواهید نوشته شوند را به ماژول LCD می فرستید.
مثال برای نوع دوم که سادهتر نیز هست:
http://lcdinterfacing.googlepages.com
در واقع در این نوع LCDها یک کنترلر داخل خود ماژول موجود است که از طریق پینهای واسط باید دستورات مشخصی را برای عملیات مختلف مانند نوشتن کاراکتر یا پاک کردن صفحه فرستاد. در برگه اطلاعات (datasheet) ماژولی که با آن کار میکنید به تفصیل این دستورات نوشته شده است.
یه ... ...
ali ashna
جمعه 17 خرداد 1387, 11:17 صبح
بايد مشخص كني كه از lcd متني استفاده مي كني يا lcd گرافيكي. من با avr كار كردم. وقتي نوع lcd را مشخص كردي اميدوارم بتونم كمكت كنم. به اين پست هم نگاه كن شايد كمكت كنه.
http://www.eca.ir/forum2/index.php?topic=9411.msg53155#msg53155
محمدامین شریفی
جمعه 17 خرداد 1387, 13:47 عصر
دوستان من شرح حال را گفتم تا در هر کدام که می تونید کمک کنید(خودم می دونم نباید اینکار رو کنم)
برنامه با assembly نوشته شده دستوری می شناسید که در asm کاراکتریlcd را روشن کند؟
کامپایلر:avr studio
من user guide شرکت atmel رو خوندم چیزی در این مورد ننوشته بود.
آیا توابع assembly که تو ویندوز می نویسیم با avr فرق دارد؟
shaniaki
دوشنبه 20 خرداد 1387, 03:12 صبح
با عرض ادب:
زبان اسمبلی یعنی کار کردن مستقیم با دستورالعملهای پردازنده. از آنجا که پردازندههای مختلف معماریهای مختلف دارند و دستورالعملهایشان با هم فرق میکند در نتیجه اسمبلیشان نیز متفاوت است. خلاصه اینکه زبان اسمبلی PC را برای یک میکروکنترلر نمیتوان به کار برد. یکی از دلایلی که برنامهها را با زبان سی مینویسند قابلیت انتقالش روی پردازندهها و کنترلرهای مختلف است.
در مورد ال-سی-دی به نظر میرسد که مفهوم را متوجه نشدید. ببینید شما یک ماژول ال-سی-دی را که میخرید تعدادی پین برای اتصال به مدار شما دارد که واسط ارتباطی(interface) کاری شماست. شما باید روی این پینها به ترتیب فرمانهایی را از طریق یکی از پورتهای میکروکنترلر(به انتخاب خودتان بسته به اینکه چطور آن را به میکرو وصل کرده باشید) بفرستید. این فرمانها در دیتاشیت خود ال-سی-دی نوشته شده و شما باید برنامه میکرو را طوری بنویسید که فرمانهای دلخواه را به ترتیب روی پورتی که به میکرو کنترلر وصل است بنویسد.
البته بعضی کامپایلرها و اسمبلرها امکانی را در اختیار شما می گذارند که با یک دستور به سادگی روی ال سی دی متنتان را بفرستید و خود کامپایلر باقی کارها را به عهده میگیرد (مانند BASCOM)
در لینکی که بالا معرفی کردم پورت واسط بین رایانه و ال-سی-دی پورت موازی(پرینتر) است. لینک زیر طریقه کار با AVR را نشان میدهد:
http://www.avrprojects.net/articles.php?lng=en&pg=70
یه ... ...
محمدامین شریفی
چهارشنبه 22 خرداد 1387, 10:34 صبح
با عرض ادب:
زبان اسمبلی یعنی کار کردن مستقیم با دستورالعملهای پردازنده. از آنجا که پردازندههای مختلف معماریهای مختلف دارند و دستورالعملهایشان با هم فرق میکند در نتیجه اسمبلیشان نیز متفاوت است. خلاصه اینکه زبان اسمبلی PC را برای یک میکروکنترلر نمیتوان به کار برد. یکی از دلایلی که برنامهها را با زبان سی مینویسند قابلیت انتقالش روی پردازندهها و کنترلرهای مختلف است.
با درود بر آنهایی که برنامه ها یشان منطقی است
استادم گفت برنامه ای برای تبدیل c به assembly وجود دارد.پرسش من اینست آیا این برنامه برای AVR هم وجود دارد.
آیا AVR زبان C++ که هم پشتیبانی میکند.اگر آری کدام کامپایلر؟
اینجا را بخوانید و نظرتان را بدهید:http://www.avrfreaks.net/modules.php?op=modload&name=News&file=article&sid=197
de_burgh
پنج شنبه 23 خرداد 1387, 01:09 صبح
از آنجایی که bia2dadash2 درباره assembly پرسش میکنند.و باید بهشان بگویم تمام compiler ها هم از این زبان پشتیبانی می کنند.من با bascom کار میکنم.ولی می خواستم بدانم قدرت bascom با بقیه compiler ها بخصوص compiler مخصوص خود شرکت تولید کننده که همان avr studio هست. یکسان هست؟
shaniaki
پنج شنبه 23 خرداد 1387, 18:23 عصر
با عرض ادب:
فقط یک سوال در هر تاپیک.
یه ... ...
mhmmdshirazi
پنج شنبه 11 مهر 1387, 03:44 صبح
من تا بحال با اسمبلی با avr کار نکردم اما اگه مشکل کلا سر برنامه ایه که بتونه c رو رو avr پروگرم کنه من codevisionavr رو پیشنهاد می کنم که کار باهاشم خیلی سادس.
تو اول باید تو ویزارد تنزیمات میکرو کنترولرت رو بدی و lcd رو روی یه port تنظیم کنی البته مشخص کردن نوع lcd هم مهمه (تعداد کاراکترا) و...
بعد تو برنامه بعد از
while(1)
اینو می نویسی:
lcd_gotoxy(0,0);
//mokhtasat dast khodete
lcd_putsf("your text");
//age adad bud akharesh ye +'0' ezafe kon;
//hamin
sudy3090
سه شنبه 16 مهر 1387, 18:55 عصر
سلام.کاربری تازه وارد و درمانده هستم.این سوالمو تو تاپیک گفتگوی AVR هم مطرح کردم ولی هنوز کسی جوابمو نداده و من خیلی عجله دارم.یه برنامه می خوام برای محیط codevision که هر عددی که در صفحه کلید 4×4 وارد می کنیم روی LCDگرافیکی مدل ts12864A-2نشون بده.مشکل من نشون دادن روی lcd نیست من فقط می خوام مثلا اگه کلید 4 فشرده شد برم توی یه تابع به نام key 4 همین. کارهای توی تابع و نمایش روی lcd را خودم بلدم.:ناراحت::عصبانی++:
mhmmdshirazi
سه شنبه 16 مهر 1387, 19:38 عصر
سلام.کاربری تازه وارد و درمانده هستم.این سوالمو تو تاپیک گفتگوی AVR هم مطرح کردم ولی هنوز کسی جوابمو نداده و من خیلی عجله دارم.یه برنامه می خوام برای محیط codevision که هر عددی که در صفحه کلید 4×4 وارد می کنیم روی LCDگرافیکی مدل ts12864A-2نشون بده.مشکل من نشون دادن روی lcd نیست من فقط می خوام مثلا اگه کلید 4 فشرده شد برم توی یه تابع به نام key 4 همین. کارهای توی تابع و نمایش روی lcd را خودم بلدم.:ناراحت::عصبانی++:
تو که گفتی با codvision neminevisam.
arkia
جمعه 24 آبان 1387, 01:32 صبح
پروژه اسکن صفحه کلید ماتریکسی
/************************************************** ***
Project : Keypad Scan
Author : Reza Sepas Yar
Company : Pishro Noavaran Kavosh
************************************************** ***/
#include <mega16.h>
#include <delay.h>
#define xtal 4000000
unsigned char key, butnum;
flash unsigned char keytbl[16]={0xee, 0xed, 0xeb, 0xe7,
0xde, 0xdd, 0xdb, 0xd7, 0xbe, 0xbd, 0xbb, 0xb7, 0x7e,
0x7d, 0x7b, 0x77};
void main(void)
{
DDRB = 0xff;
PORTB = 0xff;
while(1)
{
DDRC = 0x0f;
PORTC = 0xf0;
delay_us(5);
key = PINC;
DDRC = 0xf0;
PORTC = 0x0f;
delay_us(5);
key = key | PINC;
delay_ms(10);
if (key != 0xff)
{
for (butnum=0; butnum<16; butnum++)
{
if (keytbl[butnum]==key) break;
}
if (butnum==16) butnum=0;
else butnum++;
}
else butnum=0;
PORTB = ~ butnum ;
}
}
Hamed Hosseini
جمعه 25 اردیبهشت 1388, 04:48 صبح
اگه درست متوجه ي منظورتون شده باشم ، ميخواين LCD رو روشن كنيد و يه متغير رو توش نمايش بدين
اگه درسته اين كدش تو bascom ه.
بعد يكي يكي پورت هاي متصل به هم د ميكرو و lcd رو مي نويسينconfig lcd 2*16
display on
نام متغيرها lcd
به همين سادگي
fog1234
سه شنبه 21 اردیبهشت 1395, 13:38 عصر
سلام دوستان وقتتون بخیر
من تازه ورد هستم و دنبال ی چند خط برنامه ای هستم که بشه با اون از طریق ی کلید فشاری که به پین صفر پورت a در ای سی at mega 32 وصله ال سی دی کاراکنری 16*2 رو روشن و خاموش کرد.
ینی کلید که بخوره ال سی دی کاراکتری 16*2 روشن بشه و دوباره که بخوره خاموش بشه
میشه لطفا چند خطشو واسم بنویسید ممنون
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.