
- •СведенИя о процессоре pic16. Система команд Архитектура процессоров семейства pic16
- •Распределение областей памяти процессоров pic16
- •Система команд процессоров pic16
- •Программирование на Ассемблере
- •Синтаксис числовых значений в различных системах счисления
- •Практическая часть Процесс подготовки программ для процессоров pic16 Методические указания
- •Ход работы
- •Лабораторная работа № 1
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 2.
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 3.
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 4
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 5
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 6
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 7
- •Теоретические сведения
- •Ход работы
- •Лабораторная работа № 8
- •Теоретические сведения
- •Ход работы
- •Список литературы
Лабораторная работа № 1
Тема работы: «Вычисление арифметических и логических выражений»
Теоретические сведения
Таблица 1.1
Системы счисления |
|||||
Двоичная |
Десятичная |
Шестнадцатеричная |
Двоичная |
Десятичная |
Шестнадцатеричная |
0000 |
0 |
0 |
1000 |
8 |
8 |
0001 |
1 |
1 |
1001 |
9 |
9 |
0010 |
2 |
2 |
1010 |
10 |
А |
0011 |
3 |
3 |
1011 |
11 |
В |
0100 |
4 |
4 |
1100 |
12 |
C |
0101 |
5 |
5 |
1101 |
13 |
D |
0110 |
6 |
6 |
1110 |
14 |
E |
0111 |
7 |
7 |
1111 |
15 |
F |
Преобразование чисел из десятичной в шестнадцатеричную систему счисления:
целая часть исходного числа делится на 16, остаток от деления в виде цифры шестнадцатеричной системы записывается слева от запятой, а результат деления вновь делится на 16 до тех пор, пока не будет получен 0;
дробная часть исходного числа умножается на 16, целая часть результата в виде шестнадцатеричной цифры записывается справа от запятой, а дробная вновь умножается на 16 до тех пор, пока не будет достигнута требуемая точность или до 0.
Пример 1.1. Представить десятичное число 424,75 в шестнадцатеричной и двоичной системах счисления.
1. |
4 |
2 |
4 |
1 |
6 |
|
|
|
1А8,С |
|
4 |
1 |
6 |
2 |
6 |
1 |
6 |
|
← → |
|
|
|
8 |
1 |
6 |
1 |
1 |
6 |
1 2 |
|
|
|
|
1 |
0 |
0 |
0 |
|
|
|
|
|
|
|
А |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2. |
|
|
Для преобразования шестнадцатеричного числа в двоичное каждое шестнадцатеричное число заменяется соответствующей ей двоичной тетрадой (табл.1.1): 1А8,С16 = 0001 1010 1000, 11002.
Пример1.2.. AA=0616, BB=АА16 и СС=3316
1. Вычислить сумму чисел АА и ВВ и указать значения признаков переполнения, переноса.
+
|
0 |
6 |
|
Признак переноса С=0 |
|
|
|||||||
A |
A |
|
Признак полупереноса DС=0 |
||||||||||
|
B |
0 |
|
|
|
|
|
|
|
|
|
|
|
2.Вычислить разность чисел ВВ и СС, указать значения признаков заема для каждого бита, тип числа результата.
-
|
A |
A |
|
Признак переноса С=0, следовательно |
|||
3 |
3 |
|
результат получен в прямом коде |
||||
|
7 |
7 |
|
Признак полупереноса DС=0 |
|
|
|
3. Вычислить разность чисел ВВ и СС, предварительно преобразовав СС в дополнительный код.
3.1. Процедура преобразования числа в дополнительный код состоит из двух этапов:
- находят инверсное число, т.е. число, дополняющее исходное до максимально возможного в отведенных (выделенных) разрядах; в данном случае, так как используется шестнадцатеричная система счисления, до 15
|
|
|
|
33 |
= |
СС |
- к младшему разряду полученного числа добавляют единицу
+
|
С |
С |
|
1 |
|
|
С |
D |
3.2. Предварительно преобразованное в дополнительный код вычитаемое складывают с уменьшаемым
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
A |
A |
|
Признак переноса С=1, следовательно |
|||||||||||
|
C |
D |
|
результат получен в прямом коде |
|||||||||||
|
7 |
7 |
|
Признак полупереноса DС=1 |
|
|
4. Q = NOT (АА OR BB AND CC)
4.1.у1 = АА OR BB = АА ˅ BB
AA=0616= 0000 01102 , BB=АА16 = 1010 10102
˅ |
0 |
0 |
0 |
0 |
|
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
|
1 |
0 |
1 |
0 |
|
|
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
0 |
т.е. у1 = АА ˅ BB = 1010 11102 = АЕ16
4.2. у2 = у1 ˄ СС
СС = 3316 = 0011 00112
|
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
0 |
˄ |
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
1 |
|
0 |
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
у2 = 0010 00102 = 2216
4.3. Q = NOT у2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
0 |
|
1 |
1 |
1 |
0 |
= |
1 |
1 |
0 |
1 |
|
1 |
1 |
0 |
1 |
Q = 1101 11012 = DD16