МИКРОКОНТРОЛЛЕРИЙН ХЯЛБАР ДАСГАЛУУД

Σχετικά έγγραφα
ТУХАЙН ДИФФЕРЕНЦИАЛТ ТЭГШИТГЭЛ. Contents Bibliography 11 References 11 Index 12

Ерөнхий эмиттертэй транзисторт өсгөгч Унших материал

Тухайн Дифференциал Тэгшитгэл. Үүеэ Отгонбаяр

S.PH101 ФИЗИК-1 ЛЕКЦ 13

КИНЕМАТИК, МЕХАНИК ХӨДӨЛГӨӨН, ХУРД, ХУРДАТГАЛ, ЭРГЭХ ХӨДӨЛГӨӨН

Компьютер графикийн файлын формат

ГАЛИЛЕЙН ХАРЬЦАНГУЙ ЗАРЧИМ, ИНЕРЦИАЛ БИШ ТООЛЛЫН СИСТЕМ, ИНЕРЦИЙН ХҮЧНҮҮД, ХАРЬЦАНГУЙН ТУСГАЙ ОНОЛ, ЛОРЕНЦЫН ХУВИРГАЛТ БА ТҮҮНИЙ МӨРДЛӨГӨӨ

8x100. 8x100. 8x100. 8x100

Шалгалтын бодлогуудын бодолтод øаардагдах çàðèì тоìüёо = = 7. 1 AB BC AC AB BC AC. цэгийг дайрсан шулууны тэгшитгэл = ХУВИЛБАР А

802.11b утасгүй сүлжээн дээгүүр TCP протоколын дамжуулах чадамжийг үнэлэх математик загвар

Тухайн Дифференциал Тэгшитгэл ба Түүний Нийтлэг Хэрэглээ

ШИНЖЛЭХ УХААН ТЕХНОЛОГИЙН ИХ СУРГУУЛЬ U.MT101-МАТЕМАТИК I ХИЧЭЭЛИЙН СЕМИНАРЫН ЗӨВЛӨМЖ он

8x100. 8x100. 8x100. 8x100

БИЕ ДААЛТЫН БОДЛОГО Цалин Татвар 10.

Барилгын дулаалгын материалын шинэ стандартууд

МАТЕМАТИК ХУВИЛБАР D. 8x100. 8x100. 8x100

АДРОНЫ КЛАСТЕРЫГ ЯЛГАХАД ЗОРИУЛСАН ПАРАМЕТРИЙГ ТОДОРХОЙЛСОН НЬ

ГУРАВДУГААР АЖИЛ Гэрлийн туйлшрал судлан Малюсын хуулийг шалгах

Физикийн даалгавар 10-р анги оны хичээлийн жил Нэгдүгээр хэсэг (тест)

Хадан Дээрх Тамганы Дүрсийг Адууны Тамганы Дүрстэй Машин Сургалтын Аргуудаар Харьцуулах

S.PH102 Физик-2. Семинар 7. Сэдэв : Квант механикийн үндэс, Атомын физик. Тест оны намар

7 Цаг уур, агаарын чанарын мониторингийн өгөгдлийн дүн шинжилгээ 7.1 Цаг уурын өгөгдлийн анализ

Шалгалтын бодлогуудын бодолтод øаардагдах çàðèì тоìüёо. (магадлалын сонгодог тодорхойлолт) AB = ( x x ) + ( y y ) ХУВИЛÁАР А ÍÝÃÄ ÃÝÝÐ ХЭСЭГ

АРВАНГУРАВДУГААР АЖИЛ Тасалгааны цацрагийн дэвсгэр түвшинг тодорхойлох нь

:xeu 2+ - ИЙГ ГАРГАН АВАХ БОЛОН ТҮҮНИЙ ГЭРЛИЙН ЦАЦАРГАЛТЫН СУДАЛГАА

Бодолт: ( ) ,2

Валютын ханшийн эрсдэлээс хамгаалах санхүүгийн хэрэгсэл

Рекурсив Хамгийн бага Квадратын аргаар MIMO сувгийг дагах алгоритм

S.PH101 ФИЗИК-1 ЛЕКЦ 12

S.PH102 Физик-2. Семинар 2. Сэдэв : Цахилгаан соронзон индукц. Тест оны намар

Сонгуулийн прогноз хийх арга зүй: асуудал, хувилбар, арга. Ц.Болд, Ч.Тамир /МУИС-ийн Социологийн тэнхмийн багш нар/

ªÐÕ ÄÝÄ Ó ÐÀÕ ÈÍÔËßÖÈÉÍ ÄÀÐÀÌÒ

НЭГДҮГЭЭР ХЭСЭГ C-н температур хэдэн кельвины температур болох вэ?. A. 281 B. 265 C. 8 D. 16 A B C. 726 D. 12

Õóðààíãóé. Түлхүүр үг: GPS тропосфер Монголд, усны уурын агууламж, агаар мандлын зайнаас тандалт

