امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارتباط سریال دو میکرو
نویسنده پیام
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #1
ارتباط سریال دو میکرو
من هرچی میگردم مطلب برای ارتباط سریال دو میکرو پیدا نمیکنم! همش ارتباط میکرو و کامپیوتر . . . (منم که هنوز مشکل پورت دارم!)

برای ارتباط دو میکرو چیکار کنم؟ فرقش با ارتباط با کامپیوتر رو میخوام. فقط پایه های فرستنده و گیرنده رو مستقیم به هم وصل کنم حله؟ دیگه چیزی اون وسط نمیخواد ؟

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۴-مرداد-۱۳۸۸, ۱۴:۲۱:۲۲
ارسال‌ها
پاسخ
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #2
RE: ارتباط سریال دو میکرو
بالاخره امروز مبدل usb به com خریدم!! 16 تومن! خوبه؟! 9 تومنی هم داشت گفت این 16 بهتره! نویز گیر داره! Biggrin منم که مشکل اساسیم همین نویزه! فکر کنم بخاطر رطوبت اینجاس ...

آقا من الان اینو چیکارش کنم ؟ اولا max232 که فعلا ندارم! وسط بازار دوباره بی پولی خوردم برگشتم!
باید برم مادگیش رو بخرم؟یا نه؟! اگه مادگی باشه حتما یه رشته سیم بیرون میده دیگه!؟ چطوری تشخیص بدم کدوم پینه؟
درکل لطفا بگین چیکار کنم دستم به پین هاش برسه؟
(سوال پست قبل هم هست ....)

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۴-مرداد-۱۳۸۸, ۱۹:۴۵:۲۷، توسط محمد حسینی.)
۲۴-مرداد-۱۳۸۸, ۱۹:۴۴:۰۸
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000
iman-63 آفلاین
کاربر فعال بخش الکترونیک
***

ارسال‌ها: 365
موضوع‌ها: 71
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 62
( 332 تشکر در 148 ارسال )
ارسال: #3
RE: ارتباط سریال دو میکرو
سلام.

اتصال دو میکرو به هم هیچ تفاوتی با اتصال میکرو به کامپیوتر نداره.
شما پایه TXD میکرو اول رو به RXD میکرو دوم و پایه RXD میکرو اول رو به TXD میکرو دوم مستقیماً (بدون نیاز به هیچ آیسی و ...) وصل کن و ....
۲۴-مرداد-۱۳۸۸, ۲۰:۱۲:۱۳
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی, t3r!p3000, mahdi20
kimiafars آفلاین
کاربر با تجربه
****

ارسال‌ها: 819
موضوع‌ها: 71
تاریخ عضویت: فروردین ۱۳۸۶

تشکرها : 663
( 1139 تشکر در 512 ارسال )
ارسال: #4
RE: ارتباط سریال دو میکرو
بیا اینج
اhttp://forum.iranled.com/showthread.php?tid=13896
دوست عزیزمون درست میگن ولی ارتباط دو میکرو روشهای گوناگونی داره
i 2 c تو وایر

تولید دیمر قناری و دستگاههای کنترل سالن هیدروپونیک و اکواپونیک(انبردست)anbordast.ir[url=anbordast.ir][/url]
۲۴-مرداد-۱۳۸۸, ۲۲:۰۱:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی, t3r!p3000
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #5
RE: ارتباط سریال دو میکرو
سریال

baud$ : برای تعیین نرخ سرعت اطلاعات
Print : برای ارسال اطلاعات به خروجی سریال
Inkey : متنظر می ماند تا اطلاعاتی از پایه سریال دریافت کند .
INPUTBIN : خواندن اطلاعات ورودی سریال به صورت باینری
و یه عالمه دستور دیگه
به عنوان مثال :

کد php:
$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 قرار گرفته و پایه های متناظر با اطلاعات دریافت شده یک و یا صفر می شوند .


برای اطلاعات بیشتر کتاب یه نفر رو بخون !
(آخرین ویرایش در این ارسال: ۲۵-مرداد-۱۳۸۸, ۰۳:۰۹:۱۰، توسط t3r!p3000.)
۲۵-مرداد-۱۳۸۸, ۰۳:۰۶:۵۹
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #6
RE: ارتباط سریال دو میکرو
من کدویژن کار می کنم !!!!

اینو ببینید !

کد:
#include <mega32.h>
#include <delay.h>
// Standard Input/Output functions
#include <stdio.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;

        delay_ms(1000);
        putchar('#');
        delay_ms(1000);
        putchar('A');        

}

کد:
#include <mega32.h>

int n = 0;


#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
        if (data == '#')
        {
                n = 1;
        }
        else if (data == 'A')
        {
                n = 2;
        }
        else
        {
                n = 0;
        }
        
        
   rx_buffer[rx_wr_index]=data;
   if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
   if (++rx_counter == RX_BUFFER_SIZE)
      {
      rx_counter=0;
      rx_buffer_overflow=1;
      };
   };
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// Standard Input/Output functions
#include <stdio.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0xFF;


// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x90;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;


// Global enable interrupts
#asm("sei")

while (1)
      {
        if (n == 1)
        {
                PORTA.0 = 1;
        }
        else if (n == 2)
        {
                PORTA.1 = 1;
        }
        

      };
}

اولی فرستنده بود دومی گیرنده! پایه txd اولی رو به پایه rxd دومی وصل کردم. از ترس نویز rxd اولی و txd دومی رو هم به زمین وصل کردم! Biggrin این کار درسته ؟! یعنی لازمه ؟!

