Professional Documents
Culture Documents
MCB02
MCB02
MCB02
+5V +5V
+5V
U2 C3 1u U1 CN2
C2 1u 1 2 R1 8.2K 1 19 P1.7
+
3 4 P1.6 17 3 4
P1.5 P3.1/TX
C1- C5 X2 P1.5 16 5 6
1u P1.4 P3.2/INT0
C4 1u 4 6 X1 P1.4 15 7 8
P1.3 P3.3/INT1
C2+ C4- C7 33n P1.3 14 9 10
P1.2 P3.4/T0
+
5 5 P1.2 13 11 12
P1.1 P3.5/T1
C2- X1 -P1.1 12 13 14
11.059Mhz P1.0 CLK X2
CN1 13 12 2 +P1.0 11 15 16
P3.7 RX2
1 14 RXIN1 DOUT1 11 3 P3.0/RXD P3.7 17 18
TX2
2 8 TXOUT1 DIN1 9 6 P3.1/TXD 19 20
RX2 P3.0/RX
3 7 RXIN2 DOUT2 10 7 P3.2/INT0
TX2 HEADER 10X2
4 TXOUT2 DIN2 8 P3.3/INT1
5 JP1 9 P3.4/T0
ICL232C P3.5/T1
RS232
AT89C2051
2
4
6
1
3
5
J1 U3 P3.1/TX
DC IN D1 LM7805CT
1 3
IN OUT +5V
GND
CU1 CU2
1N4002 + + D2
R2
C8 C9 .1uF .1uF
2
470
100uF 47uF LED
Эхх хавтангий
йн CN1 за
алгуураар микроконтро
м оллерийг Персонал
П ко
омпьютертэ
эй холбон
мэдээлэл
л дамжуула
ах дасгалууудыг хийнэ. Харин CN2
C залгуур
раар турши
илтын хавттангуудтай
лгуураар микроконтролл
холбогдохх ба энэ зал лерийн оро
олт гаралтын
н 15 порт бууюу Р1, Р3 бүхлээрээ,
б
Х1 осцил
лляторын га
аралт (U1, 5-р хөл), RX2,
R TX2 нө
өөц цуваа мэдээллийн
м н портууд туршилтын
т
хавтан рууу гарна. Мө
өн туршилттын хавтан дээрх
д элементүүдийг тэжээх
т +5V тэжээлийн хүчдэлийг
гаргана.
Микроконтрол
ллерийн 1-р
р хөл нь RE
ESET буюу микроконтро
м оллерийн аж
жиллагааг анхнаас
а нь
эхлүүлэх оролт юм. Тэжээл өгө
өгдмөгц микроконтроллерт RESET дохиог авттоматаар өггөх C1, R1
хэлхээг, дуртай
д үедэ
ээ дарж RES
SET хийж бо
олох товчлу
уурын хамт суурилуулсан байна. Энэ
Э хэлхээ
зөв угсра
агдахгүй бол
л контролле
ер хэвийн ажиллаж
а эх
хэлэх болом
мжгүй болно
о. RESET хэлхээнээс
х
гадна ква
арц осцилл
ляторыг микроконтролл
лерийн 4 ба
б 5-р хөл
лүүдэд холб
бож, тэжээл
л өгснөөр
микроконтроллер аж
жиллахад бэлэн
б болн
но. Энд 11
1.0592MHz давтамжтай
й кварц ос
сциллятор
хэрэглэсэ
эн байна. Ийм давтамжтай үед цуваа мэ
эдээллийн портыг
п ком
мпьютерт зо
охицуулан
программ
мчлахад хял
лбар байдагг. Өөрөөр хэ
элбэл цуваа
а мэдээлли
ийн портын мэдээлэл дамжуулах
д
хурдыг (b
baud rate) тодорхойлох
т х ажиллагаа
аг ийм давттамжтай оссциллятор ххялбар болггодог. Энэ
талаар цуваа
ц портто
ой ажиллахх дасгалууд
д дээр тодо
орхой үзэх болно. Миккроконтролл
лерийн эх
хавтангий
йн хэвлэмэл
л хавтангийн
н бүтцийг зураг 2.2-т хар
руулав.
А Б
Зура
аг 2.2. Микр
роконтролле
ерийн эх хав
втан
А. Доод тал,
т Б. Дээд тал, В. Эле
ементүүдий
йн байрлал
16
БЯЦХАН МИКРОКОНТРОЛЛЕР
Компьютерийн Serial Port буюу цуваа мэдээллийн порттой холбогдохдоо TTL түвшний
дохиог RS232 стандартын дохионы түвшинтэй зохицуулах үүрэгтэй ICL232C микросхемийг
ашиглана. Учир нь компьютерийн сериал порт 12 вольтийн далайцтай дохио хүлээн авдаг бол
АТ89С2051 микроконтроллерийн сериал порт 5 вольтийн түвшинтэй дохио гаргадаг. Энэхүү U2
микросхем нь CN1 залгуураар компьютертэй холбогдох бөгөөд хувиргасан TTL түвшний дохиог JP1
жамперийн тусламжтай АТ89С2051 микроконтроллерийн P3.0/RXD, P3.1/TXD портуудад холбоно.
Микроконтроллерийг компьютертэй холбон ажиллуулах шаардлагагүй үед Р3.0, Р3.1 портуудыг
туршилтын хавтангууд руу гаргах сонголтыг энэ жампераар хийнэ. Зураг 2.3-т компьютерт холбох
кабель утасны холболтын схемийг харуулав.
P1
АТ89С2051 микроконтроллерийн хүлээж авах (RxD), 1 CN1
6
нэвтрүүлэх (TxD) дохионууд нь 0-5V логик түвшинтэй байна. 2 1
7 2
3
Харин персаналь компьютерийн СОМ портын дохионы түвшин 3
4
8
4 5
нь RS232 стандарт буюу логик “0” нь -12V, логик “1” нь +12V 9
RS232
5
түвшинтэй байдаг. Тэгэхээр микроконтроллерийг
PC COM PORT
компьютертэй холбон мэдээлэл дамжуулахын тулд түвшинг
Зураг 2.3. RS232 кабель
зохицуулан хувиргах шаардлагатай юм. Бидний хэрэглэсэн
ICL232C (MAX232 байж болно) микросхем нь энэхүү түвшингүүдийг хооронд нь зохицуулах
үүрэгтэй юм. Нэгэнт компьютерт очих TxD дохио нь ±12V далайцтай учир гаралтын буффер өсгөгч
нь ±12V тэжээлийн хүчдэл шаардана. Манай бяцхан микроконтроллерийн эх хавтан дээр ганцхан
17
БЯЦХАН МИКРОКОНТРОЛЛЕР
+5V тэжээл байгаа учир ICL232C микросхем нь С2-С5 электролит конденсаторуудын тусламжтай
±10V хүчдэлийг +5V хүчдэлээс хувирган гаргадаг. Энэ хүчдэл нь RS232 түвшинд ойрхон учир
саадгүй ажиллах болно. Харин холбох кабель утас нь хэт урт байж болохгүй.
ICL232C микросхем нь дотроо 4 буффертэй бөгөөд АТ89С2051 микроконтроллер зөвхөн 2
буффер ашиглана. Үлдсэн 2 буфферийг туршилтын хавтан дээр ашиглах боломжтой болгож CN2
залгуур луу гаргасан болно.
TMP2 TMP1
VCC BUFFER
ALU
PC
INCREMENTER
TIMING INSTRUCTION
RST AND REGISTER
CONTROL DPTR
GND
X1 X2
P1.0-P1.7 P3.0-P3.5, P3.7
18
БЯЦХАН МИКРОКОНТРОЛЛЕР
Бидний контроллертой харьцах үндсэн хэсэг бол түүний оролт гаралтын портууд юм. Энд
Р1-ийн 8 порт, Р3-ийн 7 порт гадагш гарсан боловч РЗ.6-д аналог компараторын гаралтыг холбосон
болохыг зургаас харж болно. Хэрэв бид энэ портыг ашиглая гэвэл Р1.0 болон Р1.1 оролтуудад
харьцуулах аналог хүчдэлээ холбож өгнө. Ингээд Р3.6-аар харьцуулсан байдлыг мэдэж болно.
Хэрэв Р3.6 логик “1” байвал VР1.0 > VР1.1 , логик “0” бол VР1.0 < VР1.1 байна. Р3.6-аар гадагш
мэдээлэл гаргах боломжгүй юм.
VCC
Бусад портуудын драйверын бүтцийг зураг
2.5-д харуулав. Портоор мэдээлэл гаргах
10K тохиолдолд гаралтын транзисторыг нээж
хаах зарчимаар логик “1” болон логик “0”
PORT IN PX.X
мэдээллийг гаргана. Харин мэдээлэл
PORT OUT оруулах бол гаралтын транзисторыг хааж
логик “1” төлөвт оруулахгүй бол оролтын
мэдээлэл үргэлж логик “0” байх болно.
Зураг 2.5. Нэг портын драйверын бүтэц Гаралтын транзистор нь логик “0” үед нэг
гэрэлт диодыг асаах буюу 20mA гүйдэл гүйлгэх чадвартай юм. Харин логик “1” үед коллекторын
эсэргүүцэгч нь 10K учир гэрэлт диод удирдаж чадахгүй. Энэ эсэргүүцэгчийг “Pull Up Resistor” гэнэ.
Харин Р1.0 ба Р1.1 портууд нь ийм “Pull Up” 10К-ийн эсэргүүцэгч байхгүй. Учир нь ийм
эсэргүүцэгч байвал оролтонд ирж байгаа аналог хүчдэлд нөлөөлж утгыг нь өөрчлөх учир
тавьдаггүй байна. Хэрэв энэ 2 портыг бусад портын адил мэдээлэл гаргахаар хэрэглэе гэвэл
микроконтроллерийн гадна талд нь 2.4К-10К орчим “Pull Up” эсэргүүцэгчүүд холбож өгөх
шаардлагатай.
Р3 нь Р1-ийн адилд ердийн оролт гаралтын порт байж болох ба зарим нэг удирдлагын
дохионуудын үүргийг давхар гүйцэтгэдэг. Тухайлбал:
RXD, TXD нь мэдээллийг цуваа
P3.0 RXD (цуваа мэдээллийн оролтын порт)
кодоор оруулах, гаргах портууд юм.
P3.1 TXD (цуваа мэдээллийн гаралтын порт)
Дамжуулах дохио нь TTL түвшинтэй
P3.2 INT0 (гаднын тасалдалт 0-ийн оролт)
байдаг.
P3.3 INT1 (гаднын тасалдалт 1-ийн оролт)
INT0, INT1 оролтууд нь гаднын
P3.4 T0 (таймер 0-ийн оролт) төхөөрөм-жүүдээс микроконтроллерт
P3.5 T1 (таймер 1-ийн оролт) тасалдалтын дохио буюу Interrupt өгөх
үүрэгтэй. Энэ дохионы идэвхтэй түвшин нь логик “0” учир дээгүүр нь зурсан байна. Түүнчлэн
тасалдалтыг логик “0” түвшинээр авч болохоос гадна импульсийн буух фронтоор авч болохоор
программчилж болдог.
АТ89С2051 микроконтроллер нь дотроо 2 ширхэг 16 битийн тоолуур/таймертай. Тоолуурын горимд
гаднын импулсийг тоолох бөгөөд 16 бит өргөнтэй учир 0-65535 импульс тоолно. Гаднын
импульсийг тоолох тохиолдолд Т0, Т1 оролтуудыг ашигладаг. Харин таймер горимд бол тодорхой
хугацааг тоолох зорилгоор ашиглагдах бөгөөд регистерт хийсэн тооноос хорогдуулж тоолох
зарчимаар ажиллана. Энэ горимд микроконтроллерийн осцилляторын CLOCK импульсийн
давтамжийг 12 дахин бууруулаад тоолуурын оролтонд шилжүүлж, Т0, Т1 оролтуудыг чөлөөтэй
порт болгодог.
19
БЯЦХАН МИКРОКОНТРОЛЛЕР
F8 FF
F0 B 9 F7
E8 EF
E0 ACC 9 E7
D8 DF
D0 PSW 9 D7
C8 CF
C0 C7
B8 IP 9 BF
B0 P3 9 B7
A8 IE 9 AF
A0 A7
98 SCON 9 SBUF 9F
90 P1 9 97
88 TCON 9 TMOD TL0 TL1 TH0 TH1 8F
80 SP DPL DPH PCON 87
Дээрх хүснэгтээс харахад ихэнх нүднүүд хоосон байна. Харин нэртэй байгаа нүднүүд бол
тусгай зориулалтын регистрүүд бөгөөд хоосон нүднүүдэд ямар ч мэдээлэл хадгалах боломжгүй
юм. Тусгай зориулалтын регистрүүд бүгд өөр өөрийн үүрэг зориулалттай байдаг. “9” тэмдэгтэй
регистрүүдэд бүтэн байтаар мэдээлэл бичиж болохоос гадна аль хэрэгтэй битээ дангаар нь хандан
өөрчилж болдог. Эдгээр регистрүүдийг битээр хандах боломжтой (bit addressable) регистрүүд гэдэг.
Жишээлбэл Р3.7 буюу порт 3-ын 7-р битийг логик “1” болгое гэвэл ассемблерийн SETB P3.7 гэсэн
инструкцийг хэрэглэнэ. Энэ нь порт 3-ийн ганцхан битэд хандаж түүний утгыг логик “1” болгож
байгаа юм. Үүнтэй адилаар бит хандалттай регистрүүдийн бит бүртэй нь тус тусад нь харьцаж
болно. Ийм тэмдэглэгээгүй регистрүүдийн хувьд зөвхөн байтаар хандаж болно. Жишээлбэл TMOD
регистрийн 7-р битийг логик “1” болгож бусдыг нь “0” байлгая гэвэл MOV TMOD,#80H гэж хандана.
АСС Accumulator: Энэ регистрийг Аккумулятор регистр гэдэг. 1 байт мэдээлэл хадгалах бөгөөд
хамгийн гол регистр юм. Ихэнх тохиолдолд A үсгээр товчлон тэмдэглэдэг боловч ассемблерийн
зарим нэг инструкцэд заавал АСС гэж бүтнээр бичих шаардлагатай байдаг. Энэ регистрийг
ашиглан бүх арифметик болон логик үйлдлүүдийг хийж гүйцэтгэнэ. RESET-ийн дараа доторхи утга
нь 00Н болно.
20
БЯЦХАН МИКРОКОНТРОЛЛЕР
В register: Энэ регистрийг туслах аккумулятор гэж болно. Ихэнх үед онцлох үүрэггүй регистр мэт
боловч хуваах болон үржих үйлдэлд хуваагч болон үржвэрийн утгыг хадгалахад хэрэглэнэ. RESET-
ийн дараа доторхи утга нь 00Н болно.
PSW Program Status Word: Энэ регистр нь аливаа үйлдлийн дараа аккумуляторийн төлөвийг
илэрхийлэхээс гадна үйлдэлд оролцох мэдээллүүдийг хадгалж байх үүрэгтэй ерөнхий
зориулалтын регистрүүдийн (R0-R7) банкыг сонгох үүрэгтэй. RESET-ийн дараа доторхи утга нь
00Н болно.
SP Stack Pointer: PUSH гэсэн ганцхан үйлдлээр санах ойд мэдээлэл хадгалах үед уг мэдээллийг
хаана хадгалах хаягийг зааж өгдөг регистр. Мөн CALL буюу дэд программ дуудаж ажиллуулах
инструкцээр дуудагдсан дэд программ ажиллаж дуусаад үндсэн программд буцаж ирэх хаягийг
хадгалах санах ойн хаягийг зааж өгнө. RESET-ийн дараа SP-ийн анхны утга 07Н байх ба энэ нь
Stack-ийн анхны мэдээлэл 08Н хаягаас эхлэн хадгалагдана гэсэн үг. Stack нь хамгийн сүүлд хийсэн
мэдээлэл түрүүлж гарч ирдэг бууны сумны магазин шиг санах ой юм.
DPTR Data Pointer: Энэ регистр нь DPH (ахлах байт), DPL (бага байт) гэсэн 2 байтаас тогтдог
бөгөөд 16 битийн хаягийн мэдээлэл хадгалах үүрэгтэй байдаг. Гэвч АТ89С2051-ийн программын
санах ой 000Н-7FFH хүртэл буюу 2Кбайт хэмжээтэй учир хаягийн урт нь 11 бит байдаг. Нэгэнт 8
битээс урт болохоор 2 байтад хаягийн мэдээлэл хадгалагдана. RESET-ийн дараа доторхи утга нь
0000Н болно.
Р1, Р3 Ports: Р1 ба Р3 портуудаар гарах мэдээллийг хадгалах регистр. Энэ регистрүүдэд мэдээлэл
хадгалахад тэр нь тухайн харгалзах портоор гадагш шууд гарна. Харин портоор мэдээлэл
оруулахад энэ регистрийн утга өөрчлөгдөхгүй. Учир нь мэдээлэл оруулахын тулд энэ регистрийн
тухайн битэд логик “1” бичигдсэн байх ёстой. Гаднаас логик “0” орж ирсэн ч энэ регистр утгаа
өөрчлөхгүй. RESET-ийн дараа доторхи утга нь FFН болно. Өөрөөр хэлбэл бүх бит нь логик “1”
болно гэсэн үг.
SBUF Serial Data Buffer: Цуваа мэдээллийн портын регистр. Энэ регистрт мэдээлэл хийвэл уг
мэдээлэл нь цуваа портоор гарна. Хэрэв энэ регистрээс мэдээлэл уншвал энэ нь цуваа портоор
гаднаас орж ирсэн мэдээлэл байна. RESET-ийн дараа доторхи утга нь тодорхойгүй буюу ямар ч
утгатай байж болно.
TH0, TL0 Timer 0 registers: Энэ хос хоёр регистр нь 16 битийн 0 дугаар таймер/тоолуурын утгыг
хадгална. Программын замаар доторхи утгыг нь өөрчлөхөд заавал ахлах байт, бага байт тус тусад
нь хандаж өөрчлөх боловч тоолох үйлдлийнхээ үед хоёулаа нэг тоолуур мэт өөрчлөгдөнө. 16 бит
өргөнтэй учир 0-ээс эхлэн 65535 хүртэл тоолно. Хамгийн их буюу 65535 утгаа авмагц процессорт
тасалдалт (Interrupt) өгөх чадвартай байдаг. RESET-ийн дараа доторхи утга нь 0000Н болно.
TH1, TL1 Timer 1 registers: Энэ хос хоёр регистр нь 16 битийн 1 дүгээр таймер/тоолуурын утгыг
хадгална. Т0-ийн адил ажиллагаатай боловч мэдээллийн цуваа портын нэг секундэд дамжуулах
битийн тоо буюу хурдыг (baud rate) тодорхойлоход ашиглагддаг онцлогтой. RESET-ийн дараа
доторхи утга нь 0000Н болно.
IP Interrupt Priority: Таван түвшний техникийн тасалдалт байдаг учир зэрэг ирсэн тасалдалтуудын
алийг нь түрүүлж хүлээн авахыг зааж өгдөг регистр. RESET-ийн дараа доторхи утга нь ХХХ00000В
болно. Энэ тоог хоёртын тооллын системд харуулав. Эхний 3 бит Х нь ашиглагддаггүй битүүд учир
ямар утгатай байх нь тодорхойгүй байна.
21
БЯЦХАН МИКРОКОНТРОЛЛЕР
IE Interrupt Enable: Таван түвшний тасалдалтуудаас алийг нь зөвшөөрөх, алийг нь хориглохыг зааж
өгдөг регистр. Зарим нэг тасалдалтыг хориглох, зөвшөөрөхөөс гадна бүх тасалдалтыг зэрэг
хориглох чадвартай. RESET-ийн дараа доторхи утга нь 0ХХ00000В болно.
TMOD Timer Mode: Таймер/тоолуурын горим сонгох регистр. Таймер/тоолуурыг таймер болгох
эсвэл тоолуур болгох болон 8 битээр ажиллах эсвэл 16 битээр ажиллах гэх мэт горимуудыг
тогтоодог. Таймер/тоолуур нь 8 бит горимдоо анхны утгаа автоматаар 0-ээс өөр утга авахаар
тохируулагдаж болно. Өөрөөр хэлбэл хамгийн их утга 255 болоод дараагийн импульсээр 0
болохгүй өөр утга авна гэсэн үг. Энэ горимд TL нь үндсэн тоолуур регистр болох ба ТН нь анхны
утгыг хадгална. RESET-ийн дараа доторхи утга нь 00Н болно.
TCON Timer Control: Таймер/тоолуурын удирдлага регистр. Таймер/тоолуурын ажиллагааг түр
зогсоох, дахин эхлүүлэх болон утга нь хамгийн дээд утгандаа хүрсэн эсэхийг илтгэдэг регистр юм.
RESET-ийн дараа доторхи утга нь 00Н болно.
SCON Serial Control: Цуваа мэдээллийн портын горим сонгох регистр. Цуваа мэдээллийн портын
ажиллагааг тохируулахаас гадна портоор бүтэн нэг байт мэдээлэл ирсэн болон гарч дуусан
төлөвийг илтгэнэ. RESET-ийн дараа доторхи утга нь 00Н болно.
PCON Power Control: Энэхүү регистр нь АТ89С2051 микроконтроллерийг тэжээлийн хүчдэлээ
хэмнэх Power Down, Power Idle горимуудад оруулахад хэрэглэгдэнэ. RESET-ийн дараа доторхи
утга нь 0ХХХ0000В болно.
Ийнхүү бид SFR буюу тусгай зориулалтын регистрүүдийн үүргүүдтэй танилцлаа. Харин
регистр бүрийн дотоод бүтэц болон программчлалын аргуудтай дараа дэлгэрэнгүй танилцах
болно.
АТ89С2051 микроконтроллер нь 128 байт шуурхай санах ойтой гэж өмнө нь дурдаж байсан
билээ. 00Н-7FH хүртэлх хаяг нь шуурхай санах ойд харъяалагдана.
Энэхүү санах ойг үндсэн 3 хэсэгт хувааж болно.
7F
А хэсэг бол ерөнхий зориулалтын регистрүүд болох
R0-R7 гэсэн 8 регистрийн хэсэг байна. Нийт 32 регистр
В
байгаа боловч программаас нэг дор наймтай нь
харьцах боломжтой. Банкийг программын замаар
3
сольж дараагийн 8 регистрт хандаж болно. Жишээ нь:
2 Bit addressable 2F Б
USING 3 гэсэн комманд өгвөл 3-р банк сонгогдоно.
1 Bank2 Bank3 1F
А RESET-ийн дараа банк 0 сонгогдох бөгөөд SP
0 Bank0 Bank1 0F
регистрийн утга 07Н болох учир банк 1 нь стейкэд
R0 R7
07 SP эхлэл хэрэглэгдэх болно. Хэрэв банк бүрийг хэрэглэнэ гэвэл
22
БЯЦХАН МИКРОКОНТРОЛЛЕР
Шуурхай санах ой бол тэжээлийн хүчдэл залгаатай байхад доторхи утгаа хадгалж байдаг.
Харин тэжээлийн хүчдэл тасраад дахин ирэхэд өмнө хадгалагдаж байсан утгууд байхгүй болно.
Тэгвэл программын санах ой нь тогтмол санах ой учир тэжээл байхгүй болсон ч доторхи
программаа мартахгүй хадгалж байдаг.
23
БЯЦХАН МИКРОКОНТРОЛЛЕР
24
БЯЦХАН МИКРОКОНТРОЛЛЕР
Флаг Флаг
Инструкц Инструкц
C OV AC C OV AC
ADD X X X CLR C O
ADDC X X X CPL C X
SUBB X X X ANL C, bit X
MUL O X ANL C, /bit X
DIV O X ORL C, bit X
DA X ORL C, /bit X
RRC X MOV C, bit X
RLC X CJNE X
SETB C 1
Энд: Х-нь өөрчлөгдөхдөө тухайн үйлдлийн үр дүнгээс хамаарч ямар утгатай байх нь шийдэгдэнэ.
О-нь заавал логик “0” утга авахыг, 1-нь логик “1” утгатай болохыг зааж байна. PSW нь аливаа
үйлдлийн дараа программ дараагийн шийдвэрээ хэрхэн гаргахыг зааж өгдөг хамгийн чухал
регистрүүдийн нэг гэж хэлж болно.
Тэгэхээр санах ойн элементүүдтэй харьцах ялгаатай арга замуудыг “Хаяглалтын буюу хандалтын
25
БЯЦХАН МИКРОКОНТРОЛЛЕР
Эдгээрийг MOV буюу ассемблерийн хэлний байт шилжүүлэх Move үйлдэл дээр тулгуурлан
тайлбарлая. Энэ үйлдэл нь программын санах ой, шуурхай санах ой, регистрүүд болон портуудын
хооронд мэдээллийг нэгээс нөгөөд дамжуулах үйлдэл хийдэг. MOV коммандын араас эхлээд
мэдээллийг хүлээн авагч, дараа нь мэдээллийг өгөгч нь бичигддэг.
MOV A,#30H ;Immediate mode-Даруй горим: АСС-т 30Н гэсэн тоог хийх.
MOV A,30H ;Direct mode-Шууд горим: АСС-т RAM-ын 30Н хаяг дахь
мэдээллийг авч хийх.
MOV A,R0 ;Register mode-Регистрийн горим: АСС-т регистрийн утгыг хийх.
MOV A,@R0 ;Indirect mode-Шууд бус горим: АСС-т регистрт байгаа хаягаар
санах ойгоос авч хийх.
MOV C,P3.7 ;Bit addressing-Бит хаяглалт: Carry flag-т Р3.7-г хийх.
MOVC A,@A+DPTR ;Index mode-Индекст горим: АСС-т программын санах ойгоос
DPTR+A хаягаар мэдээллийг авч хийх.
SETB P1.7 ;Bit mode-Бит хандалтын горим: Р1.7-г логик “1” болгох.
MOVC мнемоникийг MOV C буюу Carry flag-т мэдээлэл хийх мнемониктой андуурч болохгүй. Энэ нь
Move Code Byte буюу шуурхай санах ойгоос бус, программ бичигддэг программын санах ойгоос
мэдээлэл уншихад хэрэглэгддэг.
26
БЯЦХАН МИКРОКОНТРОЛЛЕР
Мөн гаднын тасалдалтыг INT0, INT1 оролтуудаар авч байх тохиолдолд Р3.2 болон Р3.3 портуудыг
1 болгосон байх хэрэгтэй. Мөн гаднын тасалдалтын дохио түвшинээр юмуу фронтоор идэвхжихийг
TCON регистр дэх IT1, IT0 битүүдээр тодорхойлж өгнө.
IE 7 IE 6 IE 5 IE 4 IE 3 IE 2 IE 1 IE 0
EA – ET2 ES ET1 EX1 ET0 EX0
27