ايران ويج

نسخه‌ی کامل: راهنمایی میخام
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام دوستان
من دارم روی پروژه ای کار میکنم که نیاز دارم یک کیپد 4*4 به میکرو وصل بشه
هر چی تلاش میکنم در عمل نمیتونم این کارو بکنم هر چند در پروتیوس این کار ممکنه خواهش میکنم راهنماییم کنید
سورس برنامه با بسکام
کد php:
$regfile "m16def.dat"
$crystal 8000000

Config Lcd 
16 2
Config Lcdpin 
Pin Rs Porta.0 Porta.1 Db4 Porta.2 Db5 Porta.3 Db6 Porta.4 Db7 Porta.5
Display Off

Config Kbd 
Portc Debounce 50 Delay 200
Dim Keyread 
As Byte
Dim Key 
As Byte

 Q
:
Do
 
Keyread Getkbd()
 If 
Keyread >= 16 Then Goto Q
Key 
Lookup(keyread Dta)
Display On
Lcd Key
Loop
End

'******************************************************
Dta:
Data 1 , 4 , 7 , 10 , 2 , 5 , 8 , 0 , 3 , 6 , 9 , 15 , 11 , 12 , 13 , 14 
سلام
شما کی پد رو با پورت C پیکربندی کردید
باید در موقع پروگرام کردن فیوز jtag رو غیرفعال کنید تا جواب بده

خوش باشید.
ممنون آقای عزیزی
ببخشید شما در مورد خط تلفن و نحوه تشخیص اشغال بودن اون اطلاعاتی دارین که به من بدین . ممنون میشم
خواهش میکنم
باید از آی سی های تشخیص سیگنال DTMF استفاده کنید
مثل آی سی MT8870

برای تشخیص اشغال بودن خط باید زمان دریافت بوق رو بشمارید
تا مشخص کنید بوق آزاده یا اشغال
MT8870 یه پایه STD داره که درصورت دریافت سیگنال فعال میشه
این پایه رو باید به یکی از پایه های وقفه میکرو وصل کنید و درصورت ورود سیگنال طی وقفه زمان سیگنال رو محاسبه کنید

خوش باشید.
ممنون
میشه بیشتر توضیح بدین. یعنی چی زمان سیگنال رو محاسبه کنیم؟برنامه یا پروژه ای به عنوان نمونه دارین.
راه دیگه ای نداره؟من تو پروژم برای اتصال میکرو به خط تلفن از چوک آبی استفاده کردم.
در اتصال کیپد هم یکی از ستونهای کیپد کار نمیکنه.دلیلی چی میتونه باشه؟
(۲۰-آبان-۱۳۹۲, ۰۰:۵۹:۰۰)azad2 نوشته است: [ -> ]ممنون
میشه بیشتر توضیح بدین. یعنی چی زمان سیگنال رو محاسبه کنیم؟برنامه یا پروژه ای به عنوان نمونه دارین.

یه بوق آزاد داریم
یه بوق اشغال
که بوق اشغال پهنای کمکتری نسبت به بوق آزاد داره(سریعتر بوق میزنه)
فرضا درنظر بگیرید بوق آزاد 3 ثانیه یکبار و بوق اشغال هر 1 ثانیه بصدا میاد
برای تشخیص بوق اشغال وقتی سیگنال تلفن دریافت شد طی وقفه شروع به ثبت زمان می کنید تا بصدا درآمدن بوق دیگه
حالا وقتی زمان همون 1 ثانیه شد میفهمید که خط اشغال هستش

پروژه نمونه ندارم واسش
ولی در مورد توضیحات سرچ کنید شاید برنامه هم واسش پیدا کنید
هرجا هم بمشکل برخوردید بگید اگه درتوان باشه کمک میکنم

(۲۰-آبان-۱۳۹۲, ۰۰:۵۹:۰۰)azad2 نوشته است: [ -> ]راه دیگه ای نداره؟من تو پروژم برای اتصال میکرو به خط تلفن از چوک آبی استفاده کردم.

شاید با راه های دیگه ای هم بشه
ولی وقتی آی سی ارسال و دریافت سیگنال تلفن هست نیازی نیست کار رو مشکل کنیم

