امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 2.5
  • 1
  • 2
  • 3
  • 4
  • 5
پیکربندی LCD و استفاده از دستور initlcd
نویسنده پیام
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #1
پیکربندی LCD و استفاده از دستور initlcd
با سلام خدمت همه ی اساتید
چند وقته پیش یه مدار ساخته بودم که میخواستم باهاش یه رله بزرک و فن را خاموشو روشن کنم که متاسفانه بشدت روی ال سی دی نویز می افتاد
ال سی دی 2*16

سطر اولش پررنگ میشد و سطر دوم پاک می شد
گاهی هم چیزای بی معنی روی نمایشگر می نوشت

خواستم برنامه نویسی زبان سی رو امتحان کنم که متوجه شدم توی سی برخلاف بیسکام پایه RW هم استفاده میشه


یکی بهم گفتش که توی بیسکام از دستور initlcd استفاده کنم ولی دوتا مشکل هستش
اول از همه اینکه اونم پایه RW باید به میکرو وصل باشه و دوم اینکه اصلا نمیدونم چطور باید ازش استفاده کرد

یسری تکنیک برای کاهش نویز پیدا کردم ولی الان بیشتر میخوام ببینم که توی بیسکام چطور باید از این دستورو پایه Rw استفاده کنم و در صورت امکا یه نمونه برنامه ازش برام بزارین تا متوجه بشم

با تشکر از همه
۲۹-اردیبهشت-۱۳۹۲, ۲۰:۱۱:۰۲
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,483
موضوع‌ها: 21
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4575 تشکر در 1473 ارسال )
ارسال: #2
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام دوسته من.
این نویز ها و مطالب و کارکتر های نا مربوط که روی LCD نمایش داده میشه علتش اینه که میکرو نویز میگره.
میکرو کنترل های AVR همشون در مقابل نویز خیلی ضریف و حساس هستن.
شما اگه از PIC استفاده کنی ، نویز خیلی کم روش تاثیر میزاه و خیلی وقتها هم اصلا روش تاثیر نمیزاه.
و این مشکل رو نداری.
اگه بخوای از AVR استفاده کنی ، باید با تکنیک هایی که هست نویز رو از میکرو دور کنی.

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۹-اردیبهشت-۱۳۹۲, ۲۱:۲۴:۲۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : omid_phoenix, babyy, MicrowaveCO, Ambassador
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #3
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام
منظور دقیق شما رو متوجه نشدم!
مشکل شما با پایه rw چیه؟
rw برای خوندن و نوشتن دیتا رو lcd کاربرد داره

چرا میخواهید از زبان سی استفاده کنید؟
نویزگیری مدارتون باید به صورت سخت افزاری انجام بگیره و فرقی نمیکنه برنامه به زبان بیسیک باشه یا سی

۲۹-اردیبهشت-۱۳۹۲, ۲۱:۳۸:۲۹
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, Ambassador
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #4
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام

من قصد ندارم از زبان سی استفاده کنم
و در این مورد که نویز گیری مربوط به سخت افزار هستش هم موافقم ولی توی هلپ بیسکام دستور initlcd بودش که وقتی گشتم متوجه شدم که ازش میشه برای از بین بردن نویز در ال سی دی استفاده کرد ولی باید پایه RW هم به میکرو وصل باشه ولی هیچ نمونه برنامه ای ازش پیدا نکردم که بدونم چطور میشه ازش استفاده کرد .
۳۰-اردیبهشت-۱۳۹۲, ۱۵:۲۰:۳۶
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #5
RE: پیکربندی LCD و استفاده از دستور initlcd
نه خیر باعث نویز گیری نمی شه ولی در کل مهم نیست یه پایه بی مصرف میکرو رو به عنوان RW معرفی کنید چون از LCD هیچگاه خونده نمیشه مشکلی هم ایجاد نمیشه

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۳۰-اردیبهشت-۱۳۹۲, ۱۶:۰۳:۲۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, omid_phoenix, Ambassador
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #6
RE: پیکربندی LCD و استفاده از دستور initlcd
توی پیکربندی ال سی ذی جاییبرای تعریفش وجود نداره
از طرفی
اگه ممکنه یه مثال کاربردی ازش بزار برام که متوجه بشم
آخه من یکم دیر میگیرم
۳۰-اردیبهشت-۱۳۹۲, ۱۶:۰۷:۵۵
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #7
RE: پیکربندی LCD و استفاده از دستور initlcd
(۳۰-اردیبهشت-۱۳۹۲, ۱۶:۰۷:۵۵)MicrowaveCO نوشته است: توی پیکربندی ال سی ذی جاییبرای تعریفش وجود نداره
از طرفی
اگه ممکنه یه مثال کاربردی ازش بزار برام که متوجه بشم
آخه من یکم دیر میگیرم
بفرماییدBiggrin

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
۳۰-اردیبهشت-۱۳۹۲, ۱۶:۱۳:۲۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, helma, omid_phoenix, MicrowaveCO, Ambassador
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #8
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام

