Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
Помогите решить учебную задачу (+)
Отправлено
pio 13 апреля 2007 г. 13:54
Входные данные:
Существует микропроцессорная измерительная система на основе 8-разрядного RISC-микроконтролера (МК) типа AVR AT90S8535 фирмы Atmel, структурная схема которой представлена на рис.
Два цифровых фотосенсора силы света S1 и S2 размещены на удаленных объектах и подключены к входам порта МК с РА0 по РА3 и с РА4 по РА7 соответственно. При силе света 0 мКд число на 4-разрядном цифровом выходе сенсора составляет 0000 (bin), при 50 мКд – 1111 (bin).
Ко входам РВ0-РВ6 порта МК подключено 7-разрядный вход демультиплексора DMUX. Ко входам РС6 и РС7 МК подключено 2-розрядный адресный вход демультиплексора. По адресному входу числом задается, который из 7-розрядных выходов демультиплексора будет соединен со входом: от 00 для первого входа (к которому подключен индикатор Iнд1) до 10 для последнего (Iнд3).
Три сегментных цифровых индикатора Iнд1- Iнд3 подключены ко входам демультиплексора. При этом, если на любой вход индикатора подать уровень логической 1, то соответствующий сегмент подсвечивается, если 0 – гаснет.Задание:
Разработать на языке Ассемблер МК рабочую программу функционирования микропроцессорной измерительной системы, которая должна: считывать значения света с обоих сенсоров; выводить на индикатор 1 десятичный порядковый номер сенсора с наибольшим значением света, а его значение на индикаторы 2 и 3; значения выводить на индикаторы последовательно, через демультиплексор; значение силы света выводить в виде десятичного числа.
Как я понял задачу:
Нужно:
Считать и сравнить значения сенсоров света и оставить большее значение и номер сенсора, на котором оно считано;
Перевести эти значения в вид десятичных чисел (видимо с учетом 0000 = 0 мКд, 1111 = 50 мКд);
Далее работа с демультиплексором (на инд1 – номер сенсора, на инд2 и 3 – значение, которое нужно разделить на два числа – десятки и единицы. Разделить, наверное, на этапе преобразования из bin в dec).
Какие вопросы:
Где это можно сделать (ПО)? Я скачал vmlab312, в нем можно, что к нему еще нужно?
Интересно посмотреть пример аналогичной или даже 100% сходство (задача учебная) работы.
Составить ответ | Вернуться на конференцию
Ответы
- Я так понял, что для начала мне необходимо найти соответствующие файлы описания микропроцессора (AVR AT90S8535) и выбрать какой-то ассемблер. Или в VMLAB или PROTEUS уже есть такой процессор и асм? А остальные элементы (датчики, демультиплексор, индикаторы) уже есть в этом софте? И порекомендуйте, пожалуйста, мне наиболее близкий к заданию пример. — pio (13.04.2007 15:20:48 82.207.39.143, пустое)
- ИМХО нах те протелусы в влабы если до живой прошивки дело не дойдет, городи огарод на АСАме в АВР Студии и сдавй пущай разбираются. — PeterD (13.04.2007 16:53:18 83.69.107.179, пустое)
- В VMLAB-е это целиком визуально не смоделируешь при всём желании (набор периферии крайне ограничен), в Протеусе - на раз. Проще сделать и отладить просто в Студии (если она в наличии). Логика задачи очень простая, особо смотреть не на что, всё унутри :) — Ivax (13.04.2007 15:43:19 80.250.188.26, пустое)
- Поройся в проектах >> (но свою голову ничто не заменит) — argus98 (13.04.2007 15:40:29 81.22.205.230, пустое, ссылка)
- Ассемблер как раз выбирать не надо - нужен родной Атмеловский ассемблер, идущий с AVR Studio 3.56. VMLAB/Proteus пользуются именно им — =AVR= (13.04.2007 15:23:44 80.92.96.19, пустое)
- Можно и в Proteus (40 метров), в нем интереснее. Ассемблер любой, с Протеусом идет в комплекте или с Атмела. Вариант быстрый - написать на С в Кодевижине, выключит оптимизацию и из его асма выкинуть лишнее. Делов на час :) ... Радует что динамическую индикацию делать не надо :) — Ivax (13.04.2007 14:23:11 80.250.188.26, пустое)
- Задание-полная байда! Делать в AVRStudio, отлаживать в PROTEUS, но проще (есл препод не сильно волокет в сути вопроса) сделать в CodeVision, а сдать asm файл, генеренный CV. — провод (13.04.2007 14:20:2 195.34.254.2, 135 байт)
- бредовое задание — koyodza (13.04.2007 14:03:5 83.170.240.226, пустое)