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

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

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

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

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

Целая часть

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

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