ممنون از توجهت ولی من که بازم متوجه نشدم اگه کسی میتونه یجوری منو روشن کنه که آخرش کاره این دستور initlcd چیه و چطور پایه RW باید به میکرو معرفی بشه درحالیکه توی دستور پیکربندی نمایشگر همچین چیزی نداریم !
یه توضیحم بدم که منظور از initlcd همون دستوره بیسکامش هستش ( نه دستورش توی زبان سی )
۳۱-اردیبهشت-۱۳۹۲, ۰۹:۱۳:۵۹
ارسال‌ها
پاسخ
behzady آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 1,169
موضوع‌ها: 57
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4094
( 6339 تشکر در 2085 ارسال )
ارسال: #9
RE: پیکربندی LCD و استفاده از دستور initlcd
(۳۱-اردیبهشت-۱۳۹۲, ۰۹:۱۳:۵۹)MicrowaveCO نوشته است: سلام

ممنون از توجهت ولی من که بازم متوجه نشدم اگه کسی میتونه یجوری منو روشن کنه که آخرش کاره این دستور initlcd چیه و چطور پایه RW باید به میکرو معرفی بشه درحالیکه توی دستور پیکربندی نمایشگر همچین چیزی نداریم !
یه توضیحم بدم که منظور از initlcd همون دستوره بیسکامش هستش ( نه دستورش توی زبان سی )
بیسیک کی تاحالا این دستور رو پیدا کرده؟Exclamation
یه config lcd فقط داره!!!
اگه منظورتون همین بود (یعنی دستور رو اشتباه نوشتید) باید بگم در ادامه ی تنظیمات می تونید پین رو تعریف کنید مثل بقیه ی پین ها ( توی هلپ بسکام نشوت داده الان بسکام ندارم)
اینو از توی پست پرتال برداشتم مال ارتباط با ال سی دی با سریال
کد:
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 , Wr = Portd.5

به همه عشق بورز، به معدودی اعتماد کن و در حق کسی بدی نکن.
ویلیام شکسپیر

نباید ایمان به انسانیت را از دست دهید. انسانیت یک اقیانوس است؛ اگر قطرات اندکی از اقیانوس کثیف است، اقیانوس کثیف نمی‌شود.
مهاتما گاندی

يَا أَيُّهَا الَّذِينَ آمَنُواْ اسْتَعِينُواْ بِالصَّبْرِ وَالصَّلاَةِ إِنَّ اللّهَ مَعَ الصَّابِرِينَ
(آخرین ویرایش در این ارسال: ۳۱-اردیبهشت-۱۳۹۲, ۱۰:۱۱:۱۶، توسط behzady.)
۳۱-اردیبهشت-۱۳۹۲, ۱۰:۰۵:۴۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : omid_phoenix, babyy, Ambassador
MicrowaveCO آفلاین
كاربر دو ستاره
**

ارسال‌ها: 129
موضوع‌ها: 28
تاریخ عضویت: تير ۱۳۸۷

تشکرها : 19
( 66 تشکر در 36 ارسال )
ارسال: #10
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام

نه داره این دستورو
توی هلپش برو این دستورو بنویس میاره
Action
Initializes the LCD display.

Syntax
INITLCD

Remarks
The LCD display is initialized automatic at start up when LCD statements are used by your code.
If fore some reason you would like to initialize it again you can use the INITLCD statement.
For example in environments with static electricity, the display can give strange output.
You can initialize the display then once in a while. When the display is initialized, the display content is cleared also.

The LCD routines depend on the fact that the WR pin of the LCD is connected to ground. But when you connect it to as port pin, you can use INITLCD after you have set the WR pin to logic 0.

ASM
The generated ASM code :
Rcall _Init_LCD


See also
LCD

Example
NONE
۳۱-اردیبهشت-۱۳۹۲, ۱۰:۴۴:۳۴
ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #11
RE: پیکربندی LCD و استفاده از دستور initlcd
سلام
تو هلپ بسکام سرچ زدم
این برنامه رو ببینید
کد:
$regfile = "m8515.dat"                                      ' specify the used micro

$crystal = 4000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space

$sim


Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 , Db7 = Porta.7 , E = Portc.7 , Rs = Portc.6




Dim A As Byte

Config Lcd = 16x2                                         'configure lcd screen



