ايران ويج

نسخه‌ی کامل: 8LED
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با عرض سلام
میخواستم بدونم برای این که هشت تا LED رو توسط پورت سریال به صورت مجزا روشن خاموش کرد چکار باید بکنم؟
اگه میشه ساده ترین راهشو بگید.
ممنون.
ساده ترین راه اینه که یه شیفت رجیستر سری به موازی مثل 4015 بذاری . در ضمن موقع ارسال باید بیت پریتی و همینطور بیت ابتدا و انتها رو حذف و فقط 8 بیت که شامل اطلاعات هستند رو ارسال کنی . معمولا همه محیط هایی که بخواهند به صورت سریال بفرستند ( RS232) مثل هایپر ترمینال ویندوز چنین امکاناتی دارند .
با یه میکرو هم خیلی راحت میتونی این کار و با امکانات بشتر انجام بدی . برنامه ی سختی هم نمی خواد . مشکلات بالایی رو هم نداره .
میخواستم ساده باشه. ولی خب جو گیر شدم.
میشه در مورد روش میکروکنترولریش یه خرده توضیح بدید؟ خود میکرو کنترلر ها امکانات اماده ای برای این کار دارند یا نه؟ اگه دارند چه مدلایی مناسب این پروژه است؟
سلام
من هر میکروکنترلی که دیدم می تونسته با روش سریال ارتباط برقرار کنه . حتی مدل های اولیه 8051
من بهت AVR رو پیشنهاد می کنم کار کنی . چون هم راحته و هم ارزونه . ATmega 8 رو میخری1000 تومان
اگه بخوای با بسکام کار کنی :
baud$ : برای تعیین نرخ سرعت اطلاعات
Print : برای ارسال اطلاعات به خروجی سریال
Inkey : متنظر می ماند تا اطلاعاتی از پایه سریال دریافت کند .
INPUTBIN : خواندن اطلاعات ورودی سریال به صورت باینری
و یه عالمه دستور دیگه
به عنوان مثال :

$regfile = "m8def.dat"
$crystal = 1000000
baud = 19200
config portb = output
dim w as byte
do
w=inkey()
portb = w
loop

میکرو مورد استفاده رو مشخص کردیم
تعیین فرکانس کریستال ( مهمه چون نرخ اطلاعات با این تنظیم می شه )
تعیین نرخ اطالاعات سریال با باوود 19200
تعیین پورت b به عنوان خروجی
تعیین متغیر w به صورت 8 بیتی . 0 - 255
ابتدای حلقه
منتظ بمان تا زمانی اطلاعاتی از پایه سریال دریافت شود و اطلاعات دریافتی رو در متغییر W بریز
پورت B رابرابر متغییر W ( اطلاعات دریافتی ) کن .
انتهای حلقه

و به این صورت اطلاعات دریافتی از پورت سریال بر روی پورت B قرار گرفته و پایه های متناظر با اطلاعات دریافت شده یک و یا صفر می شوند .
نمی دونم چقدر تونستم توضیح بدم . ولی در کل همینه
من قبلا یه خرده با PIC کار کرده بودم ولیک Avr. این بسکام پروگرمرشه ؟
این دستور Inkey چطوری کار میکنه؟ هر وقت یه بایت رسید اونو میگیر میده به ما؟
راستی اینا چی میشه:
terip2008 نوشته است:در ضمن موقع ارسال باید بیت پریتی و همینطور بیت ابتدا و انتها رو حذف و فقط 8 بیت که شامل اطلاعات هستند رو ارسال کنی .
اینا رو باید توی کامپیوتر باید برداشت یا توی میکروکنترولر؟ یا ... ؟
حالا میگم خارج از بحث میکروکنترولر.
من توی workbench تونستم با دو تا خط هشت تا led رو با یه شیفت رجیستر روشن خاموش کنم. برای دو تا خط که از خطهای کنترلی پورت سریال میشه استفاده کرد.میخواستم بدونم برای شیفت رجیستر 8 بیتی چه IC پیدا میشه ؟ و کلا من بخوام این مدار رو بسازم غیر از شیفت رجیستر چه چیزای دیگه ای میخواد؟
اینو واسه اون گفتم که خرو جی سریال دارای پریتی و همچنین بیت ابتدا هستش . ( البته بعضی جا یه چیز هایی دیگه هم اضافه می کنند . ) البته بعلاوه 8 بیت اطلاعات .
چون 4015 یک شیفت رجیستر 8 بیتی هستش پس باید 8 بیت اطلاعات بهش بدیم تا اطلاعاتی خارج نشه . البته می شه از یک شیفت رجیستر 10 بیتی استفاده کرد تا مستقیم به سریال وصلش کنیم و اون بیت ها رو هم داشته باشیم.
هر بیت شیفت رجیستر رو هم می شه با یک فلیپ فلاپ D ساخت .
تو Hyper Terminal ویندوز هم برای ارسال سریال COM اگه دقت کرده باشی می تونی بیت پریتی و بیت استاپ رو تنظیم کنی .
البته در هر جایی که بخواهی با سریال کار کنه این تنظمیات وجود داره .
دستور INKEY منتظر می ماند تا اطلاعاتی از پورت سریال دریافت بشه و بعد اون اطلاعات رو داخل متغییرش قرار می ده . و بعد برنامه به خط بعدی می ره . و تا وقتی که اطلاعاتی دریافت نشه برنامه تو این خط می مونه .
اون رو هم اگه بخوای شیفت رجیستر هشت بیتی ( 4015 ) درست کنی باید از تو کامپیوتر برداری .
البته برای کار بدون میکرو به یک نوسان ساز همزمان با باوود سریالت هم نیاز داری . ( برای کلاک پالس شیفت رجیستر ) همچنین به یه چیزهایی دیگه که دریافت اولین بیت رو تشخیص بده .

