Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
06.06.2017
Размер:
39.83 Кб
Скачать

Министерство образования и науки РФ

ФГБОУ ВО “Магнитогорский государственный технический университет имени Г.И.Носова”

Институт Энергетики и Автоматизированных Систем

Кафедра электроники и микроэлектроники

Курсовая работа по дисциплине “Основы микропроцессорной техники”

Вариант – 3.4

Выполнил: студент гр. АНб-14-2 Михайлицын А.С.

Проверил: кандидат тех. наук Швидченко Д.В.

Магнитогорск 2016

Задача: программным способом реализовать датчик угловой скорости вращения электродвигателя.

Данные варианта 2 приведены в таблице 1.

Таблица 1

nдв max, об/мин

nдв min, об/мин

n1

@1

@2

Ошибка,

%

1100

100

70

34

24

1

1.Анализ поставленной задачи.

Разработать цифровой датчик скорости, анализируя количество опросов порта, в течение периода импульсов поступающих в порт 34.

Рассчитать период опроса порта для заданных параметров и погрешности. Так как максимальная погрешность имеется при максимальной скорости (при максимальной скорости больше импульсов), то необходимо расчет вести для максимальной скорости.

Найти частоту импульсов при максимальной скорости:

fmax = , (1)

где nдв max - максимальная скорость двигателя в об/сек,

nдв min - минимальная скорость двигателя в об/сек,

n1 - число импульсов на оборот импульсного датчика.

0,00078. (2)

Длины положительных импульсов при этом равны:

0,00039 . (3)

Найти необходимый период опроса порта для заданного уровня ошибки:

0,0000039 (с) = 4 (мкс) (4)

Рассчитать число тактов, через которое должен производиться опрос порта ввода при заданной погрешности:

Частота данного микропроцессора 2 МГц, следовательно, период одного такта = 0,5 мкс

(5)

Из этого следует, что организовать опрос порта, анализ полученных данных и сохранение результата анализа нужно организовать за полученное число тактов. Это невозможно в данных условиях, поэтому, было решено организовать 5 периодов опроса порта.

Пусть k – количество импульсов подсчитанных за положительный полупериод, тогда

(6)

(7)

V (8)

(9)

Максимальная и минимальная скорости 1100 оборотов в минуту и 100 оборотов в минуту (4 разряда числа), поэтому для отображения реальной скорости придется использовать два порта вывода: один – для старших разрядов, другой – для младших разрядов. Дополнительным портом вывода я возьму порт 25.

Теперь найду максимальное и минимальное количество опросов порта ввода за положительный полупериод. Для этого найду сначала частоту импульсов при минимальной скорости, затем максимально возможный полупериод, проделаю то же самое и для максимальной скорости и найду минимально возможный полупериод:

1283

117

0,00078

0,0085

– максимально возможное количество подсчитанных импульсов.

- минимально возможное количество подсчитанных импульсов.

2.Разработка блок-схемы.

Начало программы

Загрузка регистров значениями

1

Проверка порта. На порте значение появилось?

2

Нет

Да

Инкрементируем регистр B, считаем период

3

Инкрементируем регистровую пару, считаем импульсы

4

Проверка порта. На порте значение пропало?

5

Нет

Да

Проверка регистра B. Равен 05?

6

Нет

Да

1

Вывод старшего байта скорости из таблицы на порт 24

7

1

Поиск младшего байта в таблице

8

Вывод младшего байта скорости на порт 25

9

Безусловный переход на начало программы

10

3. Разработка программы.

Таблица 2

Адрес

Машинный код

Количество тактов

Мнемоника команды

Метка

0700

11 88 13

10

LXI D

0703

26 00

7

MVI H

M4

0705

2E 00

7

MVI L

0707

07 00

7

MVI B

0709

DB 34

10

IN port 34

M1

070B

FE 00

7

CPI 00

070D

CA 09 07

10

JZ 0709

0710

04

5

INR B

