پاسخ : در مورد ترموکوپل و نحوه تبدیل جهت میکرو
با سلام مجدد
با اجازه اساتید عزیز
من فقط یک چیزی رو گفتم بگم شاید خالی از لطف نباشه و گفتم که گفته ام رو با یک مثال بگم شاید بهترم باشه :
مثال اگر admux = e9H طبق جداول موجود کانال AD0 به عنوان ورودی منفی و ADC1 به عنوان ورودی مثبت انتخاب می شوند ، به همراه ضریب تقویت برابر 10 و لتاژ مرجع داخلی 2.56 و همچنین طرز نمایش تبدیل در رجیستر داده ADC در حالت تنظیم چپ انتخاب می گردند .
در این حالت مقدار دیجیتال ADC از رابطه زیر بدست می آید :
مقدار دیجیتال = 512*( ولتاژ مثبت - ولتاژ منفی ) * ( ولتاژ مرجع /گین )
توجه کنید که نتیجه به صورت مکمل 2 از 200H (-512( تا 1FFH (+511( تغییر خواهد کرد ، برای تعیین علامت کافیه بیت با ارزش ADC9 از رجیستر ADCH رو بخونید اگر یک بود عدد منفی و اگر صفر باشه عدد مثبت خواهد بود .
حالا اگر ولتاژ ورودی روی پایه منفی 200میلی ولت و روی پایه مثبت 100 میلی ولت باشه ، مقدار دیجیتال ADC در رجیستر داده به صورت زیر خواهد بود :
هگزه 338=200-=2560/512*(200-100) *10 = مقدار دیجیتال
'------------------------------------------------------------------------------
در این مورد از اونجا که توی بسکام هیچ چیزی براش در نظر گرفته نشده و اسم رجیستر ها هم در بسکام تعریف نشده اند باید از دستور اسمبلی استفاده بشه .
در مورد استفاده از دستورات اسمبلی در بسکام هم :
برای استفاده از دستوز اسمبلی در داخل برنامه از مدل زیر استفاده می کنیم :
$asm
...
$end Asm
حالا مثلا می خواهیم به admux مقدار بدیم مثلا همون e9 :
$asm
LDI R16,$E9
Out $07 , R16 'ADMUX=E9H
$end Asm
\\\\\\\\\\\\\\\\\\\\\\\\\
توی کدویژن هم چون دیگه اسم رجیستر ها تعریف شده اند دیگه نیازی به دستور اسمبلی نیست و میشه مستقیما اون ها رو مقدار دهی کرد
با سلام مجدد
با اجازه اساتید عزیز
من فقط یک چیزی رو گفتم بگم شاید خالی از لطف نباشه و گفتم که گفته ام رو با یک مثال بگم شاید بهترم باشه :
مثال اگر admux = e9H طبق جداول موجود کانال AD0 به عنوان ورودی منفی و ADC1 به عنوان ورودی مثبت انتخاب می شوند ، به همراه ضریب تقویت برابر 10 و لتاژ مرجع داخلی 2.56 و همچنین طرز نمایش تبدیل در رجیستر داده ADC در حالت تنظیم چپ انتخاب می گردند .
در این حالت مقدار دیجیتال ADC از رابطه زیر بدست می آید :
مقدار دیجیتال = 512*( ولتاژ مثبت - ولتاژ منفی ) * ( ولتاژ مرجع /گین )
توجه کنید که نتیجه به صورت مکمل 2 از 200H (-512( تا 1FFH (+511( تغییر خواهد کرد ، برای تعیین علامت کافیه بیت با ارزش ADC9 از رجیستر ADCH رو بخونید اگر یک بود عدد منفی و اگر صفر باشه عدد مثبت خواهد بود .
حالا اگر ولتاژ ورودی روی پایه منفی 200میلی ولت و روی پایه مثبت 100 میلی ولت باشه ، مقدار دیجیتال ADC در رجیستر داده به صورت زیر خواهد بود :
هگزه 338=200-=2560/512*(200-100) *10 = مقدار دیجیتال
'------------------------------------------------------------------------------
در این مورد از اونجا که توی بسکام هیچ چیزی براش در نظر گرفته نشده و اسم رجیستر ها هم در بسکام تعریف نشده اند باید از دستور اسمبلی استفاده بشه .
در مورد استفاده از دستورات اسمبلی در بسکام هم :
برای استفاده از دستوز اسمبلی در داخل برنامه از مدل زیر استفاده می کنیم :
$asm
...
$end Asm
حالا مثلا می خواهیم به admux مقدار بدیم مثلا همون e9 :
$asm
LDI R16,$E9
Out $07 , R16 'ADMUX=E9H
$end Asm
\\\\\\\\\\\\\\\\\\\\\\\\\
توی کدویژن هم چون دیگه اسم رجیستر ها تعریف شده اند دیگه نیازی به دستور اسمبلی نیست و میشه مستقیما اون ها رو مقدار دهی کرد
دیدگاه