Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_18_1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
714.24 Кб
Скачать

Программирование приема информации от датчика

Рассмотрим пример измерения угловой скорости ротора электродвигателя при помощи обтюратора (диск со щелями), прерывающего световой поток в оптронной паре.

П усть накопление импульсов осуществляется в течении

0,1 c, а обтюратор содержит 24 щели. Тогда угловой скорости вращения ротора 1000 об/мин соответствует частота импульсов на выходе обтюратора 400 Гц:

Из-за отсутствия синхронизации и из-за погрешности изготовления обтюратора в разных циклах счета при этой скорости может накопиться от 39 до 41 импульса. 400 Гц * 0,1 с =40 импульсов.

Если угловая скорость ротора не превышает 10 000 об/мин, что соответствует частоте f=4кГц или 400 импульсам, то для хранения скорости следует выделить два байта omgl и omgh.

О стальные условия задачи совпадают с предыдущими:

Накопление импульсов идет в течение 0,1 с = 100 мс. Прерывания по условиям прошлой задачи возникают каждые 10 мс. Поэтому считывание счетчика 1 нужно выполнять один раз через 10 прерываний.

Дополним блок инициализации:

mov TMOD, #0D1h

mov TL1, #0

mov TH1, #0 ;сброс счетчика в 0

mov ten, #10 ;счетчик числа прерываний

Дополним срочную задачу:

main: …

dec ten ;счётчик для перехода от 10 мс к 100 мс

mov A, ten ;для проверки содержимого счётчика

jnz noten ;переход в 9 циклах из 10

clr TR1 ;остановка счётчика 1

mov omgl, TL1 ;чтение младшего байта скорости

mov omgh, TH1 ;чтение старшего байта скорости

mov TL1, #0 ;

mov TH1, #0 ;обнуление

setb TR1 ;запустить счётчик

mov ten, #10 ;

noten: nop ;продолжение программы