Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КР_Можаев.doc
Скачиваний:
4
Добавлен:
28.08.2019
Размер:
1.01 Mб
Скачать

Операция сложения.

Первый операнд

Второй операнд

Результат операции

Целая часть

RW1

RW3

RW4

Дробная часть

RW0

RW2

RW5

Рисунок 4 – Блок-схема алгоритма операции сложения

3. Текст программы, реализующий цифровой эквивалент передаточной функции

.PROGRAM KURSOVAYA ;Имя програмного модуля

#include C:\Softune\bin\MyLab1\Mb90V590.h ;Включение заголовочного файла

.EXPORT _main ;Объявление общедоступным имени программы

.SECTION DATA_MAIN, DATA, ALIGN=2 ;Описание сегмента данных программы

A1 .RES.W 1 ;Резервирование памяти для переменных B1 .RES.W 1

P .RES.W 1

Y1 .RES.W 1

Y2 .RES.W 1

P1 .RES.W 1

P2 .RES.W 1

X .RES.W 1

.SECTION CODE_MAIN, CODE, ALIGN=2;Описание сегмента данных программы

_main: ;начало прикладной программы

MOVW A1,#9973 ;запись в А1 9973

MOVW B1,#53 ;запись в В1 53

MOVW Y2,#00 ;обнуление Y2

MOVW Y1,#00 ;обнуление Y1

;НАСТРОЙКА РАБОТЫ ТАЙМЕРА

MOV A,#2000 ;запись в аккумулятор 2000

MOV TMRLR0,A ;запись в регистр перезагрузки данных из аккумулятора

MOV TMCSR0,#H'0013 ;настройка регистра управления таймера

;НАСТРОЙКА РАБОТЫ ПОРТОВ

MOV DDR8,#H'FF ;настройка всех портов на вывод данных

MOV PDR8,#00 ;обнуление регистра данных PDR8

;НАСТРОЙКА РАБОТЫ АЦП

MOV ADCS0,#H'00 ;настройка регистров ADCS0, ADCS1, ADCR1, ADER

MOV ADCS1,#H'00

MOV ADCR1,#H'E8

MOV ADER,#H'FF

;ВЫПОЛНЕНИЕ АНАЛОГО-ЦИФРОВОГО ПРЕОБРАЗОВАНИЯ

METKA2: SETB ADCS1:1 ;установка бита запуска АЦП

WBTC ADCS1:7 ;ожидание подтверждения запуска

CLRB ADCS1:6 ;обнуление флага прерывания

MOV A,ADCR0 ;запись в аккумулятор данных из ADCR0

MOV X,A ;пересылка аккумулятора в Х

;ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ УхА1

MOVW RW1,Y2 ;пересылка Y2 в RW1

MOVW RW0,Y1 ;пересылка Y1 в RW0

MOVW RW3,#00 ;обнуление RW3

MOVW RW2,A1 ;пересылка A1 в RW2

CALL PROIZ ;вызов подпрограммы умножения

;ЗАПИСЬ ПОЛУЧЕННОГО РЕЗУЛЬТАТА

MOVW P2,RW4 ;пересылка RW4 в P2

MOVW P1,RW5 ;пересылка RW5 в P1

;ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ ХхВ1

MOVW RW1,X ;пересылка X в RW1

MOVW RW0,#00 ;обнуление RW0

MOVW RW3,#00 ;обнуление RW3

MOVW RW2,B1 ;пересылка B1 в RW2

CALL PROIZ ;вызов подпрограммы умножения

;ВЫЧИСЛЕНИЕ ЗНАЧЕНИЯ ПЕРЕМЕННОЙ У НА ДАННОМ ШАГЕ

MOVW A,P2 ;пересылка P2 в аккумулятор

ADDW A,RW4 ;суммирование аккумулятора с RW4

MOVW RW4,A ;запись результата в RW4

MOVW A,P1 ;пересылка P1 в аккумулятор

ADDW A,RW5 ;суммирование аккумулятора с RW5

MOVW RW5,A ;запись результата в RW5

MOVW A,#9999 ;запись в аккумулятор 9999

CMPW A,RW5 ;сравнение аккумулятора с RW5

BHS METKA3 ;если аккумулятор >=RW5 переход по метке METKA3

INCW RW4 ;RW4=RW4+1

MOVW A,RW5 ;пересылка RW5 в аккумулятор

MOVW RW5,#10000 ;запись 10000 в RW5

SUBW A,RW5 ;А=A-RW5

MOVW RW5,A ;пересылка аккумулятора в RW5

METKA3: MOVW Y2,RW4 ;пересылка RW4 в Y2

MOVW Y1,RW5 ;пересылка RW5 в Y1

MOVW RW6,Y2 ;пересылка Y2 в RW6

MOVW RW7,Y1 ;пересылка Y1 в RW7

;ВЫВОД У НА ДАННОМ ШАГЕ

MOV A,Y2 ;пересылка Y2 в аккумулятор

MOV PDR8,A ;пересылка аккумулятора в регистр данных PDR8

;ОРГАНИЗАЦИЯ ЗАДЕРЖКИ

WBTS TMCSR0:2 ;ожидание установки бита флага прерывания

CLRB TMCSR0:2 ;сброс бита флага прерывания

JMP METKA2 ;переход на метку METKA2

;ПОДПРОГРАММА УМНОЖЕНИЯ RW1.RW0 НА RW3.RW2

;РЕЗУЛЬТАТ ПОМЕЩАЕТСЯ В RW4.RW5

PROIZ: MOVW A,RW2 ;пересылка RW2 в аккумулятор

MULW A,RW1 ;A=A*RW1

MOVW P,#10000 ;запись 10000 в P

DIVW A,P ;A=A/P (A-частное, P-остаток)

MOVW RW4,A ;пересылка аккумулятора в RW4

MOVW RW5,P ;пересылка Р в RW5

MOVW A,RW2 ;пересылка RW2 в аккумулятор

MULW A,RW0 ;A=A*RW0

MOVW P,#10000 ;запись 10000 в P

DIVW A,P ;A=A/P (A-частное, P-остаток)

ADDW A,RW5 ;A=A+RW5

MOVW RW5,A ;Пересылка аккумулятора в RW5

MOVW A,#9999 ;запись в аккумулятор 9999

CMPW A,RW5 ;сравнение аккумулятора с RW5

BHS METKA1 ;если аккумулятор >=RW5 переход по метке METKA1

INCW RW4 ;RW4=RW4+1

MOVW A,RW5 ;пересылка RW5 в аккумулятор

MOVW RW5,#10000 ;запись 10000 в RW5

SUBW A,RW5 ;А=A-RW5

MOVW RW5,A ;пересылка аккумулятора в RW5

METKA1: RET ;Возврат из подпрограммы

.END ;Конец программы

С помощью MathCad построим переходные процессы по передаточной функции и по полученному выше разностному уравнению.

Рисунок 5 – Графики переходных процессов

Как видно, переходные процессы по передаточной функции и по разностному уравнению совпадают.

Результаты выполнения программы при входном воздействии в 1 В (после преобразования в АЦП оно соответствует числу 48) представлены в таблице 1.

Таблица 1

Номер цикла №

Время, с

Значение

Номер цикла №

Время

Значение

0

0

0

67

0.067

16

1

0,001

0

72

0.072

17

2

0.002

1

77

0.077

18

6

0.006

2

81

0.081

19

10

0.01

3

86

0.086

20

15

0.015

4

91

0.091

21

19

0.019

5

96

0.096

22

23

0.023

6

101

0.101

23

27

0.027

7

107

0.107

24

31

0.031

8

112

0.112

25

35

0.035

9

117

0.117

26

40

0.040

10

123

0.123

27

44

0.044

11

128

0.128

28

49

0.049

12

134

0.134

29

53

0.053

13

139

0.139

30

58

0.058

14

145

0.145

31

Номер цикла №

Время, с

Значение

Номер цикла №

Время

Значение

151

0,151

32

260

0,260

48

157

0,157

33

268

0,268

49

163

0,163

34

276

0,276

50

169

0,169

35

285

0,285

51

176

0,176

36

293

0,293

52

182

0,182

37

302

0,302

53

188

0,188

38

311

0,311

54

195

0,195

39

320

0,320

55

202

0,202

40

330

0,330

56

208

0,208

41

339

0,339

57

215

0,215

42

349

0,349

58

222

0,222

43

359

0,359

59

230

0,230

44

370

0,370

60

237

0,237

45

381

0,381

61

245

0,245

46

392

0,392

62

251

0,251

47

403

0,403

63

Номер цикла №

Время, с

Значение

Номер цикла №

Время

Значение

663

0,663

79

415

0,415

64

687

0,687

80

427

0,427

65

714

0,714

81

440

0,440

66

742

0,742

82

453

0,453

67

771

0,771

83

467

0,467

68

805

0,805

84

481

0,481

69

841

0,841

85

496

0,496

70

881

0,881

86

510

0,510

71

9278

0,927

87

527

0,527

72

978

0,978

88

543

0,543

73

1038

1,038

89

561

0,561

74

1109

1,109

90

579

0,579

75

1197

1,197

91

598

0,598

76

1314

1,314

92

619

0,619

77

1485

1,485

93

640

0,640

78

1812

1,812

94

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]