Easyelectronics.ru

Электроника для всех
Текущее время: 18 окт 2019, 19:41

Часовой пояс: 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
Сообщения: 5372
Откуда: Новосибирск
Нормалёк!

_________________
Ищу работу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 596
Поделитесь исходниками пожалуйста) заинтересовал проект)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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 часов


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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