
Лабораторна робота №7
Тема «Мікропроцесорної системи контролю температури »
Мета роботи: Придбання навиків програмування найпростішого мікропроцесорного пристрою контролю температури.
В результаті виконання роботи студент повинен:
- знати способи аналого-цифрового перетворення сигналу, схеми підключення зовнішніх пристроїв.
- уміти програмувати і відладжувати мікропроцесорну систему контролю температури.
Схеми мікропроцесорних систем контролю приведена на рис. 1 і рис. 2.
Рисунок 1 – Структурна схема системи контролю температури з тригером
Рисунок 2 – Структурна схема системи контролю температури без тригера
Завдання до лабораторної роботи
Написати програму, що виконує циклічно наступні дії:
- скидання тригера ( для схеми рис. 2 ця операція непотрібна);
- запуск АЦП на перетворення;
- очікування кінця перетворення;
- читання коду температури;
- аналіз коду температури:
при Т<Тн – повинен горіти синій (СІН) світлодіод,
при Тн≤Т≤Тв – повинен горіти зелений (ЗЕЛ) світлодіод,
при Т>Тв – повинен горіти червоний (ЧЕР) світлодіод.
Виконати розрахунок значень температур Тн і Тв у вольтах. При цьому необхідно щоб максимальна напруга на виході АЦП не перевищувала 10В.
При розрахунку використовуються такі температури:
Тмах – максимальна температура об’єкту в градусах Цельсія оС;
Тн – нижня межа температури об’єкту в оС;
Тв – верхня межа температури об’єкту в оС;
При зміні температури об’єкта від 0 оС до Тмах оС на виході датчика буде такий діапазон напруг у вольтах U.
Програма може складатися для одного з двох варіантів схеми системи контролю. Для непарних номерів варіантів використовувати схему на рис.1, а для парних варіантів схему на рис. 2. Для схеми рис. 2 код температури аналізується через час t. Варіанти завдань наведено в табл.. 7.
Зміст звіту:
- тема, мета і завдання по лабораторній роботі;
- розрахунок температур у вольтах і коефіцієнту підсилювання;
- алгоритм дій у вигляді блок-схеми;
- текст програми з поясненнями;
- висновки по роботі.
Контрольні питання і завдання
1. Яким чином на вхід МК51 подаються сигнали про стан об'єкту управління або контролю?
2. Який вплив на роботу МК51 оказує “брязкіт” контактів датчиків.
3. Які є способи боротьби з “брязкотом” і в чому їх переваги і недоліки?
4. Які призначення “лінії повернення” і “лінії сканування” в схемі підключення матриці датчиків ?
5.Як працює АЦП, що реалізує метод подвійного інтегрування?
6.Як працює схема контрою температури об’єкту, що наведена на рис. 1 або рис. 2 ?
7. Як зміниться текст програми, якщо необхідно бути передавати у порт Р1 інформацію про перевищення температури Тв?
8. Як зміниться текст програми при необхідності забезпечення блимання одного з елементів світлової сигналізації?
9.Для заданих значень Тмах, Тн, Тв і U виконати розрахунок значень сигналу у вольтах на виході підсилювача УПС.
10. В системі контролю температури потрібно контролювати тільки Т>Тв. Як зміниться схема системи контролю температури і програма роботи мікроконтролера ?
Таблиця 7 – Варіанти завдань до лабораторної роботи
№ |
Тмах, оС |
Тн, оС |
Тв, оС |
U, В |
t, мкc |
1 |
200 |
120 |
180 |
0 3 |
20 |
2 |
180 |
110 |
150 |
0 1,5 |
|
3 |
275 |
190 |
250 |
0 1,8 |
24 |
4 |
240 |
180 |
220 |
0 2,1 |
|
5 |
220 |
150 |
190 |
0 1,7 |
50 |
6 |
250 |
190 |
240 |
0 2,3 |
|
7 |
190 |
130 |
170 |
0 1,9 |
30 |
8 |
300 |
220 |
280 |
0 2,4 |
|
9 |
190 |
130 |
160 |
0 1,4 |
35 |
10 |
320 |
280 |
310 |
0 2,6 |
|
11 |
370 |
310 |
350 |
0 2,8 |
18 |
12 |
170 |
100 |
140 |
0 1,7 |
|
13 |
400 |
360 |
380 |
0 2,8 |
22 |
14 |
420 |
370 |
400 |
0 3,0 |
|
15 |
440 |
380 |
420 |
0 3,2 |
48 |
16 |
350 |
270 |
310 |
0 2,4 |
|
17 |
410 |
360 |
390 |
0 2,9 |
58 |
18 |
330 |
270 |
300 |
0 2,6 |
|
19 |
225 |
160 |
200 |
0 2 |
65 |
20 |
360 |
290 |
330 |
0 2,5 |
|
21 |
480 |
400 |
450 |
0 3 |
68 |
22 |
500 |
450 |
480 |
0 3,2 |
|
23 |
340 |
280 |
310 |
0 2,8 |
25 |
24 |
285 |
220 |
250 |
0 1,9 |
|
25 |
520 |
460 |
490 |
0 3,5 |
45 |
26 |
540 |
490 |
520 |
0 3,8 |
|
27 |
560 |
470 |
510 |
0 4,0 |
48 |
28 |
580 |
500 |
540 |
0 3,9 |
|
29 |
455 |
390 |
430 |
0 3,7 |
35 |
30 |
600 |
540 |
570 |
0 2,8 |
|
ЛІТЕРАТУРА
1 Схемотехніка електронних систем. Кн. 3. Мікропроцесори та мікроконтролери: Підручник./ В.І. Бойко, А.М. Гуржій, В.Я. Жуйков та ін.–К.: Вища шк.., 2004.– 399 с.
2 Сташин В.В., Урусов А.В., Мологонцева О.Ф., Проектирование цифрових устройств на однокристальных микроконтроллерах.–М.: Энергоатомиздат, 1990.–221с.
3 Токхайм Р. Микропроцессоры. Курс и упражнения.–М.: Энергоатомиздат, 1988.–336 с.
4 Конспект лекцій з курсу “Мікропроцесорна техніка” (для студентів заочної і очної форм навчання спеціальності 6.090602)/ Уклад.: В.П. Кобазєв, В.О. Ковязін.–Донецьк: ДонНТУ, 2005.– 102 с.
ДОДАТОК А
СИСТЕМА КОМАНД КР 1816ВЕ51
Таблиця А.1 – Команди пересилки даних
П/п |
Призначення команди |
Мнемокод |
КОП |
Б |
Ц |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
Пересилка в акумулятор з регістра n = 07 |
MOV A,Rn |
11101rrr |
1 |
1 |
2 |
Пересилка в акумулятор байта, що прямо адресується |
MOV A,ad |
11100101 |
2 |
1 |
3 |
Пересилка в акумулятор байта з РПД (i = 0, 1) |
MOV A,@Ri |
1110011i |
1 |
1 |
4 |
Завантаження в акумулятор константи |
MOV A,#d |
01110100 |
2 |
1 |
5 |
Пересилка в регістр з акумулятора |
MOV Rn,A |
11111rrr |
1 |
1 |
6 |
Пересилка в регістр байта, що прямо адресується |
MOV Rn,ad |
10101rrr |
2 |
2 |
7 |
Завантаження в регістр константи |
MOV Rn,#d |
01111rrr |
2 |
1 |
8 |
Пересилка за прямою адресою акумулятора |
MOV ad,A |
11110101 |
2 |
1 |
9 |
Пересилка за прямою адресою регістра |
MOV ad,Rn |
10001rrr |
2 |
2 |
10 |
Пересилка байта, що прямо адресується, за прямою адресою |
MOV add,ads |
10000101 |
3 |
2 |
11 |
Пересилка байта з РПД за прямою адресою |
MOV ad,@Ri |
10000111i |
2 |
2 |
12 |
Пересилка за прямою адресою константи |
MOV ad,#d |
01110101 |
3 |
2 |
13 |
Пересилка з РПД з акумулятора |
MOV @Ri,A |
111011i |
1 |
1 |
14 |
Пересилка в РПД байта, що прямо адресується |
MOV @Ri,ad |
0110011i |
2 |
2 |
15 |
Пересилка в РПД константи |
MOV @Ri,#d |
0111011i |
2 |
1 |
16 |
Завантаження покажчика даних |
MOV DPTR,#d16 |
10010000 |
3 |
2 |
17 |
Пересилка в акумулятор байта з пам'яті програм (ПП) |
MOVС A,@A+ DPTR |
10010011 |
1 |
2 |
18 |
Пересилка в акумулятор байта з ПП |
MOVC A,@A+PC |
10000011 |
1 |
2 |
19 |
Пересилка в акумулятор байта із зовнішньої пам'яті даних(ВПД) |
MOVX A,@Ri |
110001i |
1 |
2 |
20 |
Пересилка в акумулятор байта з розширеної ВПД |
MOVX A,@DPTR |
11100000 |
1 |
2 |
Продовження табл. А.1
1 |
2 |
3 |
4 |
5 |
6 |
21 |
Пересилка у ВПД з акумулятора |
MOVX @Ri,A |
111101i |
1 |
2 |
22 |
Пересилка в розширену ВПД з акумулятора |
MOVX @DPTR,A |
11110000 |
1 |
2 |
23 |
Завантаження стека |
PUSH ad |
11000000 |
2 |
2 |
24 |
Витягання із стека |
POP ad |
11010000 |
2 |
2 |
25 |
Обмін акумулятора з регістром |
XCH A,Rn |
11001rrr |
1 |
1 |
26 |
Обмін акумулятора з байтом, що прямо адресується |
XCH A,ad |
11000101 |
2 |
1 |
27 |
Обмін акумулятора з байтом з РПД |
XCH A,@Ri |
1100011i |
1 |
1 |
28 |
Обмін молодшої тетради акумулятора з молодшою тетрадою байта РПД |
XCHD A,@Ri |
1101011i |
1 |
1 |
Таблиця А.2 – Команди передачі управління
П/п |
Призначення команди |
Мнемокод |
КОП |
Б |
Ц |
|
1 |
2 |
3 |
4 |
5 |
6 |
|
1 |
Довгий перехід по всьому простору пам'яті програм |
LJMP ad16 |
00000010 |
3 |
2 |
|
2 |
Абсолютний перехід усередині сторінки в межах 2048 байта |
AJMP ad11 |
a10a9a800001 |
2 |
2 |
|
3 |
Короткий відносний перехід усередині сторінки 256 байт |
SJMP rel |
10000000 |
2 |
2 |
|
4 |
Непрямий відносний перехід |
JMP @A+DPTR |
0111001 |
1 |
2 |
|
5 |
Перехід, якщо акумулятор рівний нулю |
JZ rel |
01100000 |
2 |
2 |
|
6 |
Перехід, якщо акумулятор не рівний нулю |
JNZ rel |
01110000 |
2 |
2 |
|
7 |
Перехід, якщо перенесення рівне одиниці |
JC rel |
01000000 |
2 |
2 |
|
8 |
Перехід, якщо перенесення рівне нулю |
JNC rel |
10100000 |
2 |
2 |
|
9 |
Перехід, якщо біт рівний одиниці |
JB bit,rel |
00100000 |
3 |
2 |
|
10 |
Перехід, якщо біт рівний нулю |
JNB bit,rel |
00110000 |
3 |
2 |
|
11 |
Перехід, якщо біт встановлений з подальшим скиданням біта |
JBC rit,rel |
01110101 |
3 |
2 |
|
12 |
Декремент регістра Rn і перехід, якщо не нуль (Rn) 0 |
DJNZ Rn,rel |
11011rrr |
2 |
2 |
Продовження табл. А.2
1 |
2 |
3 |
4 |
5 |
6 |
|
13 |
Декремент байта, що прямоадресується і перехід, якщо не нуль |
DJNZ ad,rel |
11010101 |
3 |
2 |
|
14 |
Порівняння акумулятора з байтом, що прямоадресується і перехід, якщо не нуль |
CJNE A,ad,rel |
10110101 |
3 |
2 |
|
15 |
Порівняння акумулятора з константою і перехід, якщо не рівно |
CJNE A,#d,rel |
10110100 |
3 |
2 |
|
16 |
Порівняння регістра Rn з константою і перехід, якщо не рівно |
CJNE Rn,#d,rel |
10111rrr |
3 |
2 |
|
17 |
Порівняння байта в РПД з константою і перехід, якщо не рівно |
CJNE @Ri,#d,rel |
1011011i |
3 |
2 |
|
18 |
Довгий виклик підпрограми |
LCALL ad16 |
00010010 |
3 |
2 |
|
19 |
Абсолютний виклик підпрограми в межах сторінки 2048 байта |
ACALL ad11 |
a10a9a810001 |
2 |
2 |
|
20 |
Повернення з підпрограми |
RET |
00100010 |
1 |
2 |
|
21 |
Повернення з підпрограми обробки переривання |
RETI |
00110010 |
1 |
2 |
|
22 |
Немає операції |
NOP |
00000000 |
1 |
1 |
Таблиця А.3 – Команди арифметичних операцій
П/п |
Призначення команди |
Мнемокод |
КОП |
Б |
Ц |
1 |
2 |
3 |
5 |
6 |
7 |
1 |
Складання акумулятора з регістром Rn |
ADD A,Rn |
00101rrr |
1 |
1 |
2 |
Складання акумулятора з байтом, що прямоадресується |
ADD A,ad |
00100101 |
2 |
1 |
3 |
Складання акумулятора з байтом, що побічно адресується, з РПД |
ADD A,@Ri |
0010011i |
1 |
1 |
4 |
Складання акумулятора з константою |
ADD A,#d |
00111rrr |
1 |
1 |
5 |
Складання акумулятора з регістром Rn і перенесенням |
ADDC A,Rn |
01100000 |
2 |
2 |
6 |
Складання
акумулятора з байтом, що |
ADDC A,ad |
00110101 |
2 |
1 |
7 |
Складання акумулятора з байтом, що непрямо адресується і перенесенням |
ADDC A,@Ri |
0011011i |
1 |
1 |
8 |
Складання акумулятора з константою і перенесенням |
ADDC A,#d |
10100000 |
2 |
2 |
Продовження табл. А.3
1 |
2 |
3 |
4 |
5 |
6 |
9 |
Десяткова корекція акумулятора |
DA А |
11010100 |
1 |
1 |
10 |
Віднімання з акумулятора регістра Rn і позики |
SUBB A,Rn |
10011rrr |
1 |
1 |
11 |
Віднімання з акумулятора байта, що прямоадресується і позики |
SUBB A,ad |
10010101 |
2 |
1 |
12 |
Віднімання з акумулятора байта РПД і позики, що непрямо адресується |
SUBB A,@Ri |
1001011i |
2 |
1 |
13 |
Віднімання з акумулятора константи і позики |
SUBB A,#d |
10010100 |
2 |
1 |
14 |
Інкремент акумулятора |
INC А |
00000100 |
1 |
1 |
15 |
Інкремент регістра Rn |
INC Rn |
00001rrr |
1 |
1 |
16 |
Інкремент байта, що прямоадресується |
INC ad |
00000101 |
2 |
1 |
17 |
Інкремент байта РПД, що побічно адресується |
INC @Ri |
0000011i |
1 |
1 |
18 |
Інкремент покажчика даних DPTR |
INC DPTR |
10100011 |
1 |
2 |
19 |
Декремент акумулятора |
DEC А |
00010100 |
1 |
1 |
20 |
Декремент регістра Rn |
DEC Rn |
00011rrr |
1 |
1 |
21 |
Декремент байта, що прямоадресується |
DEC ad |
00010101 |
2 |
1 |
22 |
Декремент байта РПД, що побічно адресується |
DEC @Ri |
0001011i |
1 |
1 |
23 |
Множення акумулятора на регістр В |
MUL AB |
10100100 |
1 |
4 |
24 |
Ділення акумулятора на регістр В |
DIV AB |
1000100 |
1 |
4 |
Таблиця А.4 – Команди логічних операцій
П/п |
Призначення команди |
Мнемокод |
КОП |
Б |
Ц |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
Логічне І акумулятора і регістра |
ANL A,Rn |
010111rrr |
1 |
1 |
2 |
Логічне І акумулятора і байта, що прямоадресується |
ANL A,ad |
01010101 |
2 |
1 |
3 |
Логічне І акумулятора і байта, що непрямо адресується |
ANL A,@Ri |
0101011i |
1 |
1 |
4 |
Логічне І акумулятора і константи |
ANL A,#d |
01010100 |
2 |
1 |
5 |
Логічне І байта, що прямоадресується і акумулятора |
ANL ad,A |
01010010 |
2 |
1 |
6 |
Логічне І байта, що прямоадресується і константи |
ANL ad,#d |
01010011 |
3 |
2 |
7 |
Логічне АБО акумулятора і регістра |
ORL A,Rn |
01001rrr |
1 |
1 |
8 |
Логічне АБО акумулятора і байта, що прямоадресується |
ORL A,ad |
01000101 |
2 |
1 |
Продовження табл. А.4
1 |
2 |
3 |
4 |
5 |
6 |
9 |
Логічне АБО акумулятора і байта, що побічно адресується, з РПД |
ORL A,@Ri |
0100011i |
1 |
1 |
10 |
Логічне АБО акумулятора і константи |
ORL A,#d |
01000100 |
2 |
1 |
11 |
Логічне АБО байта, що прямоадресується і акумулятора |
ORL ad,A |
01000010 |
2 |
1 |
12 |
Логічне АБО байта, що прямоадресується і константи |
ORL ad,#d |
01000011 |
3 |
2 |
13 |
Виключаюче АБО акумулятора і регістра |
XRL A,Rn |
01101rrr |
1 |
1 |
14 |
Що виключає АБО акумулятора і байта, що прямоадресується |
XRL A,ad |
01100101 |
2 |
1 |
15 |
Виключаюче АБО акумулятора і байта, що побічно адресується, з РПД |
XRL A,@Ri |
0110011i |
1 |
1 |
16 |
Виключаюче АБО акумулятора і константи |
XRL A,#d |
01100100 |
2 |
1 |
17 |
Виключаюче АБО байта, що прямоадресується і акумулятора |
XRL ad,A |
01100010 |
2 |
1 |
18 |
Що виключає АБО байта, що прямоадресується і константи |
XRL ad,#d |
01100011 |
3 |
2 |
19 |
Скидання (обнулення) акумулятора |
CLR А |
11100100 |
1 |
1 |
20 |
Інверсія акумулятора |
CPL А |
11110100 |
1 |
1 |
21 |
Зсув акумулятора вліво циклічний |
RL А |
00100011 |
1 |
1 |
22 |
Зсув акумулятора вліво через перенесення |
RLC А |
00110011 |
1 |
1 |
23 |
Зсув акумулятора вправо циклічний |
RR А |
00000011 |
1 |
1 |
24 |
Зсув акумулятора вправо через перенесення |
RRC А |
0010011 |
1 |
1 |
25 |
Обмін місцями тетрад в акумуляторі |
SWAP А |
11000100 |
1 |
1 |
Таблиця А.5 – Команди бітового процесора
П/п |
Призначення команди |
Мнемокод |
КОП |
Б |
Ц |
1 |
2 |
3 |
4 |
5 |
6 |
1 |
Скидання переносу |
CLR С |
11000011 |
1 |
1 |
2 |
Скидання біта |
CLR bit |
11000010 |
2 |
1 |
3 |
Установка переносу |
SETB C |
11010011 |
1 |
1 |
4 |
Установка біта |
SETB bit |
11010010 |
2 |
1 |
5 |
Інверсія переносу |
CPL C |
10110011 |
1 |
1 |
6 |
Інверсія біта |
CPL bit |
10110010 |
2 |
1 |
7 |
Логічне І біта і переносу |
ANL C,bit |
10000010 |
2 |
2 |
8 |
Логічне І інверсії біта і переносу |
ANL C/bit |
10110000 |
2 |
2 |
Продовження табл. А.5
9 |
Логічне АБО біта і переносу |
ORL C,bit |
01110010 |
2 |
2 |
10 |
Логічне АБО інверсії біта і переносу |
ORL C,/bit |
10100000 |
2 |
2 |
11 |
Пересилка біта в перенос |
MOV C,bit |
10100010 |
2 |
1 |
12 |
Пересилка переносу в біт |
MOV bit,C |
10010010 |
2 |
2 |
Таблица А.6 – Карта біт, що адресуються, в резидентній пам’яті даних
7FH
|
|
|||||||
Адреса осередка |
Позиція біта в елементі пам'яті і його адреса |
|||||||
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
2FH |
7F |
7E |
7D |
7C |
7B |
7A |
79 |
78 |
2EH |
77 |
76 |
75 |
74 |
73 |
72 |
71 |
70 |
2DH |
6F |
6E |
6D |
6C |
6B |
6A |
69 |
68 |
2CH |
67 |
66 |
65 |
64 |
63 |
62 |
61 |
60 |
2BH |
5F |
5E |
5D |
5C |
5B |
5A |
59 |
58 |
2AH |
57 |
56 |
55 |
54 |
53 |
52 |
51 |
50 |
29H |
4F |
4E |
4D |
4C |
4B |
4A |
49 |
48 |
28H |
47 |
46 |
45 |
44 |
43 |
42 |
41 |
40 |
27H |
3F |
3E |
3D |
3C |
3B |
3A |
39 |
38 |
26H |
37 |
36 |
35 |
34 |
33 |
32 |
31 |
30 |
25H |
2F |
2E |
2D |
2C |
2B |
2A |
29 |
28 |
24H |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
23H |
1F |
1E |
1D |
1C |
1B |
1A |
19 |
18 |
22H |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
21H |
0F |
0E |
0D |
0C |
0B |
0A |
09 |
08 |
20H |
07 |
06 |
05 |
04 |
03 |
02 |
01 |
00 |
1FH
18H |
Банк 3 |
|||||||
17H
10H |
Банк 2 |
|||||||
0FH
08H |
Банк 1 |
|||||||
07H
00H |
Банк 0 |
ДОДАТОК Б
ТАБЛИЦІ ПЕРЕВОДУ ДЕСЯТКОВІХ ЧІСЕЛ
Таблиця Б.1– Десяткові числа і їх шістнадцяткові і двійкові еквіваленти
Десяткове (D) |
16-ричне (H) |
Двійкове (В) |
|||
Позиції |
|||||
3 |
2 |
1 |
0 |
||
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
2 |
2 |
0 |
0 |
1 |
0 |
3 |
3 |
0 |
0 |
1 |
1 |
4 |
4 |
0 |
1 |
0 |
0 |
5 |
5 |
0 |
1 |
0 |
1 |
6 |
6 |
0 |
1 |
1 |
0 |
7 |
7 |
0 |
1 |
1 |
1 |
8 |
8 |
1 |
0 |
0 |
0 |
9 |
9 |
1 |
0 |
0 |
1 |
10 |
А |
1 |
0 |
1 |
0 |
11 |
B |
1 |
0 |
1 |
1 |
12 |
C |
1 |
1 |
0 |
0 |
13 |
D |
1 |
1 |
0 |
1 |
14 |
E |
1 |
1 |
1 |
0 |
15 |
F |
1 |
1 |
1 |
1 |
Таблиця Б.2 – Двійково десяткові числа (код BCD)
Десяткове |
Двійково – десяткове |
|||
8 |
4 |
2 |
1 |
|
0 1 2 3 4 5 6 7 8 9 |
0 0 0 0 0 0 0 0 1 1 |
0 0 0 0 1 1 1 1 0 0 |
0 0 1 1 0 0 1 1 0 0 |
0 1 0 1 0 1 0 1 0 1 |
Таблиця Б.3 – Десяткові числа із знаком в додатковому коді
-
Десяткове
Двійкове із знаком
Примітки
+127
0111 1111
+8
0000 1111
+7
0000 0111
+6
0000 0110
Позитивні числа
+5
0000 0101
представлені в тій же
+4
0000 0100
формі, що і прямі
+3
0000 0011
двійкові числа.
+2
0000 0010
+1
0000 0001
+0
0000 0000
1
1111 1111
2
1111 1110
3
1111 1101
4
1111 1100
Негативні числа
5
1111 1011
представлені у формі
6
1111 1010
додаткового коду.
7
1111 1001
8
1111 1000
128
1000 0000
ДОДАТОК В
ИНСТРУКЦІЯ КОРИСТУВАННЯ СИМУЛЯТОРОМ PDS 51
1 Запуск програми симулятора.
Перший спосіб:
Кнопка «Пуск» на панелі задач;
Головне меню: опція «Програми»;
Підменю: опція «Phyton Project-51 Demo 3.20.23»;
Підменю: «PDS-51 Simulator»
Другий спосіб:
Ярлик «PDS-51 Simulator» на робочому столі.
2. Під час завантаження програми при необхідності закрити інформаційне вікно про версію програмного продукту, а в наступному діалоговому вікні «Examples» вибрати і натиснути кнопку «Скасування».
3. Вибір типу мікроконтролера (процесора) і його завантаження.
Перший спосіб:
Верхнє меню: опції «Конфігурація» → «Симуляція…»... Відкривається діалогове вікно «Опції симуляції». У текстовому полі «Процесор» вікна, що відкрилося, вибирається тип процесора Intel 8051 і натискається кнопка „OK”. У рядку інформації (внизу основного діалогового вікна) висвітлюється тип процесора.
Другий спосіб:
На Панелі інструментів клацнути на кнопці «Симуляція…»... При цьому відкривається діалогове вікно «Опції симуляції». У текстовому полі «Процесор» вікна, що відкрилося, вибирається тип процесора Intel 8051 і натискається кнопка „OK”. У рядку інформації (внизу основного діалогового вікна) висвітлюється тип процесора.
4. Завантаження мінімально необхідних для роботи з процесором діалогових вікон.
Дані у вікнах, що показують значення комірок і регістрів можуть відображатися: десятинному, двійковому, шістнадцятирічному, символьному і з точкою, що плаває. Для настроювання відображення викликається контекстне меню і виконується пункт «Опції ...”.
4.1. Вікно «Змінні».
Головне меню: опції «Перегляд» > «Змінні». За допомогою верхнього меню цього вікна можна додавати змінні, видаляти їх, переміщувати вниз і т.п. При додаванні змінної в список вікна відкривається діалогове вікно «Додати змінну у вікно», у якому з запропонованого списку вибирається необхідна змінна і вибір підтверджується натисканням кнопок „+”-«Додати » і «Готово». У дане вікно рекомендується додати змінні: регістри банків (R0, R1, R2, R3, R4, R5, R6, R7), акумулятор А і його розширник В, регістр DPTR.
Додати змінну можна і за допомогою кнопки «Додати ім'я у вікно змінних», що розташована на панелі інструментів.
4.2 Контролювати виконання програми можна також за допомогою панелі автопросмотру (права панель вікна «Дисасемблер» встановлюється за допомогою контекстного меню). В цьому вікні значення регістрів R0 R7 регістрів поточного банку і спеціальних функцій відображаються автоматично. Крім того доцільно відкрити вікно «CPU registers» за допомогою команди головного меню «Перегляд» / «Периферійні пристрої» / «CPU registers».
4.2. Вікно «Дисасемблер».
Верхнє меню: опції «Перегляд» > «Дисасемблер». У даному вікні набирається і редагується програма у кодах і мнемокодах. Команди набираються в діалоговому вікні, що автоматично відкривається, як при використанні верхнього меню даного вікна (кнопка ASM), так і при безпосередньому наборі у виділеному бірюзовим підсвітленням рядку. Для зручного відлагодження програми рекомендується у вікні «Дисасемблер» відкрити додатково праву панель. Вона відкривається за допомогою контекстного меню
Константи й адреси при наборі обов'язково повинні закінчуватися символом «h» або «H» (що вказує на шістнадцятирічне рахування). Крім того, при наборі констант і адреси необхідно дописувати ліворуч нулі до чотирьох позицій. Наприклад: #002Аh або #02Ah (константа 2А) або 2Аh (значення адреси комірки пам'яті 2А). Біти вказуються в команді за допомогою набору його адреси у шістнадцятирічної формі або використовується позиційне позначення біта. Наприклад: для посилання на біт 7Fh треба набрати 7Fh або 2Fh.7 тому, що цей біт розташований у комірці з адресою 2Fh у сьомому розряді. При посиланні на біт регістра спеціальної функції замість адреси комірки вказується ім’я регістра спеціальної функції з побітовим доступом: PSW.7.
4.3. Вікна пам'яті програм і пам'яті даних.
Верхнє меню: опції «Перегляд» > «Дамп пам'яті». У вікні пам'яті програм розташовані п’ять вкладок:
Code адресний простір пам’яті програм CSEG,
Idata частина внутрішньої пам’яті даних , що має адреса 00h 7Fh
Data внутрішня пам’ять DSEG з діапазоном адрес 00h FFh,
Xdata зовнішня пам’ять даних, яка може мати об’єм 256 байт, 2 кБайт і 64 кБайт (у демоверсії симулятора доступно 4 кБайт при встановлені любого розміру зовнішнього блоку пам’яті у діалоговому вікні „Опції симуляції”),
Bit бітова область пам’яті, що розташована в DSEG у комірках з адресами 20h 2Fh.
4.4. Вікно регістра слова стану програми (PSW) бажано відкрити при любому варіанті контролю вмісту регістрів.
Верхнє меню: опції «Перегляд» → «Прапори PSW».
Для збереження настроювання діалогових вікон потрібно установити прапорець у верхньому меню: опції «Файл» → «Автозберігання конфігурації при виході».
5. Збереження файлу програми у машинних кодах.
Після набору тексту програми (перед її запуском і налагодженням) необхідно зберегти файл із розширенням *.bin, або *.hex.
Верхнє меню: опції «Файл» > «Записати файл із пам'яті процесора...». У діалоговому вікні «Записати файл на диск...», що відкрилося указується шлях, куди записується файл; початкова і кінцева адреси програми (наприкінці адреси «h») з вікна «Дисасемблер»; перемикач формату файлу встановлюється в положення «Двійковий» або «Шістнадцятирічний», а перемикач адресного простору в положення «Code». Потім натискається кнопка «ОК».
6. Запуск програми.
Для покрокового проходу програми необхідно установити курсор на першу команду програми і клацнути за допомогою миші по кнопці NewPC діалогового вікна «Дисасемблер». Потім послідовним натисканням на клавіатурі кнопки F7 виконати всі команди програми. При цьому для контролю правильності роботи програми треба перевіряти уміст відповідних комірок пам'яті даних, регістрів банків, акумулятора і регістрів DPTR і PSW та інших регістрів відповідно до умови завдання.
Після завершення програми для її повторного виконання необхідно скинуті процесор натисканням на клавішу F5
7. Збереження тексту програми у мнемокодах.
Після налагодження програми можна записати текст програми у мнемокодах в текстовий файл із розширенням *.txt. Для цього потрібно діяти теж через верхнє меню: опції «Файл» > «Записати файл із пам'яті процесора...». У діалоговому вікні, що відкрилося, «Записати файл на диск...» указується шлях, куди записується файл; початкова і кінцева адреси програми (наприкінці адреси необхідно додати h) з вікна «Дисасемблер»; перемикач формату файлу встановлюється в положення «Дисасемблер», а перемикач адресного простору в положення «Code». Потім натискається кнопка «ОК». Необхідно також записати нову версію файлу у машинних кодах
8. Відкриття файлу програми у машинних кодах.
При відкритті файлу з розширенням *.bin для продовження редагування або відладження або запуску на виконання потрібно відкрити опції у верхньому меню: «Файл» → «Завантажити програму для відладження…»... У діалоговому вікні, що відкрилося, «Завантажити програму/Файл даних» указується шлях до файлу, що завантажується, включається перемикач формату файлу «Двійковий» і вказується адреса з якого необхідно завантажити файл (наприкінці адреси «h»), адресний простір – «Code» і натискається кнопка «ОК». Якщо файл у шістнадцятирічних кодах, то перемикач формату файлу встановлюється «Стандартний/розширення (HEX) hех». У файлі з розширенням hех адреса програми зберігається у файлі.