طراحی کنترلر، مدارت دلخواه، پروژه ها و تمرینات درس میکروکنترلرها
بر اساس رنج حداقل و حداکثر تعریف شده توسط کاربر و با توجه به دمای محیط، سرعت موتور بین 10 تا 99 به صورت خودکار تنظیم می شود.ماشین حساب مهندسی ساده با قابلیت دریافت اعداد اعشاری و محاسبه توابع مثلثاتی به همراه سایر توابع توسط یک صفحه کلید 4*4این پروژه یک فرستنده گیرنده رادیویی با برد 100 تا 200 می باشد، که قابلیت کنترل 20 کانال مجزا به همراه کنترل سرعت موتور DC را دارد. از ماژول HMT و HMR و 20 عدد دیپ سوئیچ و درایور L298N برای موتور استفاده شده است.این پروژه یک مدار گیرنده رادیویی 433 یا 315 مگاهرتز می باشد که قابلیت تعریف و ذخیره سازی انواع ریموت کنترل هایی از قبیل (ریموت دزدگیر ماشین، پارکینگ، بالابر و ...) را دارد. می توان رله مربوطه را روی هر کلید دلخواه تعریف نمود.این پروژه یک فاصله سنج می باشد که می توان در مواردی نیز به عنوان عمق سنج از آن استفاده نمود. حداقل فاصله قابل تشخیص 10cm و حداکثر 80cm تا 100cm می باشد.
پروژه کنترل دور موتور با PWM برحسب دما با avr

MCP-18

پروژه کنترل دور موتور با PWM برحسب دما با avr
ماشین حساب مهندسی ساده

MCP-28

ماشین حساب مهندسی ساده
پروژه کنترل 20 کاناله-به همراه کنترل سرعت موتور با avr

MCP-10

پروژه کنترل 20 کاناله-به همراه کنترل سرعت موتور با avr
پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ

MCP-30

پروژه ریموت کنترل 433-315 مگاهرتز تک کاناله با قابلیت لرنینگ
پروژه فاصله سنج با سنسور مادون قرمز شارپ Sharp

MCP-37

پروژه فاصله سنج با سنسور مادون قرمز شارپ Sharp

کار با تایمر کانتر صفر AVR در حالت ساده به زبان سی کدویژن CodeVision

مقدمه

 تایمر کانتر یکی از بخش های مهم میکروکنترلرها می باشد. در بیشتر مواقع لازم که تعدادی وقایع خارجی (با سرعت بالا) شمارش شود و یا گاهی لازم است که در یک زمان خاص و دقیق، کاری صورت گیرد. تنها توسط تایمر کانتر ها می توان این کارهای دقیق و با سرعت بالا را انجاد داد.

میکروکنترلرهای AVR حداکثر دارای شش عدد تایمر کانتر هشت بیتی و شانزده بیتی هستند. برخی از آنها دارای عملکرد ساده و برخی دیگر دارای امکانات بیشتر نظیر تولید موج PWM ، حالت مقایسه CTC ، حالت تسخیر، عملکرد غیر همزمان و ... می باشند.

در ادامه ما به نحوی برنامه نویسی و پیکره بندی تایمر صفر در حالت عادی همراه با مثال در محیط برنامه نویسی CodeVision می پردازیم

از بخش سفارش طراحی هم اکنون درخواست خود را ثبت کنید
حل و تشریح کلیه تمرینات درس میکروکنترلر AVR
طراحی و ساخت مدارات دلخواه شما با میکروکنترلر AVR


تایمر کانتر صفر در AVR ها را می توان به سه مدل زیر دسته بندی کرد:

  1.  ساده هشت بیتی
  2. پیشرفته هشت بیتی
  3. پیشرفته شانزده بیتی

