PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : پروژه 8051 ( شبیه سازی صفحه کلید PS/2- حافظه خارجی RAM 16K - ال سی دی )



fazarbadegan
02-09-2009, 15:13
سلام

طبق پروژه ، یک قطعه برنامه رو از قبل در حافظه 8051 ذخیره کردیم.( که این برنامه هرچیزی میتونه باشه.)
در شروع : از صفحه کلید آدرس شروع و پایان یک قسمت از قطعه برنامه از پیش ذخیره شده در 8051 رو میگیریم.. بعد به حافظه RAM خارجی میبریم اون قسمت انتخاب شده از قطعه برنامه رو.... در RAM اجرا میکنیم و محتویات ثباتهای مورد نظر رو برمیگردونه به برنامه اصلی در انتها LCD محتویات ثبات ها رو نمایش میدیم.... این ثبات ها هم کلا شامل : A , B , R0-R7 , DPTR, PC, PSW هستش..

قسمت اول این پروژه مربوط به گرفتن داده از صفحه کلید کامپیوتر میشه:

PS/2 هم که 6 تا پایه داره:
1. کلاک 2. زمین 3. داده 4. آزاد 5. +5 ولت 6. آزاد

خب... چه جوری میشه باهاش کار کرد؟؟؟ منظورم در پروتئوس هست... آخه این قطعه رو نداره... حتی 5 پین رو هم نداره.... چی کار کنم؟؟
حخروجی صفحه کلید اسکن کد هست درسته؟؟؟

من باید هر بیتی رو که از پایه 3 PS/2 گرفته میشه اسکن کدش رو تبدیل به کد اسکی کنم؟؟؟ برای این کار بیام به ترتیب کنم اسکن کدها رو خوم بعد از یه ادرسی شروع کنم کد اسکی معادل رو ذخیره کنم؟؟؟؟ مثلا

org 400h
char1: db '&','{','}','[',']','~','$','!','#','(',')','+','=','\','|','<','>','_','?',1,2,'q','1',3,4,5, 'z','s','a','w','2',66,6,'c','x','d','e','4','3',7 ,8,'

-------------------
نمیشه مثل keypad کار کنم؟؟؟؟
یعنی صفحه کلید رو به صورت ماتریس رسم کنم ؟؟؟ بعد هر کلیدی که فشرده بشه من کدش رو بفرستم؟؟؟ بدون استفاده از PS/2

---------------
یا باید با یه سیگنال سریال و کلاک... خودم دستی هر دفعه اسکن کدش رو بدم به برنامه طبق کاراکتری که میخوام؟؟؟؟

1nafar
03-09-2009, 15:50
سلام
توی پروتوس امکان شبیه سازی کیبرد کامپیوتر وجود نداره ،
شما نمیتونید با استفاده از روش های بالا اون رو راه اندازی کنید ، چون داده به صورت سریال انتقال پیدا میکنه .
شما باید مدار رو در عمل تست کنید .
نحوه نوشتن برنامه به صورت زیر هست :
شما باید یک پالس با میکرو ایجاد کنید ، این پالس باید به پایه کلاک اعمال بشه ،در همین حال پایه دیتا کیبرد رو چک کنید .
دیتا ورودی رو بگیرید و اون رو با کد تمامی حروف و اعداد ( که از قبل در حافظه میکرو ریختید ) مقایسه کنید و کارکتر مشابه رو نمایش بدید .
در کل راه اندازی کیبرد با 8051 و اسمبلی کار سختی هست

fazarbadegan
05-09-2009, 19:24
سلام

مرسی برای جوابتون

میخواستم بدونم من میتونم از فرستنده گیرنده غیر همزمان استفاده کنم؟؟؟؟
منظورم اینه که از یه شیفت رجیستر ورودی سریال - خروجی موازی استفاده کنم؟؟؟؟
اگه جواب مثبت ..
لطفا اسم قطعه ای که میتونم استفاده کنم عنوان کنید و همینطور دیتا شیت اون رو بگذارید....

پیشاپیش ممنون

1nafar
07-09-2009, 08:34
سلام
اگه منظورتون این هست :
کیبرد رو به یک مبدبل سریال به موازی متصل کنیم و به بعد خروجی مبدل رو به میکرو بدیم
این کار عملی هست اما دردسرش بیشتر از برنامه نویسی برای 8051 هست ( همون چیزی که بالا اشاره کردم )
در این حالت شما باید بین کیبرد ، میکرو کنترلر و مبدل همزمان سازی بوجود بیارید .
مثلا با فشردن کلید a کد ، 110011 ارسال میشه . این کد توی 6 پالس کلاک ارسال میشه ، بعد از اون ک خطا ارسال میشه و گیرنده کد دریافتی رو تایید میکنه . در این حالت شما باید کد های زیادی رو دریافت و ارسال کنید که نوشتن برنامه رو خیلی سخت میکنه .