AVR микроконтроллер AT90S2333 фирмы Atmel

Методическое пособие - Радиоэлектроника

Другие методички по предмету Радиоэлектроника

)ЗАРЕЗЕРВИРОВАН1Eh (3Eh)EEARРегистр адреса энергонезависимой памяти1Dh (3Dh)EEDRРегистр данных энергонезависимой памяти1Ch (3Ch)EECR----EERIE EEMWEEEWEEERE-ЗАРЕЗЕРВИРОВАН18h (38h)PORTB--PORTB5PORTB4PORTB3PORTB2PORTB1PORTB017h (37h)DDRB--DDB5 DDB4DDB3DDB2DDB1DDB016h (36h)PINB--PINB5 PINB4PINB3PINB2PINB1PINB015h (35h)PORTC--PORTC5PORTC4PORTC3PORTC2PORTC1PORTC014h (34h)DDRC--DDC5 DDC4DDC3DDC2DDC1DDC013h (33h)PINC--PINC5 PINC4PINC3PINC2PINC1PINC012h (32h)PORTD--PORTD5PORTD4PORTD3PORTD2PORTD1PORTD011h (31h)DDRD--DDD5 DDD4DDD3DDD2DDD1DDD010h (30h)PIND--PIND5 PIND4PIND3PIND2PIND1PIND00Fh (2Fh)SPDRРегистр данных SPI0Eh (2Eh)SPSRSPIF WCOL------0Dh (2Dh)SPCRSPIE SPEDORDMSTRCPOLCPHASPR1SPR00Ch (2Ch)UDRРегистр данных UART0Bh (2Bh)USRRXC TXCUDREFE OR---0Ah (2Ah)UCRRXCIE TXCIEUDRIERXENTXENCHR9RXB8TXB809h (29h)UBRRРегистр скорости передачи UART08h (28h)ACSRACD AINBGACOACIACIEACICACIS1ACIS007h (27h)ADMUX-ADCBG---MUX2 MUX1MUX006h (26h)ADCSRADEN ADSCADFRADIFADIEADPS2ADPS1ADPS005h (25h)ADCH------ADC9ADC804h (24h)ADCLADC7 ADC6ADC5ADC4ADC3ADC2ADC1ADC003h ( 23h)UBRRHРегистр скорости передачи UART (старший) --ЗАРЕЗЕРВИРОВАН00h (20h)-ЗАРЕЗЕРВИРОВАН

Примечание: Для совместимости с другими устройствами, зарезервированные биты при записи необходимо устанавливать в "0". Данные в зарезервированные ячейки памяти записывать нельзя.

 

Набор команд

 