در ضمن خروجی پورت سریال دارای منطق دیجیتال 0-5 ولت نیستش و از 12- الی 12 ولت تغییر پیدا می کنه که می تونی با استفاده از MAX 232 این دو رو بهم تبدیل کنی .
زمانی که پورت سریال رو درست کردن ( حدود 1965 ) هنوز آی سی های TTL و منطق 5 ولت نیومده بود و از اون زمان هم هیچ فرقی نکرده , فقط باوودش رو بردن بالا تا اطلاعات با سرعت یشتری انتقال داده بشه .

در کل من بهت توصیه می کنم با میکرو کار کنی , ( البته اگه می خوای اصول دیجیتال و میکرو کامپیوتر یاد بگیری که قضیه فرق می کنه . ) چون تو میکروکنترلر دستت بازه و هر کاری دلت بخواد می تونی انجام بدی . مثلا صفحه نمایش بذاری . و ...

اینو رو هم یه نگاه کن .
http://www.iranled.com/article94.html&mo...ad&order=1
یه چیزی حواسم نبود اینه که 4015 دو تا شیفت رجیستر 4 بیتی هستش که بهم وصلش می کنی و یه 8 بیتی می شه .
نه خیلی ساده تر از اینا منظورمه.
این عکسی که ضمیمه کردم رو ببینید.
اینجور چیزی منظورمه که یکیش خط RTS و اونیکی هم خط DTR پورت سریاله. یعنی عملا اصلا از سریال استفاده نکنم. کارم خیلی ساده میشه. اینجور چیزی رو با چی میشه ساخت؟
راستی یه پروگرمر avr یا pic چنده؟
ما تو پورت سریال فقط یه خروجی بعلاوه زمین داریم ( ورودی رو در نظر نگرفتم ). اما تو شیفت رجیستر باید کلاک پالش (CLK) رو هم بدیم . فرکانس اون هم باید با باوود سریال یکی و سنکرون باشه . هینطور شیفت رجیستر باید موقعی عمل کنه که اطلاعات در حال ارسال باشه و در مواقع دیگه غیر فعال باشه . چون اگه فعال باشه و اطلاعاتی نیاد انگار ورودی صفر رو به شیفت رجیستر دادیم و تمام خروجی ها صفر می شه .
یعنی مدار باید با اول بیت یک سریال شروع به کار کنه , بیت اول بیت نشان دهنده شروع بوده و یک هستش و فاقد اطلاعات هستش پس بیت اول نباید در نظر گرفته بشه .
بعد شیفت رجیستر باید به مدت 8 تا پالس دیتای ورودی رو دریافت کنه ( در این حالت بیت پریتی رو غیر فعال کردیم ) .و بعد از این هشت بیت پورت سریال صفر می شه تا زمان ارسال بعدی .

البته مثل اینکه آیسی های واسه همین کار هستش که دیتای ورودی پورت سریال رو مستقیم به موازی تبدیل می کنه و مدارات جانبی رو هم خودش داره . در مورد اینها و شماره هاشون اطلاعاتی ندارم .
Question
پروگرامر PIC حدود 10 تومان قیمتشه و AVR مدل STK200/300 حدود 3 تومان , البته پروگرامر AVR رو میتونی با کمتر از هزار تومان و خیلی راحت خودت درست کنی . فقط یه کانکتر برای پورت پارالل ( پرینتر ) می خواد و یه آی سی بافر . البته بعضی ها آیسی بافر رو هم نمی ذارن که ارزش نداره به خاطر یه آیسی 250 تومانی احیاناً باعث سوختم پورت پارالل ( و شاید هم MAIN ) بشی . چون خروجی پورت پارالل دارای بافر نیست . آی سی بافر مثل 74HC244 و 74HC245 البته از سری LS هم می شه استفاده کرد ولی توصیه نمی شه . سری HCT و AC هم خوبه ولی گیر نمیاد .
Wink
این هم یه دو سه مدل پروگرامر AVR :
سلام
اینم یه پروگرامر توپ