11-05-2013_02-35-01 / isa4enko / err
.pdfТаймер T=C0
Для отсчета времени Топр будем использовать таймер T=0 в 1-м режиме
работы. Управляющее слово для этого режима равно 01H. При тактовой частоте
работы МК, равной 19:5 МГц, максимальное время задержки будет чуть больше
0:04 с, что значительно меньше требуемой 0.45 с. Поэтому на таймере T/C0 реали-
зуем задержку на 0.040с, а в регистре общего назначения (РОН) будем накапливать количество переполнений таймера с целью получения требуемой задержки в 0.45 с. Для получения задержки 0.040с в регистры таймера TH0,TL0 первоначально необходимо загрузить число 65536 0:040=1=19:5 МГц=12 = 65536 65000 =
536 = 218H. Количество переполнений таймера для отсчета времени 0.45 с будет
0:45=0:040 = 8H. Для счета переполнений будем использовать регистр R0 1-го
банка РОН.
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Для формирования управляющих сигналов Y1, Y2, Y3 в программу работы МК необходимо ввести временные задержки различной длительности. Так как оба таймера МК заняты, то для реализации временных задержек используем метод программных циклов [1]. Для задержки длительностью t1 = 110мкс используем подпрограмму 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 = 19:5 МГц имеем: |
|
|
|
|
|
|
|
||||||
|
12 |
|
|
|
|
|
|
||||||
|
TÌÖ = |
|
|
|
|
|
|
= 0:615 |
(2) |
||||
|
|
|
|
|
6 |
|
|||||||
Время задержки: |
19:5 |
10 |
|
|
|
|
|
||||||
tçàä = (2 + 2 + 2 + 2 N) TÌÖ |
|
||||||||||||
|
(3) |
||||||||||||
Ïðè tçàä = t1 = 110мкс имеем: |
|
|
|
|
|
|
|
||||||
|
|
110 |
|
6 |
|
|
|
|
|
||||
|
N = |
0:615 |
|
= 86 |
|
(4) |
|||||||
|
|
|
|
||||||||||
|
2 |
|
|
|
|
|
|
|
Для реализации задержки длительностью t2 = 45мс и t3 = 30мс используем подпрограмму с двумя вложенными циклами:
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) |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Примем tвнутр.цикл = 307:69мкс, тогда
INT R = |
307:69 |
= 250 |
(6) |
|
2TÌÖ
Для времени внешнего цикла
tвнешн.цикл = (2 + 2 + 2) 0:615ìêñ + ((2 + 2) 0:615ìêñ + 307:69ìêñ) EXT R (7)
Ïðè tвнешн.цикл = t2 = 45ìñ |
|
|
|
|
|
EXT R = |
45000 6 TÌÖ |
= 145 |
(8) |
||
4 TÌÖ + 307:69 |
|||||
|
|
|
|||
Ïðè tвнешн.цикл = t3 = 30ìñ |
|
|
|
|
|
EXT R = |
|
30000 6 TÌÖ |
= 96 |
(9) |
|
|
4 TÌÖ + 307:69 |
||||
|
|
|
|
Окончательно подпрограммы временных задержек будут иметь следующий вид:
;****************************************************************** ; DEL110MKS подпрограмма задержки на 110 мкс ;******************************************************************
DEL110MKS : |
MOV |
R7 ,#86 |
|
LOOP : |
DJNZ |
R7 , LOOP |
|
|
RET |
|
|
;****************************************************************** ; DEL45MS подпрограмма задержки на 45 мс ;******************************************************************
DEL45MS : |
MOV |
R6 ,#145 |
LOOP2 : |
MOV |
R7 ,#250 |
LOOP1 : |
DJNZ |
R6 , LOOP1 |
|
DJNZ |
R6 , LOOP2 |
|
RET |
|
;****************************************************************** ; DEL30MS подпрограмма задержки на 30 мс ;******************************************************************
DEL30MS : |
MOV |
R6 ,#96 |
LOOP2 : |
MOV |
R7 ,#250 |
LOOP1 : |
DJNZ |
R7 , LOOP1 |
|
DJNZ |
R6 , LOOP2 |
|
RET |
|
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
56 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Рисунки
Рисунок 15 Cхема подключения микроконтроллера
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Рисунок 16 Схема включения коммутатора аналоговых сигналов
Рисунок 17 Схема ввода цифровых и аналоговых сигналов с АЦП К1113ПВ1
Рисунок 18 Схема подключения переключателей к регистру ввода
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
58 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Рисунок 19 Схемы подключения светодиодов индикации
Рисунок 20 Схемы вывода управляющих сигналов Y1,Y2,Y3
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Рисунок 21 Cхема подключения четырехразрядного дисплея
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|
Рисунок 22 Схема сопряжения МК с интерфейсом
|
|
|
|
|
|
Ëèñò |
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
Èçì. |
Ëèñò |
докум. |
Ïîäï. |
Äàòà |
|
|
|
|