МнемоникаОперандыОписаниеДействиеФлагиЦклАрифметические командыADDRd, RrСложить два регистраRd<Rd+RrZ,C,N,V,H1ADCRd, Rr Сложить с переносомRd<Rd+Rr+C Z,C,N,V,H1ADIWRdl,K Сложить слово с константойRdh,l<Rdh,l+K Z,C,N,V,S2SUBRd, RrВычесть два регистраRd<Rd-Rr SUBIRd, KВычесть константуRd<Rd-KSBIWRdl,KВычесть слово с константойRdh,l<Rdh,l-KSBCRd, RrВычесть с переносомRd<Rd-Rr-CSBCIRd, KВычесть с переносомRd<Rd-K-CANDRd, RrЛогическое ИRd<Rd AND RrANDIRd, KЛогическое ИRd<Rd AND KORRd, RrЛогическое ИЛИRd<Rd OR RrORIRd, K Логическое ИЛИRd<Rd OR K Z,N,V 1EORRd, RrИсключающее ИЛИRd<Rd XOR Rr Z,N,V 1COMRdДополнение до 1Rd<$FF - Rd Z,C,N,V1NEGRdДополнение до 2Rd<$00 - Rd Z,C,N,V,H1SBRRd,KУстанов. бита в регистреRd<Rd OR K Z,N,V 1CBRRd,KСброс. бита в регистреRd<RdAND(FFh-K) Z,N,V 1INCRdУвеличить на 1Rd<Rd+1Z,N,V 1DECRdУменьшить на 1Rd<Rd-1Z,N,V 1TSTRdПроверить на 0 или 1Rd<Rd AND RdZ,N,V1CLRRdОчистить регистрRd<Rd XOR RdZ,N,V1SERRdУстановить регистрRd<$FF None1КОМАНДЫ ВЕТВЛЕНИЯRJMP kОтносительный переходPC<PC+k+1 None2LJMPПереход по адресу (Z)PC<Z None2RCALL kОтносительный вызов подпрогрограммыPC<PC+k+1 None3ICALLВызов подпр по адресу (Z)PC<ZNone3RETВыход из подпрограммыPC<STACKNone4RETIВыход из прерыванияPC<STACKI4CPSERd,RrСравнить , пропуск если Rd=Rrif(Rd=Rr) PC<PC+2 или 3None1/2CPRd,RrСравнитьRd-RrZ,N,V,C,H1CPCRd,RrСравнить с переносомRd-Rr-CZ,N,V,C,H1CPIRd,KСравнить с константой Rd-KSBRCRr,bПропуск если бит в регистре сброшенif(Rr(b)=0)None1/2SBRSRr,bПропуск если бит в регистре установлен if(Rr(b)=1)None1/2SBICP, bПропуск если бит в регистре I\O сброшенif(P(b)=0)None1/2SBIS P, bПропуск если бит в регистре I\O установленif(P(b)=1)None1/2BRBS s, kПереход если установл флаг sif(SREG(s)=1)None1/2BRBC s, kПереход если сброшен флаг sif(SREG(s)=0)None1/2BREQkПереход если равно Z=1if(Z=1)None1/2BRNEkПереход если неравно if(Z=0) if(Z=0)None1/2BRCSkПереход если установл переносif(C=1)None1/2BRCCkПереход если сброшен переносif(C=0)None1/2BRSHkПереход если равно или большеif(C=0)None1/2BRLOkПереход если меньшеif(C=1) PC<PC+k+1None1/2BRMIkПереход если минусif(N=1) PC<PC+k+1None1/2BRPLkПереход если плюсif(N=0) PC<PC+k+1None1/2BRGEkПереход если больше или равно,со знакомif(N XOR V=0) PC<PC+k+1None1/2BRLTkПереход если меньше нуля, со знакомif(N XOR V=1) PC<PC+k+1None1/2BRHSkПереход если установл флаг Hif (H=1) PC<PC+k+1None1/2BRHCkПереход если сброшен флаг Hif (H=0) PC<PC+k+1None1/2BRTSkПереход если установл флаг Tif (H=1) PC<PC+k+1None1/2BRTCkПереход если сброшен флаг Tif (H=0) PC<PC+k+1None1/2BRVSkПереход если установл флаг Vif (H=1) PC<PC+k+1 None1/2BRVCkПереход если сброшен флаг Vif (H=0) PC<PC+k+1None1/2BRIEkПереход если разрешены прерыванияif(I=1) PC<PC+k+1None1/2BRIDkПереход если запрещены прерыванияif(I=1) PC<PC+k+1None1/2КОМАНДЫ ПЕРЕСЫЛКИMOVRd,RrПересылка между рег.Rd<RrNone1LDIRd,KЗагрузить константуRd<KNone1LDRd,XЗагрузить регистр непосредственноRd<(X)None2LDRd,X+Загрузить регистр непосредст. c постинкремRd<(X),X<X+1None 2LDRd,-XЗагрузить регистр непоср. с предв.декремX<X-1,Rd<(X)None2LDRd,YЗагрузить регистр непосредственноRd<(Y)None2LDRd,Y+Загрузить регистр непоср. c пост инкремRd<(Y),Y<Y+1None2LDRd,-YЗагрузить регистр непоср. с предв.декремY<Y-1,Rd<(Y)None2LDDRd,Y+qЗагрузить регистр непоср. со смещениемRd<(Y+q)None2LDRd,ZЗагрузить регистр непосредственноRd<(Z)None2LDRd,Z+Загрузить регистр непоср. c пост инкремRd<(Z),Z<Z+1None2LDRd,-ZЗагрузить регистр непоср. с предв.декремZ<Z-1,Rd<(Z)None2LDDRd,Z+qЗагрузить регистр непоср. со смещениемRd<(Z+q)None2LDSRd,kЗагрузить из ОЗУRd<(k)None3STX,RrЗаписать регистр непосредственно(X)<RrNone2ST-X,RrЗаписать регистр непоср.c пред.декрем.X<X-1,(X)<RrSTY,RrЗаписать регистр непосредственно(Y)<RrSTY+,RrЗаписать регистр непоср.c пост инкр(X)<Rr,X<X+1ST-Y,RrЗаписать регистр непоср.c пред.декремY<Y-1,(Y)<RrNone2STDY+q,RrЗапис.рег.непоср.сосмещением (Y+q)<RrNone2STZ,RrЗаписать регистр непосредственно(Y)<RrNone2STZ+,RrЗаписать регистр непоср.c пост инкр(Y)<Rr,Y<Y+1None2ST-Z,RrЗаписать регистр непоср.c пред.декремZ<Z-1,(Z)<RrNone2STDY+q,RrЗапис.рег.непоср.сосмещением(Y+q)<RrNone2STSk,RrЗаписать в ОЗУ(k)<RrNone3LPMЗагр.из памяти программR0<(Z)None3INRd, PВвод из портаRd<PNone1OUTP, RrВывод в портP<RrNone1PUSHRrЗаписать в стекSTACK<RrNone2POPRrПрочитать из стекаRr<STACKNone 2КОМАНДЫ РАБОТЫ С БИТАМИSBIP,bУстановить бит в регистре ввода/выводаI/O(P,b)<1None2CBIP,bСбросить бит в регистре ввода/выводаI/O(P,b)<0None2LSLRdЛогический сдвиг влевоRd(n+1)<Rd(n), Rd(0)<0 Z,C,N,V1LSRRdЛогичский сдвиг вправоRd(n)<Rd(n+1), Rd(7)<0Z,C,N,V1ROLRdсдвиг влево через CRd(0)<C,Rd(n+1)<Rd(n), C<Rd(7)Z,C,N,V1RORRdсдвиг вправо через C Rd(7)<C,Rd(n)<Rd(n+1), C<Rd(0)Z,C,N,V1ASRRdАрифметический сдвиг вправоRd(n)<Rd(n+1), n=0..6Z,C,N,V 1SWAPRdОбмен тетрадRd(3-0)<Rd(7-4)

Rd(7-4)<Rd(3-0)None1BSETsУстановить флагSREG(s)<1SREG(s)1BCLRsСбросить флагSREG(s)<0SREG(s)1BSTRr,bЗапомнить бит в TT<Rr(b)T1BLDRd, bПрочитать бит из TRd(b)<TNone1SECУстановить переносC<1C1CLCСбросить переносC<0C1SENУстановить флаг NN<1N1CLNСбросить флаг NN<0N1SEZУстановить флаг ZZ<1Z1CLZСбросить флаг ZZ<0Z1SEIРазрешить прерыванияI<1I1CLIЗапретить прерыванияI<0I1SESУстановить флаг SS<1S1CLSСбросить флаг SS<