(۲۰-آبان-۱۳۹۲, ۰۰:۵۹:۰۰)azad2 نوشته است: [ -> ]در اتصال کیپد هم یکی از ستونهای کیپد کار نمیکنه.دلیلی چی میتونه باشه؟

احتمالا از اتصالات باشه
با دیودسنج صحت اتصالات و چک کنید


خوش باشید.
خیلی ممنونم لطف بزرگی کردین
سلام مهندس جان
من قسمتی از برنامه ی مربوط به دماسنج رو اینجا گذاشتم این قسمت مربوط به خواندن adc می باشدمیخواستم بدونم این رابطه رو input_mv=w*4.8828125 از کجا آورده.
کد php:
Read_the_adc:
   
Getadc(6)
   
Input_mv 4.8828125
   Temp 
Input_mv 10 
(۲۴-آبان-۱۳۹۲, ۱۴:۵۰:۱۷)azad2 نوشته است: [ -> ]سلام مهندس جان
من قسمتی از برنامه ی مربوط به دماسنج رو اینجا گذاشتم این قسمت مربوط به خواندن adc می باشدمیخواستم بدونم این رابطه رو input_mv=w*4.8828125 از کجا آورده.
کد php:
Read_the_adc:
   
Getadc(6)
   
Input_mv 4.8828125
   Temp 
Input_mv 10 

سلام
این دستور مربوط به تبدیل مقادیر ولتاژ آنالوگ به دیجیتال هستش
وقتی به ورودی adc یه ولتاژ بین 0 تا 5 ولت آنالوگ میدیم در خروجی adc مقادیر 0 تا 1023 رو خواهیم داشت

خب حالا این 0 تا 1023 از کجا اومد
میگیم چون adc ما 10 بیتی هستش پس میتونه حداکثر تا 2 به توان 10 معادل 1024 متغیر باشه
که با درنظر گرفتم مقدار 0، در واقع بین 0 تا 1023 خواهد بود

گفتیم که در ورودی یک ولتاژ بین 0 تا 5 ولت داریم
میخواهیم ورودی رو در حالت 5 ولت بخونیم

وقتی 5 ولت(حداکثر ولتاژ) به ورودی میدیم در خروجی مقدار 1024 رو داریم
طبق محاسبات زیر
کد:
W = Getadc(6)
Input_mv = W * 4.8828125
w مقدار ورودی آنالوگ به دیجیتال و برابر 1024 میشه
که بعد در عدد 4.8828125 ضرب برابر 5000 میشه
و بعد تقسیم بر 10 میشه 500
در واقع با این محاسبات به ازای 5 ولت ورودی 100*5 در خروجی داریم
علت ضرب در 100 هم شاید برای نمایش با ارقام بیشتر باشه
یا شاید در ادامه دستورات محاسبات دیگه ای روش میشه
باید ادامه کدها رو بررسی کنید تا علت ضرب در 100 رو متوجه بشید
تا اینجا که روال کار به همین صورت هست

امیدوارم توضیحات مفید واقع بشه
خوش باشید.
خیلی ممنونم مفید بودند
در رابطه با تقسیم بر 10 خدمتتون عرض کنم که چون به ازای یک درجه تغییر در دمای ورودی 10 میلی ولت به خروجی سنسور اضافه می شود در واقع ما با این کار دما را بدست می آوریم. باز هم از شما تشکر می کنم.
(۲۵-آبان-۱۳۹۲, ۰۰:۰۶:۴۶)azad2 نوشته است: [ -> ]خیلی ممنونم مفید بودند
در رابطه با تقسیم بر 10 خدمتتون عرض کنم که چون به ازای یک درجه تغییر در دمای ورودی 10 میلی ولت به خروجی سنسور اضافه می شود در واقع ما با این کار دما را بدست می آوریم. باز هم از شما تشکر می کنم.

بله دقیقا حق با شماست
دقت نکردم که دستورات برای دماسنج هستش
10میلی ولت در 500 میشه همون 5 ولت ورودیمون

خوش باشید.
صفحه‌ها: 1 2