ايران ويج

نسخه‌ی کامل: کمک در مرود DTMF
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام قصد دارم تا با استفاده از میکرو (فقط میکرو) اطلاعاتی را به یک سرور و یا پایگاه داده بفرستم از دوستانی که در این ضمینه کار کرده اند خواهشمندم هر گونه راهنمایی و یا هر گونه کتاب و یا مقاله (فارسی یا لاتین)در این مورد دارند بگذارند در ضمن میکرو من Atmega8 و زبان کد ویژن می باشد
دستور 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 ) ، در هنگام کار با این دستور مراقب ولتاژ خط تلفن باشید.(بهتر است از اپتوکوپلر یا ترانس ایزوله استفاده کنید تا میکرو اسیب نبیند)

[تصویر:  24998459113362164024.png]

منبع : سعید جوون
از پاسخ شما ممنونم
اگر امکان داره این مطالب را برای کد ویژن بگویید چون من بسکام بلد نیستم