۱۱-آذر-۱۳۹۰, ۱۰:۱۷:۳۹
۱۱-آذر-۱۳۹۰, ۱۰:۳۴:۳۱
خیر دستوری برای اینکار وجود نداره ولی شما می تونید تابعی بنویسید که اینکا را انجام بده شما با مراجعه به دیتا شیت ال سی دی مود نظر دستور شیفت آن را می توانید پیدا کنید مثلا برای lcd 2*16 دستور شیفت برابر با 0b00000110 جابجایی به چپ و با دستور 0b00000111 جابجایی به راست را داشته باشید و می توانید یک حلقه با تعداد دفعات تکرار را برای اینکار بنویسید
البته این هم بگم که من از codvision استفاده نمی کنم و از winavr استفاده می کنم پس اگه احتمالا در codvision همچین دستوری وجود داشته باشه من اطلاعی ندارم
البته این هم بگم که من از codvision استفاده نمی کنم و از winavr استفاده می کنم پس اگه احتمالا در codvision همچین دستوری وجود داشته باشه من اطلاعی ندارم
۱۱-آذر-۱۳۹۰, ۱۲:۴۰:۵۰
سلام.
اون دستور شيفت براي lcd تو بسكام رو امتحان كردم ، چيز جالبي نيست ... ، حداقل اون 2 باري كه امتحان كردم درست جواب نداد ... !!
مي توني با دستور locate تو بسكام يا معادلش در كامپايلر هاي ديگه اين كار رو انجام بدي ...
موفق باشي.
يا علي.
اون دستور شيفت براي lcd تو بسكام رو امتحان كردم ، چيز جالبي نيست ... ، حداقل اون 2 باري كه امتحان كردم درست جواب نداد ... !!
مي توني با دستور locate تو بسكام يا معادلش در كامپايلر هاي ديگه اين كار رو انجام بدي ...
موفق باشي.
يا علي.
۱۱-آذر-۱۳۹۰, ۱۳:۲۸:۰۶
(۱۱-آذر-۱۳۹۰, ۱۰:۳۴:۳۱)reza-m نوشته است: [ -> ]مثلا برای lcd 2*16 دستور شیفت برابر با 0b00000110 جابجایی به چپ و با دستور 0b00000111 جابجایی به راست را داشته باشید و می توانید یک حلقه با تعداد دفعات تکرار را برای اینکار بنویسیدمیشه بیشتر توضیح بدین؟چطوری باید از این استفاده کنم 0b00000110
دستور locate کاراییش چه جوریه؟
۱۱-آذر-۱۳۹۰, ۱۳:۴۰:۱۷
شما یک حلقه for می نویسید و به تعداد دفعاتی که می خواهید شیفت بدید متغیر را مقدار دهی می کنید
For(a=0;a<5;a++)lcd_write_comnd(0b00000110);
در این مثال متغیر a تعداد حلقه را تشکیل می ده که برابر با 5
بعد دستور lcd_write_comnd که در واقع کد شیفت را به ال سی دی ارسال می کنه البته من این تابع را خودم نوشتم و فکر کنم کمی با codvision فرق داره ولی می تونی به راحتی اونو تغییر بدی اگه بازم متوجه نشدی بگو تا یک برنامه بنویسم و برات آپلود کنم
For(a=0;a<5;a++)lcd_write_comnd(0b00000110);
در این مثال متغیر a تعداد حلقه را تشکیل می ده که برابر با 5
بعد دستور lcd_write_comnd که در واقع کد شیفت را به ال سی دی ارسال می کنه البته من این تابع را خودم نوشتم و فکر کنم کمی با codvision فرق داره ولی می تونی به راحتی اونو تغییر بدی اگه بازم متوجه نشدی بگو تا یک برنامه بنویسم و برات آپلود کنم
۱۱-آذر-۱۳۹۰, ۱۵:۲۲:۲۰
نقل قول: دستور locate کاراییش چه جوریه؟
خرجش تايپ كردن همين عبارت در help بسكامه ... ( اميدوارم كار سختي نباشه ... )
معادلش در كدويژن احتمالا اينه ...
کد:
lcd_gotoxy (2,3)
فقط كافيه بسته به نوع حركتي كه مي خواي داشته باشه ،بجاي اينكه مستقيم مقدار دهي كني ، از متغيير استفاده كني و در يه حلقه اي بذاري كه مقدار اون متغيير هر سري به يه شكلي تغيير كنه ...
به همين راحتي ...
موفق باشي.
يا علي.
۱۱-آذر-۱۳۹۰, ۱۵:۵۸:۴۹
کد:
For(a=0;a<5;a++)lcd_write_comnd(0b00000110);
مثلاً اگه این رشته رو lcd باشه :abcdef
می خوام بعد از پاک کردن c ما بقی یکی به چپ شیفت داده بشن و جای c پر بشه.
قصد دارم که کیبورد رو به میکرو متصل کنم که تا اینجا همه کلیدها مثل enter,کلید های جهتی و ... کار می کنند.backspace هم از آخر و هم از وسط پاک می کنه اما موندم که وقتی مکان نما به وسط جمله امد چطور هم پاک کنه و هم شیفت بده,تا حدودی دیگه هنگ کردم,نمی تونم درست فکر کنم.
![Confused Confused](https://www.iranled.com/forum/images/smilies2/confused.gif)
۱۱-آذر-۱۳۹۰, ۱۸:۲۱:۵۹
دوست عزیز در پاسخ سوال اولتون من گفتم که این تابع را خودم در winavr نوشتم شما باید تابعی که در کدویژن هست را بعد از این دستور قرار بدید
تابعی که فرمان را به lcd ارسال می کنه شما باید توابع کار با lcd در کامپایلر خود را نگاه کنید
در جواب این سوال که فرمودید
می خوام بعد از پاک کردن c ما بقی یکی به چپ شیفت داده بشن و جای c پر بشه.
شماباید برای اینکه بتوانید همچین کاری بکنید باید از دستور gotoxy در کدویژن استفاده کنید طبق گفته دوستمون sharin جان
چون دستور شیفت کل صفحه lcd را شیفت می ده و این گزینه مناسبی برای اینکار نیستش
موفق باشی
تابعی که فرمان را به lcd ارسال می کنه شما باید توابع کار با lcd در کامپایلر خود را نگاه کنید
در جواب این سوال که فرمودید
می خوام بعد از پاک کردن c ما بقی یکی به چپ شیفت داده بشن و جای c پر بشه.
شماباید برای اینکه بتوانید همچین کاری بکنید باید از دستور gotoxy در کدویژن استفاده کنید طبق گفته دوستمون sharin جان
چون دستور شیفت کل صفحه lcd را شیفت می ده و این گزینه مناسبی برای اینکار نیستش
موفق باشی