ايران ويج

نسخه‌ی کامل: اتصال خروجی DTMF به خط تلفن
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
با سلام
بنده در اتصال خروجی DTMF (که با بیسکام نوشته شده )دچار مشکل شدم. دوستانی که تجربه تو این زمینه دارن کمک کنن . خروجی بوسیله یه ترانزیستور به خط وصل شد . اما نتیجه نگرفتیم. ما خروجی رو با یه خازن وصل کردیم به یه بلندگو اما همراه با صدای DTMF یه صدای ضعیف و ممتد دیگه هم میاد. آیا دستور DTMF تو بیسکام قابل اعتماد هست؟ آخه ما همین سخت افزار رو به PIC زدیم و جواب گرفتیم. :roll:
شما خروجی رو با یه خازن 100n به خط تلفن وصل کن با یه گوشی دیگه هم چک کن ببین صدا می یاد یا نه
این که صدا میاد یانه دیگه مسئله نیست امروز مطلع شدم که دستور dtmf انگار فقط رو 8515 جواب میده و رو مگا8 جواب نداده 8O
http://avrhelp.mcselec.com/bascom-avr.html?DTMFOUT
بعیده به نظر من که رو tmega8 جواب نده خودش برا 48 نوشته می تونی یه نگاه بکنی فقط کافیه TIMER1 OCA1 pin داشته باشه
ما الان پالس رو داریم فقط موندیم تو اتصال به خط تلفن. اگه شماتیک برای این کار دارید ، لطف کنید که خیلی گیریم. :wink:
2 تا خط تلفن رو هرکدوم رو با یه خازن 104 سری کن یکی رو به زمین یکی رو هم با یه مقاومت 100 اهم به خروجی میکرو فکر کنم برای جلوگیری از برق زنگ تلفن یه زنر هم طرف میکرو (بین زمین و پایه میکرو) قرار بدی که ولتاژ بیشتر از 5 مثبت و 0.7 منفی کمتر نشه خوب باشه
با اسکوپ یا گوشت باید ببینی دامنه خوب هست یا نه
سلام دوستان عزیز
آقا من بد جوری به این موضوع علاقه دارم ولی متاسفانه نیاز به کمک زیادی دارم :oops: اگه لطف کنید و در مورد این دستور و اینکه چطوری کار می کنه و چه کارایی می شه باهاش انجام داد توضیح بدین ممنون می شم :roll:
با این دستور می تونی یه شماره رو بگیری . به همین راحتی .البته خروجی فقط میتونه OC1A باشه. برای این دستور باید Enable Interrupts رو داشته باشی. چگونگی اتصال به خط تلفن رو هم که آقا هادی گفتن.
سلام
من یه ATMEGA8 رو بادستور ENABLE INTERRUPTS وفرمان DTMF راه اندازی کردم وبا دوتا خازن ویک مقاومت ویک زنر (ویک مقامت 470 اهم موازی باخط البته بعدازرله) مدارو به خط تلفن وصل میکنم وقتی به مدار تغذیه میدم رله عمل میکنه و وقتی یه گوشی تلفن رو به خط وصل میکنم و گوش می دم صدای گرفته شدن شماره ها به وضوح شندیده میشه اما خط اصلا به این شماره گیری توجه نمیکنه وبعد از مدتی شروع به زدن بوق اشغال میکنه . خواهش میکنم اگه کسی چیزی به ذهن میرسه بگه ببینم مشکل از کجاست . ممنون
(۲۱-خرداد-۱۳۹۱, ۱۴:۰۵:۱۱)shakha نوشته است: [ -> ]سلام
من یه ATMEGA8 رو بادستور ENABLE INTERRUPTS وفرمان DTMF راه اندازی کردم وبا دوتا خازن ویک مقاومت ویک زنر (ویک مقامت 470 اهم موازی باخط البته بعدازرله) مدارو به خط تلفن وصل میکنم وقتی به مدار تغذیه میدم رله عمل میکنه و وقتی یه گوشی تلفن رو به خط وصل میکنم و گوش می دم صدای گرفته شدن شماره ها به وضوح شندیده میشه اما خط اصلا به این شماره گیری توجه نمیکنه وبعد از مدتی شروع به زدن بوق اشغال میکنه . خواهش میکنم اگه کسی چیزی به ذهن میرسه بگه ببینم مشکل از کجاست . ممنون

اگه یه عکس هم ازش بزارین بهتر میشه فهمید منظورتون چیه

(۰۶-مرداد-۱۳۸۶, ۲۲:۱۴:۵۰)ha_60 نوشته است: [ -> ]2 تا خط تلفن رو هرکدوم رو با یه خازن 104 سری کن یکی رو به زمین یکی رو هم با یه مقاومت 100 اهم به خروجی میکرو فکر کنم برای جلوگیری از برق زنگ تلفن یه زنر هم طرف میکرو (بین زمین و پایه میکرو) قرار بدی که ولتاژ بیشتر از 5 مثبت و 0.7 منفی کمتر نشه خوب باشه
با اسکوپ یا گوشت باید ببینی دامنه خوب هست یا نه

توهلپ بسکام یه مثال خیلی خوب زده برای این فرمان
کد:
'-----------------------------------------------------------------------------------------

'name                     : dtmfout.bas

'copyright                : (c) 1995-2005, MCS Electronics

'purpose                  : demonstrates DTMFOUT statement based on AN 314 from Atmel

'micro                    : Mega48

'suited for demo          : yes

'commercial addon needed  : no

'-----------------------------------------------------------------------------------------



$regfile = "m48def.dat"                                     ' specify the used micro

$crystal = 8000000                                         ' used crystal frequency

$baud = 19200                                               ' use baud rate

$hwstack = 32                                               ' default use 32 for the hardware stack

$swstack = 10                                               ' default use 10 for the SW stack

$framesize = 40                                             ' default use 40 for the frame space



'since the DTMFOUT statement uses the TIMER1 interrupt you must enable

'global interrupts

'This is not done by the compiler in case you have more ISRs

Enable Interrupts





'the first sample does dtmfout in a loop

Dim Btmp As Byte , Sdtmf As String * 10



Sdtmf = "12345678"                                         ' number to dial



Do



Dtmfout Sdtmf , 50                                         ' lets dial a number

'                ^ duration is 50 mS for each digit

Waitms 1000                                               ' wait for one second





' As an alternative you can send single digits

' there are 16 dtmf tones

For Btmp = 0 To 15

  Dtmfout Btmp , 50                                       ' dtmf out on PORTB.3 for the 2313 for 500 mS

  'output is on the OC1A output pin

  Waitms 500                                             ' wait 500 msec

Next

Loop

End



'the keypad of most phones looks like this :

'1  2  3    optional are A

'4  5  6                 B

'7  8  9                 C

'*  0  #                 D



'the DTMFOUT translates a numeric value from 0-15 into :

' numeric value    phone key

'   0                0

'   1                1

'   2                2

'   3                3

' etc.

'   9                9

'  10                *

'  11                #

'  12                A

'  13                B

'  14                C

'  15                D
صفحه‌ها: 1 2