Настройка часов на мк at89s52

Автор: | 12.03.2024

В один прекрасный момент случилось то, что должно было случиться еще очень давно, это изучение микроконтроллеров серии MCS-51 на ассемблере. В начале этого пути упоминались AT89C4051, но они мне показались не функциональными сточки зрения прошивки, так как все программаторы, которые я встречал в сети, были либо под COM-порт, либо LPT. Тогда я полез в каталог данного семейства и начал смотреть подобные микроконтроллеры. В итоге нашёл AT89S51, AT89S52, AT89S53 – это тот же самый AT89C4051, но у серии S есть ISP и они имеют большее количество памяти и портов ввода вывода. Поиски программатора тоже были не из легких, но в скорее я нашёл то, что искал – это был USBasp с модифицированной прошивкой и новым софтом. Вот такое вот вступление, теперь же рассмотрим сам программатор и отладочную плату с некоторыми простыми примерами.

Программатор для AT89S52

mc236 1 Домострой

Программатор поддерживает AT89S51, AT89S52, AT89S53, AT89S8252, AT89S8253, AT89S2051, AT89S4051 + еще много разных камней от AVR . Схему собирать как есть без выкидывания деталей, хотя я не ставил конденсаторы на обвязку кварца, но это уже другой разговор.

mc236 2 Домострой

Обвязка МК перед программированием

mc236 3 Домострой

Здесь вывод 31 должен быть подтянут к + питания (лог. единица). Этот вывод дает знать, из какой памяти выполнять программу МК, если на выводе 31 присутствует логический ноль, то контроллер работает с внешней памятью, а если иначе, то с внутренней. Так как у меня нету внешней памяти я работаю с внутренней. Выводы Р1.5-Р1.7,RST это ISP для программирования МК, все также как и у AVR. Если вдруг не заработает, то есть не будет определяться МК программатором то за место R1 нужно поставить конденсатор на 0.1мкф как у автора. Почему я поставил резистор? Да потому что у меня не было под рукой мелкого конденсатора, + я еще дополнил данный вывод сброса кнопкой.

Читайте также  Микроволновка с зеркальной дверцей

mc236 4 Домострой

По программатору, думаю все понятно.

Отладочная плата для AT89S52

Начнем со схемы

mc236 5 Домострой

Прежде всего, хочу сказать, для чего я делал такую плату:

  1. Отладка простых программ с использованием светодиодов (помигать, разработка световых эффектов и тп.).
  2. Работа с кнопками (лепить матричную клавиатуру было не охота, так что если нужна такая клавиатура, то можно использовать один порт для периферии).
  3. Отладка программ с использованием последовательного порта (UART).
  4. Изучение основ семейства AT89X51

mc236 6 Домострой

Схему я собрал на макетной плате с использованием деталей тех, что были под рукой, единственное, что покупал так это микроконтроллер и панельку под него.

Рассмотрим теперь несколько примеров программ на ассемблере.

Стандартный Hello World на ассемблере

В этой программе все просто, если непонятно о чем идет речь, то тогда лучше сначала просто открыть справочник и почитать про команды. Я пользуюсь этим

Теперь сделаем бегущий огонь.

Данная программа реализуется посредством записи в выбранный регистр (у меня это аккумулятор А ) числа FЕ это 1111 1110 и при выполнении команды rr A (сдвига содержимого аккумулятора в право ) получаем 0111 1111, и так далее. Аналогично можно сделать сдвиг влево.

Изменения в программе были внесены здесь

Все остальные куски программы такие же. Здесь тоже нет ни чего сложного.

Ну и еще одна программа с использованием кнопки. Сделаем так чтобы по нажатию кнопки светодиод бежал в право, а при следующем нажатии бежал в лево.

Здесь поступим следующим образом

Данный код не идеален, потому что его работа напрямую зависти от величины задержки, но для начала пойдет.

В один прекрасный момент случилось то, что должно было случиться еще очень давно, это изучение микроконтроллеров серии MCS-51 на ассемблере. В начале этого пути упоминались AT89C4051, но они мне показались не функциональными сточки зрения прошивки, так как все программаторы, которые я встречал в сети, были либо под COM-порт, либо LPT. Тогда я полез в каталог данного семейства и начал смотреть подобные микроконтроллеры. В итоге нашёл AT89S51, AT89S52, AT89S53 – это тот же самый AT89C4051, но у серии S есть ISP и они имеют большее количество памяти и портов ввода вывода. Поиски программатора тоже были не из легких, но в скорее я нашёл то, что искал – это был USBasp с модифицированной прошивкой и новым софтом. Вот такое вот вступление, теперь же рассмотрим сам программатор и отладочную плату с некоторыми простыми примерами.

Программатор для AT89S52

mc236 1 Домострой

Программатор поддерживает AT89S51, AT89S52, AT89S53, AT89S8252, AT89S8253, AT89S2051, AT89S4051 + еще много разных камней от AVR . Схему собирать как есть без выкидывания деталей, хотя я не ставил конденсаторы на обвязку кварца, но это уже другой разговор.

mc236 2 Домострой

Обвязка МК перед программированием

mc236 3 Домострой

Здесь вывод 31 должен быть подтянут к + питания (лог. единица). Этот вывод дает знать, из какой памяти выполнять программу МК, если на выводе 31 присутствует логический ноль, то контроллер работает с внешней памятью, а если иначе, то с внутренней. Так как у меня нету внешней памяти я работаю с внутренней. Выводы Р1.5-Р1.7,RST это ISP для программирования МК, все также как и у AVR. Если вдруг не заработает, то есть не будет определяться МК программатором то за место R1 нужно поставить конденсатор на 0.1мкф как у автора. Почему я поставил резистор? Да потому что у меня не было под рукой мелкого конденсатора, + я еще дополнил данный вывод сброса кнопкой.

mc236 4 Домострой

По программатору, думаю все понятно.

Отладочная плата для AT89S52

Начнем со схемы

mc236 5 Домострой

Прежде всего, хочу сказать, для чего я делал такую плату:

  1. Отладка простых программ с использованием светодиодов (помигать, разработка световых эффектов и тп.).
  2. Работа с кнопками (лепить матричную клавиатуру было не охота, так что если нужна такая клавиатура, то можно использовать один порт для периферии).
  3. Отладка программ с использованием последовательного порта (UART).
  4. Изучение основ семейства AT89X51

mc236 6 Домострой

Схему я собрал на макетной плате с использованием деталей тех, что были под рукой, единственное, что покупал так это микроконтроллер и панельку под него.

Рассмотрим теперь несколько примеров программ на ассемблере.

Стандартный Hello World на ассемблере

В этой программе все просто, если непонятно о чем идет речь, то тогда лучше сначала просто открыть справочник и почитать про команды. Я пользуюсь этим

Теперь сделаем бегущий огонь.

Данная программа реализуется посредством записи в выбранный регистр (у меня это аккумулятор А ) числа FЕ это 1111 1110 и при выполнении команды rr A (сдвига содержимого аккумулятора в право ) получаем 0111 1111, и так далее. Аналогично можно сделать сдвиг влево.

Изменения в программе были внесены здесь

Все остальные куски программы такие же. Здесь тоже нет ни чего сложного.

Ну и еще одна программа с использованием кнопки. Сделаем так чтобы по нажатию кнопки светодиод бежал в право, а при следующем нажатии бежал в лево.

Здесь поступим следующим образом

Данный код не идеален, потому что его работа напрямую зависти от величины задержки, но для начала пойдет.

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 11:53, курсовая работа

Описание работы

За последние годы в микроэлектронике бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров, которые предназначены для «интеллектуализации» оборудования различного назначения. Однокристальные микроконтроллеры представляют собой приборы, конструктивно выполненные в виде БИС и включающие в себя все оставшиеся части "голой" микро-ЭВМ: микропроцессор, память программ и память данных, а также программируемые интерфейсные схемы для связи с внешней средой. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно однокристальные микроконтроллеры.

Содержание работы

1. Введение. 2
2. Обзор программаторов. 3
2.1. Программатор Громова. 4
2.2. STK200/300. 5
2.3. USBAsp. 6
3. Последовательное программирование AT89S52. 6
3.1. Алгоритм программирования. 6
3.2. Интерфейс программирования SPI. 7
4. Аппаратная реализация программатора. 8
4.1. Микросхема FT245BM. 9
5. Программная реализация. 10
5.3. Использование драйвера D2XX. 10
5.2. Bitbang. 10

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *