تعمیر طرح مبلمان

نشانگر LED نشانگرهای LED هفت بخش. آنچه در داخل نشانگر هفت بخش وجود دارد

به شما اجازه نمی دهد مستقیماً نشانگر LED یا فلاش دوربین را روشن/خاموش کنید؛ برخی از تلفن ها این گزینه را دارند.

نحوه چشمک زدن برنامه‌ای چراغ‌های چند رنگ، نحوه نوشتن "چراغ قوه" خود یا سایر LED‌های دستگاه که می‌توان کنترل کرد - در زیر در مورد این موضوع یاد خواهید گرفت.

همه چیز از آنجا شروع شد که در حین کاوش در سیستم فایل HTC Desire خود با استفاده از ES Explorer، به طور تصادفی به دایرکتوری های جالبی برخوردم: /sys/class/leds/blue، /sys/class/leds/چراغ قوه و غیره.
آبی دیگه چیه؟! من فقط یک نشانگر نارنجی و سبز دیدم. اما جالب ترین چیز این است که داخل این دایرکتوری ها یک فایل روشنایی با مجوز نوشتن وجود داشت! که بلافاصله از آن استفاده کردم.

در واقع، این یک فایل ساده نیست، بلکه یک رابط برای کار با یک درایور LED است. بنابراین با نوشتن یک عدد مثبت در فایل /sys/class/leds/blue/brightness، نشانگر آبی روی قاب گوشی را روشن می کنیم، با نوشتن 0 - آن را خاموش می کنیم. به طور مشابه با نشانگرهای کهربایی و سبز. با روشن کردن دو LED با هم، رنگ های جدیدی به دست می آید: کهربایی + آبی = بنفش. سبز + آبی = آبی

حالا این همه چطور برنامه ریزی شده است؟
public void ledControl (نام رشته، روشنایی int) (

تلاش كردن (

FileWriter fw = new FileWriter("/sys/class/leds/" + name + "/brightness" );

fw.write(Integer.toString(روشنایی));

fw.close();

) گرفتن (استثنا e) (

// کنترل LED در دسترس نیست

}

}


// نشانگر بنفش را روشن کنید

ledControl("کهربا" , 255);

ledControl("آبی"، 255)؛


// صفحه نمایش را تیره تر کنید

ledControl("lcd-backlight" , 30);


// نور پس زمینه دکمه را خاموش کنید

ledControl("نور پس زمینه دکمه" , 0 );


// یک چراغ قوه با روشنایی متوسط ​​سازماندهی کنید

ledControl("چراغ قوه" , 128);

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

نتیجه
همه! حالا گوشی مثل درخت کریسمس روشن می شود. این کد فقط بر روی HTC Desire دارای اندروید 2.2 آزمایش شده است، اما احتمالاً روی دستگاه های دیگر کار خواهد کرد. برای من بنویسید که آیا فوکوس روی گوشی شما کار می کند یا نه.

مطمئناً شما قبلاً شاخص های "هشت" را دیده اید. این یک نشانگر LED هفت بخش است که برای نمایش اعداد از 0 تا 9 و همچنین نقطه اعشار ( D.P.- نقطه اعشار) یا کاما.

از نظر ساختاری، این محصول مجموعه ای از LED است. هر LED در مجموعه، بخش علامت خود را روشن می کند.

بسته به مدل، مجموعه ممکن است از 1 تا 4 گروه هفت بخش تشکیل شود. به عنوان مثال، نشانگر ALS333B1 از یک گروه هفت بخش تشکیل شده است که قادر است تنها یک رقم از 0 تا 9 را نمایش دهد.

اما نشانگر LED KEM-5162AS در حال حاضر دارای دو گروه هفت بخش است. دو رقمی است. عکس زیر نشانگرهای LED هفت بخش مختلف را نشان می دهد.

همچنین شاخص هایی با 4 گروه هفت بخش - چهار رقمی (تصویر - FYQ-5641BSR-11) وجود دارد. آنها را می توان در ساعت های الکترونیکی خانگی استفاده کرد.

نشانگرهای هفت بخش چگونه روی نمودارها نشان داده می شوند؟

از آنجایی که نشانگر هفت بخش یک دستگاه الکترونیکی ترکیبی است، تصویر آن بر روی نمودارها کمی با ظاهر آن متفاوت است.

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

ویژگی های شاخص های هفت بخش.

با وجود سادگی ظاهری این قسمت، ویژگی های خاص خود را نیز دارد.

در مرحله اول، نشانگرهای LED هفت بخش دارای یک آند مشترک و یک کاتد مشترک هستند. این ویژگی باید در هنگام خرید آن برای یک طرح یا دستگاه خانگی در نظر گرفته شود.

برای مثال، در اینجا پین‌آوت نشانگر 4 رقمی از قبل برای ما آشناست FYQ-5641BSR-11.

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

علاوه بر شاخص های کوچک، شاخص های بزرگ و حتی بسیار بزرگ نیز وجود دارد. آنها را می توان در مکان های عمومی، معمولاً به شکل ساعت دیواری، دماسنج و اطلاع رسانی مشاهده کرد.

برای افزایش اندازه اعداد روی صفحه نمایش و در عین حال حفظ روشنایی کافی هر بخش، از چندین LED استفاده می شود که به صورت سری به هم متصل می شوند. در اینجا نمونه ای از چنین شاخصی وجود دارد - در کف دست شما قرار می گیرد. این FYS-23011-BUB-21.

یک بخش از آن شامل 4 LED است که به صورت سری به هم متصل شده اند.

برای روشن کردن یکی از بخش ها (A، B، C، D، E، F یا G)، باید ولتاژ 11.2 ولت را به آن اعمال کنید (2.8 ولت برای هر LED). شما می توانید کمتر، به عنوان مثال، 10 ولت، اما روشنایی نیز کاهش می یابد. استثنا نقطه اعشار (DP) است، بخش آن از دو LED تشکیل شده است. فقط به 5-5.6 ولت نیاز دارد.

نشانگرهای دو رنگ نیز در طبیعت یافت می شوند. به عنوان مثال، LED های قرمز و سبز در آنها تعبیه شده است. به نظر می رسد که، همانطور که بود، دو نشانگر داخل کیس وجود دارد، اما با LED های رنگ های مختلف. اگر به هر دو مدار LED ولتاژ اعمال کنید، می توانید یک درخشش زرد از بخش ها دریافت کنید. در اینجا یک نمودار سیم کشی برای یکی از این نشانگرهای دو رنگ (SBA-15-11EGWA) آورده شده است.

اگر پین 1 را وصل کنید ( قرمز) و 5 ( سبز) به منبع تغذیه "+" از طریق ترانزیستورهای کلیدی، می توانید رنگ اعداد نمایش داده شده را از قرمز به سبز تغییر دهید. و اگر پین های 1 و 5 را همزمان وصل کنید، رنگ درخشش نارنجی خواهد بود. به این ترتیب می توانید با نشانگرها بازی کنید.

مدیریت شاخص های هفت بخش.

برای کنترل نشانگرهای هفت بخش در دستگاه های دیجیتال، از رجیسترهای شیفت و رمزگشاها استفاده می شود. به عنوان مثال، رمزگشای پرکاربرد برای کنترل نشانگرهای سری ALS333 و ALS324 یک میکرو مدار است. K514ID2یا K176ID2. در اینجا یک مثال است.

و برای کنترل اندیکاتورهای مدرن وارداتی معمولا از شیفت رجیسترها استفاده می شود 74HC595. در تئوری، بخش های نمایشگر را می توان مستقیماً از خروجی های میکروکنترلر کنترل کرد. اما چنین مداری به ندرت مورد استفاده قرار می گیرد، زیرا این امر مستلزم استفاده از تعداد زیادی پین از خود میکروکنترلر است. بنابراین برای این منظور از شیفت رجیسترها استفاده می شود. علاوه بر این، جریان مصرف شده توسط LED های بخش علامت ممکن است بیشتر از جریانی باشد که خروجی معمولی میکروکنترلر می تواند ارائه دهد.

برای کنترل نشانگرهای هفت بخش بزرگ، مانند FYS-23011-BUB-21، از درایورهای تخصصی استفاده می شود، به عنوان مثال، یک میکرو مدار MBI5026.

داخل نشانگر هفت بخش چیست؟

خب یه چیز کوچولو خوشمزه هر مهندس الکترونیک اگر به "درون" اجزای رادیویی علاقه نداشت، یکی از آنها نبود. این چیزی است که در داخل نشانگر ALS324B1 وجود دارد.

مربع های مشکی روی پایه کریستال های LED هستند. در اینجا می توانید جامپرهای طلایی را ببینید که کریستال را به یکی از پایانه ها متصل می کند. متأسفانه، این نشانگر دیگر کار نخواهد کرد، زیرا همین بلوزها پاره شده اند. اما می‌توانیم ببینیم که پشت تابلوی تزئینی اسکوربورد چه چیزی پنهان شده است.

مدیر نور. لحظه ای که ایمیل یا پیامی دریافت می کنید، تلفن شما با استفاده از نشانگر داخلی خود سعی می کند توجه شما را به خود جلب کند. اما با سوسو زدن LED، شما هرگز مشخص نمی‌کنید که دقیقاً چه رویدادی رخ داده است و همچنان باید آن را بردارید. تا زمانی که Light Manager را نصب نکنید.

Light Manager برنامه ای برای اندروید است که به شما کمک می کند نشانگر LED گجت خود را پیکربندی کنید. با استفاده از این اپلیکیشن به آن یاد می‌دهید که با رنگ‌های مختلف به برخی رویدادها واکنش نشان دهد، مثلاً زمانی که پیام جدیدی در واتس‌اپ یا رویدادی از تقویم شما می‌رسد.

به طور پیش فرض، برنامه از قبل دارای تعدادی تنظیمات برای محبوب ترین رویدادها است. اما شما می توانید سیگنال هایی را که به شما بی ربط هستند را در هر زمان حذف کنید و آنچه را که نیاز دارید اضافه کنید. برای این کار کافیست عنصر مورد نظر را لمس کنید و به منوی تنظیمات اعلان هدایت خواهید شد. در اینجا می توانید فرکانس چشمک زدن را تنظیم کنید، رنگ LED را انتخاب کنید و بلافاصله تنظیماتی را که در عمل انجام داده اید بررسی کنید.

اگر برنامه ای که می خواهید از آن اعلان دریافت کنید در لیست نیست، می توانید خودتان آن را اضافه کنید. برای انجام این کار، به حالت عملیات جایگزین Light Manager بروید و سپس «Add application» را انتخاب کنید. لیستی از تمام برنامه های نصب شده روی گوشی هوشمند خود را مشاهده خواهید کرد. برنامه مورد نظر خود را انتخاب کنید و یک اعلان LED برای آن اضافه کنید.

لطفاً توجه داشته باشید که Light Manager می تواند نه تنها رویدادهای برنامه، بلکه رویدادهای مختلف سیستم را نیز گزارش کند. به عنوان مثال، این برنامه می تواند زمانی که باتری شما کم است، سیگنال شبکه وجود ندارد یا حالت بی صدا را روشن کرده اید، به شما اطلاع دهد. همچنین ایده خوبی است که به تنظیمات پیشرفته برنامه نگاه کنید، جایی که می توانید فرکانس سوسو زدن سیگنال را تنظیم کنید، حالت خواب را فعال کنید (زمانی از روز که مدیر نور مزاحم شما نمی شود) و زمان را برای خودکار تغییر دهید. خاموش شدن فعالیت LED

تنظیم نشانگر LED برای اطلاع رسانی در مورد رویدادهای مختلف:

اپلیکیشن Light Manager را برای اندروید دانلود کنیدمی توانید لینک زیر را دنبال کنید

توسعه دهنده: MC Koo
پلتفرم: اندروید ( بستگی به دستگاه داره)
زبان رابط: روسی (RUS)
وضعیت: کامل
ریشه: نیازی نیست



این مقاله مجموعه مقالات من در مورد سازماندهی نشانگرهای دینامیکی در میکروکنترلرهای PIC و نشانگرهای LED را ادامه می دهد. اینم لینک های پست های قبلی:

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

در هر یک از وقفه ها با فاصله 2 میلی ثانیه (در این مورد از تایمر TMR0)، یک مرحله نشانگر دینامیکی (DI) طبق الگوریتمی تهیه می شود که شامل پنج مرحله کنترل رجیستر و نشانگر است.

فاز 2: لبه مثبت در پایه 12 رجیستر (ST_CP) حالت صفر رجیستر را روی لچ خروجی می نویسد. در اینجا و بیشتر، قبل از شروع نشانگر، نشانگر با پتانسیل صفر در بخش ها خاموش می شود.

فاز سوم: با کنترل پایه های ثبات 14 (DS - data) و 11 (SH_CP - clock) کد کنترل سگمنت ها در آن نوشته می شود.

فاز 4: با افت مثبت در پایه 12 رجیستر، داده های رجیستر در لچ خروجی نوشته می شود و به دلیل سطوح مثبت روی بیت ها، نشانگر خاموش می ماند.

مرحله 5: در اینجا کد مورد نیاز به خروجی ارقام نشانگر داده می شود و سپس نشانه واقعی رخ می دهد.

اگر مدار از یک نشانگر 4 رقمی استفاده می کند، برای عملکرد صحیح باید روی OK تنظیم شود. اگر نیاز به کنترل 8 بیت دارید، از 8 پورت MK استفاده می شود، در حالی که 4 پورت باقی مانده به سادگی بیت ها را کنترل می کنند (در فاز 4 آنها باید سطح بالایی داشته باشند). شایان ذکر است که در این حالت می توان از نشانگرهایی با هر دو OK و OA استفاده کرد که به ترتیب بخش ها یا ارقام را به رجیستر متصل می کند (به دلایل ذکر شده در زیر، در حالت اول ترجیحاً سازماندهی بخش DI به تفکیک بخش، و در دوم - بیت به بیت).

با استفاده از این روش، می توانید دو نشانگر چهار بیتی را با استفاده از یک شیفت رجیستر به PIC16F676 MCU متصل کنید، در حالی که چهار پورت رایگان برای استفاده باقی می گذارید. به عنوان مثال، برای چنین اتصالی، افراد از ترکیب توابع ورودی DI و آنالوگ در برخی از پورت های MK استفاده کردند (به نظر من، یک تصمیم بسیار مشکوک) که منجر به پیچیدگی قابل توجهی در مدار و برخی محدودیت ها شد که نویسندگان هشدار می دهند. با استفاده از نمودار اتصال من، همه چیز به سادگی و زیبایی حل می شود - ورودی های جداگانه، نشانه های جداگانه، به علاوه دو پورت دیگر (از جمله MCLR) برای دکمه ها.

برای آزمایش این روش کنترل، مدار ساده زیر بر روی PIC12F629 MCU و نشانگر FYQ3641A پیشنهاد شده است که به طور متناوب کلمه "test" و عدد 1234 را روی نشانگر نمایش می دهد.

در اینجا تصمیم گرفته شد که از یک بخش به بخش DI استفاده شود (در هر لحظه یک قطعه روشن می شود و روی پین های بیت یک کد وجود دارد که در هر بیت: 0 - اگر این بخش باید در یک بیت مشخص روشن شود و 1 - در غیر این صورت)، که در آن جریان های پیک به رجیستر منتقل می شود. چرا؟ دو دلیل برای این وجود دارد: اولی حداکثر ظرفیت بار خروجی 74HC595 35 میلی آمپر در مقابل 25 میلی آمپر برای کنترل کننده های PIC است. نکته دوم و اصلی این است که یک جریان نزدیک به حد مجاز از طریق درگاه خروجی MK از نظر تئوری می تواند پتانسیل خروجی خود را تا سطح سوئیچینگ ورودی های ثبت افزایش دهد که منجر به خطاهای عملیاتی می شود. و بنابراین، جریان های 6-7 میلی آمپر به درگاه های MK جریان می یابد و پتانسیل های موجود در خروجی ها مطمئناً از سطح TTL تجاوز نمی کند.