АЖЛЫН СХЕМ 9 ДҮГЭЭР АНГИ

ДИНАМИК, НЬЮТОНЫ ХУУЛИУД, МАСС БА ИМПУЛЬС, ИМПУЛЬС ХАДГАЛАГДАХ ХУУЛЬ, ХҮЧНҮҮД, ХУВЬСАХ МАССТАЙ БИЕИЙН ХӨДӨЛГӨӨН, МАССЫН ТӨВ

Математикийн хичээлийн даалгавар. Эрхэм шалгуулагч танд амжилт хүсье.

ҮЙЛ АЖИЛЛАГААНЫ ЭРСДЭЛИЙГ ТООЦОХ ЗӨВЛӨМЖ

Физикийн даалгавар 8-р анги оны хичээлийн жил

МОНГОЛ УЛСЫН СТАНДАРТ. Стандартчилал, Хэмжилзүйн Үндэсний Зөвлөлийн 2009 оны 12 дугаар сарын 24- ний өдрийн 52 дугаар тогтоолоор батлав.

Физикийн даалгавар 11-р анги оны хичээлийн жил Нэгдүгээр хэсэг( Тест )

245 кв хүртэлх хэвтээ тэнхлэгт дундын

ÍÄÝÑÍÈÉ ÑÒÀÒÈÑÒÈÊÈÉÍ ÕÎÐÎÎ EVIEWS 9 ÏÐÎÃÐÀÌÛÃ ØÈÍÆÈËÃÝÝÍÄ ÀØÈÃËÀÕ ÍÜ ÃÀÐÛÍ ÀÂËÀÃÀ

Зохиогч: Ч. Ганбаатар Удирдагч: Доктор (Ph.D) Б. Батзолбоо. ШУТИС-Компьютерийн Техник Менежментийн Сургуулийн Програмчлалын профессорын баг.

Физикийн хичээлийн даалгавар (үндэсний хөтөлбөр)

ПРОПАНТ ХӨӨСТ КАМЕРТ БҮРТГЭГДСЭН ХАРИМХАЙ БУС ХАРИЛЦАН ҮЙЛЧЛЭЛЭЭР ҮҮССЭН ЭЕРЭГ ЦЭНЭГТ БӨӨМИЙГ ЯЛГАН ТАНИХ НЭГЭН БОЛОМЖ

ИСЛАНД УЛСЫН БАГА ТЕМПЕРАТУРТАЙ, ГАЗРЫН ГҮНИЙ ДУЛААНЫ ИЛЭРЦТЭЙ ТАЛБАЙ ДЭЭРХ ТЕМ БА МТ АРГУУДЫН ХЭРЭГЛЭЭ

Бүрэн дунд боловсролын цөм хөтөлбөрийн хэрэгжилтийг дэмжих арга зүйн зөвлөмж /Суралцахуйн удирдамжийг удидлага болгоно/ Физик

Өгөгдөл(Data) and Дохио(signal)

615 АВС гурвалжны багтаасан тойргийн төв нь О. ( А>90 ) AL биссектрисийн үргэлжлэл нь багтаасан тойргийг F цэгт огтолно. OA радиус ВС талыг Е цэгээр

Физикийн даалгавар 9-р анги оны хичээлийн жил

Дан болон давхар урвуу дүүжингийн тэнцвэржилт

