bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Общевузовские предметы [3539]
АСОИ [30]
ВМСиС [65]
ИИ [26]
Информатика / ИиТП [46]
ИПОИТ [25]
ИТиУвТС [236]
ИСиТ БМ [16]
ИСиТвЭ [380]
Маркетинг / ЭМ [120]
МдЭ [20]
МиНТиС [19]
МиКПРЭС [25]
МСТК / ИКТ (СТК) [25]
ПиПРЭС / ПиППУЭС [32]
ПМС [12]
ПОИТ [635]
ПЭ [43]
Радиотехника [49]
СРРиТ / ИКТ (ЦТР) [54]
СТ / ИКТ (СИК) [41]
ТОБ / ЭСБ [58]
ЭВС [4]
ЭиОП / ЭЭБ [58]
Разное [77]
Форма входа
Поиск
Статистика

Онлайн всего: 15
Гостей: 15
Пользователей: 0
Файловый архив
Файлы » Разное

МСУ лаба4
Подробности о скачивании 28.10.2010, 10:52
ЗАДАЧА 4.1 Написать программу, обеспечивающую программное управление по трем каналам в соответствии с циклограммой
Таблица 6
Такт
Т0 Т1 Т2 Т3 Т4 Т5
Канал1 3F 06 5B 4F 66 6D
Канал2 3F 5B 66 7D 7F 77
Канал3 06 4F 6D 07 6F 5D
В качестве выходных портов использовать адреса индикаторов 2,4,6. Длительность такта принять
равной 1.5 сек.
Программу управления представим в виде массива и расположим в ячейках памяти 82А0, 82А1, .
82А0=3F; |
82А1=3F; | такт 0
82А2=06; |
82А3=06; |
82А4=5B; | такт 1
82А5=4F; |
82А6=5B; |
82А7=66; | такт 2
82А8=6D; |
82А9=4F; |
82AA=7D; | такт 3
82AB=07; |
82AC=66; |
82AD=7F; | такт 4
82AE=6F; |
82AF=6D; |
82B0=77; | такт 5
82B1=5D; |
Для отсчета временных интервалов используем подпрограмму задержки, представляющую собой три вложенных цикла с количеством повторений x,y.z (эти величины определим ниже):
8270=06; DEL: MVI B,X ; 7т
8271=0D;
8272=0E; M1: MVI C,Y ; 7т
8273=FA;
8274=16; M2: MVI D,Z ; 7т
8275=3C;
8276=15; M3: DCR D ; 5т
8277=C2; JNZ M3 ; 10т
8278=76;
8279=82;
827A=0D; DCR C ; 5т
827B=C2; JNZ M2 ; 10т
827C=74;
827D=82;
827E=05; DCR B ; 5т
827F=C2; JNZ M1 ; 10т
8280=72;
8281=82;
8282=C9; RET ; 10т
Чтобы определить числа x,y,z, найдем количество тактов, соответствующие приведенной программе:
N = 7+x(7+y(7+z(5+10)+5+10)+5+10)+10
или после преобразований
N = 15xyz + 22xy + 22x + 17
По условию задачи требуется обеспечить задержку на 1.5c, что при частоте тактового генератора 2МГц соответствует количеству тактов
N = 3000000.
Подбор значений x,y,z дает
x=13; y=250; z=60 (с точностью 0,1%).
Для отображения информации на 8-ми разрядном дисплее составим подпрограмму индикации, которая на каждом такте выбирает из массива по три числа и пересылает их по адресам каналов 1, 2, 3:
8250=7E; IND: MOV A,M
8251=32; STA 83F9H ; канал 1
8252=F9;
8253=83;
8254=23; INX H
8255=7E; MOV A,M
8256=32; STA 83FBH ; канал 2
8257=FB;
8258=83;
8259=23; INX H
825A=7E; MOV A,M
825B=32; STA 83FDH ; канал 3
825C=FD;
825D=83;
825E=23; INX H
825F=C9; RET
Тогда головная программа имеет вид:
8200=21; M0: LXI H,82A0H ; начальный адрес массива
8201=A0;
8202=82;
8203=1E; MVI E,06H ; число тактов
8204=06;
8205=CD; M1: CALL IND ; индикация
8206=50;
8207=82;
8208=CD; CALL DEL ; задержка
8209=70;
820A=82;
820B=1D; DCR E
820C=C2; JNZ M1 ; следующий такт.
820D=05;
820E=82;
820F=C3; JMP M0
8210=00;
8211=82;

ЗАДАЧА 4.2 Написать программу, обеспечивающую перемещение объекта по позициям обработки в соответствии с графом:

Для отображения информации использовать 8-разрядный дисплей. Положение объекта в 2-й позиции отобразить символом "8" в соответствующем разряде. Время обработки определить по формуле ti=0,1(i + 18).
Для этого варианта время нахождения объекта в каждой позиции равно:
t1=1,9 сек.; t2=2 сек.; t3=2,1 сек.; t4=2,2 сек.;
t5=2,3 сек.; t6=2,4 сек.; t7=2,5 сек.; t8=2,6 сек.
Для измерения временных интервалов используем подпрограмму, время задержки для которой определяется содержимым аккумулятора: t=0,1*А (сек).
8270 06 DEL: MVI B,34H ; 7 тактов
8271 34
8272 0E M1: MVI C,FFH ; 7 тактов
8273 FF
8274 0D M2: DCR C ; 5 тактов
8275 C2 JNZ M2 ; 10 тактов
8276 74
8277 82
8278 05 DCR B ; 5 тактов
8279 C2 JNC M1 ; 10 тактов
827A 72
827B 82
827C 3D DCR A ; 5 тактов
827D C2 JNZ DEL ; 10 тактов
827E 70
827F 82
8280 C9 RET ; 10 тактов.
Из чисел ti сформируем массив, который разместим в ячейках 82А0, 82А1,...:
82А0 I3 ; t1
82А1 I4 ; t2
82А2 I5 ; t3
82А3 I6 ; t4
82А4 I7 ; t5
82А5 I8 ; t6
82А6 29 ; t7
82А7 2A ; t8
82А8 00 ; конец.
Головная программа осуществляет необходимые начальные ус- тановки (адрес первого элемента массива, адрес первого индика- тора), а также перемещение символа "9" по разрядам дисплея:
8200 21 M0: LXI H,83F8H ; адрес 1-го индикатора
8201 F8
8202 83
8203 11 LXI D,82A0 ; начальный адрес массива
8204 A0
8205 82
8206 36 M1: MVI M,6FH ; вывод "9"
8207 6F
8208 1A LDAX D ; А <-- Т(I)
8209 CD CALL DEL ; задержка
820A 70
820B 82
820C 36 MVI M,00H ; выключение индикатора
820D 00
820E 23 IND H ; след. индикатор
820F 13 IND D ; след. знач. Т(I)
8210 7D MOV A,L
8211 FE CPI 00H ; конец ?
8212 00
8213 C2 JNZ M1
8214 06
8215 82
8216 C3 JMP M0
8217 00
8218 82

Категория: Разное | Добавил: Serjeo
Просмотров: 1052 | Загрузок: 8
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]