واضح آرشیو وب فارسی:سایت ریسک: vb_lord_AR10-08-2008, 07:23 PMببینین بچه ها من می خوام یه برنامه بنویسم که یه مقدار رو از یه پورپ (سریال یا یو اس بی ) بگیره (مقدار به صورت هگزا دسیمال هستش ) و روی اون یه محاسباتی انجام بده و همچنین بتونه یه مقداری رو هم به همون پورت بفرسته ! خوب من می خوام بدونم که چطوری می شه اینکار رو کرد؟ :18: sajadmg16-08-2008, 04:56 AMسلام usb رو فعلا یا شاید کلا بی خیال. ولی واسه سریال باید از کنترل MScomm استفاده کنی. کار کردن باهاش توی بخش برنامه نویسی آسونه. اما نکته اینه که عددی که میخوای بفرستی از کجا میاد و بعد از پردازش کجا میخوای بفرستیش؟ چون پورت سریال سنکرون نداره باید وسیله ای که بهش وصل میشه دقیقا با همون سرعتی اطلاعات را بفرسته که برنامه انتظار داره یعنی سرعت انتقال از قبل تعیین میشه و نیاز به یه چیز دقیق و سریع مثل میکرو کنترلر داری که این ارتباط را مدیریت کنه . vb_lord_AR16-08-2008, 12:57 PMببین من یه دوست دارم که برنامه نویسی کنترل های Avr بلده ما می خوایم که دوستم یه مقداری رو از پورت سریال بده و من اونو بخونم بعد بتونم یه مقداری رو هم بفرستم به پورت خوب حالا اگه می شه یکم کمک کن! من اون برنامه و طریقه ی استفادش رو می خوام ممنونتیم!:10: sajadmg17-08-2008, 09:53 AMسلام کار سختی نیست فقط کافیه روی نوار ابزار وی بی راست کلیک کنی و روی component کلیک کنی تو پنجره باز شده دنبال microsoft comm control 6.0 بگرد جلوش تیک بزن و بعد ok کن یه آیکون تلفن زرد رنگ به مجموعه نوار ابزار اضافه میشه یکی از اینا که بزاری روی فرمت برنامه ات آمادس که با پورت سریال ارتباط برقرار کنه. یکم باهاش ور برو یا توی msdn بگرد اگه تونستی کار کنی که هیچی اگه نه من در خدمتم. فقط راهنمایی اینکه توی طراحی فرم روی کنترل راست کلیک کن و properties را بزن تا تنظیمات اولیه را راحت تر انجام بدی توی زمان اجرا هم مثلا توی form load باید کد MSComm1.PortOpen = True را بنویسی تا پورت عملا آماده استفاده بشه. کار سختی نیست. راستی جحم مبادلاتت چقدره؟ vb_lord_AR19-08-2008, 12:17 PMبازم ممنونتیم ولی من نمی دونم چی کار کنم اگه می شه یکمی توضیح بده تو msdn چیزی نبود راستی هنوز معلوم نیست که حجم مبادلات چقدره . البته نباید زیاد باشه . چون هنوز دوستم بهم نگفته که حجمش چقدره بازم ممنونم من منتظرتم مرسی که کمکم می کنی ! sajadmg19-08-2008, 06:56 PMسلام من سعی میکنم تا جایی که بتونم کمکتون کنم. میخوام یه سری اطلاعات کلی درباره ارتباط میکرو با پورت سریال بگم منتها چیزی که هست متاسفانه الان به منابع اطلاعاتیم دسترسی ندارم و چیزهایی که یادم هست رو مینویسم امیدوارم ببخشید اگه کم وزیاد نوشتم. دو نوع تکنولوژی معروف cmos و TTL وجود داره که در ساخت آی سی های دیجیتال استفاده میشه پورت سریال از نوعه cmos هست اما بعضی میکرو ها مثلا 8051 از نوع TTL اند. کاری به بحث های تکنیکی این دو نوع تکنولوژی ندارم ولی متاسفانه نمیشه این دو تا را با هم مستقیم ارتباط داد. این مشکل برای هر ارتباطی یه راه حل داره واسه ارتباط سریال که منظور ماست یه آی سی هست با شماره max232 که بین pc و میکرو قرار میگیره و عمل تبدیل را انجام میده. قیمتش هم حدود 500 تومنه توی بقالی سر کوچتونم احتمالا گیرت بیاد!!! اما نوع مرغوبتر از اون max233 هست که قیمتش خیلی بالا تره (شاید 10 برابر) و بد تو بازار پیدا میشه. بگذریم این بحث مفصلش توی کتاب 8051 دکتر مزیدی بخش ارتباط سریال هست. اما میکرو های دیگه ای هستن مثل pic که مستقیم به کامپیوتر وصل میشه. Avr هم فکر کنم نیاز به مبدل نداره چون خودش cmos است. خوب چون دقیقا نمیدونم چیه هر دو حالت را توضیح دادم.اینا بیشتر بدرد دوستتون میخورد البته پیشنهاد میکنم شما هم با میکرو ها آشنا بشید چون دنیای قشنگی دارن. اما توی کامپیوتر پورت سریال دو جور کانکتور داره 9 پین و25 پین که نوع دوم را فقط توی مادر برد های قدیمی دیده میشه و جدیدا ازش خبری نیست. نوع 9 پین هم جدیدا بعضی هاشون ندارن. واسه اینکه این مطلب بدرد همه بخوره اگه کسی پورت سریال نداره یه آیسی هست اگه اشتباه نکنم FT232 که به USB وصل میشه و دو تا پورت سریال درست میکنه که برنامه نویسی براش مثل سریال معمولیه. اما این 9 تا پین که شماره هاش رو کانکتور نوشته شده هرکدوم یه اسم دارن و یه کاربرد: 1- یادم نیست 2- RXD 3- TXD 4- DTR 5- GND 6- DSR 7- RTS 8- CTS 9- یادم نیست کاربرد ها: 1- نمیدونم 2- دریافت داده یا همون خوندن از پورت 3- ارسال داده یا نوشتن به پورت 4- مشخص میکنه که پورت اماده ارسال و دریافت هست یا نه 5- اتصال زمین یا همون مبنای ولتاژ (صفر ولت) 6- مشخص میکنه که دستگاه اماده ارسال و دریافت هست یا نه 7- درخاست برای ارسال 8- پاک کردن برای ارسال 9- اشکار ساز زنگ که واسه مودم های قدیمی تعبیه شده بوده اما واسه یه ارتباط ساده استاندارد شما به پینهای 2و3و7 و8 دارید. چون امکانات تست ندارم نمیتونم یه برنامه نمونه بذارم ولی شما باید یه شیئ از نوع Microsoft Comm Control 6.0 روی فرم بذارید. قرار داد بین شما و میکرو اینه که شما با دستور زیر دائم چک کنید اگه میکرو داده ای واسه ارسال داره CTS را یک میکنه که شما بفهمید و شروع کنید به خوندن اطلاعات. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! و مثلا وقتی میخواید یه چیزی از کامپیوتر به اون بفرستید باید اول RTS را فعال کنید !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نکته اینکه strIn و strOutرشته های کاراکتری هستند و کد اسکی آنها ارسال و دریافت میشه و اگه شما عدد دلتون میخواد باید خودتون کد های اسکی را بدست بیارید با تابع ASC(char here) و بعد از انجام اعمال ریاضی مربوطه دوباره اون اعداد که نباید از 255 بیشتر باشه رو به کاراکتر تبدیل کنید. میتونید از تابع chr(your code here)استفاده کنید. راستی یادتون نره که با دستور MSComm1.PortOpen = True همون اول کار پورت را باز کنید. سرعت انتقال هم باید توی قسمت تنظیمات زمان طراحی درست تعیین کنید یعنی کامپیوتر و میکرو باید با یک سرعت انتقال ارتباط برقرار کنند تا اطلاعات صحت خودش را از دست نده. سرعت های معمول 1200و 2400و 4800و9200 هستند. ولی شما میتونید 150و300و600 را هم استفاده کنید البته اگه میکرو قبول کنه . ببخشید اگه طولانی شد ولی اینا واسه شروع بود تا عملی شدن کامل خیلی باید تلاش کنید. اگه سوالی بود در خدمتم . سوال جزئی البته نه خیلی کلی redfild20-08-2008, 04:28 PMببین من یه دوست دارم که برنامه نویسی کنترل های Avr بلده ما می خوایم که دوستم یه مقداری رو از پورت سریال بده و من اونو بخونم بعد بتونم یه مقداری رو هم بفرستم به پورت خوب حالا اگه می شه یکم کمک کن! من اون برنامه و طریقه ی استفادش رو می خوام ممنونتیم!:10: دوست من نمی دونم تا چه حد می تونه مفید باشه ولی زبان نوشتن برای AVR های متداول BASCOM هست . با ویژال بیسیک در این مورد کار نکردم و جایی هم ندیدم ولی Bascom خیلی آسونه یادگیریش . فکر می کنم یک مقاله در مورد آموزشش داشته باشم اگر مایلی برات می فرستم . vb_lord_AR21-08-2008, 10:23 AMدوست من نمی دونم تا چه حد می تونه مفید باشه ولی زبان نوشتن برای AVR های متداول BASCOM هست . با ویژال بیسیک در این مورد کار نکردم و جایی هم ندیدم ولی Bascom خیلی آسونه یادگیریش . فکر می کنم یک مقاله در مورد آموزشش داشته باشم اگر مایلی برات می فرستم . دوست عزيز خيلي ممنون ميشم اگه بزاري واقعا ممنون منتظرم ! vb_lord_AR21-08-2008, 10:31 AMسلام من سعی میکنم تا جایی که بتونم کمکتون کنم. میخوام یه سری اطلاعات کلی درباره ارتباط میکرو با پورت سریال بگم منتها چیزی که هست متاسفانه الان به منابع اطلاعاتیم دسترسی ندارم و چیزهایی که یادم هست رو مینویسم امیدوارم ببخشید اگه کم وزیاد نوشتم. دو نوع تکنولوژی معروف cmos و TTL وجود داره که در ساخت آی سی های دیجیتال استفاده میشه پورت سریال از نوعه cmos هست اما بعضی میکرو ها مثلا 8051 از نوع TTL اند. کاری به بحث های تکنیکی این دو نوع تکنولوژی ندارم ولی متاسفانه نمیشه این دو تا را با هم مستقیم ارتباط داد. این مشکل برای هر ارتباطی یه راه حل داره واسه ارتباط سریال که منظور ماست یه آی سی هست با شماره max232 که بین pc و میکرو قرار میگیره و عمل تبدیل را انجام میده. قیمتش هم حدود 500 تومنه توی بقالی سر کوچتونم احتمالا گیرت بیاد!!! اما نوع مرغوبتر از اون max233 هست که قیمتش خیلی بالا تره (شاید 10 برابر) و بد تو بازار پیدا میشه. بگذریم این بحث مفصلش توی کتاب 8051 دکتر مزیدی بخش ارتباط سریال هست. اما میکرو های دیگه ای هستن مثل pic که مستقیم به کامپیوتر وصل میشه. Avr هم فکر کنم نیاز به مبدل نداره چون خودش cmos است. خوب چون دقیقا نمیدونم چیه هر دو حالت را توضیح دادم.اینا بیشتر بدرد دوستتون میخورد البته پیشنهاد میکنم شما هم با میکرو ها آشنا بشید چون دنیای قشنگی دارن. اما توی کامپیوتر پورت سریال دو جور کانکتور داره 9 پین و25 پین که نوع دوم را فقط توی مادر برد های قدیمی دیده میشه و جدیدا ازش خبری نیست. نوع 9 پین هم جدیدا بعضی هاشون ندارن. واسه اینکه این مطلب بدرد همه بخوره اگه کسی پورت سریال نداره یه آیسی هست اگه اشتباه نکنم FT232 که به USB وصل میشه و دو تا پورت سریال درست میکنه که برنامه نویسی براش مثل سریال معمولیه. اما این 9 تا پین که شماره هاش رو کانکتور نوشته شده هرکدوم یه اسم دارن و یه کاربرد: 1- یادم نیست 2- RXD 3- TXD 4- DTR 5- GND 6- DSR 7- RTS 8- CTS 9- یادم نیست کاربرد ها: 1- نمیدونم 2- دریافت داده یا همون خوندن از پورت 3- ارسال داده یا نوشتن به پورت 4- مشخص میکنه که پورت اماده ارسال و دریافت هست یا نه 5- اتصال زمین یا همون مبنای ولتاژ (صفر ولت) 6- مشخص میکنه که دستگاه اماده ارسال و دریافت هست یا نه 7- درخاست برای ارسال 8- پاک کردن برای ارسال 9- اشکار ساز زنگ که واسه مودم های قدیمی تعبیه شده بوده اما واسه یه ارتباط ساده استاندارد شما به پینهای 2و3و7 و8 دارید. چون امکانات تست ندارم نمیتونم یه برنامه نمونه بذارم ولی شما باید یه شیئ از نوع Microsoft Comm Control 6.0 روی فرم بذارید. قرار داد بین شما و میکرو اینه که شما با دستور زیر دائم چک کنید اگه میکرو داده ای واسه ارسال داره CTS را یک میکنه که شما بفهمید و شروع کنید به خوندن اطلاعات. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! و مثلا وقتی میخواید یه چیزی از کامپیوتر به اون بفرستید باید اول RTS را فعال کنید !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! نکته اینکه strIn و strOutرشته های کاراکتری هستند و کد اسکی آنها ارسال و دریافت میشه و اگه شما عدد دلتون میخواد باید خودتون کد های اسکی را بدست بیارید با تابع ASC(char here) و بعد از انجام اعمال ریاضی مربوطه دوباره اون اعداد که نباید از 255 بیشتر باشه رو به کاراکتر تبدیل کنید. میتونید از تابع chr(your code here)استفاده کنید. راستی یادتون نره که با دستور MSComm1.PortOpen = True همون اول کار پورت را باز کنید. سرعت انتقال هم باید توی قسمت تنظیمات زمان طراحی درست تعیین کنید یعنی کامپیوتر و میکرو باید با یک سرعت انتقال ارتباط برقرار کنند تا اطلاعات صحت خودش را از دست نده. سرعت های معمول 1200و 2400و 4800و9200 هستند. ولی شما میتونید 150و300و600 را هم استفاده کنید البته اگه میکرو قبول کنه . ببخشید اگه طولانی شد ولی اینا واسه شروع بود تا عملی شدن کامل خیلی باید تلاش کنید. اگه سوالی بود در خدمتم . سوال جزئی البته نه خیلی کلی سلام بازم مرسي ببين يه اشكاله ديگه البته ببخشيد كه اينهمه سوال مي پرسم ديتايي كه ميكرو به من مي فرسته به صورت هگذا دسيمال (مبناي 16 هستش) چطوري مي تونم از اونا استفاده كنم؟؟ كمكمكمك بازم ممنونم خيلي شرمنده مي كنين! sajadmg21-08-2008, 04:48 PMسلام همانطور که گفتم شما در vb عددی که میکرو میفرسته را به صورت یک کاراکتر دریافت میکنید. اول باید با تابع ASC کد اسکی را بدست بیارید. vb عدد به دست آمده را یک عدد دهدهی میشناسه(توی عملیات ریاضی وغیره) اما شما میدونید که این واقعا یک عدد هگزا است پس باید با یه تابع انو واقعا به یه عدد دهدهی تبدیل کنید بعد که کارتان تمام شد دوباره هگزاش کنید. امیدوارم متوجه منظورم شده باشید. سعی میکنم اگه رسیدم یه نمونه کد بزارم واسه این مبدلها. vb_lord_AR23-08-2008, 08:36 AMتقریبا متوجه شدم ولی سعی کن بفرستی هنوز منتظرم!! بازم ممنونم بای سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1724]