Форум » Для начинающих. » Простая светодиодная мигалка » Ответить

Простая светодиодная мигалка

Алексей: Задание для начинающих на разработку устройства "Простая светодиодная мигалка" Рекомендуемый контроллер PIC16F628A Частота тактового генератора 4 Мгц. Источник тактовых импульсов может быть любой. Светодиод должен быть подключен к выводу порта RB3 через токоограничивающий резистор. Период мигания светодиода должен быть в точности равен 1000000 м.ц., а длительности обоих состояний светодиода должны быть в точности равны 500000 м.ц. Цели: 1. Изучить азы программирования на ассемблере. 2. Освоить минимальный набор регистров специального назначения, учавствующих в работе устройства. 3. В ходе разработки добиться минимально возможной длины программы. Готовое решение должно содержать, как минимум: 1. Файл исходного текста программы Mig.asm вместе с проектом MPLAB. 2. Схема должна быть представлена в любом читабельном формате или в виде проекта в протеусе (желательно). 3. Готовая прошивка должна работать в протеусе. Задание предназначено для начинающих, т.е. для тех, кто только начал или хочет начать, но не знает с чего, изучать PIC-контроллеры... Принимаются любые решения задачи, даже стандартные. Любое нестандартное решение только приветствуется. В ходе работы над заданием можно задавать любые вопросы, связанные с техзаданием или языком ассемблера, а так же любые другие вопросы, относящиеся к данной теме, но не связанные с основным алгоритмом программы. Все вопросы связанные с этим алгоритмом, будут приниматься только после опубликования его в виде программы. Графическая схема алгоритма очень желательна. Офомить ее, желательно, в виде картинки Mig.jpg.

Ответов - 9

PIC16F628A: Здравствуйте. Я новичок в этом деле и мне нравится делать всякие такие штучки. Посидел, поколдовал, вроде бы что-то получилось http://zalil.ru/31135081

nick14: PIC16F628A пишет: Здравствуйте. Я новичок в этом деле Ну на новичка Вы не похожи.

Вячеслав: Да, здесь тоже опоздал. Вот мой вариант решения. Вроде по заданию. С PIC16F628A в живую не работал. "Заливку" 31135081 пока не читал. Сработает ли мой вариант? http://zalil.ru/31136563


Вячеслав: PIC16F628A пишет: вроде бы что-то получилось Ваш вариант с таймером у меня тоже мигает.

PIC16F628A: nick14 пишет: Ну на новичка Вы не похожи. Почему ?

PIC16F628A: PIC16F628A пишет: Ваш вариант с таймером у меня тоже мигает. Он не только мигает. У него ещё свободного процессорного времени много :) Кстати, в Вашем варианте не ровно 500 мс. , если быть точнее - 499.76

Вячеслав: PIC16F628A пишет: свободного процессорного времени много 1. Не было в задании. Но ценно. PIC16F628A пишет: Вашем варианте не ровно 500 мс. Ошибка менее 0,1 % для для RC внутреннего генератора МК? Для мигалки? А время на зажигание светодиода учесть? Если так строго по времени - надо в обоих решениях кварцевать - но в условиях оговорена свобода выбора генератора, значит допустим и люфт в периоде. Шучу. Признаю. Простецкое моё решение в лоб. Не программист я. ИМХО-утешением мне служит одна лишь табл.17-4 "эл.характеристик" PIC16F628, где указано : внутренняя калибровка генератора 3.65 .....4.28 МГц (при питании точно 5В - ну если не точно!).

Алексей: Вячеслав пишет: Ошибка менее 0,1 % для для RC внутреннего генератора МК? Для мигалки? А время на зажигание светодиода учесть? Если так строго по времени - надо в обоих решениях кварцевать - но в условиях оговорена свобода выбора генератора, значит допустим и люфт в периоде. В задании действительно ничего не сказано о времени, сказано о м.ц. их должно быть ровно 500000... А вот от тактовой частоты тут уже не будет зависеть. Именно поэтому и были выбраны единицы измерения м.ц. а не какие либо другие...

Вячеслав: Алексей пишет: А вот от тактовой частоты тут уже не будет зависеть. Согласен. Вот простая задержка ровно на 500000 м.ц. Для меня задача исчерпана. Pause movlw .85 movwf DELAYGPR1 movlw .138 movwf DELAYGPR2 movlw .3 movwf DELAYGPR3 wr decfsz DELAYGPR1,F goto wr decfsz DELAYGPR2,F goto wr decfsz DELAYGPR3,F goto wr nop nop Удачи.



полная версия страницы