سلام به همه دوستان. من یه پروژه دارم انجام می دم که واقعا تنها مطلبی که من رو خیلی نگران کرده اتصال mouse ps2 و keyboard ps2 به میکرو آرم هست و از اونجایی که من قبلا این پروژه رو انجام ندادم اطلاعاتی ندارم. فقط قراره در این پروژه موس اگر به بالا رفت led بالا، یا چپ رفت سمت چپ یا راست رفت راست روشن شود. در مورد کیبورد فقط باید کراکتر های موجود روی کیبرد رو بخواند و روی یک نمایشگر کاراکتری یا هر نمایشگر دیگه نمایش دهد. با تشکر.
اطلاعیه
Collapse
No announcement yet.
اتصال mouse/keyboard ps2 به AT91SAM7x256
Collapse
X
-
پاسخ : اتصال mouse/keyboard ps2 به AT91SAM7x256
سلام
من تا حالا با PS2 کار نکردم ولی میدونم خیلی راحته کار کردن باهاش
برای شروع این مثال که با AVR هست رو شروع کن توش توضیح داده چه جوری میشه اطلاعات رو از موس خوند و کار ساده ای هم هست
فایل رو برات پیوست کردم
ببین اگه مشکلی بود بگو تا برسیش کنیم
موس که حل شد میریم سراغ کیبورد
موفق باشیفایل های پیوست شدهزندگی یعنی امید و حرکت
کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
-
پاسخ : اتصال mouse/keyboard ps2 به AT91SAM7x256
خب
برای نحوه ی کار کردن با PS2 برو
http://www.computer-engineering.org/ps2protocol/
برای کار با PS2 برای راه اندازی موس برو
http://www.computer-engineering.org/ps2mouse/
برای کار با PS2 برای راه اندازی کیبورد هم برو
http://www.computer-engineering.org/ps2keyboard/
بقیش دیگه برنامه نویسی هست
موفق باشیزندگی یعنی امید و حرکت
کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
دیدگاه
-
پاسخ : اتصال mouse/keyboard ps2 به AT91SAM7x256
نوشته اصلی توسط black-scorpionبا سلام، ازتون بابت پاسخ خوبتون متشکرم. فقط یک مشکل هست اینکه چطور +5 موس رو به ارم که +3.3 هست. البته شندیم تقسیم مقاومتی میشه. لطفا بفرماید چگونه اتصال بدم. ممنون
تقسیم مقاومتی یکی از راه های ممکن است ولی به نظر من ممکنه مشکلاتی بوجود بیاره چون احتمال داره بار گذاری رخ بده و به مشکل بر بخورید
میتونید از دیود زنر استفاده کنید که ولتاژ بالای 3.3 رو برش دهد
یا از بعضی از آی سی های بافر TTL استفاده کنید( باید تغذیش رو 3.3 بدهید تا خروجی 3.3 بشه)
فعلا همینا به ذهنم میرسه بررسی می کنم اگه راه بهتری بود خبر میدمزندگی یعنی امید و حرکت
کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
دیدگاه
-
پاسخ : اتصال mouse/keyboard ps2 به AT91SAM7x256
با سلام خدمت دوستان و جناب اقای ایمان فر. من مدار PS2 رو بستم اما نتونستم جواب بگیرم. کد کامل رو برای دوستان میزارم اگر امکانش هست لطفا کمک کنید من تمام کنم این مدار رو.
unsigned char mouse_r (void)
{
unsigned char c, a=0, i;
unsigned char pin,clk,data;
pin = AT91C_BASE_PIOB->PIO_PDSR;
data = AT91C_BASE_PIOB->PIO_PDSR & 0x01;
clk = AT91C_BASE_PIOB->PIO_PDSR & 0x02;
i = 0;//DDRB = 0x00;
AT91C_BASE_PIOB->PIO_PER =((1<<0)|(1<<1));
AT91C_BASE_PIOB->PIO_ODR =(1<<0)|(1<<1);//printfx("read mousue in first while"
while(clk == 0 & data == 0);
while(clk == 1 & data == 1);
while(clk == 0);
while(clk == 1);for(i=0; i<8; i++){
c = pin;
c = c << 6;
c = c & 0x80;
a = a >> 1;
a = a ^ c;
//printfx("read mousue in second while"
while(clk == 0);
while(clk == 1); }/*while (PINB.0 == 0);
while (PINB.0 == 1);*/
//printfx("read mousue in third while"
while(clk == 0 & data == 0);
//while (PINB.0 == 0 & PINB.1 == 0);
//printfx("read mouse"
return a;
}void mouse_w (unsigned char x)
{
unsigned char i, c, p = 0;
unsigned char clk,data;
unsigned char out = 0;
out = AT91C_BASE_PIOB->PIO_SODR & 0x02;
data = AT91C_BASE_PIOB->PIO_PDSR & 0x01;
clk = AT91C_BASE_PIOB->PIO_PDSR & 0x02;
AT91C_BASE_PIOB->PIO_PER =((1<<0)|(1<<1));
AT91C_BASE_PIOB->PIO_OER =((1<<0)|(1<<1));
AT91C_BASE_PIOB->PIO_CODR =((1<<0)|(1<<1));
//PORTB = 0x03;
//DDRB = 0x03;
while(clk == 0 & data == 0);
//while (PINB.0 == 0 & PINB.1 == 0);
AT91C_BASE_PIOB->PIO_CODR =(1<<0);
delay_us(100);
AT91C_BASE_PIOB->PIO_CODR =(1<<0);
AT91C_BASE_PIOB->PIO_SODR =(1<<1);
AT91C_BASE_PIOB->PIO_ODR = (1<<1);
while(clk == 0);
/*
PORTB.0 = 0;
delay_us(100);
PORTB.1 = 0;
PORTB.0 = 1;
DDRB = 0x02;
while (PINB.0 == 1);
*/for (i=0; i<8; i++) {
c = x;
c = c & 0x01;
x = x >> 1;
out = c;
//PORTB.1 = c;if (c == 1) p += 1;
while(clk == 0);
while(clk == 1);//while (PINB.0 == 0);
//while (PINB.0 == 1);
}
p = p%2;
if (p == 0)
AT91C_BASE_PIOB->PIO_SODR = (1 << 1);
//PORTB.1 = 1;
else AT91C_BASE_PIOB->PIO_CODR = (1 << 1);
//PORTB.1 = 0;
while(clk == 0);
while(clk == 1);
//while (PINB.0 == 0);
//while (PINB.0 == 1);
AT91C_BASE_PIOB->PIO_CODR = (1 << 1);
AT91C_BASE_PIOB->PIO_SODR = (1 << 1);
AT91C_BASE_PIOB->PIO_ODR = (1<<0) | (1 << 1);
//PORTB.1 = 1;
//DDRB = 0x00;
while(clk == 1 & data == 1);
while(clk == 0 & data == 0);
//while (PINB.0 == 1 & PINB.1 == 1);
//while (PINB.0 == 0 & PINB.1 == 0);
printfx("write mouse"
}
void mouse_on ( )
{
unsigned char y;
y = 0;
mouse_w(0xFF);
y = mouse_r( );
y = mouse_r( );
mouse_w(0xEA);
y = mouse_r( );
mouse_w(0xE8);
y = mouse_r( );
mouse_w(0x01);
y = mouse_r( );
mouse_w(0xF3);
y = mouse_r( );
mouse_w(0x0A);
y = mouse_r( );
mouse_w(0xF4);
y = mouse_r( );
y = y;
printfx("mouse on"
}
{امضاء خلاف قوانین}
دیدگاه
-
پاسخ : اتصال mouse/keyboard ps2 به AT91SAM7x256
نوشته اصلی توسط black-scorpionبا سلام خدمت دوستان و جناب اقای ایمان فر. من مدار PS2 رو بستم اما نتونستم جواب بگیرم. کد کامل رو برای دوستان میزارم اگر امکانش هست لطفا کمک کنید من تمام کنم این مدار رو.
شرمنده دو سه روزی مسافرت بودم
در اولین فرصت برنامه رو چک میکنمزندگی یعنی امید و حرکت
کارهایتان را آغاز کنید، توانایی انجام دادنش را بدست خواهید آورد
سوالاتی که در انجمن قابل طرح شدن هستند در پیام خصوصی جواب داده نمی شود.
برای تشکر از دکمه تشکر کنار هر پست استفاده کنید، پست هایی که فقط حاوی تشکر هستند پاک می شوند.
به دلیل کار بر روی پایاننامه و دفاع، مدتی نیستم!
دیدگاه
دیدگاه