سلام دوستان من یه lcd دارم که کاراکتریه ولی نوع اون مشخص نیست ولی 16*2.پایه های 1 و 3 که به زمین وصل پایه های 2و15و16 هم به 5V چون فقط می خوام روش بنویسم rs و rw رو هم به زمین وصل کردم که 0 بشن(صفحه lcd آبی رنگه) ولی وقتی به برق وصلش میکنم فقط ستون اول کاراکتراش معلوم میشن (قبل از ارسال داده به lcd) روی همه ی پایه های داده lcd هم 1 رفته .مشکل داره یا نه ؟اگه نداره چطور فعالش کنم؟ممنون
اطلاعیه
Collapse
No announcement yet.
مشکل با lcd
Collapse
X
-
پاسخ : مشکل با lcd
LCD رو به همون روشی که شما گفتید وصل کردم الان صفحه روشن شده(بین پایه 3 و 5v+ مقاومت 1 کیلو گذاشتم البته رنگ نداره شایدم 10 کیلو باشه) ولی 8 پایه رو به میکرو وصل کردم چون دارم با AVRSTUDIO برنامه مینویسم و خیلی بلد نیستم 4 بیتی بفرستم وقتی دستور رو میفرستم RS=0 , E=1 و رو پایه های داده هم همون چیزی که میخوام میره ولی هیچی نمایش داده نمیشه
کسی نبود کمک من کنه ؟
دیدگاه
-
پاسخ : مشکل با lcd
اشکالی نداره.شما برنامه رو با بسکام بنویس بعد فایل هگزی که بهت میده رو با AVR STUDIO پروگرام کن روی میکرو.
شما اگه دو مقاومت مساوی هم اینجوری بزاری هم بازم جواب میده.
اول باید از صحت برنامه مطمئن بشی بعد سراغ سخت افزار بری.شما ظاهر توی برنامه مشکل داری.انا لله و انا الیه الراجعون
دیدگاه
-
پاسخ : مشکل با lcd
#include "usbdrv.h"
#include <avr/interrupt.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include "global.h"
#include "timer.h"
#include "lcd.h"
#include <avr/delay.h>
char *str = "hi hassan";
uchar reply[1];
uchar usbFunctionSetup(uchar data[8]) {
if( data[1] == 0x67 ) //this is my request
{
PORTA=0x01;
lcdPrintData(str, 9);
_delay_ms(2000);
lcdGotoXY(0,1);
lcdPrintData("avr gcc", 7);
_delay_ms(5000);
lcdClear();
PORTC = data[2];//pullups must enable in all time
reply[0] = PINB;
usbMsgPtr = reply;
return 1; //return len of valid data in array
}
return 0;
}
int main()
{
lcdInit();
usbInit();
sei(); //enable all interrupts
//LEDs as output
DDRC |= 0xff; //PC0 -> LED1 , PC1 -> LED2
DDRA |= 0xff;//enable pullups for keys. PC2->Key1 , PC3->Key2
DDRB =0x00;
for(;
{
usbPoll();
}
}
این برنامه منه چندبار بدونه lcd تست شده وقتی تو کامپیوتر همون عدد 0x67 رو میفرستم اون تابع اجرا میشه پس نباید مشکلی دیگه داشته باشه .
دیدگاه
-
پاسخ : مشکل با lcd
نوشته اصلی توسط rexi1rسلام بالاخره وصل شد ولی یه مشکل دیگه ایجاد شده وقتی داخل خود میکرو مثلا مینویسم hi تو lcd نمایش داده میشه ولی وقتی کد اسکی کاراکتر رو بهش میدم اشتباه چاپ میکنه مثلا بجای a می نویسه i نمی دونم چکارش کنم؟
باید توی همون دستوری که شماره میزدی رو شماره هاشو برعکس کنی مثل این
dedlcdchar 0,..............
lcd chr (0(
dedlcdchar 1,..............
lcd chr(1)
این رو بکنی
dedlcdchar 0,..............
lcd chr (1)
dedlcdchar 1,..............
lcd chr(0)
دیدگاه
دیدگاه