Cls                                                         'clear the LCD display

Lcd "Hello world."                                         'display this at the top line

Wait 1

Lowerline                                                   'select the lower line

Wait 1

Lcd "Shift this."                                           'display this at the lower line

Wait 1

For A = 1 To 10

  Shiftlcd Right                                           'shift the text to the right

  Wait 1                                                   'wait a moment

Next



For A = 1 To 10

  Shiftlcd Left                                           'shift the text to the left

  Wait 1                                                   'wait a moment

Next



Locate 2 , 1                                               'set cursor position

Lcd "*"                                                     'display this

Wait 1                                                     'wait a moment



Shiftcursor Right                                           'shift the cursor

Lcd "@"                                                     'display this

Wait 1                                                     'wait a moment



Home Upper                                                 'select line 1 and return home

Lcd "Replaced."                                             'replace the text

Wait 1                                                     'wait a moment



Cursor Off Noblink                                         'hide cursor

Wait 1                                                     'wait a moment

Cursor On Blink                                             'show cursor

Wait 1                                                     'wait a moment

Display Off                                                 'turn display off

Wait 1                                                     'wait a moment

Display On                                                 'turn display on



Thirdline

Lcd "Line 3"

Fourthline

Lcd "Line 4"

Home Third                                                 'goto home on line three

Home Fourth

Home F                                                     'first letteer also works

Locate 4 , 1 : Lcd "Line 4"

Wait 1


Deflcdchar 1 , 225 , 227 , 226 , 226 , 226 , 242 , 234 , 228       ' replace ? with number (0-7)

Deflcdchar 0 , 240 , 224 , 224 , 255 , 254 , 252 , 248 , 240       ' replace ? with number (0-7)

Cls                                                         'select data RAM

Lcd Chr(0) ; Chr(1)                                         'print the special character

_temp1 = 1                                                 'value into ACC

!rCall _write_lcd                                           'put it on LCD

End

در آخر برنامه
کد:
_temp1 = 1                                                 'value into ACC

!rCall _write_lcd
احتمالا این دستور واسه فراخوانی همون پایه rw

درواقع این کد مربوط به زبان asm که به این طریق پیکربندی میشه؛
کد:
$ASM

Ldi _temp1, 5         'load register R24 with value

Rcall _Lcd_control   'it is a control value to control the display

Ldi _temp1,65        'load register with new value (letter A)

Rcall _Write_lcd      'write it to the LCD-display

$END ASM

۳۱-اردیبهشت-۱۳۹۲, ۱۲:۲۶:۴۴
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, MicrowaveCO, Ambassador, helma, behzady


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  شمارش تعداد پالس های یک دستور؟ Ambassador 2 2,996 ۲۷-اردیبهشت-۱۳۹۶, ۱۶:۲۰:۵۶
آخرین ارسال: Ambassador
  پیکربندی SPI نرم افزاری در کدویژن pedram032 2 3,661 ۱۷-دى-۱۳۹۵, ۲۲:۳۷:۱۴
آخرین ارسال: omid_phoenix
  دستور delay_ms واقعی کار نمیکنه 67Sama 3 3,180 ۱۱-آبان-۱۳۹۵, ۰۰:۲۱:۳۷
آخرین ارسال: behzady
  [سوال] پیکربندی تایمر mostafa-m 5 4,271 ۲۹-خرداد-۱۳۹۵, ۲۲:۴۸:۰۷
آخرین ارسال: mostafa-m
  سوال در مورد دستور timeout$ mohebbat 3 2,932 ۲۹-بهمن-۱۳۹۴, ۱۲:۳۵:۱۹
آخرین ارسال: 1نفر
  خاموش کردن echo سیم 900 با دستور ATE0 salmon 0 2,208 ۲۰-تير-۱۳۹۴, ۱۵:۳۱:۲۹
آخرین ارسال: salmon
  دستور کدویژن hadikh73 75 38,531 ۰۶-اردیبهشت-۱۳۹۳, ۱۴:۳۱:۵۹
آخرین ارسال: Ambassador
  اجرای همزمان دو دستور تو بسکام رسول21 3 4,597 ۱۹-اسفند-۱۳۹۲, ۲۳:۱۲:۱۶
آخرین ارسال: robojalal
  [فوری] مشكل در چك كردن كليد با دستور debounce velakat 12 12,149 ۱۱-دى-۱۳۹۲, ۰۰:۵۸:۱۵
آخرین ارسال: sharin
  کمک برای دستور inkey در دریافت داده ی سریال gagool87 2 5,475 ۳۰-شهریور-۱۳۹۲, ۱۱:۳۵:۵۹
آخرین ارسال: mojtaba00077

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 5 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS