LED долоон сегментийн үзүүлэлтүүд. LED индикатор Тэгээд одоо энэ бүхэн хэрхэн програмчлагдсан бэ?

Энэ хичээлээр бид долоон сегментийн LED индикаторуудыг микроконтроллерт холбох диаграммууд болон индикаторуудыг хэрхэн удирдах талаар суралцах болно.

Долоон сегментийн LED үзүүлэлтүүд нь дижитал мэдээллийг харуулах хамгийн алдартай элементүүдийн нэг хэвээр байна.

Үүнд тэдний дараах чанарууд нөлөөлдөг.

  • Бага үнэ. Дэлгэцийн хувьд LED дижитал үзүүлэлтээс хямд зүйл байхгүй.
  • Төрөл бүрийн хэмжээ. Хамгийн жижиг, хамгийн том үзүүлэлтүүд нь LED юм. 2.5 мм-ээс 32 см-ийн өндөртэй LED үзүүлэлтүүдийг би мэднэ.
  • Харанхуйд гэрэлтэх. Зарим хэрэглээнд энэ өмч нь бараг шийдэмгий байдаг.
  • Тэд өөр өөр гялалзсан өнгөтэй байдаг. Тэр ч байтугай хоёр өнгөтэй байдаг.
  • Хяналтын гүйдэл нэлээд бага. Орчин үеийн LED индикаторуудыг нэмэлт товчлуургүйгээр микроконтроллерийн зүүтэй холбож болно.
  • Ашиглалтын хүнд нөхцөлд (температурын хүрээ, өндөр чийгшил, чичиргээ, түрэмгий орчин гэх мэт) тохиромжтой. Энэ чанарын хувьд LED үзүүлэлтүүд нь бусад төрлийн дэлгэцийн элементүүдтэй тэнцүү байдаггүй.
  • Хязгааргүй үйлчилгээний хугацаа.

LED үзүүлэлтүүдийн төрлүүд.

Долоон сегментийн LED үзүүлэлт нь долоон LED - оронтой сегментийг ашиглан тэмдэгтийг харуулдаг. Найм дахь LED нь аравтын бутархайг гэрэлтүүлдэг. Тэгэхээр долоон сегментийн үзүүлэлтэд 8 сегмент байна.

Сегментүүдийг "А"-аас "H" хүртэл латин үсгээр тэмдэглэв.

LED бүрийн анод эсвэл катодууд нь заагч дээр нэгтгэгдэж, нийтлэг утас үүсгэдэг. Тиймээс нийтлэг анод, нийтлэг катодтой индикаторууд байдаг.

Нийтлэг анод бүхий LED индикатор.

Нийтлэг катод бүхий LED индикатор.

Статик LED удирдлага.

LED үзүүлэлтүүд нь гүйдэл хязгаарлах резистороор дамжуулан микроконтроллерт холбогдсон байх ёстой.

Резисторын тооцоолол нь тусдаа LED-ийнхтэй адил байна.

R = (U нийлүүлэлт - U сегмент) / I сегмент

Энэ хэлхээний хувьд: I сегмент = (5 – 1.5) / 1000 = 3.5 мА

Орчин үеийн LED үзүүлэлтүүд нь 1 мА гүйдлийн үед ч нэлээд тод гэрэлтдэг. Нийтлэг анод бүхий хэлхээний хувьд сегментүүд асч, хяналтын зүү дээр микроконтроллер нь бага түвшнийг үүсгэдэг.

Нийтлэг катодтой индикаторын холболтын диаграммд цахилгаан хангамж ба хяналтын дохионы туйлшрал өөрчлөгддөг.

Сегмент нь асах бөгөөд хяналтын зүү дээр өндөр түвшний (5 В) үүсэх болно.

LED үзүүлэлтүүдийг хянах олон талт горим.

Долоон сегментийн индикатор бүрийг микроконтроллерт холбохын тулд найман зүү шаардлагатай. Хэрэв 3-4 үзүүлэлт (цифр) байвал даалгавар нь бараг боломжгүй болно. Микроконтроллерийн зүү хангалтгүй байна. Энэ тохиолдолд индикаторуудыг олон талт горимд, динамик заагч горимд холбож болно.

Шалгуур үзүүлэлт бүрийн ижил нэртэй сегментүүдийн дүгнэлтийг нэгтгэсэн болно. Үүний үр дүнд сегментийн зүү болон нийтлэг заагч зүү хооронд холбогдсон LED матриц үүсдэг. Нийтлэг анод бүхий гурван оронтой индикаторын олон талт хяналтын хэлхээг энд үзүүлэв.

Гурван индикаторыг холбохын тулд статик хяналтын горимд байгаа шиг 24 биш харин 11 зүү шаардлагатай байв.

Динамик дэлгэцтэй бол ямар ч үед зөвхөн нэг оронтой тоо асдаг. Өндөр түвшний дохиог (5 В) нэг битийн нийтлэг зүү рүү нийлүүлдэг бөгөөд доод түвшний дохиог энэ битэд асдаг сегментүүдийн сегментийн зүү рүү илгээдэг. Тодорхой хугацааны дараа дараагийн ялгадас асдаг. Түүний нийтлэг зүү дээр өндөр түвшнийг хэрэглэж, энэ битийн төлөвийн дохиог сегментийн зүү рүү илгээдэг. Төгсгөлгүй давталтын бүх цифрүүдийн хувьд гэх мэт. Циклийн хугацааг заагч нөхөн төлжих хугацаа гэж нэрлэдэг. Хэрэв нөхөн төлжих хугацаа хангалттай богино байвал хүний ​​нүд ялгадас солигдохыг анзаардаггүй. Бүх ялгадас байнга гэрэлтдэг мэт санагдах болно. Шалгуур үзүүлэлтүүдийг анивчихаас зайлсхийхийн тулд нөхөн сэргээх мөчлөгийн давтамж дор хаяж 70 Гц байх ёстой гэж үздэг. Би дор хаяж 100 Гц ашиглахыг хичээдэг.

Нийтлэг катодтой LED-ийн динамик заагч хэлхээ нь иймэрхүү харагдаж байна.

Бүх дохионы туйл өөрчлөгддөг. Одоо идэвхтэй цэнэгийн нийтлэг утсанд бага түвшнийг хэрэглэж, асах ёстой сегментүүдэд өндөр түвшинг хэрэглэнэ.

Гэрэл ялгаруулах диод (LED) үзүүлэлтүүдийн динамик дэлгэцийн элементүүдийн тооцоо.

Тооцоолол нь статик горимоос арай илүү төвөгтэй байдаг. Тооцооллын явцад дараахь зүйлийг тодорхойлох шаардлагатай.

  • сегментүүдийн дундаж гүйдэл;
  • сегментүүдийн импульсийн гүйдэл;
  • сегментийн эсэргүүцлийн эсэргүүцэл;
  • ялгадасуудын нийтлэг терминалуудын импульсийн гүйдэл.

Учир нь Заагч цифрүүд ээлжлэн асч, гэрлийн тод байдал нь дундаж гүйдлийг тодорхойлдог. Бид индикаторын параметрүүд болон шаардлагатай гэрэлтүүлэг дээр үндэслэн сонгох ёстой. Дундаж гүйдэл нь ижил тогтмол гүйдэлтэй статик удирдлагатай тохирох түвшинд индикаторын тод байдлыг тодорхойлно.

1 мА сегментийн дундаж гүйдлийг сонгоцгооё.

Одоо сегментийн импульсийн гүйдлийг тооцоолъё. Шаардлагатай дундаж гүйдлийг хангахын тулд импульсийн гүйдэл N дахин их байх ёстой. Энд N нь индикаторын цифрүүдийн тоо юм.

I сегмент imp. = I сегмент дундаж *Н

Манай схемийн I сегментийн хувьд. imp. = 1 * 3 = 3 мА.

Бид гүйдлийг хязгаарлаж буй резисторуудын эсэргүүцлийг тооцоолно.

R = (U нийлүүлэлт - U сегмент) / I сегмент. imp.

R = (5 - 1.5) / 0.003 = 1166 Ом

Бид ялгадасуудын нийтлэг терминалуудын импульсийн гүйдлийг тодорхойлдог. 8 сегмент нэгэн зэрэг гэрэлтэх боломжтой бөгөөд энэ нь нэг сегментийн импульсийн гүйдлийг 8-аар үржүүлэх шаардлагатай гэсэн үг юм.

I ангилал imp. = I сегмент imp. * 8

Манай хэлхээний хувьд I ангиллын imp. = 3 * 8 = 24 мА.

  • Бид резисторын эсэргүүцлийг 1.1 кОм гэж сонгоно;
  • сегментийн хяналтын микроконтроллерийн зүү нь дор хаяж 3 мА гүйдлийг хангах ёстой;
  • индикаторын цифрийг сонгох микроконтроллерийн зүү нь дор хаяж 24 мА гүйдлийг хангах ёстой.

