۳۰-شهریور-۱۳۸۹, ۱۳:۳۵:۱۸
۳۰-شهریور-۱۳۸۹, ۱۳:۳۸:۴۰
(۳۰-شهریور-۱۳۸۹, ۱۳:۳۵:۱۸)sheykhian نوشته است: [ -> ]سلام.من یه دماسنج با lm35وatmega32 ساختم که دما روی lcd نمایش داده می شه حالا اگه بخوام اطلاعات رو روی لب تابم ببینم باید چیکار کنم؟
ميكروتو با max232 وصل كن به پورتcom كامپيوتر بعد دما را با سريال ميكرو ارسال كن و تو كامپيوتر يه برنامه بنوسي كه اطلاعات دريافتيو نشون بده و كامشو تنظيم كن رويه كام كه ميكرو وصله بهش بقيش حله



۳۰-شهریور-۱۳۸۹, ۱۳:۵۰:۴۱
ممنون از راهنمایت دوست عزیز ولی می شه یه کم بیشتر توضیح بدی اخه من تازه کارم و زیاد با میکرو کار نکردم.
۰۲-مهر-۱۳۸۹, ۰۲:۰۱:۰۹
۰۲-مهر-۱۳۸۹, ۰۲:۰۳:۰۲
اینم یه مثال از کتاب آقای یه نفر ( سعید جون ) :
در این ارتباط از دوسیم به نام های rxd و txd استفاده میشود که خط txd وسیله اول دیتا را از ان به بیرون منتقل میکندو خط خروجی دیتا است و به ورودی دیتا دستگاه دوم ( txd ) متصل میشود و خط rxd ورودی دیتا است که به خروجی دیتای دستگاه دیگر (rxd ) متصل میشود.
این پروتکل برای ارتباط میکرو با میکرو ، میکرو با کامپیوتر و کامپیوتر با کامپیوتر استفاده میشود ، برای ارتباط میکرو با میکرو شما نیاز به دو برنامه برای دو میکرو دارید ، برای ارتباط میکرو با کامپیوتر شما باید علاوه بر نوشتن برنامه برای میکرو یک برنامه نیز برای کامپیوتر بنویسید و در نهایت برای ارتباط دو کامپیوتر با هم شما باید با یکی از زبان های برنامه نویسی برای هر دو کامپیوتر برناه بنویسید که این موضوع از بحث ما خارج است.(برای راه اندازی این پروتکل از کریستال خارجی استفاده کنید)
دستورات این پروتکل در بسکام به شرح زیر است:
تعیین نرخ انتقال دیتا:
این دستور میزان انتقال دیتا در ثانیه را مشخص میکند وباید در هر دو وسیله ای که به هم متصل میشوند یکی باشد (در غیر این صورت ارتباط کار نمیکند) بهتر است نرخ انتقال دیتا در مناطق دارای نویز کمتر انتخاب شود.
دستور PRINT :
توسط این دستور میتوان داده یا متغیری را به پورت سریال ارسال کرد. VAR یم متغیر از جنس متغیرهای گفته شده میباشد.
دستور PRINTBIN :
توسط این دستور متغیر VAR به باینر تبدیل شده سپس به پورت سریال ارسال میشود.
دستور WAITKEY :
این دستور تا زمانی که متغییر توسط دستگاه دیگر به پورت سریال ارسال شود منتظر میماند و پس از دریافت متغیر برنامه از خط بعد ادامه می یابد.
دستور INKEY :
این دستور مقدار اسکی کاراکتر دریافت شده از پورت سریال را برمیگرداند.
دستور INPUTBIN :
این دستور داده باینری را از پورت سریال میگیرد و در متغیر VAR قرار میدهد.
دستور INPUTHEX :
این دستور داده هگز رااز پورت سریال دریافت میکند و در متغیر VAR قرارمیدهد. مانند:
از انجا که ارتباط دو طرفه میباشد ( هر دو میکرو دقیقا مانند هم هستند ) برنامه دو میکرو مشابه است ،
درخط اول میکرو و کریستال معرفی شده است که میکرو مگا 32 و کریستال مورد استفاده 10 مگا هرتز میباشد .
در خط دوم نرخ انتقال دیتا مشخص گردیده است ، مقدار ان 9600 است . نرخ انتقال دیتا باید در هر دو میکرو یکسان باشد .
در خط سوم پورت b به عنوان ورودی ( برای اتصال کلید ) و پورت a به عنوان خروجی (برای اتصال led) معرفی شده اند .
در خط چهارم دو متغیر از جنس بایت برای ذخیره مقادیر معرفی شده است .
در خط پنجم شروع یک حلقه میباشد ( شما میتواندی از دیگر حلقه ها نیز استفده کنید).
در خط ششم مقدار موجود بر روی پورت b در متغیر q ریخته میشود و سپس با دستور Printbin Q به پورت سریال فرستاده میشود.
در خط هفتم مقدار گرفته شده از پروت سریال در متغیر a ریخته میشود و بعد متغیر a بر روی پورت a ریخته میشود.
خط هفتم پایان حلقه میباشد ، هنگامی که cpu میکرو به این خط رسید به برچسب w پرش میکند.
خط هشتم پایان برنامه است.
در حالتی که هیچ یک از کلید ها یک نشده اند ، مقدار q صفر دسیمال و &b00000000 باینری است ، حال اگر هر یک از کلید ها فشرده شود مقدار q تغیر میکند.
دو پایه txd و rxd میکرو نقش دریافت و ارسال داده را در حالت پیشفرض برعهده دارند ، با دستور زیر شما میتوانید این دو پایه را به پایه های دلخواه تغییر دهید:
comx.y : نام پورت و پایه ای است که باید به عنوان txd یا rxd جدید عمل کند.
:$baud نرخ داده عبوری از پایه را نشان میدهد ، این مقدار باید با نرخ انتقال دیتا ی اصلی برابر باشد.
Output/input : پایه میتواند وردی داده( rxd) یا خروجی داده( txd ) باشد.
Q : شماره کانال را مشخص میکند.
مانند:
در مورد بالا portd.1 به عنوان txd و portd.0 به عنوان rxd در نظر گرفته شده است ، همچنین نرخ انتقال داده برابر با 19200 است.
ارتباط سریال rs232 :
در این ارتباط از دوسیم به نام های rxd و txd استفاده میشود که خط txd وسیله اول دیتا را از ان به بیرون منتقل میکندو خط خروجی دیتا است و به ورودی دیتا دستگاه دوم ( txd ) متصل میشود و خط rxd ورودی دیتا است که به خروجی دیتای دستگاه دیگر (rxd ) متصل میشود.
در این روش میتوان نهایتا تا دووسیله را به هم متصل کرد .(از طریق یک پورت)
این پروتکل برای ارتباط میکرو با میکرو ، میکرو با کامپیوتر و کامپیوتر با کامپیوتر استفاده میشود ، برای ارتباط میکرو با میکرو شما نیاز به دو برنامه برای دو میکرو دارید ، برای ارتباط میکرو با کامپیوتر شما باید علاوه بر نوشتن برنامه برای میکرو یک برنامه نیز برای کامپیوتر بنویسید و در نهایت برای ارتباط دو کامپیوتر با هم شما باید با یکی از زبان های برنامه نویسی برای هر دو کامپیوتر برناه بنویسید که این موضوع از بحث ما خارج است.(برای راه اندازی این پروتکل از کریستال خارجی استفاده کنید)
دستورات این پروتکل در بسکام به شرح زیر است:
تعیین نرخ انتقال دیتا:
کد php:
$BAUD=VAR
دستور PRINT :
کد php:
PRINT VAR
دستور PRINTBIN :
کد php:
PRINTBIN VAR
دستور WAITKEY :
کد php:
VAR=WAITKEY()
دستور INKEY :
کد php:
VAR=INKEY()
دستور INPUTBIN :
کد php:
INPUTBIN VAR
دستور INPUTHEX :
کد php:
INPUTHEX VAR
در مثال زیر با استفاده از ارتباط سریال ، یک ارتباط دوطرفه بین دو میکرو برقرار کرده ایم ،
کد php:
$regfile = "m32def.dat" : $crystal = 1000000
$baud = 9600
Config Portb = Input : Config Porta = Output
Dim A As Byte , Q As Byte
W:
Q = Pinb : Printbin Q
A = Inkey() : Porta = A
Goto W
End
میکرو 2:
$regfile = "m32def.dat" : $crystal = 1000000
$baud = 9600
Config Portb = Input : Config Porta = Output
Dim A As Byte : Dim Q As Byte
W:
Q = Pinb : Printbin Q
A = Inkey() : Porta = A
Goto W
End
از انجا که ارتباط دو طرفه میباشد ( هر دو میکرو دقیقا مانند هم هستند ) برنامه دو میکرو مشابه است ،
درخط اول میکرو و کریستال معرفی شده است که میکرو مگا 32 و کریستال مورد استفاده 10 مگا هرتز میباشد .
در خط دوم نرخ انتقال دیتا مشخص گردیده است ، مقدار ان 9600 است . نرخ انتقال دیتا باید در هر دو میکرو یکسان باشد .
در خط سوم پورت b به عنوان ورودی ( برای اتصال کلید ) و پورت a به عنوان خروجی (برای اتصال led) معرفی شده اند .
در خط چهارم دو متغیر از جنس بایت برای ذخیره مقادیر معرفی شده است .
در خط پنجم شروع یک حلقه میباشد ( شما میتواندی از دیگر حلقه ها نیز استفده کنید).
در خط ششم مقدار موجود بر روی پورت b در متغیر q ریخته میشود و سپس با دستور Printbin Q به پورت سریال فرستاده میشود.
در خط هفتم مقدار گرفته شده از پروت سریال در متغیر a ریخته میشود و بعد متغیر a بر روی پورت a ریخته میشود.
خط هفتم پایان حلقه میباشد ، هنگامی که cpu میکرو به این خط رسید به برچسب w پرش میکند.
خط هشتم پایان برنامه است.
در حالتی که هیچ یک از کلید ها یک نشده اند ، مقدار q صفر دسیمال و &b00000000 باینری است ، حال اگر هر یک از کلید ها فشرده شود مقدار q تغیر میکند.
دو پایه txd و rxd میکرو نقش دریافت و ارسال داده را در حالت پیشفرض برعهده دارند ، با دستور زیر شما میتوانید این دو پایه را به پایه های دلخواه تغییر دهید:
کد php:
Open "comx.y:$baud,8,n,1" For Output/input As #q
comx.y : نام پورت و پایه ای است که باید به عنوان txd یا rxd جدید عمل کند.
:$baud نرخ داده عبوری از پایه را نشان میدهد ، این مقدار باید با نرخ انتقال دیتا ی اصلی برابر باشد.
Output/input : پایه میتواند وردی داده( rxd) یا خروجی داده( txd ) باشد.
Q : شماره کانال را مشخص میکند.
مانند:
کد php:
Open "comd.1:19200,8,n,1" For Output As #1
Open "comd.0:19200,8,n,1" For Input As #2
در مورد بالا portd.1 به عنوان txd و portd.0 به عنوان rxd در نظر گرفته شده است ، همچنین نرخ انتقال داده برابر با 19200 است.
۰۳-مهر-۱۳۸۹, ۰۰:۱۷:۰۸
یه مشکل هست
همه جا در مورد میکروش گفتن ولی هیشکی در مورد برنامه کامپیوتر چیزی نگفته
من هیچی از ویژوال بیسیک بلد نیستم(حتی نمیدونم الان اسمشو درست نوشتم یا نه)
الانم میتونم با میکرو اطلاعاتو بفرستم ولی از اونور چجوری دریافتش کنم دیگه فقط خدا و یه سری از شما میدونید اگه میشه یکی بیاد در مورد این قسمت ویژوال بیسکش توظیح بده
همه جا در مورد میکروش گفتن ولی هیشکی در مورد برنامه کامپیوتر چیزی نگفته
من هیچی از ویژوال بیسیک بلد نیستم(حتی نمیدونم الان اسمشو درست نوشتم یا نه)
الانم میتونم با میکرو اطلاعاتو بفرستم ولی از اونور چجوری دریافتش کنم دیگه فقط خدا و یه سری از شما میدونید اگه میشه یکی بیاد در مورد این قسمت ویژوال بیسکش توظیح بده
۰۳-مهر-۱۳۸۹, ۰۱:۱۵:۴۵
مطمئنی ؟؟؟
پس این تایپیک ها رو ببین :
http://www.iranled.com/forum/showthread.php?tid=18367
http://www.iranled.com/forum/showthread.php?tid=11655
http://www.iranled.com/forum/showthread.php?tid=12119
http://www.iranled.com/forum/showthread.php?tid=18437
یه سرچ کنی زیاد روش بحث شده !!!
پس این تایپیک ها رو ببین :
http://www.iranled.com/forum/showthread.php?tid=18367
http://www.iranled.com/forum/showthread.php?tid=11655
http://www.iranled.com/forum/showthread.php?tid=12119
http://www.iranled.com/forum/showthread.php?tid=18437
یه سرچ کنی زیاد روش بحث شده !!!