بهر حال کار نمیکنه ! اولی دو تا کارکتر با فاصله زمانی 1 ثانیه میفرسته و دومی باید به ترتیب دو تا ال ای دی رو روشن کنه ! ولی نمیشه !!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۵-مرداد-۱۳۸۸, ۱۸:۴۳:۳۰، توسط محمد حسینی.)
۲۵-مرداد-۱۳۸۸, ۱۸:۴۱:۴۲
ارسال‌ها
پاسخ
تشکر شده توسط : t3r!p3000
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #7
RE: ارتباط سریال دو میکرو
تو رو خدا کمک کنید ! Biggrin
من تو تابع وقفه اونجا که با یه شرط مقدار n رو تغییر داده بودم رو پاک کردم بجاش n رو برابر 1 کردم. در اینصورت به محض اینکه یه کاراکتر فرستاده بشه باید پایه صفر پورت A خروجی بشه. ولی نمیشه ! انگار وقفه به کار نمی افته !

قسمت USART کدویزاد reciever و وقفه مربوط به اون رو فعال کردم. فقط همین ! مشکل چیه ؟!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۵-مرداد-۱۳۸۸, ۲۰:۴۸:۱۸
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #8
RE: ارتباط سریال دو میکرو
مرد عنکبوتی نوشته است:از ترس نویز rxd اولی و txd دومی رو هم به زمین وصل کردم! این کار درسته ؟! یعنی لازمه ؟!
لازم نیست !
فرستنده رو زمین کردی !!! ( مواظب باش میکرو رو خراب نکنی ! )
۲۵-مرداد-۱۳۸۸, ۲۳:۱۷:۰۱
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #9
RE: ارتباط سریال دو میکرو
درست نشد ! یه کد فرستنده گیرنده ساده میدین ؟ خواهش میکنم ... التماس . ... . . . . !! !

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۵-مرداد-۱۳۸۸, ۲۳:۴۰:۴۲، توسط محمد حسینی.)
۲۵-مرداد-۱۳۸۸, ۲۳:۴۰:۰۰
ارسال‌ها
پاسخ
t3r!p3000 آفلاین
         
*****

ارسال‌ها: 5,050
موضوع‌ها: 83
تاریخ عضویت: اردیبهشت ۱۳۸۵

تشکرها : 34447
( 17423 تشکر در 5116 ارسال )
ارسال: #10
RE: ارتباط سریال دو میکرو
مهندس بیا بسکام !

اونطوری در خدمتیم !
۲۵-مرداد-۱۳۸۸, ۲۳:۴۶:۴۰
ارسال‌ها
پاسخ
تشکر شده توسط : محمد حسینی
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #11
RE: ارتباط سریال دو میکرو
درست شد! نمی دونم چرا ! امروز دوباره پروگرمشون کردم درست شد!! دیروز بیخود موقع پروگرم ارور می داد! 10 بار کلید پروگرم رو میزدم تا یه بارش عمل کنه! خب الان که مشکلی نداره افتادم تو خط ارتباطات ... ! ببینم تا قبل برگشتنم به دانشگاه می تونم برای بچه یه کنترل از راه دور بذارم گم نشه ! Biggrin فعلا تنها مشکل بی پولیه! دوستان مایه دار هم یکم هوای ما فقیر فقرا رو داشته باشن اینقدر تلفات ندیم!

نگفتین چیکار کنم دستم به پین های پورت کام برسه ؟ اگه بشه تصویر بذارید ممنون میشم.

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۶-مرداد-۱۳۸۸, ۱۲:۵۱:۵۸، توسط محمد حسینی.)
۲۶-مرداد-۱۳۸۸, ۱۲:۵۰:۰۰
ارسال‌ها
پاسخ
تشکر شده توسط : ahmado


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  ارتباط میکرو با plc از طریق شبکه profibus nex2004 11 14,656 ۰۱-بهمن-۱۳۹۸, ۱۱:۰۰:۱۹
آخرین ارسال: d.hamidi2535
  [مقاله] پروگرام میکرو با پورت سریال behzady 5 11,384 ۱۵-دى-۱۳۹۸, ۲۳:۱۹:۰۹
آخرین ارسال: 1نفر
Exclamation ارتباط سريال بين دو ميكرو و نمايش روي lcd با codevision ali313 13 28,959 ۰۱-شهریور-۱۳۹۷, ۱۱:۰۸:۴۳
آخرین ارسال: farhadtavakkol
  مشکل دریافت متن از پورت سریال میکرو sajadcut 1 3,260 ۱۲-آبان-۱۳۹۵, ۲۲:۱۰:۲۳
آخرین ارسال: behzady
  مشکل در ارتباط بیسیم با پروتکل USART cortex-m3 5 6,012 ۰۷-آبان-۱۳۹۵, ۰۰:۱۷:۳۶
آخرین ارسال: milad15m
  هنگ کردن میکرو در ارتباط سریال nex 1 2,890 ۰۴-آبان-۱۳۹۵, ۲۰:۵۶:۵۹
آخرین ارسال: علی محد شریفی
  مبدل-وایفای-به-سریال-wifi-esp8266 kimiafars 15 10,216 ۰۳-مهر-۱۳۹۵, ۰۳:۲۴:۳۲
آخرین ارسال: jalil2008
  ارتباط avr با plc از طریق profibus nex2004 5 7,429 ۰۳-مهر-۱۳۹۵, ۰۳:۱۶:۰۸
آخرین ارسال: jalil2008
  ارتباط دو طرفه با فرستنده nrf24 sniper-70 0 2,426 ۰۹-شهریور-۱۳۹۵, ۲۲:۱۶:۴۸
آخرین ارسال: sniper-70
  تست میکرو saber.k 10 14,048 ۰۹-شهریور-۱۳۹۵, ۰۲:۰۹:۲۷
آخرین ارسال: yadulla fazel

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS