КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Последовательный порт микроконтроллера 8051
Сбросить запрос прерывания от ножки INT1;||+---------Прерывание от ножки INT1возникает по фронту;|+----------Сбросить запрос прерывания от ножки INT1;+-----------Отключить таймер T0;||+------------Обнулить флаг таймера T0;|+-------------Отключить таймер T1;+--------------Обнулить флаг таймера T1 Рисунок 11. Программа измерения частоты Если теперь на вход микроконтроллера T0 подать сигнал с неизвестной частотой, то в регистрах TH0 и TL0 будет записана его частота в килогерцах. Прерывание от ножки INT1 возникает по фронту; ||; Сбросить запрос прерывания от ножки INT1;||+---------Прерывание от ножки INT1возникает по фронту;|+----------Сбросить запрос прерывания от ножки INT1;+-----------Включить таймер T0;||+------------Обнулить флаг таймера T0;|+-------------Включить таймер T1;+--------------Обнулить флаг таймера T1 TstTimeOut: jnb TF1, TstTimeOut;Если 1 мс прошла mov TCON, #00000000b;то отключить частотомер; Прерывание от ножки INT1возникает по фронту; ||; Перевести таймер T0 в шестнадцатиразрядный режим;||+---------Работать от сигнала на ножке T0;|+----------Запретить управление таймером от ножки INT0;||++-----------Перевести таймер T1 в шестнадцатиразрядный режим;|+-------------Синхронизироваться от внутреннего генератора;+--------------Запретить управление таймером от ножки INT1 mov TH0, #0;Обнулить старший байт счётчика mov TL0, #0;Обнулить младший байт счётчика;---измерение вести 1 мс--------------------------------------------------------- mov TH1, #HIGH(-1000);Загрузить старший байт таймера mov TL1, #LOW(-1000);Загрузить младший байт таймера mov TCON,#01010000b;Включить частотомер; ||; Перевести таймер T0 в шестнадцатиразрядный режим;||+----Синхронизироваться от внутреннего генератора;|+-----Включать таймер от ножки микроконтроллера INT0;||++------Перевести таймер T1 в тринадцатиразрядный режим;|+--------Синхронизироваться от внутреннего генератора;+---------Запретить управление таймером от ножки INT1 mov TH0, #0;Обнулить старший байт таймера mov TL0, #0;Обнулить младший байт таймера setb TR0;Включить измеритель ширины импульса TstLog0: jnb INT0, TstLog0;Подождать начало импульсаTstLog1: jb INT0, TstLog1;Подождать конец импульса Clr TR0;Отключить измеритель ширины импульса Рисунок 9. Программа измерения длительности импульсов Если теперь на вход микроконтроллера INT0 подать импульс с неизвестной длительностью, то в регистрах TH0 и TL0 будет записана его длительность в микросекундах. Использование таймера в качестве частотомера. Известно, что измерение частоты можно произвести, подсчитав количество периодов неизвестной частоты за единицу времени. Принцип измерения частоты иллюстрируется рисунком 10. Рисунок 10. Принцип измерения частоты Для измерения частоты измеряемый сигнал подаётся на вывод микроконтроллера Tx. Таймер/счётчик настраивается в режим счётчика записью в бит C/Tx логической единицы. Содержимое таймера обнуляется. Таймер включается на строго определённый интервал времени. Этот интервал задаётся оставшимся таймером. Пример программы измерения частоты сигнала на ножке микроконтроллера T0 приведён на рисунке 11. mov TMOD,#00010101b; ||; Через универсальный последовательный порт осуществляются прием и передача информации, представленной в последовательном коде (младшими битами вперед). Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из SBUF, то он будет потерян. Работой последовательного порта управляют три регистра:
Последовательный порт может работать в четырех различных режимах.
Во всех четырех режимах передача начинается любой командой, которая использует SBUF как регистр-приемник. Прием в режиме 0 начинается при условии RI = 0, REN = 1. Прием в других режимах начинается с приходом старт-бита, если бит REN установлен. Регистр управления/статуса приемопередатчика SCON Управление режимом работы приемопередатчика осуществляется через специальный регистр с символическим именем SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (R1 и Т1). Функциональное назначение бит регистра управления/статуса приемопередатчика SCON.
Прикладная программа путем загрузки в старшие биты регистра SCON двухбитного кода определяет режим работы приемопередатчика. Во всех четырех режимах работы передача инициализируется любой командой, в которой буферный регистр SBUF указан как получатель байта. Как уже отмечалось, прием в режиме 0 осуществляется при условии, что R1 = 0 и REN = 1, в остальных режимах - при условии, что REN = 1. В бите ТВ8 программно устанавливается значение девятого бита данных, который будет передан 8 режиме 2 или 3. В бите RB8 в этих режимах фиксируется девятый принимаемый бит данных. В режиме 1 в бит RB8 заносится стоп-бит. В режиме 0 бит RB8 не используется. Флаг прерывания передатчика ТI устанавливается аппаратно в конце периода передачи стоп-бита во всех режимах. Соответствующая подпрограмма обслуживания прерывания должна сбрасывать бит TL. Флаг прерывания приемника RI устанавливается аппаратно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI. Скорость приема/передачи информации через последовательный порт Скорость приема/передачи, т.е. частота работы приемопередатчика в различных режимах, определяется различными способами. В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора f РЕЗ: f=fРЕЗ/12. За машинный цикл последовательный порт передает один бит информации. В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON.
Дата добавления: 2014-01-07; Просмотров: 592; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |