Easyelectronics.ru

Электроника для всех
Текущее время: 22 авг 2019, 21:23

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 16 янв 2011, 00:00 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Делаю выпускную работу в колледже. Собственно сам результат там же и будет работать. Устройство должно звонить по заданому расписанию. Расписание хранится в EEPROM и доступно для изменения. Все пишу сам на ассемблере. Мне осталось доделать меню и реализовать настройку устройства с помощью компьютера. Писать собираюсь на C#. Собственно ниже фото, и рисунки печатной платы и схемы (фото кликабельны)
Изображение
Изображение
Изображение
Изображение
Изображение


Последний раз редактировалось Werewolf-Prankster 16 янв 2011, 02:12, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по рассписанию
СообщениеДобавлено: 16 янв 2011, 01:35 
Супермодератор
Аватара пользователя

Зарегистрирован: 27 янв 2010, 07:40
Сообщения: 5346
Откуда: Новосибирск
Нормалёк!

_________________
Ищу работу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 16 янв 2011, 02:09 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Все таки чукча не писатель =) Надо бы все таки пересилить себя и написать подробнее )

Аппаратная часто состоит из микроконтроллера ATMega16L (просто был уже куплен). Для часов используется микросхема реального времени DS1307 (несмотря на то что ее не все любят, с кварцем от материнской платы и заземлением корпуса получил ~1 секунду разницы за 12 часов, при синхронизации компьютерного времени через интернет). Устройство должно комутировать 220 для включения звонка, поэтому используется 5-ти вольтовое реле. Включает реле "дубовый" КТ817 =).
Это вообще мой первый серьезный проект. Бинарные часы и прочие недоделки не в счет. Асемблером я владею относительно свободно. Иногда не хватает опыта и знаний. Но теорию я знаю относительно хорошо благодаря моему любимому сайту по радиоэлектронике (отдельное спасибо DI HALT-у).
Единственное что меня смущает, так это оптимальность принципов построения кода. Т.к. чужих исходников не изучал и трактатов о правильном программировании МК не читал, то мой велосипед может отличаться от того что может сделать опытный специалист.
Хотелось бы попросить оценить основные куски кода, если никто не против
Код:
Main:   

; Тестим что у нас в порту
      IN      Temp,PINC

      ; Проверка на отжатие кнопки
      LDS      Temp,ButUp      ; Загружаем переменную
      CPI      Temp,0         ; Если не была нажата, прыгаем на проверку кнопок,
      BREQ   MNNEXT         
      IN      Temp,PINBUT      ; иначе смотрим что у нас с кнопками
      ANDI   Temp,0xF0      ; Продавливаем кнопки по маске
      CPI      Temp,0xF0      ; Если что-то нажато
      BRNE   ENDBUT         ; Ничегоне делаем
      CLR      Temp         ; Иначе выставляем флаг позволяющий кнопки нажимать
      STS      ButUp,Temp      ; И смотрим что у нас с ними.


MNNEXT:
      ; Тут мы смотрим какая кнопка нажата
      SBIS   PINBUT,BUTMENU   ; Если ее положили на землю
      LDI      Temp,1<<BUTMENU   ; То записали соответствующий бит в регистр
      SBIS   PINBUT,BUTMOVE
      LDI      Temp,1<<BUTMOVE
      SBIS   PINBUT,BUTCHANP
      LDI      Temp,1<<BUTCHANP
      SBIS   PINBUT,BUTCHANM
      LDI      Temp,1<<BUTCHANM
      STS      ButtNum,Temp
      STS      ButUp,Temp      ; и пишем в оперативку
      RCALL   Delay

      LDS      Temp,ButtNum
      ; Обработка кнопок
      ;   * BUTMENU - тут мы только и делаем, что листаем меню
      SBRS   Temp,BUTMENU   ; Проверям нажата ли
      RJMP   ENDBUT         ; иначе прыгаем в конец
      LDI      Temp,1         ; Выставляем нажатие
      STSI   MenuFlag,1
      LDS      Temp,MenuNum   ; Загружаем текущий номер меню
      LSL      Temp         ; Умножаем на 2
      STS      MenuNum,Temp   ; Сохраняем получившиеся значение
      CPI      Temp,1<<(MENU_PROPM3+1)   ; Если не вышли за предел
      BRNE   ENDBUT         ; Прыгаем в конец
      LDI      Temp,1<<MENU_MAINSCR ; Иначе закольцовывам меню
      STS      MenuNum,Temp   ; Сохраняем
      RJMP   ENDBUT         ; и прыгаем в конец

ENDBUT:
      ; Отрисовка меню
      LDS      Temp,MenuNum      ; Загружаем номер меню и пишем меню в оперативку
      SBRC   Temp,MENU_MAINSCR   ; Главное меню
      RCALL   _DispMainScr      
      SBRC   Temp,MENU_PROPM1   ; Меню настройки часов
      RCALL   _DispPropM1
      SBRC   Temp,MENU_PROPM2
      RCALL   _DispPropM2
      SBRC   Temp,MENU_PROPM3
      RCALL   _DispPropM3

      LDS      Temp,DisplayFlag
      CPI      Temp,0
      BREQ   DISPEND
      WR_DDRAMSTRING   aDisplay   ; Отрисовываем соотв. меню
      LDSI   DisplayFlag,0

DISPEND:      

      RJMP    Main

Алгоритм таков:
1) Сначала смотрим что у нас с кнопками, проверяем на отжатие (под флаги место в оперативке не экономлю и использую сразу 1 байт для одного флага. Места хватает да и быстрее так)
2) Задержка от дребезга
3) Дальше смотрим какая кнопка нажата и выставляем бит в переменную с номером данной кнопки
4) Если нажата кнопка меню, то осуществляется листание по кольцу
5) Дальше в зависимости от номера меню выполняется отрисовка его в буфер оперативной памяти. В этих же процедурах осуществляется обработка нажатий остальных клавиш - перемещение курсора, увеличение позиции
6) Отрисовка выполняется только если буфер был изменен (отработала какая либо процедура отрисовки)

Оптимально ли такая реализация? Если нет, что и как можно исправить?

PS Уже поздно и буду ложиться спать. В коде есть еще 3 спорных куска которые хотелось бы выставить на обозрение, если никто не против, конечно


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 16 янв 2011, 02:58 
Старожил

Зарегистрирован: 07 апр 2010, 19:27
Сообщения: 1245
Откуда: Киев
Я бы еще добавил пулемет, точнее два пулемета (чтоб не перегревались) и дураков того.. по расписанию ;)
Но это так, мое эстетство возбудилось.

А так все выглядит аккуратно и работает - так и надо.
Короче, молодец!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 16 янв 2011, 03:45 
Старожил
Аватара пользователя

Зарегистрирован: 02 окт 2010, 17:18
Сообщения: 263
Откуда: Подольск
вот ели интересно http://radiomaster.com.ua/index.php?newsid=691
Правда на пике и не на дисплее, но алгоритм на асме написан может поможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 19 янв 2011, 23:27 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Прошивка устройства полностью готова, за исключением передачи данных по юарту. Хотя все функции чтения уже готовы. Ну и финальное тестирование соответственно.
Программа со стороны компьютера успешно считывает данные (кликабельно):
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 02 фев 2011, 19:39 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Поздравьте меня! Я сдал выпускную работу на отлично!
Если кого-то интересует прошивка, могу выложить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 02 фев 2011, 19:54 
Старожил
Аватара пользователя

Зарегистрирован: 21 фев 2010, 04:36
Сообщения: 614
Откуда: Tallinn
Поздравляю!
а что за специальность?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 02 фев 2011, 20:19 
Заглядывает иногда

Зарегистрирован: 08 дек 2010, 19:53
Сообщения: 137
Поздравляю. Успехов в дальнейшем


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 02 фев 2011, 21:59 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Официально звучит "Обслуживание компьютерных систем и сетей" - это колледж. А по сути, как в колледже, так и в институте направленности особой нет. Учат всему понемногу. Все равно все остальное доучивать самому =) Как в любой IT специальности


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 03 фев 2011, 04:35 
Старожил
Аватара пользователя

Зарегистрирован: 21 фев 2010, 04:36
Сообщения: 614
Откуда: Tallinn
Ха :) как и у меня было - всех одинаково, а дипломы разные.
Учили на программиста 4 года, а под сконец сказали "дипломы дадим как IT спец".
Тоже паял и программировал - USB клаву самодельную.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 03 фев 2011, 13:41 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:34
Сообщения: 108
О, только вчера подумал о такой системе, потому что вахтеры постоянно опаздывают или спешат со звонком...
А резервное питание обеспечивал, чтоб часы не сбились?
------
Ах, точно, у тебя же DSка...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 03 фев 2011, 15:04 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 26 янв 2010, 22:22
Сообщения: 142
Откуда: Украина, Запорожье
Естественно. Собственно на схеме все видно =). В DS1307 схема резервного питания от батареи. По датащиту обещают 10 лет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 03 фев 2011, 21:33 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
а вахтеры всегда опаздывают... я еще хрен знает скока (десятков?) лет назад тоже хотел по этой причине сделать такую систему, правда не на мк, их тогда не было и никто их не знал и не юзал, а на спектруме самом простом. но и по железу тогда мне никто не мог помочь, хотя делать-то там особо нечего... даже пзу негде было прошить...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 04 фев 2011, 01:26 
Старожил
Аватара пользователя

Зарегистрирован: 02 апр 2010, 12:39
Сообщения: 4402
Откуда: Брянск
У нас в универе препод, Иноземцев В.А. делал тоже самое на ttl логике, за что получил в свое время медаль ВДНХ. Мировой мужик!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 06 фев 2011, 15:18 
Старожил
Аватара пользователя

Зарегистрирован: 27 янв 2010, 01:04
Сообщения: 814
Откуда: Черноголовка
В нашей школе за звонки отвечает старый компьютер, по-моему это ямаха КУВТ. Причем не просто включает или выключает внешний звонок, а играет мелодию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 26 апр 2011, 18:29 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
Bomond писал(а):
препод, Иноземцев В.А.

знакомая фамилия...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 26 апр 2011, 19:00 
Старожил
Аватара пользователя

Зарегистрирован: 07 июн 2010, 21:00
Сообщения: 592
Поделитесь исходниками пожалуйста) заинтересовал проект)

_________________
Надежность оборудования обратно пропорциональна числу и положению лиц, за ним наблюдающих


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 09 ноя 2011, 22:31 
Только пришел

Зарегистрирован: 09 ноя 2011, 22:10
Сообщения: 5
скинь прошивку плиз!!! очень заинтересован!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 10 ноя 2011, 00:35 
Старожил
Аватара пользователя

Зарегистрирован: 02 апр 2010, 12:39
Сообщения: 4402
Откуда: Брянск
Ant писал(а):
Bomond писал(а):
препод, Иноземцев В.А.

знакомая фамилия...

ну у него в журнале Радио было много статей в свое время. У меня еще его методичка по цифровой электронике с дарственной подписью автора храниться. Но должен признать, наши старики совершенно не шарят в современной электронике...но их не за что судить. Нам дожить бы до их лет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 10 ноя 2011, 07:38 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 23:09
Сообщения: 237
Откуда: Новокузнецк
щас нечто подобное делаю, там просто управление нагрузкой по расписанию. МК атмега16, часы сделаны на ассинхронном таймере на ней же. из за этого прога немного усложняется. Устрой


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: оффтоп
СообщениеДобавлено: 10 ноя 2011, 08:19 
Старожил
Аватара пользователя

Зарегистрирован: 05 ноя 2010, 16:03
Сообщения: 1510
Откуда: Екатеринбург
в треде снай~


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 10 ноя 2011, 19:39 
Только пришел

Зарегистрирован: 09 ноя 2011, 22:10
Сообщения: 5
Medik88 писал(а):
щас нечто подобное делаю, там просто управление нагрузкой по расписанию. МК атмега16, часы сделаны на ассинхронном таймере на ней же. из за этого прога немного усложняется. Устрой



а можно как-нибудь глянуть схемку и прошивочку!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 10 ноя 2011, 19:42 
Только пришел

Зарегистрирован: 09 ноя 2011, 22:10
Сообщения: 5
Werewolf-Prankster писал(а):
Поздравьте меня! Я сдал выпускную работу на отлично!
Если кого-то интересует прошивка, могу выложить



скинь програмку поглядеть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Выпускная работа. Система подачи звонков по расписанию
СообщениеДобавлено: 10 ноя 2011, 21:56 
Заглядывает иногда

Зарегистрирован: 06 окт 2010, 14:43
Сообщения: 134
Молодец :)
К слову, учился в двух школах, в первой длительность звонка обычно была секунды 3-4, во второй секунд 10... бесило жутко.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 57 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: 45893569365


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB