Locate 2 , 1
For C = 9 To N
Lcd Dat(c)
Next
Wait 3
Do
Loop
End
سلام اقا محمد من این برنامه را تست زدم ولی چیزی که روی السیدی مینویسه فقط اعدادی که هیچ ربطی به شماره تلفن نداره میشه مدار یا شماتیک هم بزارید تا متوجه بشم شاید از شماتیک باشه
از نوشته بالا تعجب نکنید.هر دو تراشه با سرعت 1200bps اطلاعاتشون رو ارسال می کنن.نه تنها سرعتشون یکیه،بلکه بیت های parity ، stop ، start bit و غیره شون هم مثل همه.پس برنامه برای هر کدوم که بنویسین برای اون یکی هم جواب میده.ولی من بهتون پیشنهاد میکنم اگه 9032 رو گیر آوردین از اون استفاده کنید،چون بصورت 8 پایه DIP در دسترسه ،قیمتش هم نسبت به MT8843 یک چهارمه،حدد 1500 تومان.ولی توی شهرستان ها گیر نمیاد.
فقط دو تا نکته خیلی مهم مونده که باید بگم"
1.چون برای ارتباط سریال ،اسیلاتور این تراشه ها با BAUD RATE دائما در حال نوسانن ،حتما یک خازن سرامیک با ظرفیت 100nf با تغذیه آی سی موازی کنید تا روی خط تغذیه تون ،نویز نداشته باشین. این مشکلی بود که من تا تونستم علت اون رو پیدا کنم 6 روز وقتم تلف شد.
2.FORMAT ارسال اطلاعات از مرکز تلفن:
بین زنگ اول و دوم اطلاعات با نرخ 1200 بیت بر ثانیه ارسال میشه،این اطلاعات از جنس کاراکتر اند، پس از چند بایت علامت(حدود 30 بایت علامت) اطلاعات اصلی که مربوط به شماره مخاطب ، ساعت تماس و تاریخ تماس ارسال میشه و در نهایت هم ،مجددا یک بایت علامت هم ارسال میشه تا پایان ارسال اطلاعات رو اعلام کنه، من که تست کردم بایتی که بعنوان علامت فرستاده می شد # بود.
نکته دیگر هم که باید یاد آور بشم اینکه فرمت ارسال اطلاعات برای همه جا یکسانه، تاریخ هم بصورت میلادی ارسال میشه،بین کاراکترهای شماره ،زمان وتاریخ هم هیچ فاصله ای نیست.
برای مثال <== ###################09082203989156142731# <== با توجه به فلش ها می بینید که در ابتدا تعدادی # وارد شد،که بایت های علامت اند،91561427131 شماره تماس گیرنده،98 کد ایران،2203 نشاندهنده ساعت 22:03 و0908 بیانگر ماه 8 سال 2009 می باشد.تعداد کاراکتر های مربوط به شماره تلفن بسته به شماره تماس گیرنده ممکن است طولانی تر و یا کوتاه تر گردد،اگر با تلفن ثابتی که در همان محدوده است نیز تماس گرفته شود ،پیش شماره شهر ارسال نمی شود و فقط شاماره مخاطب و ساعت و تاریخ ارسال می گردد،ولی زمان و تاریخ هر کدام همیشه با 4 کاراکتر ارسال می شوند.
من برنامه کالر آی دی رو با بسکام برای ATMEGA 16 نوشتم و توی برنامه اینطوری تعریف کردم که میکرو مدام بیاد اطلاعات رو بصورت سریال بگیره ، با دستور SELECT CASE گفتم هر وقت کاراکتر مخالف با کاراکتر های عددی (0123456789) بود ،اون رو به عنوان بایت علامت در نظر بگیره .یعنی عملا تا اومدن اولین کاراکتر عددی میکرو اطلاعات رو فقط دریافت میکنه ولی ذخیره نمکنه، بعد از دریافت اولین کاراکتر عددی ، میکرو شروع به ذخیره کاراکتر ها میکنه،و پس از دریافت مجدد کاراکتر غیر عددی ، میکرو این ذخیره سازی رو لغو کرده و شروع به پردازش و نمایش اطلاعات روی LCD میکنه.
من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.
از نوشته بالا تعجب نکنید.هر دو تراشه با سرعت 1200bps اطلاعاتشون رو ارسال می کنن.نه تنها سرعتشون یکیه،بلکه بیت های parity ، stop ، start bit و غیره شون هم مثل همه.پس برنامه برای هر کدوم که بنویسین برای اون یکی هم جواب میده.ولی من بهتون پیشنهاد میکنم اگه 9032 رو گیر آوردین از اون استفاده کنید،چون بصورت 8 پایه DIP در دسترسه ،قیمتش هم نسبت به MT8843 یک چهارمه،حدد 1500 تومان.ولی توی شهرستان ها گیر نمیاد.
فقط دو تا نکته خیلی مهم مونده که باید بگم"
1.چون برای ارتباط سریال ،اسیلاتور این تراشه ها با BAUD RATE دائما در حال نوسانن ،حتما یک خازن سرامیک با ظرفیت 100nf با تغذیه آی سی موازی کنید تا روی خط تغذیه تون ،نویز نداشته باشین. این مشکلی بود که من تا تونستم علت اون رو پیدا کنم 6 روز وقتم تلف شد.
2.FORMAT ارسال اطلاعات از مرکز تلفن:
بین زنگ اول و دوم اطلاعات با نرخ 1200 بیت بر ثانیه ارسال میشه،این اطلاعات از جنس کاراکتر اند، پس از چند بایت علامت(حدود 30 بایت علامت) اطلاعات اصلی که مربوط به شماره مخاطب ، ساعت تماس و تاریخ تماس ارسال میشه و در نهایت هم ،مجددا یک بایت علامت هم ارسال میشه تا پایان ارسال اطلاعات رو اعلام کنه، من که تست کردم بایتی که بعنوان علامت فرستاده می شد # بود.
نکته دیگر هم که باید یاد آور بشم اینکه فرمت ارسال اطلاعات برای همه جا یکسانه، تاریخ هم بصورت میلادی ارسال میشه،بین کاراکترهای شماره ،زمان وتاریخ هم هیچ فاصله ای نیست.
برای مثال <== ###################09082203989156142731# <== با توجه به فلش ها می بینید که در ابتدا تعدادی # وارد شد،که بایت های علامت اند،91561427131 شماره تماس گیرنده،98 کد ایران،2203 نشاندهنده ساعت 22:03 و0908 بیانگر ماه 8 سال 2009 می باشد.تعداد کاراکتر های مربوط به شماره تلفن بسته به شماره تماس گیرنده ممکن است طولانی تر و یا کوتاه تر گردد،اگر با تلفن ثابتی که در همان محدوده است نیز تماس گرفته شود ،پیش شماره شهر ارسال نمی شود و فقط شاماره مخاطب و ساعت و تاریخ ارسال می گردد،ولی زمان و تاریخ هر کدام همیشه با 4 کاراکتر ارسال می شوند.
من برنامه کالر آی دی رو با بسکام برای ATMEGA 16 نوشتم و توی برنامه اینطوری تعریف کردم که میکرو مدام بیاد اطلاعات رو بصورت سریال بگیره ، با دستور SELECT CASE گفتم هر وقت کاراکتر مخالف با کاراکتر های عددی (0123456789) بود ،اون رو به عنوان بایت علامت در نظر بگیره .یعنی عملا تا اومدن اولین کاراکتر عددی میکرو اطلاعات رو فقط دریافت میکنه ولی ذخیره نمکنه، بعد از دریافت اولین کاراکتر عددی ، میکرو شروع به ذخیره کاراکتر ها میکنه،و پس از دریافت مجدد کاراکتر غیر عددی ، میکرو این ذخیره سازی رو لغو کرده و شروع به پردازش و نمایش اطلاعات روی LCD میکنه.
سلام ممنون . ولی این ها همه را انجام دادم ولی اولا که خیلی دیر اعداد و ارقام میاد و دوما چیزی که روی السی دی میاد منظورم اعداد اصلا ربطی به ساعت و شماره تلفن من نداره . شاید از شماتیک باشه من با ht9032d بستم . . اگه برنامه با mt8870 داری فکر کنم بهتر باشه . چون ht با fsk هست جواب نده .شاید میگم از این باشه
تشکر
اقای فلاحی . لطف شماتیک مدار راهم بزارین .
دوما معلومه که خودتون اینا را تست نزدین چون توبرنامه که نوشته if n>8 این یه اشکاله دیگه چون تا n بزرگتر از 8 شد دیگه بیشتر که نمیاد دریافت کنه و بریزه تو متغییر . درنتیجه فقط تاریخ وساعت رو نشون میده نه بیشتر
پس باید این طوری بنویسیم18< if n
البته این برنامه ها یا مشکل دارن یا تو شماتیک چون باز اعدادی نشون میده که اصلا ربطی به شماره گرفته شده نداره
کسی نیست که بگه خروجی این ای سی چی میده ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ :angry: :angry: :angry:
به من مهلت بدید من اسی میکرو ندارم
واقعاتش تحریم شد 2 برابر شد نتونستم بگیرم
من دوباره امتحان کنم حتما می ذارم
من نمی دونم کجا نوشتم و کجا گذاشتم
چشم
ولی برای من جواب داد اونطور که یامه
چشم
من آن گلبرگ مغرورم که می میرم ز بی آبی ولی با خفت و خواری پی شبنم نمی گردم.
به من مهلت بدید من اسی میکرو ندارم
واقعاتش تحریم شد 2 برابر شد نتونستم بگیرم
من دوباره امتحان کنم حتما می ذارم
من نمی دونم کجا نوشتم و کجا گذاشتم
چشم
ولی برای من جواب داد اونطور که یامه
چشم
سلام تشکر از بایت پاسختون
ولی اونقدر هم گرون نیست من 4 روز پیش خریدم 2.5 پس چیزی نیس که ارزش گفتن داشته باشه /// در هر صورت هم شماتیک و هم برنامه مشکل داره من 20 با تست زدم همه جوره . حتی برنامه را یه کم تغیر دادم . نشد
:angry: :angry: :angry: :angry: :angry: :angry: :angry:
به من مهلت بدید من اسی میکرو ندارم
واقعاتش تحریم شد 2 برابر شد نتونستم بگیرم
من دوباره امتحان کنم حتما می ذارم
من نمی دونم کجا نوشتم و کجا گذاشتم
چشم
ولی برای من جواب داد اونطور که یامه
چشم
چند سال گذشت و هنوز از اقای فلاحی خبری در دست نیست ..احتمالا ما را فراموش کرده ...!!!!!!!!!!!!!!!!!!!! :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:
به خدا شرمنده ام
یکم وضعیت اقتصادیم به هم خورده
پول نمی رسه
ببخشید شرمنده شما هم شدم
اختیار داری اقای فلاحی عزیز این حرفها چییه . البته وضعییت اقتصادی کی خوب که مال شما خوب باشه
من که از شما طلب کار نیستم دشمنت شرمنده باشه . نشد که نشد فدات !!!!!!!!!!!!!!!!!!
:bye :bye :bye :bye :bye :bye :bye :bye :bye
پاسخ : پاسخ : کمک در راه اندازی HT9032D (کالر آی دی)
نوشته اصلی توسط محسن فاریابی
سلام
اولا داری با یک ای سی خیلی ضعیف سر کله میزنی و من پیشنهاد میکنم بری سراغ sm8223a و ایران هم راحت گیر میاد
و من توی برنامه ات یه کمبود میبینم که اومدی گفتی هر وقت رینگ اومد برو دنبال دیتا ولی من با sm8223a این کار رو کردم گفتم هروقت دیتا از sm اومد برو ببین چی اومده برنامه من هم این هست و راستی با این روش نیاز به رینگ دتکتور هم نیست
و من از این برنامه به خوبی جواب گرفتم خدمت شما
$regfile = "M8def.dat"
$crystal = 1000000
$baud = 1200
Declare Sub Receive
Dim A As Byte , B As Byte
'-------------------------------------------------------------------------------
End
'-------------------------------------------------------------------------------
'------------------------------GET Caller ID------------------------------------
'-------------------------------------------------------------------------------
Get_cid: If Waitkey() = 128 Then
If Waitkey() = 22 Then
If Waitkey() = 1 Then
If Waitkey() = 8 Then
'ÊÇÑíÎ
Locate 1 , 1
For B = 1 To 2
Receive
Lcd A
Next
Lcd "/"
For B = 1 To 2
Receive
Lcd A
Next
'ÓÇÚÊ
Lcd " "
For B = 1 To 2
Receive
Lcd A
Next
Lcd ":"
For B = 1 To 2
Receive
Lcd A
Next
'ÔãÇÑå ÊáÝä
If Waitkey() = 2 Then
If Waitkey() = 10 Then
Locate 2 , 1 : Lcd "0"
For B = 1 To 10
Receive
Lcd A
Next
Else
Cls : Locate 1 , 1 : Lcd "ERR"
End If
End If
Else
Cls : Locate 1 , 1 : Lcd "ERR"
End If
End If
End If
End If
Wait 2
Cls
Return 'End sub Get_cid
'-------------------------------------------------------------------------------
'--------------------------------Sub Receive------------------------------------
'-------------------------------------------------------------------------------
Sub Receive:
A = Waitkey()
A = A - 48
'A = A And 15
'Lcd A
End Sub
فقط شما تنضیمات ال سی دی خودت رو اعمال کن و کامپایل کن
و این خط
If Waitkey() = 128 Then
مال هر مرکز مخابرات ممکنه یه چیز باشه بهتره شما برسی کنی اگه 128 نباشه ارور میده و شما باید براساس مخابرات محل خودتون تغیر ش بدی
مشکلی بود در خدمتم
راستی یک چیز دیگه من از کریستال داخلی میکرو استفاده کردم (1 مگا هرتز)
سلام اقایی فاریابی
شما اینو خودت بستی و جواب گرفتی . چون من تا الان نتونستم جواب بگیرم خواهشن اگه شماتیک کامل و برنامه کامل بدون نقص داری بزار تا ببینم مشکلم کجاست . خط ما fsk هست
دیدگاه