Ийм гүйдлийн утгуудын тусламжтайгаар индикаторыг нэмэлт товчлуур ашиглахгүйгээр Arduino хавтангийн тээглүүртэй шууд холбож болно. Хурц үзүүлэлтүүдийн хувьд ийм гүйдэл хангалттай.

Нэмэлт түлхүүр бүхий схемүүд.

Хэрэв индикаторууд илүү их гүйдэл шаарддаг бол нэмэлт товчлуурууд, ялангуяа цифр сонгох дохиог ашиглах шаардлагатай. Нийт цэнэгийн гүйдэл нь нэг сегментийн гүйдлээс 8 дахин их байна.

Цэнэглэхийг сонгох транзисторын унтраалга бүхий олон талт горимд нийтлэг анод бүхий LED индикаторын холболтын диаграмм.

Энэ хэлхээнд бит сонгохын тулд доод түвшний дохиог үүсгэх шаардлагатай. Холбогдох түлхүүр нээгдэж, индикаторын цэнэгийг цэнэглэнэ.

Цэнэглэхийг сонгох транзисторын унтраалга бүхий олон талт горимд нийтлэг катод бүхий LED индикаторын холболтын диаграмм.

Энэ хэлхээнд бит сонгохын тулд өндөр түвшний дохио үүсгэх шаардлагатай. Харгалзах түлхүүр нь газардуулгын нийтлэг цэнэгийн терминалыг нээж хаах болно.

Сегментүүд болон нийтлэг битийн зүү хоёуланд нь транзисторын унтраалга ашиглах шаардлагатай хэлхээ байж болно. Ийм схемийг өмнөх хоёроос хялбархан нэгтгэдэг. Үзүүлсэн бүх хэлхээг индикаторыг микроконтроллерийн тэжээлийн эх үүсвэртэй тэнцүү хүчдэлээр тэжээх үед ашигладаг.

Нийлүүлэлтийн хүчдэл нэмэгдсэн үзүүлэлтүүдийн түлхүүрүүд.

Сегмент бүр нь цувралаар холбогдсон хэд хэдэн LED-ээс бүрддэг томоохон үзүүлэлтүүд байдаг. Ийм үзүүлэлтүүдийг тэжээхийн тулд 5 В-оос их хүчдэлтэй эх үүсвэр шаардлагатай.Свитчүүд нь микроконтроллерийн түвшний дохиогоор (ихэвчлэн 5 В) хянагддаг нэмэгдсэн хүчдэлийн шилжүүлэлтийг хангах ёстой.

Заагч дохиог газартай холбосон товчлууруудын хэлхээ өөрчлөгдөөгүй хэвээр байна. Мөн цахилгаан унтраалга нь өөр схемийн дагуу баригдсан байх ёстой, жишээлбэл, иймэрхүү.

Энэ хэлхээнд идэвхтэй битийг хяналтын дохионы өндөр түвшинд сонгоно.

Заагч цифрүүдийг солих хооронд бүх сегментийг богино хугацаанд (1-5 мкс) унтраах хэрэгтэй. Энэ хугацаа нь түлхүүр солих түр зуурын процессуудыг дуусгахад шаардлагатай.

Бүтцийн хувьд гадагшлуулах зүүг олон оронтой индикаторын нэг тохиолдолд нэгтгэж болно, эсвэл тусдаа нэг оронтой индикаторуудаас олон оронтой индикаторыг угсарч болно. Нэмж дурдахад та сегмент болгон нэгтгэсэн бие даасан LED-ээс индикаторыг угсарч болно. Энэ нь ихэвчлэн маш том үзүүлэлтийг угсрах шаардлагатай үед хийгддэг. Дээрх бүх схемүүд ийм сонголтуудад хүчинтэй байх болно.

Дараагийн хичээлээр бид долоон сегмент бүхий LED индикаторыг Arduino самбарт холбож, түүнийг удирдах номын сан бичих болно.

Ангилал: . Та үүнийг хавчуурга хийж болно.

LED индикатор эсвэл камерын флэшийг шууд асаах/унтраах боломжийг танд олгодоггүй; зарим утсанд ийм сонголт байдаг.

Хэрхэн олон өнгийн гэрлийг програмын дагуу анивчих, өөрийн "Гар чийдэн" -ийг хэрхэн бичих эсвэл өөр ямар төхөөрөмжийн LED-ийг хянах боломжтой - энэ талаар доороос мэдэх болно.

ES Explorer ашиглан HTC Desire-ийн файлын системийг судалж байхдаа би санамсаргүй байдлаар сонирхолтой лавлахуудыг олж авснаар бүх зүйл эхэлсэн: /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(Бүтэн тоо.toString(гэрэлт));

