Смекни!
smekni.com

Управление и информатика в технических системах и 230101 Вычислительные машины, комплексы, системы и сети. Екатеринбург 2006 (стр. 5 из 6)

4. Ваша первая программа для микроконтроллера Intel 8051: Методические указания к лабораторной работе №1 по курсу « Микропроцессоры и вычислительные устройства» / Добряк В.А. Екатеринбург: УГТУ, 1999.

32с.

5. Система команд микроконтроллера INTEL 8051: Методические указания к лабораторной работе №2 по курсу «Цифровые устройства и микропроцессоры»/В.А.Добряк, В.К.Рогозин, Екатеринбург: УГТУ, 1999.32с.

ПРИЛОЖЕНИЕ Система команд микроконтроллера К1816ВЕ51

Команды передачи данных

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

Пересылка в аккумулятор из регистра (n=0..7) MOV A,Rn 11101rrr 1

1

1

(A)<-(Rn)
Пересылка в аккумулятор прямоадресуемого байта MOV A,ad 11100101 3

2

1

(A)<-(ad)
Пересылка в аккумулятор байта из РПД (i=0,1) MOV A,@Ri 1110011i 1

1

1

(A)<-((Ri))
Загрузка в аккумулятор константы MOV A,#d 01110100 2

2

1

(A)<-#d
Пересылка в регистр из аккумулятора MOV Rn,A 11111rrr 1

1

1

(Rn)<-(A)
Пересылка в регистр прямоадресуемого байта MOV Rn,ad 10101rrr 3

2

2

(Rn)<-(ad)
Загрузка в регистр константы MOV Rn,#d 01111rrr 2

2

1

(Rn)<-#d
Пересылка по прямому адресу аккумулятора MOV ad,A 11110101 3

2

1

(ad)<-(A)
Пересылка по прямому адресу регистра MOV ad,Rn 10001rrr 3

2

2

(ad)<-(Rn)
Пересылка прямоадресуемого байта по прямому адресу MOV add,ads 10000101 9

3

2

(add)<-(ads)
Пересылка байта из РПД по прямому адресу MOV ad,@Ri 1000011i 3

2

2

(ad)<-((Ri))
Пересылка по прямому адресу константы MOV ad,#d 01110101

7

3

2

(ad)<-#d
Пересылка в РПД из аккумулятора MOV @Ri,A 1111011i

1

1

1

((Ri))<-(A)
Пересылка в РПД прямоадресуемого байта MOV @Ri,ad 0110011i

3

2

2

((Ri))<-(ad)
Пересылка в РПД константы MOV @Ri,#d 0111011i

2

2

1

((Ri))<-#d
Загрузка указателя данных MOV DPTR,#d16 10010000

13

3

2

(DPTR)<-#d16
Пересылка в аккумулятор байта из ПП MOVC A,@A+DPTR 10010011

1

1

2

(A)<-((A)+ +(DPTR))
Пересылка в аккумулятор байта из ПП MOVC A,@A+PC 10000011

1

1

2

(PC)<-(PC)+1 (A)<-((A)+(PC))
Пересылка в аккумулятор байта из ВПД MOVX A,@Ri 1110001i

1

1

2

(A)<-(Ri)
Пересылка в аккумулятор байта из расширенной ВПД MOVX A,@DPTR 11100000

1

1

2

(A)<-((DPTR))
Пересылка в ВПД из аккумулятора MOVX @Ri,A 1111001i

1

1

2

((Ri))<-(A)
Пересылка в расширенную ВПД из аккумулятора MOVX @DPTR,A 11110000

1

1

2

((DPTR))<-(A)
Загрузка в стек PUSH ad 11000000

3

2

2

(SP)<-(SP)+1 ((SP))<-(ad)
Извлечение из стека POP ad 11010000

3

2

2

(ad)<-(SP) (SP)<-(SP)-1
Обмен аккумулятора с регистром XCH A,Rn 11001rrr

1

1

1

(A)↔(Rn)
Обмен аккумулятора с прямоадресуемым байтом XCH A,ad 11000101

3

2

1

(A)↔(ad)
Обмен аккумулятора с байтом из РПД XCH A,@Ri 1100011i

1

1

1

(A)↔((Ri))
Обмен младшей тетрады аккумулятора с младшей тетрадой байта РПД XCHD A,@Ri 1101011i

1

1

1

(A0..3)↔((Ri)0..3)

Команды арифметических операций

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

Сложение аккумулятора с регистром (n=0..7) ADD A,Rn 00101rrr

1

1

1

(A)<-(A)+(Rn)
Сложение аккумулятора с прямоадресуемым байтом ADD A,ad 00100101

3

2

1

(A)<-(A)+(ad)
Сложение аккумулятора с байтом из РПД (i=0,1) ADD A,@Ri 0010011i

1

1

1

(A)<-(A)+((Ri))
Сложение аккумулятора с константой ADD A,#d 00100100

2

2

1

(A)<-(A)+#d
Сложение аккумулятора с регистром и переносом ADDC A,Rn 00111rrr

1

1

1

(A)<-(A)+(Rn)+(C)
Сложение аккумулятора с прямоадресуемым байтом и переносом ADDC A,ad 00110101

3

2

1

(A)<-(A)+(ad)+(C)
Сложение аккумулятора с байтом из РПД и переносом ADDC A,@Ri 0011011i

1

1

1

(A)<-(A)+((Ri))+(C)
Сложение аккумулятора с константой и переносом ADDC A,#d 00110100

2

2

1

(A)<-(A)+#d+(C)
Десятичная коррекция аккумулятора DA A 11010100

