Частота синхронизации мк
Примем частоту задающего кварцевого генератора FOSC = 12 МГц. Длительность машинного цикла при этом равна TМЦ = 1 мкс.
Настройка таймера-счётчика Т/С0
Режим работы. По сформулированному выше определению Т/С0 должен работать в непрерывном режиме таймера (без блокирования сигналом ) для формирования импульсов с частотой дискретизации FД. Выбираем поэтому режим 2 с перезагрузкой после каждого цикла счёта. Управляющие биты GATE0 = 0, C/ 0 = 0 и код режима 10 записываются в состав управляющего слова (константа #02) для регистра TMOD при инициализации фильтра – командой MOV 89, #02.
Управляющее слово для регистра TMOD (прямой адрес 89) | |||||||
TMOD.7 | TMOD.6 | TMOD.5 | TMOD.4 | TMOD.3 | TMOD.2 | TMOD.1 | TMOD.0 |
x(0) | x(0) | x(0) | x(0) | ||||
GATE1 | C/ 1 | M1.1 | M0.1 | GATE0 | C/ 0 | M1.0 | M0.0 |
Задание частоты дискретизации FД = 10000 Гц. Длительность интервала дискретизации равна ТД = 100 мкс. Количество машинных циклов TМЦ, укладывающихся на интервале дискретизации: N = TД / TМЦ = 100, т.е. T/С0 должен иметь в режиме с перезагрузкой коэффициент счёта kСЧ = N = 100.
Максимальный коэффициент пересчёта 8-разрядного счётчика (без перезагрузки) равен kМАКС = 28 = 256. Чтобы в режиме суммирования 8-разрядный Т/С0 имел требуемый коэффициент пересчёта kСЧ = N, при перезагрузке в него должно записываться число NИСХ = kМАКС – N, для рассматриваемого примера NИСХ = 156 = 9С.
Константа #9С, обеспечивающая требуемую частоту дискретизации, при инициализации фильтра должна быть записана для хранения в регистр TH0 (прямой адрес 8C) – командой MOV 8C, #9C.
Пуск Т/С0 осуществляется путём установки в регистре TCON управляющего бита TR0 =1 при инициализации фильтра - командой SETB 8C.
Вывод импульса переполнения Т/С0 для запуска АЦП выполняется по прерыванию от флага TF0, устанавливающегося при переполнении Т/С0. Подпрограмма обработки прерывания от флага TF0 имеет стартовый адрес 000B и содержит команды: CLR 90, SETB 90 – сброс и установка линии P1.0 (порт P1), так как исходное состояние линии – 1 (во все защёлки портов при сбросе МК записаны 1 – порты настроены на ввод).
Настройка прерываний
В результате сброса МК при включении питания всем источникам прерываний назначается одинаковый, нулевой приоритет. Поскольку обработки прерываний от таймера Т/С0 и по входу не могут совпадать по времени, переопределять приоритеты прерываний не требуется.
После сброса МК все прерывания запрещены. Поэтому при инициализации требуется разрешить прерывания вообще (установить бит EA = 1) и, в частности, разрешить прерывания от Т/С0 (ET0 = 1) и по входу
(EX0 = 1). Команда записи управляющего слова (константы #83) в регистр IE:
MOV A8, #83.
Управляющее слово для регистра IE (прямой адрес A8) | |||||||
IE.7 | IE.6 | IE.5 | IE.4 | IE.3 | IE.2 | IE.1 | IE.0 |
EA | - | - | ES | ET1 | EX1 | ET0 | EX0 |