fw.close();

) барих (Үл хамаарах e) (

// LED удирдлага байхгүй байна

}

}


// Нил ягаан өнгийн индикаторыг асаана уу

ledControl("хув" , 255);

ledControl("цэнхэр", 255);


// Дэлгэцийг бараан болгох

ledControl("lcd-арын гэрэлтүүлэг" , 30 );


// Товчлуурын арын гэрлийг унтраа

ledControl("товчлуурын арын гэрэлтүүлэг" , 0 );


// Дунд зэргийн гэрэлтэй гар чийдэнг зохион байгуул

ledControl("гар чийдэн" , 128 );

Эх код бүхий жишээ програмыг татаж авч болно.

Дүгнэлт
Бүгд! Одоо утас нь гацуур мод шиг асдаг. Энэ кодыг зөвхөн Android 2.2 үйлдлийн системтэй HTC Desire дээр туршиж үзсэн боловч бусад төхөөрөмж дээр ажиллах магадлалтай. Фокус таны утсан дээр ажиллах эсэх талаар надад бичээрэй.

Онооны самбар, цахим цаг болон бусад зүйл дээр тэмдэгтүүдийг харуулах. LED индикатор нь цагаан толгойн үсгийн болон бэлгэдлийн тэмдэгтүүдийг харуулдаг энгийн загвар юм. Бүтцийн хувьд энэ нь LED-ийн угсралт бөгөөд элемент бүрийг тэмдгийн сегментийн заагчаар гэрэлтүүлдэг.

Загварын онцлог, төрөл

LED үзүүлэлтүүд нь янз бүрийн мэдээллийг харуулдаг нэгдсэн хэлхээнээс бүрддэг. Ашиглалтын хүчдэл нь 2V-оос 8V хооронд хэлбэлздэг. Тэд байж болно:

сегментчилсэн;
- матриц;
- Шугаман масштаб;
- Ганц бие

Эхний сорт нь ихэвчлэн ашиглагддаг бөгөөд стандарт төрөл юм. Загвараас хамааран бүтцийг 1-4 долоон сегментийн бүлгээс угсарч болно. Объектын хэмжээ болон харуулсан тэмдэгтүүдийн тоо нь тэдгээрийн тооноос хамаарна. Тиймээс долоон сегментийн нэг бүлэг нь зөвхөн нэг тоо эсвэл үсэг харуулах болно. Дөрвөн бүлгийг электрон цагуудад ашигладаг. Гэрийн хэрэглээний хэлхээг сонгохдоо худалдан авагч нь нийтлэг анод ба катод байгаа эсэхийг анхаарч үзэх хэрэгтэй.
Жижиг үзүүлэлтээс гадна олон нийтийн газар харагдахуйц үзүүлэлтүүд бас бий. Гэрэлтүүлгийг нэмэгдүүлэхийн тулд бие даасан бүрэлдэхүүн хэсэг болгон суурилуулсан дараалсан холбогдсон LED-үүдийг ашигладаг. Заагч нь тодорхой тоо эсвэл тэмдгийг харуулахын тулд 11.2 вольтын хүчдэлийг хэрэглэнэ. Элементүүд нь өөрийн гэсэн нэртэй байдаг: A, B, C, D, F эсвэл G. Үйл ажиллагаа нь дижитал ээлжийн бүртгэлүүд болон декодеруудаар тодорхойлогддог.

Өгөгдлийн шифрлэлт ба нэгдсэн хэлхээ

Ийм элементүүдийг хүчдэлийн хангамжийг хянадаг самбар дээр суурилуулсан. Энэ ажил нь програмын код руу нэвтрэх, тусгай микроконтроллер ашиглахтай холбоотой юм. Програмчлалыг ашиглан тодорхой цаг хугацаанд бүрэлдэхүүн хэсгүүдийн дэлгэцэнд нөлөөлдөг цагийг тохируулдаг.
Нэгдсэн хэлхээ нь дэлгэцэнд нийлүүлсэн хоёртын болон хоёртын аравтын бутархай кодыг хөрвүүлдэг. Дотоодын үзүүлэлтүүдийг хянах нийтлэг хэлхээ нь K514ID2 эсвэл K176ID2, импортын 74HC595 загварт байдаг. Менежментийг хоёр аргаар хийх боломжтой.

Микроконтроллероор дамжуулан шууд;
- Ээлжийн регистр ашиглах

Эхний сонголт нь олон тээглүүр холбох шаардлагатай тул амжилтанд хүрэхгүй. Үүнээс гадна одоогийн хэрэглээ нь микроконтроллеруудтай харьцуулахад өндөр байж болно. Долоон сегментийн том үзүүлэлтүүд нь MBI5026 чипээс хамаардаг.