1

1

1

Если (А0..3)>9 V ((AC)=1), то (А0..3)<- (А0..3)+6, затем если (A4..7)>9 V ((С)=1), то (A4..7)<-(А4..7)+6
Вычитание из аккумулятора регистра и заёма SUBB A,Rn 10011rrr

1

1

1

(A)<-(A)-(C)-(Rn)
Вычитание из аккумулятора прямоадресуемого байта и заёма SUBB A,ad 10010101

3

2

1

(A)<-(A)-(C)-((ad))
Вычитание из аккумулятора байта РПД и заёма SUBB A,@Ri 1001011i

1

1

1

(A)<-(A)-(C)-((Ri))
Вычитание из аккумулятора константы и заёма SUBB A,d 10010100

2

2

1

(A)<-(A)-(C)-#d
Инкремент аккумулятора INC A 00000100

1

1

1

(A)<-(A)+1
Инкремент регистра INC Rn 00001rrr

1

1

1

(Rn)<-(Rn)+1
Инкремент прямоадресуемого байта INC ad 00000101

3

2

1

(ad)<-(ad)+1
Инкремент байта в РПД INC @Ri 0000011i

1

1

1

(Ri)<-(Ri)+1
Инкремент указателя данных INC DPTR 10100011

1

1

2

(DPTR)<-(DPTR)+1
Декремент аккумулятора DEC A 00010100

1

1

1

(A)<-(A)-1
Декремент регистра DEC Rn 00011rrr

1

1

1

(Rn)<-(Rn)-1
Декремент прямоадресуемого байта DEC ad 00010101

3

2

1

(ad)<-(ad)-1
Декремент байта в РПД DEC @Ri 0001011i

1

1

1

(Ri)<-(Ri)-1
Умножение аккумулятора на регистр В MUL AB 10100100

1

1

4

(B)(A)<-(A)*(B)
Деление аккумулятора на регистр В DIV AB 10000100

1

1

4

(A).(B)<-(A)/(B)

Команды логических операций

Название команды

Мнемокод

КОП

Т

Б

Ц

Операция

Логическое И аккумулятора и регистра ANL A,Rn 01011rrr

1

1

1

(A)<-(A)and(Rn)
Логическое И аккумулятора и прямоадресуемого байта ANL A,ad 01010101

3

2

1

(A)<-(A)and(ad)
Логическое И аккумулятора и байта из РПД ANL A,@Ri 0101011i

1

1

1

(A)<-(A)and((Ri))
Логическое И аккумулятора и константы ANL A,#d 01010100

2

2

1

(A)<-(A)and#d
Логическое И прямоадресуемого байта и аккумулятора ANL ad,A 01010010

3

2

1

(ad)<-(ad)and(A)
Логическое И прямоадресуемого байта и константы ANL ad,#d 01010011

7

3

2

(ad)<-(ad)and#d
Логическое ИЛИ аккумулятора и регистра ORL A,Rn 01001rrr

1

1

1

(A)<-(A)V(Rn)
Логическое ИЛИ аккумулятора и прямоадресуемого байта ORL A,ad 01000101

3

2

1

(A)<-(A)V(ad)
Логическое ИЛИ аккумулятора и байта из РПД ORL A,@Ri 0100011i

1

1

1

(A)<-(A)V((Ri))
Логическое ИЛИ аккумулятора и константы ORL A,#d 01000100

2

2

1

(A)<-(A)V#d
Логическое ИЛИ прямоадресуемого байта и аккумулятора ORL ad,A 01000010

3

2

1

(ad)<-(ad)V(A)
Логическое ИЛИ прямоадресуемого байта и константы ORL ad,#d 01000011

7

3

2

(ad)<-(ad)V#d
Исключающее ИЛИ аккумулятора и регистра XRL A,Rn 01101rrr

1

1

1

(A)<-(A)xor(Rn)
Исключающее ИЛИ аккумулятора и прямоадресуемого байта XRL A,ad 01100101

3

2

1

(A)<-(A)xor(ad)
Исключающее ИЛИ аккумулятора и байта из РПД XRL A,@Ri 0110011i

1

1

1

(A)<-(A)xor((Ri))
Исключающее ИЛИ аккумулятора и константы XRL A,#d 01100100

2

2

1

(A)<-(A)xor#d
Исключающее ИЛИ прямоадресуемого байта и аккумулятора XRL ad,A 01100010

3

2

1

(ad)<-(ad)xor(A)
Исключающее ИЛИ прямоадресуемого байта и константы XRL ad,#d 01100011

7

3

2

(ad)<-(ad)xor#d
Сброс аккумулятора CLR A 11100100

1

1

1

(A)<-0
Инверсия аккумулятора CPL A 11110100

1

1

1

(A)<-not(A)
Сдвиг аккумулятора влево циклический RL A 00100011

1

1

1

(An+1)<-(An), n=0..6, (A0)<-(A7)
Сдвиг аккумулятора влево через перенос RLC A 00110011

1

1

1

(An+1)<-(An), n=0..6, (A0)<-(C), (C)<-(A7)
Сдвиг аккумулятора вправо циклический RR A 00000011

1

1

1

(An+1)<-(An), n=0..6, (A7)<-(A0)
Сдвиг аккумулятора вправо через перенос RRC A 00010011

1

1

1

(An+1)<-(An), n=0..6, (A7)<-(C), (C)<-(A0)
Обмен местами тетрад в аккумуляторе SWAP A 11000100

1

1

1

0..3)<-(А4-7)

Команды операций с битами