ساده هشت بیتی فقط در سری At90S , ATTiny به کار رفته.
پیشرفته هشت بیتی در سری ATmega ها به غیر از ATmega8 و ATmega163 به کار رفته است. (این دو مدل میکرو از مد ساده هشت بیتی استفاده می کنند)
پیشرفته شانزده بیتی این مدل فقط در AVR های سری ATTiny13 , ATTiny2313 به کار گرفته است.

 در اینجا ما از مد پیشرفته هشت بیتی استفاده می کنیم و بیشتر روی codewizard برنامه CodeVision تاکید می کنم و وارد بحث رجیستر های تایمر کانتر نمی شویم چون پیچیده می شود و همه دوستان از این مسائل رجیستر ها زیاد وارد نیستند. codewizard با تنطیم کردن  وضعیت تایمر کانتر ها کد های مربوط رجیستر ها را برای ما بدست می آورد و ما ادامه برنامه را به زبان C می نویسیم.

تایمر کانتر صفر در حالت هشت بیتی پیشرفته:

  1. تایمر کانتر در حالت عادی
  2. تایمر کانتر در حالت مقایسه CTC
  3. تایمر کانتر در حالت PWM سریع (تک شیب)
  4. تایمر کانتر در حالت PWM تصحیح فاز (دو شیب)

رجیستر های تایمر کانتر صفر:

رجیستر مقایسه خروجی OCR0 این رجیستر هشت بیتی خواندنی و نوشتنی بوده و به طور مستقیم با مقدار شمارنده TNNT0 مقایسه می شود. از تطابق این دو برای تولید وقفه خروجی یا تولید یک شکل موج روی پایه OC0 می توان استفاده نمود.

رجیستر تایمر کانتر صفر TCNT0 این رجیستر هشت بیتی امکان دسترسی مستقیم برای خواندن و نوشتن در شمارنده را فراهم می کند.

رجیستر کنترلی تایمر کانتر صفر TCCR0 که دارای هشت بیت کنترلی است که برای انتخاب پالس ساعت، حالت خروجی هنگام تطابق مقایسه، عملکرد های PWM، و بیت مقایسه خروجی. که در کل با این 8 بیت حالت های مختلفی وجود دارد که با استفاده از codewizard این رجیستر ها تنظیم می شود.

 رجیستر پرچم وقفه تایمر کانتر صفر TIFR که در این رجیستر بیت TOV0 زمانی یک می شود که یک سر ریز در تایمر یا کانتر صفر رخ داده باشد و بیت های دیگر ... که همه توسط codewizard تنظیم می شوند.

با استفاده از رجیستر TCCR0 می توان فرکانس کاری تایمر را انتخاب کرد که حالت های زیر را دارد: بدون تقسیم- تقسیم بر 8- تقسیم بر 32- تقسیم بر 64- تقسیم بر 128- تقسیم بر 256- تقسیم بر 1024 یعنی اگر ما فرکانس کلاک کاری میکرو را مثلا 12MHZ انتخاب کنیم و N=32 در نتیجه 12MHZ بر عدد 32 تقسیم می شود و حاصل آن می شود فرکانس کاری تایمر.

مثال ها با CodeVisionAVR V2.04.4a و پروتیوس V7.7 SP4 شبیه سازی شده اند.

 1) با استفاده از تایمر صفر در مد ساده تاخیر 2.04 میلی ثانیه ایجاد نماید؟

#include <mega16.h> 
#define xtal 8000000 

void timer0_delay(){ 
TCCR0=0x03; // Clock value: 125.000 kHz 
while(!(TIFR & 0x02)); //H1 
TIFR |= 0x02; //H2 
} 

void main(void){ 
DDRA=0xff; 
PORTA=0; 
TCNT0=0x00; 
OCR0=0x00; 

while (1){ 
timer0_delay(); 
PORTA.0=~PORTA.0; 
}; 
}

 ابتدا ما تابعی به نام timer0_delay ایجاد کردم و با استفاده از برنامه codewizard در قسمت Timer0 مقادیر زیر را تنظیم کنید:

Clock Source: System Clock
Clock Salue: 125.000kHZ
Mode: Normal top=FFh
Output: Disconnected
0 Overflow Intrrupt
0 Compare Match Interrupt
Timer Value: 0h
Compare: 0h

 و بعد از منوی File -> program perivew را بزنید بر طبق تنظیماتی که شما انجام داده اید رجیستر ها با مقادیری پر می شوند. که در این مثال TCCR0=0x03 شده که اگر به جدول رجیستر ها نگاه کنید حالت مد ساده و با N=64 انتخاب شده که نحوی محاسبه زمان تایمر به صورت زیر است:

TCCR0=0x03 ==> prescaler=64 ==> F/8 ==> 8MHZ/64=125kHZ ==> tc=1/125kHZ=8uS
TCNT0=0 ==> zaman sar riz 255*8uS=2.04ms ==> delay=2.04ms

 H1: میکرو وارد این حلقه شرطی می شود و تا زمانی که پرچم TIFR یک نشده در این حلقه می ماند. (0x02 بیت دوم از رجیستر TIFR هست که اگر یک شود حاصل and بیتی 1and1 برابر 1 می شود و معکوس 1 هم صفر می شود بنابراین حلقه (0) یعنی شکستن حلقه و خارج شدن از آن)

H2: بعد از سریز بیت دوم از رجیستر TIFR یعنی TOVO یک می شود بنابراین برای استفاده مجدد از تایمر باید این بیت را به وضعیت قبلی خود یعنی صفر برگردانیم که با OR کردن اینکار را انجام می دهیم.

در برنامه main هم که پورت A خروجی تعریف شده و مقادیر اولیه شمارنده تایمر و مقایسه را برابر صفر قرار دادیم و وارد یک حلقه بی نهایت شدیم که در آن مدام تابع تاخیر اجرا میشود و پین A.0 مکمل می شود.

نکته برای اینکه codewizard اطلاعات صحیح به شما بدهد حتما به یاد داشته باشید که در قسمت Chip مدل میکرو و فرکانس میکرو دقیق تنظیم شود.

سوالات و پیشنهادات خودتان را در نظرات همین صفحه اعلام کنید.

 این مقاله به صورت کاملا اختصاصی و به صورت متن باز تنها در وب سایت www.picpars.com منتشر می شود. کپی برداری از آن تنها با ذکر منبع به صورت کامل امکان پذیر می باشد.

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

  منبع: www.picpars.com

  لطفا مقالات، آموزش‌ها و پروژه های خود را به آدرس ایمیل ارتباطی ایمیل نمائید تا آن را با نام خودتان در سایت منتشر کنیم.




فایل های ضمیمه ( ورود - عضويت )

فایل شماره 102 | حجم 43 کیلوبایت | دانلود 5233 بار

منبع www.picpars.com  نویسنده: سید محسن قاسمیان

منبع www.picpars.com  دانلود مثال کار با تایمر کانتر صفر AVR در حالت ساده

منبع www.picpars.com  پسورد: www.picpars.com

به این مطلب امتیاز دهید

برچسب ها:
تاریخ ارسال پنجشنبه، 29 مهر ماه، 1389    نویسندهنویسنده: مدیریت    نظرات 20 نظر    بازدید بازدید [ 67715 ]   پرینتنسخه چاپی
فایل پی دی اف فایل پی دی اف   ارسال به دوستان ارسال به دوستان   

پروژه تایمر-ساعت نجومی (فتوسل بدون نور)
کد پروژه: MCP-26
عنوان: پروژه تایمر-ساعت نجومی (فتوسل بدون نور)
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
این پروژه بدون نیاز به دریافت نور می تواند بر اساس تاریخ، ساعت، عرض جغرافیایی و طول جغرافیایی هر استان زمان طول و غروب خورشید را محاسبه کرده و به طور دقیق در این بازه زمانی لامپ های روشنایی را فعال کند. همچنین دارای یک تایمر داخلی می باشد که قابلیت فعال و غیر فعال کردن آن وجود دارد. دستگاه کلا با 3 کلید قابل تنظیم و برنامه ریزی می باشد.
پروژه محافظ لوازم برقی با avr و نمایشگر سون سگمنت
کد پروژه: MCP-21
عنوان: پروژه محافظ لوازم برقی با avr و نمایشگر سون سگمنت
میکروکنترلر: AVR ==> زبان سی C (کدویژن)
قیمت: به جزئیات پروژه مراجعه نمایید
جزئیات سفارش خرید
در صورتی که برق شهر از حداقل تعریف شده کمتر، یا از حداکثر بیشتر شود رله خروجی قطع خواهد شد و از طریق بازر بوق هشدار پخش می شود.
نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : چهارشنبه، 21 دي ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

با سلام 

با تشکر از شما به خاطر آموزش عالیتون

من از تایمر 0 برای خاموش و روشن شدن یه متن در LCD استفاده کردم

با زدن کلید m=1 میشه و با استفاده از while(m=1) تابع وقفه اجرا میشه 

با زدن مجدد کلید m=2 میشه اما تابع وقفه همچنان در حال اجرا میمونه و متن همینطور چشمک میزنه

لطفا راهنمایی بفرمایید چطور از تابع وقفه خارج بشم

 

 

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : چهارشنبه، 21 دي ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

با سلام23

برای فعال کردن وقفه از دستور: #asm( "sei" ) و برای غیر فعال کردن هم از دستور #asm( "cli" ) استفاده کنید.

لازم به ذکر است که دستورات کلیه وقفه ها را فعال یا غیر فعال می کند1

ارسال جوابیه

ارسال جوابیه

نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

با سلام 

من شرط رو به صورت زیر نوشتم که delay تابع وقفه برنامست

اما با اینکه m رو زیاد میکنم و باید از دستور while خارج بشه اما این کار انجام نمیشه و به چشمک زدن ادامه میده

 while(m==1)
          {  
          lcd_gotoxy(0,0);
          lcd_puts ( "sale=1390" );
          delay();
          lcd_gotoxy(5,0);
          lcd_puts ("    " );
          if(m!=1)#asm( "cli" );
          }
ارسال جوابیه

نام شما: مدیریت
ایمیل شما:
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

دستوراتی که نوشتید کاملا منطقی هست ولی چرا حلقه مدام تکرار میشه احتمال میدم که متغییر m تغییر نمیکنه. شما برای اینکه مطمئن شوید کلید درست کار میکنه و میکرو با هر بار فشرده شدن اون محتوای m تغییر میکنه یا نه، بهتر که m رو روی LCD نمایش بدید و کلید رو فشار بدید و ببینید که m رو lcd تغییر میکنه؟!6

ارسال جوابیه

نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

اگه به جای while اول کد ، از if استفاده کنم وقفه فقط یکبار اجراشده (فقط یکبار خاموش و روشن میشه ) و با فشردن کلید، m=2 میشود و سطر بعد در lcd شروع به چمشک زدن میکنه (گفتم اگه m==2 شد سطر دوم چشمک بزنه)

اما وقتی از while استفاده میکنم از حلقه خارج نمیشه و سطر بعد در lcd چشمک نمیزنه 

 من برنامه رو به ایمیل تون فرستادم اگه ممکنه یه نگاه بکنید 

با تشکر 

جوابیه ها

نام شما: مدیریت
ایمیل شما:
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

سلام برنامه تون را برسی کردم.

این علت چشمک زدن در واقع ربطی به وقفه و تابع delay ندارد، علت این که وقتی شما از دستور while استفاده می کنید میکرو وارد یک حلقه بینهایت می شود که تنها شرط خروج از آن این است که m مخالف 2 شود. یعنی اینکه تا زمانی که m=2 می باشد شرط حلقه برقرار است و CPU دستورات خارج از حلقه را هرگز اجرا نخواهد کرد. (مگر دستورات توابع وقفه) بنابراین میکرو وقتی وارد این حلقه شد دیگر کلید ها را اسکن نخواهد کرد که شما بتوانید مقدار m را تغییر دهید. اما علت چشمک زدن LCD در این حلقه هم این است که CPU با سرعت بسیار بالایی LCD را Refersh می کند و بخاطر همین به صورت چشمک زن میبینیم.

با توجه به ساختار برنامه تان بهتر مانند همان اولی از if استفاده کنید.

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

if (!PINA.0 && m==1)
{
while(!PINA.0); delay_ms(50);
sal1++;
}
ارسال جوابیه

ارسال جوابیه

نام شما: سعید
ایمیل شما: hamidinezhad@gmail.com
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر saeidhp | ارسال پیغام شخصی)

با سلام و تشکر از شما 

اگه من از if استفاده کنم متن روی lcd فقط یکبار چشمک میزنه و من میخوام تا وقتی که m=1 هست متن بالا چشمک بزنه 

این حالت دقیقا مثل تنظیم ساعت دیجیتال هست که هرکدام چشمک میزنه یعنی همون قابلیت تغییر داره 

شما چه راهی رو پیشنهاد میکنید که بدون استفاده از delay بتونم این امکان رو به وجود بیارم

 

 

ارسال جوابیه

نام شما: مدیریت
ایمیل شما:
در مورخه : پنجشنبه، 22 دي ماه، 1390توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

خوب من سعی میکنم برنامه رو آماده کنم و برای دانلود رو سایت قرار بدم. 25

برنامه شما در پست زیر آماده دریافت می باشد. لطفا به این پست مراجعه کنید و اگر سوال داشتید در همانجا مطرح کنید.

303//آموزش-AVR-سی-C/دریافت-اطلاعات-از-کاربر-با-سوئیچ-به-زبان-سی/

با تشکر

ارسال جوابیه

نام شما: سارا
ایمیل شما:
در مورخه : پنجشنبه، 14 ارديبهشت ماه، 1391توسط
(مشخصات کاربر dost123 | ارسال پیغام شخصی)

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

TCCR0=0x03 ==> prescaler=64 ==> F/8 ==> 8MHZ/64=125kHZ ==> tc=1/125kHZ=8uS
TCNT0=0 ==> zaman sar riz 255*8uS=2.04ms ==> delay=2.04ms

F/8 ام از کجا اومد؟8مگا هرتز از کجا بدست اومد؟

چرا تی سی ان تی را صفر گرفتیم و چرا مقدارشو در 255 ضرب کردیم؟

 

ارسال جوابیه

نام شما: سارا
ایمیل شما:
در مورخه : جمعه، 15 ارديبهشت ماه، 1391توسط
(مشخصات کاربر dost123 | ارسال پیغام شخصی)

 

ممنون .اگه بخواهم تاخیر 1 ثانیه ایجاد کنم با کلاک فرکونسی 4 مگ. مقادیر TCCR0  و TCNT0 چی میشه؟گریه
 
من هر چی محاسبه کردم با prescaler مختلف یه ثانیه تاخیر در نمیادبیخوابی
جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : جمعه، 15 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

راههای زیادی برای ایجاد تاخیر 1 ثانیه هست.فکرکردن و با توجه به سوالات مکرر دوستان در مورد ایجاد تاخیرهای دقیق توسط تایمر مطالبی در این مورد آماده کرده ایم که بزودی منتشر خواهد شد.

ارسال جوابیه

ارسال جوابیه

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : جمعه، 15 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

F فرکانس کاری میکرو هست که خود ما تعیین میکنیم. و TCNT0 هم که هشت بیتی می باشد یعنی مقادیر 0 تا 255 طبق محاسبات مدت زمان شمارش هر پله برابر 8us شد یعنی اگر TCNT0=1 مقدار 8us و اگر TCNT0=2 l مقدار 16us و ... پس اگر TCNT0=255 شود مدت زمان شمارش 2.04ms‌خواهد شد.گل

ارسال جوابیه

نام شما: سارا
ایمیل شما:
در مورخه : جمعه، 15 ارديبهشت ماه، 1391توسط
(مشخصات کاربر dost123 | ارسال پیغام شخصی)

نمیشه حداقل یه راهنمایی بکنین اخه من عجله دارم مهلت تحویل تمرینم زیاد نمونده

خواهش میکنمگریه

جوابیه ها

نام شما: سید محسن قاسمیان
ایمیل شما:
در مورخه : جمعه، 15 ارديبهشت ماه، 1391توسط
(مشخصات کاربر SMGH-admin | ارسال پیغام شخصی)

با سلام خدمت دوستان

مطالبی در مورد ایجاد تاخیرهای دقیق با تایمرهای صفر و یک AVR به زبان سی نوشته شد که همکون در سایت منتشر شده است، می توانید با مراجعه به این مطلب مشکلات خود را در این ضمینه برطرف سازید.

با تشکر گل

ارسال جوابیه

ارسال جوابیه

نام شما: ایمان
ایمیل شما: iman_ir1900@yahoo.com
در مورخه : يكشنبه، 31 ارديبهشت ماه، 1391

با سلام

من تازه دارم زبان c کتر میکنم . نمی دونم از کجا باید شروع کنم . لطفا راه درست رو نشونم بدید.

دمت گرم

ارسال جوابیه

نام شما: جواد
ایمیل شما: javadmasoomi762@yahoo.com
در مورخه : جمعه، 17 شهريور ماه، 1391

با سلام وخسته نباشید لطفا برنامه نویسی کنترل دور موتور هود با سنسورntcرا برای من توضیح دهید بگویید برنامه را با تشکر فراوان

ارسال جوابیه

نام شما: matin
ایمیل شما:
در مورخه : چهارشنبه، 26 فروردين ماه، 1394

interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here

timer0_ov++;

}
////////////////////////////
while (1)
      {
       
      TCCR0=0x06;                                     
      #asm("sei"
      delay_ms(50);
      #asm("cli"
      in_freq=20*(timer0_ov*256+TCNT0);  
        
      //delay_ms(250);
      TCCR0=0x00;                                     
      timer0_ov=0;
      TCNT0=0;                                       

      humidity=(-0.075872)*(in_freq-7351);  }}

 

سلام مهندس جان

میشه بهم بگین تو این برنامه که وقفه فعال شده و 50میلی بعد غیر فعال شده دلیلش چیه؟

اصلا این یعی چی؟

واسه راه اندازی سنسور HST1101 هستش

ممنون میشم راهنمایی کنید

ارسال جوابیه

نام شما: لاله
ایمیل شما: LG.computer91@.com
در مورخه : چهارشنبه، 9 تير ماه، 1395

سلام . برای  تنظیمات  وقفه تایمرها  باید از کجای نرم افزار تنظیم کنیم؟

ارسال جوابیه

نام شما: Ali
ایمیل شما: ali_as_3263@yayoo.com
در مورخه : دوشنبه، 24 آبان ماه، 1395

سلام ميشه جواب تمرين پايين رو بذاريد ممنون ميشم 

‎برنامه ای با زبان  سي بنویسید که با استفاده از قابلیت آسنکرون تایمر کانتر شماره 0 در atmega64 یک ثانیه دقیق را ایجاد نموده و با استفاده از آن برنامه یک ساعت را بنویسید. ساعت ثانیه، دقیقه و ساعت باید داشته باشد. ساعت را با استفاده از سون سگمنت نشان دهید.  روش نشان دادن بر روی سون سگمنت :. 1- استفاده از روش مالتی پلکس به این صورت که از یک پورت برای ارسال داده بر روی همه سون سگمنت ها استفاده می کنید و از یک پورت دیگر سون سگمنت مربوطه را فعال و داده را بر روی پورت DATA قرار می دهید. (استفاده از خطای دید). 2- استفاده از آی سی سون سگمنت جهت دریافت کد باینری معادل ساعت از میکرو و درایو کردن سون سگمنت (آی سی 7448 یا 7447).

ارسال جوابیه

نام شما: رسول
ایمیل شما: rasoulakbari296@gmail.com
در مورخه : پنجشنبه، 23 دي ماه، 1395

وقتی ocr برابر صفر گرفتین که در همون اولین لحظه فلگ مربوط به برابر شدن یک میشه و همون لحظه اول از h1 حلقه خارج میشه... چرا؟ سوال دوم وقتی میخواین فلگ رو صفر کنید چرا با دو اور کردین؟

or با دو که صفر نمیکنه بیت دوم tirf رو؟

 

ارسال جوابیه

 
نام شما: [ کاربر جدید ]

نام شما (ضروری): 
ایمیل شما : 
نظر:
کد امنیتی
کد امنیتی

  [ بازگشت ]