Сегментийн үзүүлэлтүүдийн онцлог

Электроникийн хувьд тэдгээрийг харааны үзлэгт ашигладаг. Бүтэц нь дараахь элементүүдээс бүрдэнэ.

Тэмдэгтийн синтезийн үзүүлэлт нь нэг буюу хэд хэдэн бүрэлдэхүүн хэсгүүдийг ашиглан харааны мэдээллийг харуулах төхөөрөмж юм;
- Өгөгдлийн дэлгэцийн талбар - дотор нь тоо эсвэл бусад тэмдэгтүүдийг харуулсан болно;
- Дэлгэцийн элемент - өөрийн удирдлагатай бүтцийн хэсэг;
- Сегмент - шулуун эсвэл муруй шугам хэлбэрээр харуулсан мэдээллийн дэлгэцийн элемент;
- Танил зай – нэг тэмдэгтийг харуулахад шаардагдах зай

Бүх электрон төхөөрөмжүүд нь үндсэн ажлуудыг гүйцэтгэдэг:

1. Харааны мэдээлэл.
2. Тэд бүрэн дизайнтай.
3. Электрон удирдлагаар тоноглогдсон

Сегментийн өөрчлөлтүүд нь элемент бүр өвөрмөц байдгаараа матрицын өөрчлөлтөөс ялгаатай. Тэмдэгтүүдийн хэлбэр нь тодорхой тоо эсвэл тэмдэгтүүдийг харуулахын тулд тусгайлан бүтээгдсэн. Сүүлийнх нь долоо биш, харин ес, арван дөрөв, арван зургаан сегмент дээр суурилдаг. Энэ тоо 7-оос хэтэрсэн тохиолдолд динамик шилжих заалтыг ашиглах нь нэлээд оновчтой юм. LED дэлгэц, заалтыг хоёр өнгийн хэлбэрээр хийх боломжтой. Өөр өөр өнгийн гэрлийн чийдэнг ашиглаж, нийтлэг хэлхээнд холбодог. Судалгааны үр дүнг нэгтгэснээр хосолсон сүүдэртэй болно.

Дүгнэлт

Шалгуур үзүүлэлтүүдийн ажиллагаа нь LEDгүйгээр боломжгүй юм. Ийм төхөөрөмжүүд нь зөвхөн радио төхөөрөмжид хамааралтай төдийгүй тэмдэг, таймер, үзүүлэлтүүдэд амжилттай ашиглагддаг. Мэдээллийг харуулахын тулд янз бүрийн төрлийн хэлхээ ба удирдлагын төхөөрөмжүүдийг ашиглаж болно.
Энэ сэдэвтэй холбоотой мэдээллийг сошиал хуудсууд дээрээ хуваалцаарай.

Зураг.1 LED заагч сегментүүдийн байршил

LED үзүүлэлтүүд нь бэлгэдлийн мэдээллийг харуулах хамгийн энгийн хэрэгсэл юм. Тэдний загвар нь тодорхой хэлбэрийн сегмент хэлбэрээр хийгдсэн LED-ийн багц юм. Зураг 1-д хамгийн түгээмэл сегментийн байршлыг харуулсан бөгөөд энэ нь 0...9 тоо болон бусад олон нэмэлт тэмдэгтүүдийг харуулах боломжийг олгодог. Орон сууцны дотор бүх LED нь нийтлэг холболтын цэгтэй байдаг. Хамтдаа анод (нийтлэг анод) эсвэл катод (нийтлэг катод) байж болно. Хамгийн түгээмэл гэрэлтдэг өнгө нь улаан, ногоон өнгөтэй. Тэнцүү гүйдлийн хэрэглээтэй бол улаан LED нь дүрмээр бол илүү их гэрлийн гаралттай байдаг. Эрчим хүчний хэрэглээ нь тэжээлийн хүчдэл, үйлдвэрлэлийн технологиос хамаарна. Орчин үеийн үзүүлэлтүүдийн сегментийн гүйдэл нь 1 мА-аас бага байж болно.


Зураг.2 Динамик заалтын индикаторыг холбох

Заагч дээрх шаардлагатай тэмдгийг тодруулахын тулд микроконтроллер дээр 8 зүү ашиглах шаардлагатай болно. Цэг (таслал) харуулах шаардлагагүй үед H сегментийг арилгах замаар нэг мөрийг хадгалах боломжтой. Илүү олон тооны үзүүлэлтийг ашигласнаар оролт/гаралтын шугамын тоо мэдэгдэхүйц нэмэгдэх болно. Хоёр үзүүлэлтэд 16 мөр, 3 үзүүлэлтэд 24 гэх мэт шаардлагатай. Ихэнх хэрэглээний хувьд тээглүүрийг ийм үрэлгэн ашиглах нь хүлээн зөвшөөрөгдөхгүй нь ойлгомжтой. Энэ асуудлыг динамик дэлгэц ашиглан шийдэж болно. Үүнийг хийхийн тулд сегментүүдийг микроконтроллерт шууд холбохын оронд тэдгээрийг 2-р зурагт үзүүлсэн шиг нийтлэг бүлгүүдэд нэгтгэдэг. Уг хэлхээнд TOT-3361AH-LN индикаторыг нийтлэг катодтой танил 3 байршилд ашигладаг. D порт нь A...H сегментийн LED-үүдийг удирдахад ашиглагддаг. K0...K2 катодууд нь B портын 0...2-р шугамд шууд холбогддог (нийт ≥20 мА гүйдэлтэй бусад төрлийн индикаторуудын хувьд нэмэлт буфер элементүүд шаардлагатай болно). Эхэндээ индикатор дээр тэг танилтай тохирох тэмдэг харагдана. Энэ тохиолдолд хүчдэлийн түвшинг PB0 шугам дээр бага, PB1 ба PB2 дээр өндөр гэж тохируулна (эс тэгэхгүй бол тэмдэг нь бүх гурван байрлалд харагдах болно). Тодорхой хугацааны дараа дарааллын дараагийн тэмдэг гарч ирэх ба одоо катод K1 газард холбогдсон байна (PB1 шугам дээр бага түвшин, PB0 ба PB2 дээр өндөр түвшин байна). Дараа нь мэдээллийг индикаторын хамгийн өндөр байрлалд (PB2 log.0 дээр, PB0, PB1 log.1 дээр), дараа нь дахин тэг гэх мэтээр харуулна. Тэмдэгтийн шинэчлэлтийн давтамж ≥ 50 Гц үед хүний ​​харааны инерци илэрч эхэлдэг. Анивчих (шилжих нөлөө) алга болно. Бүх тэмдэгтүүд байнга гэрэлтдэг мэт дүрсийг тасралтгүй хүлээн авдаг. Динамик дэлгэцийн дэд программын жишээг доор өгөв. Үүнд хоёр параметр шаардлагатай: тэмдэгтийн код болон энэ тэмдэгтийг харуулах байрлалын дугаар.

