ايران ويج

نسخه‌ی کامل: تلفن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام

ما که با پروژه کارت تلفن به جایی نرسیدیم ولی یه سوال دیگه!

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

از آی سی MT8870 هم میتونی استفاده کنی... درصورت استفاده از میکرو باید از چوک هم استفاده کنی

ولتاژ خط تلفن هم بین 45 تا 55 متغیره ...البته زمانی که زنگ میخوره از این هم زیاد میشه .. وزمانی که گوشی رو برمیداری از این مقدار کم میشه

تشخیص شماره طرف هم مربوط به سیستم مخابراته که بواسطه کالر آی دی ما میتوانیم شماره طرف رو ببینیم

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

اینارو هم ببین:
[تصویر:  5nyu43ew0d3ipexaan49_thumb.jpg]

[تصویر:  rgmu1b80lerc0j8vx1v_thumb.gif]

[تصویر:  ytvg9snmlkzs30tp0np_thumb.jpg]

میتونید از تاپیکهایی که در داخل لینک زیر قرار دارد هم استفاده کنید:
http://www.iranled.com/forum/search.php?...order=desc
مدار اخری بهترین گزینه هست از اون انتخاب کن
دستور DTMFOUT در بسکام:



توسط این دستور میتوانید پالس مناسب با یک عدد را تولید کرده و ان را روی خط تلفن سوار کنید. فرم کلی این دستور به شکل زیر است : این دستور دردو فرم استفاده میشود،

فرم اول:

کد php:
DTMFOUT numberduration 

با این دستور شما میتوانید فقط یک شماره را به خط تلفن ارسال کنید ، متغیری که رقم دلخواه در ان به جای number گذاشته میشود و duration تاخیر زمانی بین ارسال این رقم و ارقام بعدی میباشد ، شما میتوانید به جای رقم یک متغییر قرار دهید ، اما متغییر باید بین 0 تا 15 باشد.مانند

کد php:
$regfile "m16def.dat"
$crystal 4000000
Dim A 
As Byte
Do
2
Dtmfout A 
50
6
Dtmfout A 
50
8
Dtmfout A 
50
9
Dtmfout A 
50
6
Dtmfout A 
50
5
Dtmfout A 
50
8
Dtmfout A 
50
0
Dtmfout A 
50
Loop
End 

فرم دوم:

در این حالت شما میتوانید شماره خود را در یک متغییر از جنس * x string که x تعداد شماره است و حداکثر ان 15 است ، قرار دهید ، با دستور زیر شماره های موجود در متغییر با تاخیر زمانی duration پشت سرهم گرفته میشوند

کد php:
DTMFOUT string duration 

مثال:

کد php:
$regfile "m16def.dat"
$crystal 4000000
Dim A 
As String 15
"2696580"
Do
Dtmfout A 500
Loop
End 

در این مثال شماره 2695680 مدام به خط تلفن ارسال میشود .
مثال :

کد php:
$regfile "M16DEF.DAT"
$crystal 8000000
Config Kbd 
Portb
Dim A 
As Byte
Q
:
Getkbd()
If 
15 Then
Goto Q
End 
If
Dtmfout A 50
Goto Q
End 

در این مثال عدد گرفته شده از کیپد به پالس dtmf تبدیل شده و به خط تلفن ارسال میشود ، در صورتی که در بین فشردن کلید ها تاخیر زیادی رخ دهد خط تلفن اشغال میشود.

نکته :
این دستور فقط با استفاده از کریستال های 4 تا 10 مگا هرتز جواب میدهد ، خروجی پالس dtmf پایه oc1a و گراند است (پایه شماره 19 مگا 16 ) ، در هنگام کار با این دستور مراقب ولتاژ خط تلفن باشید.(بهتر است از اپتوکوپلر یا ترانس ایزوله استفاده کنید تا میکرو اسیب نبیند)



منبع : کتاب سعید جوون
سلام

کسی میتونه یک دیتاشیت خوب از این MT8870 بده. تو پروتوس اصلا قطعه اش نبود.
درضمن من نمیخوام شماره ارسال کنم. می خوام دریافت کنم!! مثلا زمانی که طرف دوم به طرف اول زنگ میزنه. در حین مکالمه اگر طرف دوم دکمه 2 را فشار داد، میکرو روی ال سی دی طرف اول عدد دو را نمایش بدهد.

دوباره : چگونه می شه شماره تماس طرف دوم را روی اال سی دی طرف اول نمایش داد. (فرض کنیم مخابرات پشتیبانی میکنه.)
مهندس کار با MT8870 راحت تر از اون چیزیه که فکرشو بکنی و خیلی راحت می تونی کد DTMF رو دریافت کنی !!!
تو پیوست دیتاشیتش رو بگیر و نقشه اجرایی هم تو دیتا شیت گذاشته و عالی کار می کنه !!


واسه کالر آی دی هم به یه MT8843 نیاز داری !
سرچ کنی روش قبلا بحث شده !!!