Запретить управление таймером от ножки INT0
;||++-----------Перевести таймер T1 в тринадцатиразрядный режим работы
;|+-------------Синхронизироваться от внутреннего генератора
;+--------------Запретить управление таймером от ножки INT1
;Настроить таймер на генерацию 5-ти миллисекундного интервала времени--------------------------------------
mov TH0, #HIGH(-5000) ;Загрузить старший байт таймера
mov TL0, #LOW(-5000) ;Загрузить младший байт таймера
В рассмотренном примере для расщепления 16-ти битной константы на два отдельных байта были использованы функции выделения старшего и младшего байта. Эти функции присутствуют в большинстве ассемблеров для микроконтроллеров MCS-51. Если же язык программирования не содержит в своЈм составе подобные функции, то можно для выделения байтов воспользоваться операцией деления на 256.
mov TH0, #-5000/256 ;Загрузить старший байт таймера
mov TL0, #-(5000-5000/256) ;Загрузить младший байт таймера
Режим 1
В первом режиме работы таймер работает как шестнадцатиразрядный счЈтчик. Режим 1 похож на режим 0, за исключением того, что в регистрах таймера использует все 16 бит. В этом режиме регистры ТНх и TLx также включены друг за другом. Работе таймера 0 или таймера 1 в режиме 1 соответствует схема:
В этом режиме можно обеспечить формирование интервала времени длительностью до 65536 мкс при частоте задающего генератора 12 МГц.
Рассмотрим пример использования таймера T0 для формирования временного интервала 15мс.
;Настроить режим работы таймера-------------------------------------------------------------------------------------------
mov TMOD,#00000001b ;перевести таймер T0 в первый режим работы, а T1 - в нулевой
;