; Шалгуур үзүүлэлт нь 3 танил газрыг агуулж байгаа тул дэд программ; тэмдэгтийн гаралтыг ≥ 150 Гц давтамжтайгаар дуудах ёстой (3 ; танил х 50 Гц = 150 Гц). Солих хугацаа нь байх ёстой; 1/150 Гц = 6667 μs байх ба энэ нь AVR-ийн хувьд 1 МГц давтамжтай байх; генераторын цагийн давтамжийн 6667 цикл байх болно. Байнгын; Ажиллаж буй таймер ашиглан цагийн интервалыг хэмжих нь хамгийн тохиромжтой; санамсаргүй дахин тохируулах горимд (CTC горим). ATmega8-д ийм байна; горим нь 16 битийн таймер-тоологч 1 ба 8-д байдаг; бит таймер-тоолуур 2. Эдгээр зорилгоор (таймер-тоолуур 1 ашиглах тохиолдолд) хоёр регистр байна; RVV зай: OCR1AH ​​(өндөр байт), OCR1AL (бага байт). ; Харьцуулах хэлхээг идэвхжүүлсэн үед тоолох бүртгэл; TCNT1H:TCNT1L нь ирж буй импульс бүрийн дараа эхэлнэ; нэгж болтол нь түүний агуулгыг нэмэгдүүлэх; утга нь бичсэн утгатай тэнцүү биш байна; OCR1AH: OCR1AL. Одоогийн байдлаар TCNT1H:TCNT1L-ийн агуулга; дахин тохируулагдсан бөгөөд TIMSK RV-д OCF1A тугийг тохируулсан. Хэрэв; TIMSK-д OCIE1A бит, SREG-д I битийг урьдчилан тохируулах, ; дараа нь санамсаргүй байдлаар тасалдал зохицуулагч руу шилжих болно; харьцуулах модулиас A. Таймер-тоолуур 1 бас байдаг; мөн B-г регистрүүдтэй харьцуулах хоёр дахь ижил төстэй модуль; харьцуулалт OCR1BH:OCR1BL тэдгээрийн ажиллагаа нь төстэй; дээр дурдсан. .def data = R16 ;тэмдэгт кодоор бүртгүүлнэ.def pos = R17 ;одоо байгаа заагч байрлалын дугаараар бүртгүүлнэ.def temp = R18 ;завсрын үйл ажиллагаанд бүртгүүлнэ.dseg .org SRAM_START ;дэлгэцийн буферт зориулсан SRAM дахь нүднүүд: . байт 3 ;indicator.cseg .org 0 rjmp анхны ;star program.org 0x0006 ;rjmp service_T1COMPA-д зориулсан тасалдал зохицуулагч ;харьцуулалтын модуль А-аас таарах ; CTC горим дахь тасалдлын хугацаа: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N), энд N нь урьдчилан хуваагч хуваах коэффициент; таймер тоолуурын оролтын давтамж 1. Үйл ажиллагааны горимыг тохируулсан; битүүд WGM13:WGM10 (RV TCCR1A удирдлагын WGM10 ба WGM11, ; TCCR1B дахь WGM12 ба WGM13), N утгыг битээр тодорхойлно; TCCR1A регистр дэх CS12:CS10. T = 6667 μs хугацааны хувьд; (WGM13:WGM10 = 0100 – тайрах CTC), N =1(CS12:CS10 = 001 – ; тохируулагч идэвхгүй болсон) ба Fclk=1 МГц – OCR1AH:OCR1AL-ийн агуулга; = 6667. .org 0x0020 анхны: ldi temp,high(RAMEND) ;стек эхлүүлэх SPH,temp ldi temp,low(RAMEND) гарч SPL,temp . clr pos clr temp ldi temp,1 ;дэлгэцийн буферийг 1...3 ст буфер,temp ldi temp,2 sts buffer+1,temp ldi temp,3 sts buffer+2,temp out TCCR1A,temp ldi temp тоогоор дүүргэ. ,(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 ;гарах үед SREG,temp ;register 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 ori портын одоогийн төлөвийг уншиж, PORTB,R17 дээр R18,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

AVR-ийн оролт гаралтын портын шугамууд нь тэгш хэмтэй ачааллын шинж чанартай байдаг. Эдгээр нь 20 мА хүртэл орох ба гарах урсгалыг тэнцүүлэх боломжийг олгодог. Тиймээс нийтлэг анод ба катодын аль алинтай үзүүлэлтүүдийг ижил амжилттай ашиглаж болно. Нэмж дурдахад сегментүүдийг холбох тээглүүр нь санал хураах товчлуурын нэмэлт функцийг ихэвчлэн гүйцэтгэдэг. Жишээлбэл, 2-р зурагт SBN товчлуур нь гүйдэл хязгаарлах резистор RN-ээр дамжуулан А сегментийн шугамд холбогдсон байна. Үе үе PD0 нь товчлуурын төлөвийг унших оролт болгон тохируулагддаг. Энэ тохиолдолд дотоод татах эсэргүүцэл нь ачааллын эсэргүүцлийн үүрэг гүйцэтгэдэг.


Зураг.3 Микроконтроллерийн зүүг багасгах
a - ээлжийн бүртгэл ашиглах
b - өөр өөр LED холболтын загвар бүхий үзүүлэлтүүдийг ашиглах

Туслах микро схемийг микроконтроллертой хамт ашиглавал тээглүүрүүдийн тоог мэдэгдэхүйц бууруулж болно. Жишээлбэл, Зураг 3а-д 74HC164 ээлжийн регистрийг энэ зорилгоор хэрхэн ашиглаж байгааг харуулав. Энэ холболт нь 6 оролт гаралтын шугамыг чөлөөлдөг. Зарим тохиолдолд долоон сегментийн код декодлогч, янз бүрийн төрлийн тоолуур ашиглах нь үндэслэлтэй байж болно. Нэмж дурдахад z-state портын шугамыг ашиглахад үндэслэсэн өөр нэг хэмнэлтийн боломж бий. 3б-р зурагт үзүүлсэн хэлхээ нь 2-р зураг дээрх хэлхээтэй төстэй бөгөөд зөвхөн HG2 нийтлэг анод бүхий гурван оронтой индикатор нь HG1 нийтлэг катодтой индикатортой зэрэгцээ нэмэлтээр холбогдсон байдаг. PB0...PB2 шугамууд нь HG2 индикаторын A0...A2 анод болон HG1-ийн K0...K2 катодыг нэгэн зэрэг солино. HG2 (анод A0) -ийн тэг байрлалд мэдээлэл гарч ирэх үед PB0 шугам дээр өндөр хүчдэлийн түвшин үүсдэг. D портын шугамууд дээр гэрэлтүүлэгтэй байх ёстой сегментүүдэд log.0, унтрах ёстой сегментүүдэд z төлөвийг тохируулна. Хамгийн бага HG1 тэмдэг (катод K0) идэвхтэй байх үед PB0 шугам дээр бага хүчдэлийн түвшин байх ёстой бөгөөд D порт руу логик утга гарах бөгөөд шугам дээрх логик 1 түвшин нь гэрэлтүүлсэн сегментүүд болон z төлөвтэй тохирч байна. унтраах. Хэрэв тэмдэгтүүд нь A0 ба K0-аас өөр үзүүлэлтийн байрлалд гарвал PB0-ийг өндөр эсэргүүцэлтэй төлөвт шилжүүлэх шаардлагатай. Мэдээжийн хэрэг, ийм солих схем бүхий гаралтын програм нь Зураг дээр үзүүлсэнээс хамаагүй илүү төвөгтэй байх болно. Тэмдгийн хүснэгт нь илүү том байх болно, учир нь нэгдүгээрт, тэдгээрийн хувьд PORTD утгаас гадна DDRD регистрийн агуулгыг хадгалах шаардлагатай бөгөөд үүгээр дамжуулан харгалзах мөрүүд байх ёстой. z төлөвт шилжүүлсэн (оролтод тохируулсан). Хоёрдугаарт, HG1-ийн тэмдэг нь HG2 нийтлэг катодтой индикатортой харьцуулахад урвуу PORTD-ийн бусад утгуудтай тохирч байх болно.

Өнгөрсөн өдөр би цахилгаан барааны дэлгүүрт байсан. Заримдаа янз бүрийн ашигласан радио бүрэлдэхүүн хэсгүүд нь хямд үнээр гарч ирдэг. Энэ удаад би микро схемийг харсан, учир нь нэг пенни үнэтэй байсан тул би эргэлзэлгүйгээр худалдаж авсан. Би энгийн моно дохионы индикатор хийхээр шийдсэн. Яагаад стерео биш моно гэж? Учир нь ганц л чип байдаг. Би дараа нь хоёрдугаар сувгийг дуусгах болно ...

Гялалзсан цаасан дээр лазер принтер ашиглан хэлхээг хэвлэсний дараа бид хор (бэх) -ийг самбар руу шилжүүлнэ. Бид үүнийг дараах байдлаар хийдэг: бид цаасыг сайтар зүлгүүрээр дэвссэн самбар дээр байрлуулж, 10 минутын турш халаасан төмрөөр гүйлгэнэ. Бид самбарыг хөргөх хүртэл хүлээж, цаасыг халуун усаар болгоомжтой арилгана. Энэ нь иймэрхүү харагдах ёстой:

Дараа нь бид хавтанг төмрийн хлоридоор сийлдэг. Нэг цаг орчмын дараа миний самбарыг бүрэн сийлсэн. Уусгагчийг ашиглан бид будгийг арилгаж, зүлгүүр ашиглан хавтанг илүү тэгш өнцөгт хэлбэрээр өгдөг.

Бид төлбөрөө хийж байна. Дараа нь бид эд ангиудыг гагнах ажлыг эхлүүлнэ. Эхлээд би чипийг гагнасан. LED-ийн дараа, дараа нь бусад хэсгүүд. Бүрэн дууссан хавтангийн зураг:


Хэлхээний ажиллагаа

Би хэсгүүдийн зорилгын талаар товчхон хэлье. R2 ашиглан бид оролтын дохионы түвшинг тохируулна. С1 конденсатороор дамжуулж дохио нь өсгөгчийн үүрэг гүйцэтгэдэг VT1 транзисторын суурь руу очдог. R3 резистор нь транзисторын суурийн хазайлтыг тогтоодог. Дараа нь олшруулсан дохио нь C2 конденсатороор VD1 ба VD2 диод руу "ирдэг".

Сөрөг дохио нь хасах руу, эерэг дохио нь микро схемийн 5-р хөл рүү шилждэг. C3 ба R4 нь шүүлтүүрийн үүрэг гүйцэтгэдэг. 5-р хөл дээрх хүчдэл өндөр байх тусам илүү олон LED асдаг. Дашрамд хэлэхэд, хэрэв та 9-р зүүг эерэг болгож богиносговол LED нь шугаман байдлаар асна. Видеоноос та энэ зүйл хэрхэн ажилладагийг харж болно.

LED үзүүлэлтийн үйл ажиллагааны видео