M3

0711

23

5

INX H

M2

0712

DB 34

10

IN port 34

0714

FE 00

7

CPI 00

0716

D3 11 07

10

JNZ 0711

0718

78

7

MOV A, B

0719

FE 05

7

CPI 05

071B

D3 10 07

10

JNZ 0710

0720

7E

7

MVI A,M

0721

D3 24

10

OUT port 24

0723

19

10

DAD D

0724

7E

7

MVI A,M

0725

D3 25

10

OUT port 25

0728

C3 03 07

10

JMP 0703

3.1. Описание программы.

Сначала идет опрос порта до тех пор, пока значение порта не сменится с 0 на любое другое. Это означает что период пошел. Как только процессор выяснил, что пошел первый период сигнала, начинается работа счетчика, регистровой пары, который считает количество импульсов. Одновременно с этим запускается второй счетчик, считающий периоды. Счет импульсов будет продолжаться, пока значение порта не сменится на 0. Когда это произошло, процессор сверяет счетчик периодов с числом пять. Если прошло пять периодов, то выдаем значение скорости младший и старший байт соответственно на каждый из портов, значения берутся из таблицы, расчитанной мною заранее. Операция DAD D происходит для сложения регистровых пар, чтобы найти в таблице младший байт скорости, соответствующий страшему байту. Изначально была задана регистровая пара как разница между ячейками со старшим и младшими байтами скорости. Скорость соответствует количеству импульсов.

3.2 Таблица скоростей к программе.

Таблица 3

Импульсы, k

Скорость, об мин.

Старший байт

Адрес

Младший байт

Адрес

500

1100

11

9F4

0

1D7C

501

1098

10

9F5

98

1D7D

502

1096

10

9F6

96

1D7E

503

1093

10

9F7

93

1D7F

504

1091

10

9F8

91

1D80

505

1089

10

9F9

89

1D81

506

1087

10

9FA

87

1D82

507

1085

10

9FB

85

1D83

508

1083

10

9FC

83

1D84

509

1081

10

9FD

81

1D85

510

1078

10

9FE

78

1D86

511

1076

10

9FF

76

1D87

512

1074

10

A00

74

1D88

513

1072

10

A01

72

1D89

514

1070

10

A02

70

1D8A

515

1068

10

A03

68

1D8B

516

1066

10

A04

66

1D8C

517

1064

10

A05

64

1D8D

518

1062

10

A06

62

1D8E

519

1060

10

A07

60

1D8F

520

1058

10

A08

58

1D90

521

1056

10

A09

56

1D91

522

1054

10

A0A

54

1D92

523

1052

10

A0B

52

1D93

524

1050

10

A0C

50

1D94

5486

114

1

1D67

14

30EF

5487

113

1

1D68

13

30F0

5488

112

1

1D69

12

30F1

5489

111

1

1D6A

11

30F2

5490

110

1

1D6B

10

30F3

5491

109

1

1D6C

9

30F4

5492

108

1

1D6D

8

30F5

5493

107

1

1D6E

7

30F6

5494

106

1

1D6F

6

30F7

5495

105

1

1D70

5

30F8

5496

104

1

1D71

4

30F9

5497

103

1

1D72

3

30FA

5498

102

1

1D73

2

30FB

5499

101

1

1D74

1

30FC

5500

100

1

1D75

0

30FD

4. Вывод: данный курсовой проект было возможно рассчитать и другими способами. Например можно было бы с помощью программы деления, делить числа внутри микропроцессора. Этот метод крайне затратный по времени. Однако и мой метод тоже имеет затраты. Затраты адресного пространства. Но решено было использовать данный метод по причине того, что скорость выведения результата мне показалась более важной, чем занимаемое место программы. Нужно учесть один факт: эта программа и таблица значений к программе слишком индвидуальны и будут работать только для конкретно этого датчика скорости.

Соседние файлы в папке ОМТ (Основы микропроцессорной техники)