همانطور که در بالا ذکر شد، فاصله وقفه 2 میلی ثانیه است که مطابق با نرخ تجدید نشانگر 64 هرتز است و درخشش آن برای چشم کاملاً راحت است.

این روش DI، از جمله موارد دیگر، امکان نصف کردن تعداد مقاومت‌های محدودکننده جریان (R2-R5) را فراهم کرد.

این دستگاه بر روی تخته نان به اصطلاح "بدون لحیم کاری" مونتاژ می شود.

نشانگر را می توان با هر یک از سری های 3641A جایگزین کرد.

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

برنامه کنترل MK به زبان C نوشته شده و در محیط ترجمه شده است.

کد در MikroC، پروژه، فایل HEX در برنامه.

برای استفاده از این روش اتصال در توسعه های تجاری، لطفا با من تماس بگیرید.

فهرست عناصر رادیویی

تعیین تایپ کنید فرقه تعداد توجه داشته باشیدخرید کنیددفترچه یادداشت من
DD1 MK PIC 8 بیتی

PIC12F629

1 به دفترچه یادداشت
DD2 ثبت نام74HC5951 به دفترچه یادداشت
H.L. شاخصFYQ36411 به دفترچه یادداشت
R1 مقاومت

30 کیلو اهم

1 به دفترچه یادداشت
R2 مقاومت

430 اهم

1 به دفترچه یادداشت
R3 مقاومت

430 اهم

1

شکل 1 محل قطعات نشانگر LED

نشانگرهای LED ساده ترین وسیله برای نمایش اطلاعات نمادین هستند. طراحی آنها مجموعه ای از LED است که به شکل بخش هایی با یک شکل خاص ساخته شده است. شکل 1 رایج ترین طرح بندی بخش را نشان می دهد که به شما امکان می دهد اعداد 0...9 و بسیاری از کاراکترهای اضافی دیگر را نمایش دهید. در داخل محفظه، همه LED ها دارای یک نقطه اتصال مشترک هستند. یکپارچه شده با هم می توانند آند (آند مشترک) یا کاتد (کاتد مشترک) باشند. رایج ترین رنگ های درخشان قرمز و سبز هستند. با مصرف جریان برابر، LED های قرمز، به عنوان یک قاعده، خروجی نور بیشتری دارند. مصرف انرژی به ولتاژ منبع تغذیه و تکنولوژی ساخت بستگی دارد. جریان بخش نشانگرهای مدرن می تواند کمتر از 1 میلی آمپر باشد.


شکل 2 اتصال نشانگر برای نشانگر پویا

برای برجسته کردن علامت مورد نیاز روی نشانگر، باید از 8 پین روی میکروکنترلر استفاده کنید. هنگامی که نمایش نقطه (کاما) ضروری نیست، یک خط را می توان با حذف بخش H ذخیره کرد. با استفاده از تعداد نشانگرهای بیشتر، تعداد خطوط ورودی/خروجی به میزان قابل توجهی افزایش خواهد یافت. دو اندیکاتور به 16 خط، 3 نشانگر به 24 و غیره نیاز دارند. واضح است که برای اکثر کاربردها، چنین استفاده بیهوده از پین ها کاملاً غیرقابل قبول است. این مشکل با استفاده از نمایشگر پویا قابل حل است. برای انجام این کار، به جای اتصال مستقیم سگمنت ها به میکروکنترلر، آنها را در گروه های مشترکی که در شکل 2 نشان داده شده است، ترکیب می کنند. مدار از نشانگر TOT-3361AH-LN برای 3 مکان آشنا با کاتدهای مشترک استفاده می کند. پورت D برای کنترل LED های سگمنت های A...H استفاده می شود. کاتدهای K0...K2 به ترتیب مستقیماً به خطوط 0...2 پورت B متصل می شوند (برای نشانگرهای انواع دیگر با جریان کل ≥20 میلی آمپر، عناصر بافر اضافی مورد نیاز است). در ابتدا نماد مربوط به آشنایی صفر بر روی نشانگر نمایش داده می شود. در این حالت، سطح ولتاژ در خط PB0 روی کم و روی PB1 و PB2 بالا تنظیم می شود (در غیر این صورت نماد در هر سه موقعیت نمایش داده می شود). پس از مدت زمانی مشخص، نماد بعدی به ترتیب خروجی می شود و اکنون کاتد K1 به زمین متصل می شود (در خط PB1 یک سطح پایین، در PB0 و PB2 یک سطح بالا وجود دارد). در مرحله بعد، اطلاعات در بالاترین موقعیت نشانگر (در PB2 log.0، PB0، PB1 log.1)، سپس دوباره در صفر و غیره نمایش داده می شود. در نرخ‌های تازه‌سازی کاراکتر ≥ 50 هرتز، اینرسی بینایی انسان ظاهر می‌شود. سوسو زدن (اثر سوئیچینگ) ناپدید می شود. تصویر به طور مداوم درک می شود، گویی همه نمادها دائماً روشن می شوند. نمونه ای از زیربرنامه نمایش پویا در زیر آورده شده است. به دو پارامتر نیاز دارد: کد کاراکتر و شماره موقعیتی که این کاراکتر باید در آن نمایش داده شود.

; از آنجایی که نشانگر شامل 3 مکان آشنا است، زیر برنامه. خروجی کاراکتر باید با فرکانس ≥ 150 هرتز (3 ؛ آشنایی x 50 هرتز = 150 هرتز) فراخوانی شود. دوره تعویض باید؛ 1/150 هرتز = 6667 میکرو ثانیه باشد که در فرکانس 1 مگاهرتز برای AVR است. 6667 سیکل فرکانس ساعت ژنراتور خواهد بود. دائمی؛ اندازه گیری فواصل زمانی با تایمر در حال اجرا راحت تر است. در حالت تنظیم مجدد تصادفی (حالت CTC). ATmega8 این را دارد. حالت برای تایمر شمارنده 16 بیتی 1 و 8- وجود دارد. bit timer-counter 2. برای این منظور (در مورد استفاده از تایمر شمارنده 1) دو ثبات وجود دارد. فضاهای RVV: OCR1AH ​​(بایت بالا)، OCR1AL (بایت کم). ; هنگامی که مدار مقایسه فعال است، ثبت شمارش. TCNT1H:TCNT1L بعد از هر پالس ورودی شروع می شود. واحد افزایش محتویات آن تا زمانی که; مقدار با مقدار نوشته شده در آن برابر نیست. OCR1AH:OCR1AL. در این لحظه محتویات TCNT1H:TCNT1L ; تنظیم مجدد می شود و پرچم OCF1A در TIMSK RV تنظیم می شود. اگر؛ بیت OCIE1A را در TIMSK و بیت I را در SREG از پیش تنظیم کنید. سپس به طور تصادفی یک انتقال به کنترل کننده وقفه وجود خواهد داشت. از ماژول مقایسه A. تایمر شمار 1 نیز وجود دارد. همچنین یک ماژول مشابه دوم برای مقایسه B با ثبات. مقایسه OCR1BH:OCR1BL که عملکرد آن مشابه است. در بالا توضیح داده شد. .def data = R16 ;ثبت نام با کد نماد.def pos = R17 ;ثبت نام با شماره موقعیت نشانگر فعلی.def temp = R18 ;ثبت نام برای intermediate operations.dseg .org SRAM_START ;سلول های SRAM برای بافر نمایش: . بایت 3 ;در نشانگر.cseg .org 0 rjmp اولیه ;شروع برنامه.org 0x0006 ;کنترل وقفه برای rjmp service_T1COMPA ;تطبیق از ماژول مقایسه A ; دوره وقفه در حالت CTC: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N)، که در آن N ضریب تقسیم پیش مقیاس کننده است. فرکانس در ورودی تایمر شمارنده 1. حالت کار تنظیم شده است. بیت‌های WGM13:WGM10 (WGM10 و WGM11 در کنترل RV TCCR1A، ؛ WGM12 و WGM13 در TCCR1B)، و مقدار N توسط بیت‌ها مشخص می‌شود. CS12:CS10 در رجیستر TCCR1A. برای دوره T = 6667 میکرو ثانیه; (WGM13:WGM10 = 0100 – CTC برش)، N = 1 (CS12:CS10 = 001 – ؛ پیش مقیاس غیرفعال) و Fclk=1 مگاهرتز – محتویات OCR1AH:OCR1AL ; = 6667. .org 0x0020 اولیه: ldi temp,high(RAMEND) ؛ stack starting out SPH, temp ldi temp, low (RAMEND) out SPL, temp . clr pos clr temp ldi temp,1 ;بافر نمایشگر را با اعداد 1...3 sts buffer, temp ldi temp, 2 sts buffer + 1, temp ldi temp, 3 sts buffer + 2, temp out TCCR1A, temp ldi temp out پر کنید ، (1<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0 و غیره brne PC+2 clr pos pop temp ;در هنگام خروج، بازیابی از stack out SREG,temp ;registers temp, SREG reti ; زیر برنامه نمایش پویا؛ ZH:ZL – شاخص برای تبدیل جدولی. R18 - ثبت نام برای عملیات میانی؛ R16 – شماره کاراکتر در جدول تبدیل ind_tabl؛ هنگام ورود به یک زیر برنامه؛ R17 - شماره موقعیت هنگام ورود به زیربرنامه (0…2)؛ پرچم T در ورودی زیربرنامه تعیین می کند. وجود (T=1) یا عدم وجود (T=0) کاما din_ind: clr R18؛ رجیستر کمکی را با ورودی ldi ZH،high(2*ind_tabl) پاک کنید؛ آدرس شروع ldi ZL،low(2*ind_tabl را وارد کنید. ) به شاخص Z؛ جداول تبدیل کاراکتر ZL,R16 را اضافه کنید؛ به نشانگر Z یک افست اضافه کنید، adc ZH,R18؛ مربوط به موقعیت نماد در جدول lpm R16,Z؛ نماد bld R16,7 را از جدول را در R16; مقدار را در مهم ترین بیت R16 (قطعه H) clt ;کاما وارد کنید، که از طریق پرچم T ldi R18,0b11111110 sbrc R17,0 منتقل می شود؛ اگر رقم فعلی 1 باشد، آن را وارد می کنیم. R18 ماسک ldi R18,0b11111101 ;پورت B برای روشن کردن کاتد K1 sbrc R17,1 ؛ اگر رقم فعلی 2 است، در R18 ماسک ldi R18,0b11111011 ;پورت B برای روشن کردن کاتد K2 فشار دهید R17 را فشار دهید. در پشته، رجیستر را با شماره موقعیت در R17,PORTB ذخیره کنید؛ وضعیت فعلی پورت را در بافر R17 بخوانید یا R17,0b00000111 و R18,R17 خارج از PORTB,R17؛ همه بخش ها را با اعمال log.1 تا K0 خاموش کنید. ..K2 خارج کردن PORTD,R16؛ خروجی نماد بعدی از PORTB، R18 به پورت D، اتصال کاتد بعدی R17 به زمین؛ بازیابی ثبات با شماره موقعیت از پشته ret ind_tabl: جدول برخی از نمادها با یک مشترک کاتد؛ تعداد کاراکترهای HGFEDCBA HGFEDCBA در جدول.db 0b00111111, 0b00000110 ; 0,1 0, 1 .db 0b01011011, 0b01001111 ; 2,3 2, 3 .db 0b01100110, 0b01101101 ; 4,5 4, 5 .db 0b01111101, 0b00000111 ; 6,7 6, 7 .db 0b01111111, 0b01101111 ; 8,9 8, 9 .db 0b01110111, 0b01111100 ; A,b 10, 11 .db 0b01011110, 0b01011110 ; C,d 12, 13 .db 0b01111001, 0b01110001 ; E,F 14, 15 .db 0b01000000, 0b00000000 ; -، فضای 16، 17

خطوط پورت I/O AVR دارای مشخصات بار متقارن هستند. آنها جریان ورودی و خروجی برابر تا 20 میلی آمپر را امکان پذیر می کنند. بنابراین می توان از اندیکاتورهایی با آند مشترک و کاتد مشترک با موفقیت یکسان استفاده کرد. علاوه بر این، پین ها برای اتصال بخش ها اغلب عملکردهای اضافی دکمه های نظرسنجی را انجام می دهند. برای مثال، در شکل 2، دکمه SBN از طریق مقاومت محدودکننده جریان RN به خط قطعه A متصل شده است. به صورت دوره ای، PD0 به عنوان ورودی برای خواندن وضعیت دکمه پیکربندی می شود. در این حالت، مقاومت کششی داخلی به عنوان مقاومت بار عمل می کند.


شکل 3 کاهش تعداد پایه های میکروکنترلر
الف - استفاده از شیفت رجیستر
ب - استفاده از نشانگرهایی با الگوهای مختلف اتصال LED

اگر از ریز مدارهای کمکی همراه با میکروکنترلر استفاده شود، می توان تعداد پین ها را به میزان قابل توجهی کاهش داد. برای مثال شکل 3a نشان می دهد که چگونه یک شیفت رجیستر 74HC164 یا مشابه آن برای این منظور استفاده می شود. این اتصال 6 خط ورودی/خروجی را آزاد می کند. در برخی موارد، ممکن است استفاده از رمزگشاها و شمارنده های کد هفت قسمتی در انواع مختلف توجیه شود. علاوه بر این، یک فرصت صرفه جویی دیگر بر اساس استفاده از خطوط پورت z-state وجود دارد. مدار در شکل 3b مشابه مدار شکل 2 است، با این استثنا که یک نشانگر سه رقمی با یک آند مشترک HG2 علاوه بر این به موازات نشانگر با یک کاتد مشترک HG1 متصل می شود. خطوط PB0...PB2 به ترتیب سوئیچینگ آندهای A0...A2 نشانگر HG2 و کاتدهای K0...K2 HG1 را به طور همزمان انجام می دهند. هنگامی که اطلاعات در موقعیت صفر HG2 (آند A0) نمایش داده می شود، یک سطح ولتاژ بالا در خط PB0 ایجاد می شود. در خطوط پورت D، log.0 در آن سگمنت هایی که باید روشن شوند و حالت z در قسمت هایی که باید خاموش شوند، تنظیم می شود. هنگامی که کمترین علامت HG1 (کاتد K0) فعال است، یک سطح ولتاژ پایین باید در خط PB0 وجود داشته باشد و یک مقدار منطقی به پورت D خروجی می‌شود که در آن سطح منطقی 1 روی خطوط مربوط به بخش‌های روشن و حالت z است. خاموش شدن اگر نویسه‌ها به موقعیت‌های نشانگر غیر از A0 و K0 خروجی می‌شوند، PB0 باید به حالت امپدانس بالا تغییر یابد. به طور طبیعی، برنامه خروجی با چنین طرح سوئیچینگ به طور قابل توجهی پیچیده تر از آنچه در شکل نشان داده شده است خواهد بود. جدول نمادها بسیار بزرگتر به نظر می رسد زیرا اولاً برای هر یک از آنها لازم است علاوه بر مقدار PORTD، محتویات ثبت DDRD نیز ذخیره شود که از طریق آن خطوط مربوطه باید ذخیره شوند. به حالت z منتقل می شود (برای ورودی تنظیم شده است). و در مرحله دوم، نمادهای HG1 با سایر مقادیر PORTD معکوس در رابطه با نشانگر با یک کاتد مشترک HG2 مطابقت دارد.