MIC-RON.RU

В помощь радиолюбителю

Программа для микропроцессора Z80, обеспечивающая измерение времени дребезга контактов реле


Van Harris
Фирма Boeing Aerospace Co. (Сиэтл, шт. Вашингтон)

Описанная здесь программа для микропроцессора Z80, которая ориентирована на выполнение в автоматических испытательных микропроцессорных системах, измеряет время втягивания сердечника реле и дребезга контактов реле, что позволяет обойтись без сложной аппаратуры, если использовать эту стандартную программу в составе программ тестирования. Предложенная программа также обеспечивает достаточную точность измерений. Полное время замыкания контактов можно найти путем сложения времен втягивания сердечника и дребезга контактов реле.

Программа, стостоящая из двух частей, выполняется, когда испытуемое реле соединяется с портом ввода цифровых данных DI, реализующим преобразование логических уровней. Первая часть программы, образующая цикл 1, определяет время втягивания сердечника реле. Вторая часть подсчитывает время дребезга контактов реле.

 


Блок - схема программы измерения времени дребезжания контактов реле

 

ПРОГРАММА ДЛЯ МИКРОПРОЦЕССОРА Z80,
ИЗМЕРЯЮЩАЯ ВРЕМЯ ДРЕБЕЗГА КОНТАКТОВ РЕЛЕ

 

Строка  Адрес   B1   B2   В3   B4
1
2         ;Измеритель времени дребезга контактов
3
4       ;Эта программа будет измерять время        ;дребезга контактов и время втя
5       ;гивания сердечника. Значение времени        ;дребезга будет в регистре HL,
6       ;а время втягивания в регистре DE.
7
8
9
10       ;TITLE "BOUNCE TIMER"
11       LIST В, Х
12       NAME BOUNCE
13       ASEG
14       ORG 3000H
15
16	3000     BOUNCE:
17  3000  F3    DI    ;Запрет прерываний
18
19  3001  21  18  FC  LD  HL,-TIMEOUT  ;Вычесть время контакта из  
        ;счетчика времени дребезга
20  3004  01  Е8  03  LD  ВС, TIMEOUT  ;Установить счетчик времени контакта
21  3007  11  FF  FF  LD  DE, -1   ;Установить счетчик времени втягивания
22
23  3000А  ЗЕ  07   LD  A, CLOSE  ;Замкнуть реле
24  3000С  D3  С   OUT  (PORTST), А
25
26     ;Время втягивания сердечника

27
28  3000Е     LOOP1:
29  3000Е  13     INC DE   ;Увеличить счетчик
30
31  300F  DB  92   IN  A, (PORTIM)  ;Получить состояние реле
32  3011  FE  FF   CP	TRUE   ;Ждать первого неустойчивого 
        ;замыкания контактов
33  3013  20  F9   JR	NZ, LOOP1 - $
34
35     ;Время дребезга контактов

36
37  3015     LOOP2:
38  3015  23    INC  HL   ;Увеличить счетчик времени дребезга
39
40  3016  DB  92   IN  A, (PORTIM)  ;Получить состояние реле
41  3018  FE  FF   CP  TRUE   ;Состояние реле истинно?
42  301А  С2  23  30  JP  NZ, RESEIC  ;Если нет, восстановить счетчик времени контакта
43
44  301D  0B    DEC  ВС   ;Уменьшить счетчик времени контакта
45  301Е  78    LD  А, В   ;Установить флажки
46  301F  Bl    OR  С
47         ;Выполнить цикл, пока счетчик време-
48  3020  20  F3   JR  NZ, LOOP2- $  ;ни контакта не станет = нулю
49
50  3022  С9    RET    ;Возврат, значение времени дребезга 
        ;в регистре HL, а времени втягивания
51         ;в регистре DE
52
53     ;Восстановление счетчика времени контакта
54
55  3023         RESETC:
56  3023  01  Е8  03  LD  BC, TIMEOUT  ;Восстановление счетчика времени контакта
57  3026  00     NOP   ;Сохранение времени выполнения цикла постоянным
58  3027  18  ЕС    JR LOOP2-$
60
61
62     ;DATA
63
64  03ЕВ    TIMEOUT  EQU 1000
65  00FF    TRUE   EQU 0FFH
66  0007    CLOSE   EQU 07H
67  00C2    PORTST   EQU 0C2H
68  0092    PORTIM   EQU 92H
69  3029     END

Число ошибок ассемблеpa = 0

Прерывания запрещены с целью сохранения точности измерений в каждом цикле. Цикл 1 (счетчик времени втягивания) состоит из процедур наращивания содержимого счетчика и проверки. При каждом прохождении цикла проверяется состояние порта DI на наличие первого неустойчивого замыкания контактов реле. Когда такой эффект обнаружен, программа измеряет время втягивания сердечника и хранит это значение в регистре DE. Однако истинное время втягивания вычисляется умножением содержимого регистра DE на 36 и делением результата на тактовую частоту микропроцессора Z80.

Цикл 2 (счетчик времени дребезга контактов реле) представляет собой подпрограмму наращивания содержимого счетчика и проверки, а также содержит дополнительную процедуру,

обеспечивающую работу счетчика времени контакта и восстановления. При каждом прохождении цикла увеличивается содержимое регистра HL и проверяется состояние порта DI. Если контакты реле разомкнуты, то в счетчик времени контакта загружается заранее определенное значение этого времени. В случае замыкания контактов реле значение счетчика времени контакта уменьшается до тех пор, пока не достигнет нуля. Когда содержимое регистра счетчика времени контакта равно нулю, программа измеряет время дребезга контактов, и это значение запоминается в регистре HL. Однако для того чтобы получить истинное время дребезга контактов, в регистр HL вначале записывают дополнительный двоичный код значения времени контакта, затем его содержимое умножается на 60, и результат делится на тактовую частоту микропроцессора Z80.


 
YOU ARE HERE:
© 2009, 2010, 2011, 2012 Mic-ron.ru - Сайт для радиолюбителя, схемы, помощь, радиолюбительские конструкции, журнал радиолюбитель. Форум, фото и видео
Так же схемы и устройства станков, чертежи и принципы работы станков, помогут вам сделать многое своими руками
регулятор температуры паяльника | самодельная сварка | блок питания радиолюбителя | эстония 010 | оптотиристоры справочник | схема mp3 плеера |
Rambler's Top100