11-05-2013_02-35-01 / aliseyko / err
.pdfРабота над ошибками Делитель напряжения
Так как размах входного сигнала составляет 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 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|