Командалар тизими
Ҳар бир команда битта 14 – разрядли сўздан иборат бўлиб, команда типини аниқловчи код операция (OPCODE) дан ва команда операциясини аниқловчи бир ёки бир неча операндлардан ташкил топади. Командаларнинг тўлиқ рўйхати қуйидаги таблицада келтирилган.
Аккумулятор типидаги командалар ортогональ (симметрик) бўлиб, учта асосий группага бўлинади:
Байт устида амал бажарувчи командалар;
Бит устида амал бажарувчи командалар;
Бошқариш командалари ва константалар билан амал бажарувчи командалар.
Таблица. PIC микроконтроллерларнинг командалари рўйхати
Командалар мнемокоди
|
Тарифи
|
Флаг ўзгариши
|
Байт устида амал бажарувчи командалар
|
ADDWF f,d
|
W ва f ни қўшиш
|
C,DC,Z
|
ANDWF f,d
|
Битлар бўйича W ‘ВА’ f
|
Z
|
CLRF f
|
f ни тозалаш
|
Z
|
CLRW
|
W ни тозалаш
|
Z
|
COMF f,d
|
f ни инвертирлаш (инкорлаш)
|
Z
|
DECF f,d
|
f дан 1ни айириш (декремент)
|
Z
|
DECFSZ f,d
|
f дан 1ни айириш ва 0 бўлса ўтказиб юбориш
|
|
INCF f,d
|
f га 1 ни қўшиш (инкремент)
|
Z
|
INCFSZ f,d
|
f га 1 ни қўшиш ва агар 0 бўлса ўтказиб юбориш
|
|
IORWF f,d
|
Битлар бўйича W ‘ВА’ f
|
Z
|
MOVF f,d
|
f ни узатиш
|
Z
|
MOVWF f
|
W ни f га узатиш
|
|
NOP
|
Операция йўқ
|
|
RLF f,d
|
f ни чапга перенос орқали циклик силжитиш
|
С
|
RRF f,d
|
f ни ўнгга перенос орқали циклик силжитиш
|
С
|
SUBWF f,d
|
W дан f ни айириш
|
C, DC, Z
|
SWAPF f,d
|
f регистрдаги ярим байтларни ўзаро ўрнини алмаштириш
|
|
XORWF f,d
|
Бит бўйича: W ‘Тенгсизлик’ f
|
Z
|
Бит устида амал бажарувчи командалар
|
|
BCF f,b
|
f регистридаги b битни тозалаш
|
|
BSF f,b
|
f регистридаги b битни ўрнатиш
|
|
BTFSC f,b
|
f регистридаги b битни текшириш, агар 0 бўлса кейинги командадан кейингиси бажарилади
|
|
BTFSS f,b
|
f регистридаги b битни текшириш, агар 1 бўлса кейинги командадан кейингиси бажарилади
|
|
Бошқариш командалари ва константалар билан операциялар
|
|
ADDLW k
|
Константани W билан қўшиш
|
C,DC,Z
|
ANDLW к
|
Бит бўйича: Константа ‘ВА’ W
|
Z
|
CALL к
|
Подпрограммани чақириш
|
|
CLRWDT -
|
WDT ни тозалаш
|
-TO, -PD
|
GOTO к
|
Шартсиз ўтиш
|
|
IORLW к
|
Бит бўйича: Константа ‘ЁКИ’ W
|
Z
|
MOVLW к
|
Константани W га жўнатиш
|
|
RETFIE
|
Подпрограммадан қайтиш (узилишга рухсат билан)
|
|
RETLW к
|
Константани W га юклаб подпрограмммадан қайтиш
|
|
RETURN
|
Подпрограммадан қайтиш
|
|
SUBLW к
|
Константадан W ни айириш
|
C,DC,Z
|
XORLW к
|
Бит бўйича: Константа ‘Тенгсизлик’ W
|
Z
|
Байт устида амал бажарувчи командалар учун ‘f ‘ регистр кўрсаткичи, ‘d’ эса натижа адресини кўрсатгичидир. Регистр кўрсаткичи командада қайси регистр ишлатилишини аниқлайди. Натижа адресини кўрсатгичи натижани қаерда сақланишини аниқлайди. Агар ‘d’=0 бўлса, натижа W регистрида сақланади. Агар ‘d’=1 бўлса, натижа командада ишлатилган регистрда сақланади.
Бит устида амал бажарувчи командаларда ‘b’ операцияда иштирок этувчи бит номерини аниқлайди, ‘ f ‘ - бўлса шу бит қайси регистрдаги ахборотга тегишли эканлигини кўрсатади.
Бошқариш командалари ёки константа билан амал бажарувчи командаларда ‘k ‘ саккиз ёки ўнбир битли константани ёки литераллар қийматини кўрсатади.
Шартли командалардан ташқари барча командалар бир машина циклида бажарилади. Шартли командаларда шарт бажарилган холда ва РС команда кўрсатгичини ўзгартирувчи инструкция хосил бўлган холда командалар икки машина циклида бажарилади. Икки машина циклида бажарилувчи команда бажарилаётганда иккинчи машина циклида NOP (операция йўқ) инструкцияси бажарилади. Бир машина цикли тўрт тактдан иборат бўлади. Такт генератори частототаси 4 МГц бўлса, барча командалар 1мкс да бажарилади, Шартли командаларда шарт бажарилса ёки команда кўрсатгичи PC ўзгарса, команда 2мкс вақтда бажарилади.
Бу маълумот вақт интервалини дастурлаш жараёнида инобатга олиш керак.
3.5 Назорат саволлари
3.7.1. Команда мнемокодидаги ‘f ‘ белгиси нимани кўрсатади?
3.7.2. Команда мнемокодидаги ‘ W ‘ белгиси нимани билдиради?
3.7.3. Команда мнемокодидаги ‘k ‘ белгиси нимани билдиради?
3.7.4. Команда мнемокодидаги ‘ d ‘ белгиси нимани билдиради?
3.7.5. ‘Z ‘ белгиси қандай белги?
3.7.6. ‘ C ‘ белгиси қандай белги?
3.6 Ишни бажариш учун амалий тайёргарлик.
3.6.1. ISIS дастурини юргазинг ва воситалар ойнасидаги белги билан очиладиган диалог ойнасида белги ёрдамида янги папка, масалан, “МПТ” номли папка ҳосил қилинг.
3.6.2. Шу диалог ойнасидаги VSM for PIC16 номли пака ичидаги Traffic Lights папкасини танлаб, сичқоннинг ўнг томонини босиб, очилган менюдан “Копировать” командасини бажаринг, сўнг, юқорида ҳосил қилган МПТ папкасига ўтиб, “Вставить” командаси ёрдамида танланган папкани кўчиринг.
3.6.3. Янги папка ичидаги лойиханинг Tl.asm номли файл номини “PICCMD.asm” га ўзгартиринг.
3.6.4. Янги папка ичидаги лойихани “Открыть” буюруғи билан ISIS дастурига юкланг ва шу папкага PICCMD номи билан сақланг.
3.6.5. “Исходник” менюсидан “PICCMD.asm” дастурини лойихага қўшинг ва “PICCMD.asm” файлини очинг. Юқоридаги жадвалда келтирилган МК командалари мнемокодларини исталган тартибда “PICCMD.asm” дастурдаги форматга риоя қилиб ёзинг
3.7 Топшириқ.
3.7.1. Ассемблер тилида ёзилган “PICCMD.asm” номли дастлабки матн таркибига журнал номерингизга тенг константа билан амаллар бажарувчи дастур фрагментини қўшинг ва уни алохида изохлаб, ажратиб қўйинг.
3.7.2. Номи исм фамилиянгизнинг биринчи харфлари билан бошланувчи бир неча идентификатор(ўзгарувчи)лар билан амаллар бажаришга мўлжалланган дастур фрагментини дастлабки матн таркибига киритинг.
3.7.3. Тузилган лойихани ишга тушириб, командалар ишини кузатиб, таҳлил қилинг.
3.7.4. Ишнинг натижаларини ҳисобот учун ёзиб олинг.
1. ЛАБОРАТОРИЯ ИШИ № 1
1.1 МАВЗУ
МК ли вақт релесини тадқиқ этиш
1.2 Ишнинг мақсади.
1.2.1. Микроконтроллерли қурилмаларни тадқиқ этишнинг дастурий ва техник воситаларини ўрганиш.
1.2.2. Микроконтроллерли қурилмаларни лойихалаш бўйича дастурий ва схемотехник ечимлар асосида амалий кўникма олиш.
1.3 Ҳисобот таркиби
1.3.1 Мавзу.
1.3.2 Ишнинг мақсади.
1.3.3 Тажриба ишида ишлатилган дастур ҳақида маълумот.
1.3.4. Топшириқ.
1.3.5 Ишнинг тафсили.
1.3.6 Хулосалар.
1.4 Амалий тайёргарлик.
1.4.1. VSM for PIC16 папкасидаги VAQT_R лойихасини очинг.
Бунда қуйидаги тасвир ҳосил бўлади. Лойихадаги MODE кнопкаси вақт релесига топшириқ бериш дастурларини танлаш учун хизмат қилади:
1 – жорий вақтни киритиш дастури;
2 – реле учун биринчи команда вақтини киритиш дастури;
3 – реле учун иккинчи команда вақти интервали;
4 - реле учун командалар жуфтлиги орасидаги интервал, минутларда;
5 – реле учун тўртиничи команда интервали, минутларда;
6 – команда жуфтликлари сони киритилади
Лойиҳани ишга тушириб, унинг иш режимлари билан танишинг.
1.4.2. Лойихадаги қурилма ишини назорат қилиш учун виртуал ўлчов – назорат қурилмаларидан фойдаланинг ва керакли электр занжирларидаги сигналлар формасини ҳамда параметрларини ўлчанг.
1.4.3. Микроконтроллер дастурини қадамма қадам режимида қандай бажарилишини кузатинг ва тахлил қилинг.
1.4.4. Микроконтроллер дастури бажарилишининг қадамма қадам режимида PIC CPU Source, PIC CPU Registers ва PIC CPU Stack ойналаридаги ўзгаришларни кузатиш билан тахлил қилинг. Бу ойналар “Отладка” менюсидан очилади.
1.4.5. Лойихадаги BAJARUVCHI индикатори ишлаган вақтни кўчириб олиб, вақт релесига берилган топшириқ билан солиштириг.
1.5 Топшириқ.
1.5.1.Юқоридаги амалий тайёргарлик натижалари асосида хулосалар тайёрланг.
1.5.2. Ишнинг натижаларини ҳисобот учун ёзиб олинг.
1.5.3. Ҳисобот тайёрланг.
2. ЛАБОРАТОРИЯ ИШИ № 2
2.1 МАВЗУ
Do'stlaringiz bilan baham: |