Лаборатория с удаленным доступом для исследования работы микропроцессоров

Фото установки

Запущена лаборатория по микропроцессорам. Лаборатория состоит из лабораторного стенда (плата с микроконтроллером ADuC842 и различная периферия) и направленной на него WEB-камеры.

Лаборатория доступна бесплатно всем желающим. Для работы в данной лаборатории на стороне студента не требуется какого-либо специального программного обеспечения. Загрузка программы в микроконтроллер осуществляется в окне любого Интернет браузера, в котором для просмотра видео должен быть установлен Flash Player. Таким образом, любой желающий может сидя у себя дома зайти на web-страницу удаленной лаборатории по микропроцессорам, загрузить в микроконтроллер написанную собственноручно программу и наблюдать за ее работой на реальном оборудовании. Для работы пройдите по этой ссылке
Имя пользователя и пароль demo.

Программу рекомендуем разрабатывать в среде Keil. Скачать демо версиию можно с нашего сайта в разделе файлы.

Кроме микроконтроллера ADuC842 учебный стенд содержит различную периферию.

  • Сдвоенный семисегментный индикатор подключен непосредственно к параллельным портам ввода-вывода P0, P2. Для того чтобы сегмент индикатора загорелся на соответствующей линии порта должна быть установлена логическая единица.
  • Четыре светодиода подключены к линиям порта ввода-вывода P3. Для того чтобы светодиод загорелся, на линии порта должен быть установлен логический ноль.
  • Температурный датчик DS18B20 подключен к микроконтроллеру через линию параллельного порта P3, датчик управляется по протоколу MicroLAN (1-wire).
  • Часы реального времени PCF8583 подключены к микроконтроллеру по шине i2c.
  • Схема для снятия вольтамперной характеристики диода (VD5).
  • Предусмотрена возможность подачи логических уровней на параллельный порт ввода P1. Логические уровни подаются внешним микроконтроллером (на схеме стенда не показан). Для индикации состояния каждой линии S0 –S3 используется отдельный светодиод.

микроконтроллер через интернет

Внешний вид платы стенда

Для того, что бы войти в лабораторию, следует нажать выполнить работу. После входа в лабораторию вам будет предложено авторизироваться. Если Вы зарегистрированы в системе и Вами получен логин и пароль, введите их, иначе в качестве пароля и имени пользователя следует ввести demo и далее нажать кнопку "Войти".

После авторизации пользователь получает доступ ко всем ресурсам лаборатории по микропроцессорам. Пользователь может:

  • записать исполняемый hex-файл в память программ микропроцессора, для этого следует нажать кнопку "загрузить файл" и указать путь к hex-файлу;
  • перезагрузить микроконтроллер (выполнить Reset), выполняется кнопкой "сбросить МК";
  • установить с помощью кнопок S0–S1 на входах параллельного порта микроконтроллера логические уровни, каждая кнопка имеет индикацию состояния.
  • используя терминал обмениваться с микроконтроллером информацией через последовательный порт UART.

Примеры *.hex файлов:

Пример 1. Программа выводит двоичное слово в десятичном виде на семисегментный индикатор. Двоичное слово вводится с кнопок S0-S3.

Пример 2. Программа выводит на семисегментные индикаторы значение температуры. На светодиодах VD1-VD4 — "бегущий огонь".

Пример 3. Программа тестирует приемопередатчик UART. Переданное в микроконтроллер слово возвращается в терминал. Скорость приемопередатчика задается в двоичном коде кнопками S0-S3.

Прикрепленные файлы: 
ВложениеДатаРазмер
Иконка пакета Архив с примерами *.hex файлов03/07/20153.05 КБ

Комментарии:



Аватар пользователя Lory

Стенд постоянно занят.  Постоянно пишет: "Извините, стенд занят другим пользователем."

Остается только смотреть видео.

Не могу понять как в терминал писать. в виду того что не работает лаба, пишу на эммуляторе aducsim812, а там ввода в терминал нет, только вывод.

Собственно, какая задача?

Я хочу вводит значение переменной из окна терминала.

#include<ADUC842.h>
#include<stdio.h>
#include<dallas.h>
 
unsigned char DATA_H,DATA_L;
unsigned int x,i;
float volt;
char bitsHigh, bitsLow;
 
void main (void)
{
 
SCON=0x52;
T3FD=0x2D;
T3CON=0x83;
 
DACCON =0x7f;
volt = 2.536;
 
volt = (volt * 4095) / 5;
 
while (1)
 {
  x = volt/256;
  bitsHigh = (char) x; 
  printf("bitsHigh = %d \n", x);
 
  //i = volt%256;
  bitsLow = (char) volt%256;
  printf("bitsLow = %d \n", i);
 
  DAC0H = bitsHigh;
  DAC0L = bitsLow;
 
 }
}

В данном коде значение напряжения которое будет подано на ЦАП задаеться в переменной volt
Я хочу реализовать ввод из терминала. Ну что то типа printf("введите значение"), затем считывается в volt и дальше по коду. Проверку на ошибку реализую конечно.

Задача типовая. Собственно, вот методическое указание по работу с последовательным портом: Изучение последовательного порта UART.

Прием байта будет выглядеть так:

while(!RI); // ждем завершение приема байта
cmd = SBUF; // считываем принятый байт в переменную cmd
RI = 0;     // сброс флага приема

Значение то должно передаваться в каком виде? Если юзерфрендли, то вводить пользователь должен ввиде строки, ну то есть, написать 2.34 и нажать Ентер. Но тогда передаваться-то будет по порту строка, а не float, строку нужно будет на стороне микроконтроллера побайтно принять,  затем распарсить,  привести к float.

Аватар пользователя Николай123456

Не понимаю как можно на основе AduC842  Разработать устройство формирования сигнала для двухтональной звуковой сирены.

А что с ним не так? Процессор, конечно, старый, но ресурсов ему и не на такое хватит.

Аватар пользователя Николай123456

Можете, пожалуйста, дать пример программы работы двухтональной сирены на этом микроконтроллере?

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

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

Орфографическая ошибка в тексте:
Чтобы сообщить об ошибке автору, нажмите кнопку "Отправить сообщение об ошибке". Вы также можете отправить свой комментарий.