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

Работа над ошибками Делитель напряжения

Так как размах входного сигнала составляет 10 вольт, а входное напряжение АЦП К1113ПВ1 для 8 разрядов должно составлять составлять 2,56В, то необходимо использовать делитель напряжения. Зададимся сопротивлением R2 = 10000 Ом. Тогда

 

R2

R2

R2

Uâûõ = Uâõ

 

) R1 = Uâõ

 

R1 + R2

Uâûõ

R1 = 10 100002; 56 10000 = 29062 Ом, принимаем R1=28,7кОм

Рисунок 15 Делитель напряжения

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

54

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Таймер T=C0

Для отсчета времени Топр будем использовать таймер T=0 в 1-м режиме

работы. Управляющее слово для этого режима равно 01H. При тактовой частоте

работы МК, равной 20 МГц, максимальное время задержки будет чуть больше

0:039 с, что значительно меньше требуемой 2.7 с. Поэтому на таймере T/C0 реали-

зуем задержку на 0.039с, а в регистре общего назначения (РОН) будем накапливать количество переполнений таймера с целью получения требуемой задержки в 2.7 с. Для получения задержки 0.039с в регистры таймера TH0,TL0 первоначально необходимо загрузить число 65536 0:039=1=20 МГц=12 = 65536 65000 =

536 = 218H. Количество переполнений таймера для отсчета времени 2.7 с будет

2:7=0:039 = 36H. Для счета переполнений будем использовать регистр R0 1-го

банка РОН.

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

55

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Для формирования управляющих сигналов Y1, Y2, Y3 в программу работы МК необходимо ввести временные задержки различной длительности. Так как оба таймера МК заняты, то для реализации временных задержек используем метод программных циклов [1]. Для задержки длительностью t1 = 52мкс используем подпрограмму DEL, которая вызывается командой CALL DEL, ее текст:

DEL :

MOV

R7 ,# N

LOOP :

DJNZ

R7 , LOOP

 

RET

 

В описании команд МК51 [1,2] указывается, за сколько машинных циклов (МЦ) выполняется каждая команда: MOV - 2МЦ, DJNZ - 2 МЦ, RET - 2 МЦ, CALL - 2 МЦ. Время машинного цикла TÌÖ связано с тактовой частотой fCLK работы

МК соотношением:

1

 

 

12

 

 

 

 

 

 

(1)

TÌÖ =

 

=

 

 

 

fÌÖ

f

 

 

 

 

 

 

 

 

CLK

 

Ïðè fCLK = 20 МГц имеем:

 

 

 

 

 

 

 

 

 

 

TÌÖ =

12

 

 

= 0:6

(2)

 

 

 

 

 

 

 

20 10

6

 

 

 

 

 

 

 

Время задержки:

 

 

 

 

 

 

 

 

 

 

tçàä = (2 + 2 + 2 + 2 N) TÌÖ

(3)

Ïðè tçàä = t1 = 52мкс имеем:

 

 

 

 

 

 

 

 

 

 

N =

052:6 6

 

= 40

 

(4)

 

 

 

2

 

 

 

 

 

 

 

Для реализации задержки длительностью t2 = 20мс и t3 = 48мс используем подпрограмму с двумя вложенными циклами:

DELAY :

MOV

R6 ,# EXTR

 

 

LOOP2 :

MOV

R7 ,# INTR

 

 

LOOP1 :

DJNZ

R7 , LOOP1

;

Внутренний цикл

 

DJNZ

R6 , LOOP2

;

Внешний цикл

 

RET

 

 

 

Необходимо определить значение констант INTR и EXTR, задающих времена, соответственно, tвнутр.цикл è tвнешн.цикл. Можно записать для времени внутреннего цикла:

tвнутр.цикл = 2 TÌÖ INT R

(5)

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

56

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Примем tвнутр.цикл = 300мкс, тогда

INT R =

300

= 250

(6)

 

 

 

 

2TÌÖ

 

 

Для времени внешнего цикла

 

 

 

 

 

 

tвнешн.цикл = (2 + 2 + 2) 0:6ìêñ + ((2 + 2) 0:6ìêñ + 300ìêñ) EXT R

(7)

Ïðè tвнешн.цикл = t2 = 20ìñ

 

 

 

 

 

 

EXT R =

 

20000 6 TÌÖ

= 66

(8)

4 TÌÖ + 300

 

 

 

 

Ïðè tвнешн.цикл = t3 = 48ìñ

 

 

 

 

 

 

EXT R =

48000 6 TÌÖ

= 158

(9)

 

 

4 TÌÖ + 300

 

 

Окончательно подпрограммы временных задержек будут иметь следующий вид:

;****************************************************************** ; DEL52MKS подпрограмма задержки на 52 мкс ;******************************************************************

DEL52MKS :

 

MOV

R7 ,#40

LOOP :

DJNZ

R7 , LOOP

 

 

RET

 

 

;****************************************************************** ; DEL20MS подпрограмма задержки на 20 мс ;******************************************************************

DEL20MS :

MOV

R6 ,#66

LOOP2 :

MOV

R7 ,#250

LOOP1 :

DJNZ

R6 , LOOP1

 

DJNZ

R6 , LOOP2

 

RET

 

;****************************************************************** ; DEL48MS подпрограмма задержки на 48 мс ;******************************************************************

DEL48MS :

MOV

R6 ,#158

LOOP2 :

MOV

R7 ,#250

LOOP1 :

DJNZ

R7 , LOOP1

 

DJNZ

R6 , LOOP2

 

RET

 

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

57

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Рисунки

Рисунок 16 Cхема подключения микроконтроллера

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

58

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Рисунок 17 Схема включения коммутатора аналоговых сигналов

Рисунок 18 Схема ввода цифровых и аналоговых сигналов с АЦП К1113ПВ1

Рисунок 19 Схема подключения переключателей к регистру ввода

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

59

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Рисунок 20 Схемы подключения светодиодов индикации

Рисунок 21 Схемы вывода управляющих сигналов Y1,Y2,Y3

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

60

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Рисунок 22 Cхема подключения четырехразрядного дисплея

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

61

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà

 

 

 

Рисунок 23 Схема сопряжения МК с интерфейсом

 

 

 

 

 

 

Ëèñò

 

 

 

 

 

 

 

 

 

 

 

 

 

62

Èçì.

Ëèñò

докум.

Ïîäï.

Äàòà