O 8. ), жонш (KAlSi 3

БИЛЭЭ СУЛ ҮГИЙН УТГА, ХЭРЭГЛЭЭ

J.RC322 Бичил долгионы хэрэгсэл Хувилбар B. Хувилбар B.

МОНГОЛЫН МЭДЭЭЛЛИЙН ТЕХНОЛОГИ-2018

Физикийн даалгавар 12-р анги оны хичээлийн жил

ÑÍ 2. NH 2 -òîñíû õ èë 4-àìèíáóòàíû õ èë ÑÍ 3 ÑÍ ÑÍ 2 ÑÎÎÍ ÑÍ 2 ÑÍ 2 ÑÎÎÍ HOOC CH 2 CH COOH NH 2

UNIVERSITY OF CAMBRIDGE INTERNATIONAL EXAMINATIONS International General Certificate of Secondary Education

LATEX 2ε-ийн гарын авлага

ТААМАГЛАЛЫН ТОДОРХОЙ БУС БАЙДАЛ: ИНФЛЯЦИЙН ТААМАГЛАЛЫН FAN CHART, ТҮҮНД ҮНДЭСЛЭСЭН ШИНЖИЛГЭЭ

МОНГОЛ ХОНИНЫ НООСНЫ БҮТЭЦ, ШИНЖ ЧАНАРЫГ ЭЛЕКТРОН МИКРОСКОПИЙН АРГААР СУДЛАХ

G2P Ангилах арга: Автоматаар ангилан ялгах арга буюу Монгол бичгийн дүрсийг ангилан кодлох арга

ЭДИЙН ЗАСГИЙН ИДЭВХТЭЙ БАЙДАЛД НӨЛӨӨЛӨГЧ ХҮЧИН ЗҮЙЛИЙН ЭКОНОМЕТРИК ШИНЖИЛГЭЭ

АРГА ТЕХНОЛОГИЙН НЭР: Физикийн хичээлээр сурагчдыг ЕШ-д амжилттай бэлтгэх - арга технологи.

Лекц:5 Эрсдэл, өгөөж ба түүхэн тоон мэдээлэл

ЗҮРХ СУДАСНЫ ҮНДЭСНИЙ КОНФЕРЕНЦИ Зүрх судасны өвчний хяналт ба менежментийг сайжруулахад

Ядуурлын Үнэлгээний Хуудас Монгол улс

Нягтруулга Multiplexing

МОНГОЛ ОРНЫ ЭНДЕМИК УРГАМАЛ МОНГОЛ ДОГАР- CARYOPTERIS MONGOLICA BGE.-ИЙГ IN VITRO НӨХЦӨЛД ҮРЖҮҮЛСЭН ДҮНГЭЭС

Монгол Улсын Нэгдсэн Түрүүлэгч Индикатор (НТИ, СLI) Др. Б. Эрдэнэбат

50 th IChO 2018 ОНОЛЫН ТЭМЦЭЭН BACK TO WHERE IT ALL BEGAN оны 7-р сарын Братислав, СЛОВАК Праг, ЧЕХ

Барилгын эрчим хүч хэмнэлтийн төв БАРИЛГЫН БИТҮҮМЖЛЭЛ ТҮҮНИЙГ ТООЦОХ БОЛОН ТОДОРХОЙЛОХ АРГАЧЛАЛ. Менежер: Б. Билгүүн

Нэг. Курсын ажлын зорилго

Химийн даалгавар 11-р анги оны хичээлийн жил

SOLITE SILVER БА RUIYU/OEM АККУМЛЯТОРЫН ҮЗҮҮЛЭЛТҮҮДИЙН ХАРЬЦУУЛСАН СУДАЛГАА. Б.Цэцэнхуар 1, Ц.Өлзийбаатар 2*

Õàâòãàé òýãø ºíöºãò ìåòàëëûí êîìïëåêñ íýãäýë äýõ õàëàëöàà. 1-р хэсэг

Физикийн хичээлийн даалгавар (үндэсний хөтөлбөр)

III. Химийн бодисын харилцан үйлчлэл

Барилгын хашлага бүтээцийн дулаан техникийн тооцооны программ суулгаж тохиргоо хийх тухай

MOR2 ДАТА МЕНЕЖМЕНТ & АНАЛИЗ ХИЙХ СУРГАЛТ СЕМИНАР. 6 сарын 17-18, 2013, Гео-Экологийн Хүрээлэн, Улаанбаатар хот, Монгол Улс

Агуулга. Нүүрс ус. Моносахарид Гликозид, гликозидийн холбоо Дисахарид Полисахарид. Ангилал Нэршил

4-6-р асуултын хариултыг дараах томьёоноос сонгоно уу. A. B. C. D. E.

Монголд уул уурхайн өсөн нэмэгдэж буй үйлдвэрлэл хөдөө аж ахуйн салбарт хэрхэн нөлөөлж байгаа тухай

С.Бямбахорлоо (Доктор Ph.D, ММНБ, Аудитор, ТМЗ) СЭЗДСургуулийн ахлах багш

1. Атомын нарийн нийлмэл бүтэц 19 -р зууны эцэс. Физикийн шинжлэх ухааны нээлтүүд Атомын бүтцийн загварууд Атомын бүтцийн онолууд

НЭГДҮГЭЭР ХЭСЭГ. СОНГОХ ДААЛГАВАР

Компьютерийн шинжлэх ухаан Computer science Натурал компьютер: онол ба хэрэглээ Natural computing: theory and aplication

S.МТ200 Математик Тооцооллын Үндэс

ARTICLES ФОТОЭМУЛЬСИЙН АРГААР ХЭМЖСЭН НЕЙТРОНЫ ЭНЕРГИЙН СПЕКТРИЙГ GEANT4 БАГЦ ПРОГРАМААР ЗАГВАРЧИЛЖ ХАРЬЦУУЛСАН НЬ

ARTICLES ХҮЧНИЙ ТРАНСФОРМАТОРЫН ЭВДРЭЛ ГЭМТЭЛ, ТҮҮНИЙГ ОНОШЛОХ АРГА ЗҮЙ

МЭНДЧИЛГЭЭ. Төрийн дээд шагналын хур буулаа оны 02-р сар. Тестер хэрэглэх заавар. Компанийн 2015 оны 1-р сарын ТЭЗҮ-үүд ГАЛ ХАМГААЛАГЧ

МОНГОЛЫН МОБАЙЛ ҮЙЛЧИЛГЭЭНИЙ ЧАНАРЫГ ҮНЭЛЭХ НЬ

ΜΑΘΗΜΑ: ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΕΣ ΘΕΜΑΤΑ ΙΟΥΝΙΟΥ 2014

БҮРЭН ДУНД БОЛОВСРОЛЫН ЦӨМ ХӨТӨЛБӨРИЙН ХЭРЭГЖИЛТИЙГ ДЭМЖИХ АРГА ЗҮЙН ЗӨВЛӨМЖ. (суралцахуйн удирдамжийг удирдлага болгоно)

11-р ангийн математикийн хөтөлбөр. 2-р хувилбар (2012/08/05)

Нэгэн өдрийн тархалтын судалгаа оны I/II сар, Монгол. Герман, Эссэний Их сургуулийн эмнэлэг, Проф. Валтер Попп

МОР2 ТӨСЛИЙН ЭКОЛОГИЙН СУДАЛГАА АВАХ ЕРӨНХИЙ ТОЙМ оны 6 сарын 13

GLEAR -Гэр хорооллын айлуудын цэвэр агаар Жижиг галлах системд тоосны шүүлтүүр хийх нь

MNS ISO TR 25107:2013

Transcript:

3.1. ГЭРЭЛТЭГЧ ДИОДЫГ УДИРДАХ МИКРОКОНТРОЛЛЕРИЙН ХЯЛБАР ДАСГАЛУУД Гэрэлтэгч диодуудыг төрөл бүрийн эффекттэйгээр асааж унтраах эдгээр дасгалууд нь портоор мэдээллийг хэрхэн гаргах талаар үзэх хичээл юм. Энэ дасгалуудыг хийж гүйцэтгэхэд бидэнд бяцхан микроконтроллер дээр дараахь туршилтын хавтан хэрэгтэй болно. Энэ хавтан нь тэжээлд холбогдсон 8 ширхэг гэрэлт диодыг тус бүрийг нь эсэргүүцэгчээр дамжуулан контроллерийн портууд руу холбосон байна. CN1 2 4 6 8 10 12 14 16 18 20 1 3 5 7 9 11 13 15 17 19 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 R0 - R7 330 D7 D0 LED LED HEADER 10X2 Зураг 3.1. 8 гэрэлт диодыг Р1-д холбох туршилтын хавтан АТ89С2051 микроконтроллерийн (цаашид uc гэе) портууд нь логик 0 үедээ гэрэлт диодыг асаах чадвартай гэж дурдаж байсан. Бид бүтэн нэг байт мэдээлэл гаргах зориулалттай P1.0-P1.7 портуудыг гэрэлт диод удирдахад ашиглах болно. Зураг 3.1-д үзүүлсэн туршилтын хавтанг угсарч бэлэн болгох шаардлагатай. хүчдэлд холбогдсон диодууд 330Ω эсэргүүцэгчээр дамжин газардвал түүгээр 12mA орчим гүйдэл гүйж асах болно. Гэрэлт диод нь асаж байх үедээ өөр дээрээ 1V орчим хүчдэл унагадаг бөгөөд эсэргүүцэгч дээр 4V нь унана гэсэн үг. Эндээс Омын хуулиар гүйдлийг олж болно. Хавтангаа бэлэн болмогц программчилахдаа дараах дасгалуудад үзэх программуудыг шууд хуулж ажиллуулаад орхиж болохгүй. Дасгал программынхаа мөр, инструкц бүрийг нарийн судлах шаардлагатай. Тэгж бүрэн дүүрэн ойлгож авсанаар цаашид бие даан программ бичих дадал олж авах болно. Олон оюутан тэгж хичээгээгүйгээс программ бичих чадвар суулгүй, зөвхөн хуулбарлагч болж өнгөрдөг. Иймд хавсралтанд байгаа үйлдвэрлэгчийн гаргасан англи хэл дээрх материалыг ашиглах шаардлагатай. Номыг уншиж байх явцад тааралдах [P:2-xxx] зүүлтүүд хавсралтын аль хуудаснаас уншиж болохыг зааж өгөх болно. Ер нь бүх инструкцүүдийн ерөнхий байдлыг хавсралтын 2-71-р хуудаснаас 2-80-р хуудас хүртэлх хүснэгтээс харна. 2-74-р хуудаснаас 2-76-р хуудсан дахаь хүснэгтэд инструкц хэдэн байтийн урттай болон осциляторын хэдэн үед гүйцэтгэгдэхийг харуулсан байгаа. Жишээ нь АCALL addr11 гэсэн инструкц 2 байт, LCALL addr16 гэсэн инструкц 3 байтын урттай бөгөөд хоёул осциллаторийн 24 үед гүйцэтгэгдэнэ. 3.1.1. Нэг диод асааж унтраах Р1.7-д холбогдсон D7 диодыг хагас секунд орчим хугацаагаар асаагаад, хагас секунд орчим хугацаагаар унтраах гэх мэтчилэн давтаж анивчуулах программ бичье. Тэгэхээр Р1.7-г логик 0 болговол диод асаж, логик 1 болговол унтрах болно. Энэ үйлдлийг хийхдээ битийг 0 утгатай 29

болгодог CLR P1.7 (Clear буюу логик 0 болгох) [P:2-89] SETB P1.7 (Set Bit логик 1 болгох) [P:2-115] инструкцүүдээр хийж болох ба логик 1 байвал 0 болгодог, 0 байвал 1 болгодог үгүйсгэл буюу CPL Bit (complement) [P:2-90] үйлдлийг ашиглавал бүр хялбар болно. ;Диод асааж унтраах программ ;Программыг программын санах ойн хамгийн эхнээс ;эхлүүлнэ. Ө.х RESET хийгдмэгц эндээс ажиллаж эхлэнэ. CPL P1.7 ;Р1.7-г үгүйсгэнэ.ө.х диод асаж байсан бол унтраана. ;Унтарсан байсан бол асаана. ACALL DELAYHS ;Хагас секунд орчим саатуулдаг дэд программыг дуудна. ;[P:2-81] ;Хэрэв ингэж саатуулахгүй бол 11.0592MHz давтамжаар ;ажиллаж байгаа uc энэ диодыг нэг сек-д 153600 удаа ;асааж унтраах учир бид анивчиж байгааг нь харж ;чадахгүй.дэд программ ажиллаж дуусаад буцаж ирмэгц AJMP ON_RST ;ON_RST хаяг руу үсэрч үйлдлийг давтана. ;[P:2-84] ;Үндсэндээ бидний программ энэ 3 үйлдлээс бүтэх ;бөгөөд энэ 3 үйлдлээ үргэлж давтана. ;Энэ хэсгээс uc-ийг хагас секунд орчим саатуулдаг программ эхлэнэ. Маш өндөр ;давтамжаар ажиллаж буй микропроцессорыг хоосон цикл үйлдлүүдыг тодорхой ;тоогоор хийлгэснээр хэсэг хугацаанд саатуулна. DELAYHS: ;Хагас сек орчим саатуулдаг программын эхлэл. MOV R6,#00H ;[P:2-103] R6-д FFН буюу 255 тоог хийнэ. MOV R7,#02H ;R7-д 02Н тоог хийнэ. LOOPB:ACALL DELAYMS ;1mS орчим хугацаагаар саатуулдаг дэд программыг ;дуудна. Нийтдээ 255х2 буюу 510 удаа дуудах болно. DJNZ R6,LOOPB ;R6-ийн утгыг нэгээр хорогдуулаад 00Н болоогүй бол ;[P:2-94] ;LOOPB хаяг руу үсэрч давтана.00н болбол DJNZ R7,LOOPB ;R7-ийн утгыг нэгээр хорогдуулаад 00Н болоогүй бол ;LOOPB хаяг руу үсэрч давтана.00н болбол RET ;[P:2-112] ;DELAYHS дэд программыг дуудсан цэг рүү буцна. ;Аливаа дэд программ заавал RET командаар дуусна. DELAYMS: ;1mS орчим саатуулдаг дэд программ MOV R5,#00H ;R5-д 00Н тоог хийнэ. LOOPA:NOP ;[P:2-109] ;Ямар ч үйлдэл хийлгүйгээр 1 машин цикл өнгөрөөнө. DJNZ R5,LOOPA ;R5-ийн утгыг нэгээр хорогдуулаад 00Н болоогүй бол ;LOOPA хаяг руу үсэрч давтана.00н болбол RET ;DELAYMS дэд программыг дуудсан цэг рүү буцна. END ;Аливаа программ заавал END-командаар дуусах ёстой. ;R5-д 00Н тоог хийсэн боловч эхний DJNZ үйлдлээр доторхи утга нь 0FFH болох учир цааш дахин 00Н утгатай болтлоо нийт 256 удаа циклийг давтана. 30

3.1.2. Гүйдэг гэрэл ба гүйдэг нүх МИКРОКОНТРОЛЛЕРИЙН ХЯЛБАР ДАСГАЛУУД Р1-д холбогдсон найман диодыг өөр янз бүрийн эффекттэйгээр асааж унтрааж болно. Одоо диодууд нэг нэгээр ээлжлэн асаж гүйдэг гэрэл хийе. ;Гүйдэг гэрлийн программ MOV A,#0FEH ;ACC-т FEH буюу 11111110B (хоёртын) тоог хийнэ. ;[P:2-103] LOOP: MOV P1,A ;АСС-г Р1-ээр гаргавал Р1.0 логик 0 болж D0 асна. RL A ;[P:2-113] ;АСС-г зүүн тийш нэг эргүүлбэл утга нь 11111101B болж ;логик 0 нь зүүн тийш нэг орон шилжинэ. 7-р бит нь ;тойроод 0-р бит рүү орж ирэх учир P1.0 нь 1 болно. ;Дараагийн удаад дахин нэг орон шилжих болно. ACALL DELAYHS ;Өмнөх дасгалд хэрэглэсэн дэд программыг хэрэглэнэ. AJMP LOOP ;Эргүүлсэн АСС-ийн утгыг Р1-ээр гаргахын тулд LOOP ;хаяг руу үсэрч давтана. Энэхүү программ дээрээ өмнөх дасгалын хугацааны саатал үүсгэдэг дэд программуудыг үргэлжлүүлэн хуулж программыг гүйцээнэ. Хэрэв бид АСС-т FEH биш 01Н гэсэн тоо хийж эхлүүлбэл 00000001В буюу D0 диод унтарч, бусад диодууд бүгд асна. Энэ нь ганц хар нүх харагдана гэсэн үг юм. Ингээд цааш нь үргэлжлүүлбэл энэ хар нүх нэг нэг орон шилжиж гарах болно. Үүнийг гүйдэг нүх гэж нэрлэе. Одоо программаа нэг удааг гүйдэг гэрэл, дараа нь гүйдэг нүх байхаар прогаммчилъя. ;Гүйдэг гэрэл ба гүйдэг нүх программ MOV A,#0FEH ;ACC-т FEH буюу 11111110B (хоёртын) тоог хийнэ. DO_NEXT: MOV R4,#8H ;R4-д 8Н тоог хийж тоолуур болгон ашиглахад бэлдэнэ. LOOP: MOV P1,A ;АСС-г Р1-ээр гаргавал Р1.0 логик 0 болж D0 асна. RL A ;АСС-г зүүн тийш нэг эргүүлж дараагийн диод асахад ;бэлэн болно. ACALL DELAYHS ;Өмнөх дасгалд хэрэглэсэн дэд программыг хэрэглэнэ. DJNZ R4,LOOP ;R4-ийн утгыг 1-ээр хорогдуулаад 0 болоогүй бол LOOP ;хаяг руу үсэрч давтана. CPL A ;АСС-г үгүйсгэвэл бүх бит нь эсрэгээр эргэж, асаж ;байсан диод унтран унтарсан байснууд нь асна. AJMP DO_NEXT ;Шилжих хөдөлгөөнийг эсрэгээр эргэсэн АСС-ын утгаар ;давтана. 31

Мөн хугацааны саатал үүсгэдэг программаа залгаж бичээрэй. Энд нэг зүйлийг анхааруулахад 16- тын тоог бичихдээ А, B, C, D, E, F үсгүүдээр эхэлсэн тооны өмнө заавал 0 цифр бичиж өгнө. 0FEH гэж бичсэний учир нь ийм юм. Хэрэв FEH гэж бичвэл ассемблерийн хөрвүүлэгч ойлгохгүй алдаа өгөх болно. Дараахь программын ажиллагааг мөр мөрөөр нь тайлж учрыг нь олоорой. Гаралтын диодон дээр ямар эффект гарахыг олж мэдээрэй. Программыг ажиллуулж үзэхээсээ өмнө өөрсдөө программыг хэрхэн ойлгож байгаагаа шалгаж үзэх хэрэгтэй. MOV A,#0FFH CLR C ;Carry flag битийг логик 0 болгоно. DO_NEXT: MOV R4,#8H LOOP: MOV P1,A RLC A ;[P:2-114] ;АСС-г зүүн тийш Carry flag-тай нэг эргүүлэхэд АСС.7 ;бит C flag-т орж C-ийн утга АСС.0-д орно. CPL C ;C flag-ийг үгүйсгэнэ. ACALL DELAYHS ;Өмнөх дасгалд хэрэглэсэн дэд программыг хэрэглэнэ. DJNZ R4,LOOP ;R4-ийн утгыг 1-ээр хорогдуулаад 0 болоогүй бол LOOP ;хаяг руу үсэрч давтана. CPL C ;C flag-ийг үгүйсгэнэ. AJMP DO_NEXT ;Дараагийн шилжүүлгийг хийнэ. Энэхүү программыг микроконтроллерт суулган өөрийн бодож байсантай харьцуулж үзээрэй. Хэрвээ төсөөлж байснаас чинь өөр үр дүн гарвал дахин программыг мөр мөрөөр нь сайтар нягталж үз. Хаана буруу төсөөлөл гаргасанаа олох нь чухал. 3.2. ДОЛООН СЕГМЕНТИЙН ДЭЛГЭЦ ДЭЭР ТОО ГАРГАХ Гэрэлтэгч диодуудыг нэг корпусанд байрлуулан тоо гаргадаг 7 сегменттэй дэлгэц хийсэн байдаг. Эдгээр диодуудыг удирдан, дэлгэцэнд тоог гаргах дасгалыг одоо хийцгээе. Зураг 3.2-т 7 сементийн 2 дэлгэцийг uc-т холбох туршилтын хавтангийн зарчмийн схемийг харуулав. Нэг дэлгэцэнд байгаа 7 диодын бүх анодууд нь хоорондоо холбогдон СА буюу Common Anode хөл болно. Энэ хөлөнд хүчдэл PNP шилжилттэй транзистороор өгөгдөх бөгөөд ABCDEFG долоон катод нь 220Ω эсэргүүцэгчээр uc-ийн портонд холбогдоно. Хоёр транзистор хоёулаа хэзээ ч нээлттэй байж болохгүй. Ээлжилж нээгдэн асах ёстой дэлгэцийг ээлжлэн сонгоно. Логик 0 болсон портод харгалзах диод асна. Харин тухайн 7 сегментийн кодыг гаргах дэлгэцийг сонгох СА-ийн хүчдэлийг өгөх транзисторыг нээхдээ Р3.4, Р3.5 портуудын аль нэгийг логик 0 болгож удирдах болно. Жишээлбэл D1 дэлгэцэн дээр 4 гэсэн цифр асаахын тулд Р1-ээр 10011000B буюу 98Н тоог гаргаад Р3.4-өөр логик 0 гаргах хэрэгтэй. Харин энэ үед Р3.5 логик 1 байх хэрэгтэй. D2 дэлгэцээр тоо гаргах бол харгалзах кодыг Р1-ээр гаргаад Р3.5 логик 1 болоход хангалттай. 32

PB1 PB2 JP1 P1.7 2 1 P1.6 4 3 P1.5 6 5 P1.4 8 7 P3.3 P1.3 10 9 P3.4 P1.2 12 11 P3.5 P1.1 14 13 P1.0 16 15 P3.7 18 17 20 19 HEADER M МИКРОКОНТРОЛЛЕРИЙН ХЯЛБАР ДАСГАЛУУД R1- R7 220 A B C D E F G D1 LED7SEG CA A B C D E F G D2 LED7SEG CA R8 10K Q1 PNP R9 10K Q2 PNP Зураг 3.2. Хоёр ширхэг 7 сегментийн дэлгэцийг холбох туршилтын хавтан Гэх мэтчилэн ээлжлэн хүний нүд ээлжлэн асаж байгааг нь олж харахааргүй хурдан давтамжтайгаар ажиллуулбал хоёр дэлгэцээр мэдээллүүд зэрэг гарч байгаа мэт харагдах болно. Нэг мэдээллийн шугам ашиглан олон дэлгэцийн диодоор мэдээлэл гаргахыг динамик горим гэж нэрлэдэг. 3.2.1. Нэг дэлгэцээр 0-F хүртэл 16-тын тоо гаргах 16-тын 0-F хүртэл тоог хагас секунд тутамд нэг нэгээр ахиулж гаргах программ бичие. CA1 EQU P3.4 ;Р3.4-ийн нэр нь СА1 болно. CA2 EQU P3.5 ;Р3.5-ийн нэр нь СА2 болно. MOV DPTR, #TABLE ;Таблицад жагсаасан тоонуудын хаягийг DPTR-т хийнэ. CLR CA1 ;Нэг дэх дэлгэцийн СА сонгогдож асах болно. SETB CA2 ;Хоёр дахь дэлгэц асахгүй. MOV A,#0H ;0Н тоог дэлгэцэнд гаргахад бэлтгэнэ. NEXT_D: PUSH ACC ;АСС-ийн утгыг стейкд хадгална. MOVC A,@A+DPTR ;DPTR-т буй таблицийн хаяг дээр АСС-т буй дэлгэцэнд ;гаргах тоог нэмээд АСС-т оруулбал дэлгэцэнд гаргах ;тоонд харгалзах 7 сегментийн код орж ирнэ. MOV P1,A ;Уг кодыг порт нэгээр гаргавал сонгогдсон ;дэлгэцэнд тухайн тоо асна. POP ACC ;АСС-т тооны код орж ирсэн учир тоог стейкээс ;буцааж дуудна. ACALL DELAYHS ;Хагас сек саатал үүсгэдэг дэд программыг дуудна. INC A ;АСС-ийг нэгээр нэмэгдүүлж дараагийн тоог ;дэлгэцэнд гаргахаар бэлтгэнэ. 33

CJNE A,#10H,NEXT_D ;АСС-т буй тоо 10Н-тай тэнцүү биш бол NEXT_D ;[P:2-87] ;хаяг руу үсрэнэ. Хэрэв тэнцүү бол: AJMP ON_RST ;программыг бүр эхнээс нь эхлүүлнэ. TABLE: ;0-FH хүртэл 16-тын тооны 7 сегментийн дэлгэцийн ;кодыг дэс дарааллаар нь байрлуулсан байна. DB 2H,9EH,24H,0CH,98H,48H,40H,1EH,0H,08H,10H,0C0H,62H,84H,60H,70H ; 0 1 2 3 4 5 6 7 8 9 A B C D E F Энэ программыг uc-т шарж ажиллуулж үзээд дараа нь нэг дэх дэлгэц дээр биш хоёр дахь дэлгэц дээр тоо гарахаар болгож өөрчлөөрэй. Мөн хоёр дэлгэцийг хоёуланг нэгэн зэрэг асахаар болгон туршиж үзээрэй. Хоёр дэлгэц үргэлж ижилхэн тоо дэлгэцэндээ гаргах болно. 3.2.2 Хоёр дэлгэцээр 00Н-FFH хүртэл 256 тоог гаргах Өмнөх дасгалаар хоёр дэлгэцээр хоёулаа ижилхэн тоо гаргахыг үзсэн. Тэгвэл одоо хэрхэн 2 өөр тоо дэлгэцээр гаргахыг үзье. Ингэхийн тулд 00Н-FFH хүртэлх 16-тын 2 оронтой тоог гаргахаар сонгов. org 0h ;RESET хийгдэхэд программ эндээс эхлэнэ. ajmp on_rst ;On_rst хаяг руу үсрэнэ. ;0BH хаяг нь таймер/тоолуур дүүрч процессорт тасалдалт ирэхэд программын ;гүйцэтгэл шилжиж ирэх хаяг юм. (Timer Interrupt vector address) org 0bh clr ie.1 ;Нэгэнт таймер интеррапт хэрэгжиж эхэлсэн учир дахин ;тасалдалт хүлээн авахгүйн тулд хориг тавина. acall disp ;Энэ тасалдалтын үндсэн үүрэг нь дэлгэцийг удирдах ;ажиллагаа учир disp дэд программыг дуудна. setb ie.1 ;Тасалдалтаар хэрэгжих ажиллагааг гүйцэтгэсэн учир ;дараагийн тасалдалтыг авахын тулд зөвшөөрөл өгнө. reti ;Тасалдалт болсон цэг рүү буцаж очино. on_rst: ;RST болоход тасалдалтын программыг алгасч энд ирнэ. clr p3.5 ;Бага нибл асах дэлгэцийг сонгоно. setb p3.4 ;Ахлах нибл асах дэлгэцийг хаана. mov ie,#82h ;Тасалдалт зөвшөөрөх регистрт таймер тасалдалтыг ;зөвшөөрнө. mov tmod,#01h ;Таймрийн горимыг 16 бит таймер горимд оруулна. ;Ингэснээр нэг сек-д олон удаа тасалдалт ирэх ;боломжтой болно. mov th0,#0dch ;Т0-ийн анхны утга DC00Н байвал 10000H-DC00H=2400H mov tl0,#00h ;буюу 9216 импульс тоолоод таймер дүүрч тасалдалт ;хэрэгжинэ. Энэ нь нэг сек-д 100 удаа давтагдана. ;Тиймээс хоёр дэлгэц нэг сек-д 50 удаа ээлжлэн асаж ;унтарна. 34

setb tcon.4 ;Таймерийг сонгосон горимоор ажиллаж эхлэхийг ;зөвшөөрнө. mov r0,#0h ;R0-ийг дэлгэцэнд гаргах тоог тоолоход зориулав. next: acall delayhs ;Хагас секунд тутамд inc r0 ;R0-ийн утгыг нэгээр нэмэгдүүлнэ. Энэ үйлдлийг ajmp next ;хязгааргүй давтана. ;Таймер тасалдалт нэг сек-д 100 удаа хэрэгжихэд ажиллах дэлгэцийн программ disp: mov dptr, #table ;DPTR-т таблицийн анхны гишүүний хаягийг хийнэ. mov a,r0 ;АСС-т R0-ийн утгыг хийнэ. jb p3.5 scnd_d ;Хэрэв Р3.5= 1 байвал бага ниблийг гаргана. swap a ;үгүй бол АСС-ийн ниблүүдийг хооронд нь сольж ахлах ;[P:2-117] ;ниблийг бага ниблд хийж дэлгэцэнд гаргана. scnd_d: anl a,#0fh ;Ахлах ниблийг устгаж зөвхөн бага ниблийг үлдээнэ. movc a,@a+dptr ;бага ниблийн дугаарт тохирох кодыг АСС-т хийнэ. mov p1,#0ffh ;Р1-ээр өмнө гарсан кодыг устгана. cpl p3.4 ;Сонгогдсон дэлгэцийг сольж сонгоно. cpl p3.5 mov p1,a ;Сонгогдсон дэлгэцээр гарах кодыг Р1-ээр гаргана. ret ;энэ дэд программыг дуудсан цэг рүү буцна. table:db 2h,9eh,24h,0ch,98h,48h,40h,1eh,0h,08h,10h,0c0h,62h,84h,60h,70h 35