Файлы  •  Ссылки  •  Прошивки  •  Правила  •  Архив  •   FAQ  •  Участники  •  Поиск
Регистрация  •  Вход

[ Тема закрыта ] 12-и канальное управляющее устройство на avr

Список форумов» Программное обеспечение» Микроконтроллеры
АвторСообщение
zombiez
Участник
Сообщения: 121




26-10-2009 22:31

Доброго времени суток!
Задача:есть клавиатура(не матрица) 12 кнопок и 16х2 знакосинтезирующий дисплей
Есть исполнительное устройство (12 мощных полевиков, управляющий соленоидами)
Необходимо это связать проводами:)
Задумка такая. Контроллер, например, attiny2313 опрашивает клавиатуру и, в зависимости от нажатой кнопки, выводит сообщение на LCD, далее, генерит двоичный код из 12 бит и передает его к исполнительному устройству.
На другой стороне контроллер, либо стандартная логика, раскидывают этот код и щелкают полевичками.
С чего нужно начать? У самого опыта в написании программ для контроллеров нет (светодиодом поморгал, за звук на buzzer выводил:) ). Хорошо знаком с лексикой языка basic, поэтому, bascom-avr предпочтительней.
Прошу помощи в разработке, может, у кого есть исходники, которые натолкнут на мысль...
Doka__
Новичок
Сообщения: 17




26-10-2009 23:54

Я обычно начинаю со схемы на бумаге. Пользуюсь программой RusPlan5. Потом Собираю схему и определяюсь с адресами устройств. После составляю алгоритм работы, распределяю память и приступаю к программе. Стараюсь разбить программу на подпрограммы, так легче отладить и не запутаться.
А насчет примеров можеш посмотреть здесь может найдеш что нибудь интересное :
http://www.gaw.ru/html.cgi/txt/app/micros/avr/index.htm
А вот для начинающих, сам начинал от сюда :
http://www.123avr.com/index.html
GarikBaza
Новичок
Сообщения: 664




27-10-2009 10:26

zombiez, Поставь на управление 74HC595, буфером можно ULN2803, можно и полевики, только им управление надо правильное, или полевики с лоческими входами. Для опроса , наоборот, поставь с параллельного в последовательный. В принципе, тогда всес это можно подключить к аттини13 без отключеного ресета улыбка
zombiez
Участник
Сообщения: 121




27-10-2009 10:49

Клавиатуру привели к матрице. Это подходит:
http://www.gaw.ru/pdf/Atmel/app/avr/AVR240.pdf
Блок управления находится на расстоянии нескольких метров от исполнительного блока.
Гальваническая развязка, полевики, все уже есть. осталось только все связать программой.
Два контроллера, один рулит дисплеем, второй - опрашивает клавиатуру, кроме 2313 ничего нет в нашей деревне голливудская улыбка
zombiez
Участник
Сообщения: 121




28-10-2009 02:10

С индикацией разобрался, все кажет и даже на русском языке, теперь задача, в зависимости от нажатой клавиши выдать код вида:
0000000000000000, где каждый бит означает кнопку (нажатую или нет) в матрице 4*4
есть исходный код на ассемблере, но в баском не могу перевести...(((

Добавлено 28-10-2009 02:22

срочно нужна программа на баскоме опроса матрицы 4*4 с выводом на любой порт последовательности из 16 бит рёв в три ручья

Добавлено 28-10-2009 02:24

* для attiny2313
zombiez
Участник
Сообщения: 121




28-10-2009 08:19

Там же программа в две строки, неужели никто не але?
GarikBaza
Новичок
Сообщения: 664




28-10-2009 14:32

zombiez писал:

срочно нужна программа на баскоме
* для attiny2313

Потому и молчат все
zombiez
Участник
Сообщения: 121




28-10-2009 14:38

ну не рублю я в asm, а все примеры и учебники только на нем, нигде не нашел опроса клавиатуры на bascom'e
я не прошу сделать все за меня, но ссылкой-то хоть кинуть можно?
zombiez
Участник
Сообщения: 121




28-10-2009 18:46

написал, коряво, но работает
AleksScrewdriver
Участник
Сообщения: 439




28-10-2009 20:15

zombiez, изучай асм! Потом сможешь код оптимизировать! Эт тебе обязательно пригодится! После Си например много лишнего кода и код можно сделать меньше, а значит высвободить драгоценные ресурсы улыбка
pavel-pervomaysk
Your editor
Сообщения: 8037




28-10-2009 20:29

zombiez писал:
написал, коряво, но работает


Я как гляну свои первые проги на авр , самому ржать охота гы-гы . Со временем все получится , главное это дело не забрасывать.
AleksScrewdriver
Участник
Сообщения: 439




28-10-2009 20:40

pavel-pervomaysk писал:
Со временем все получится , главное это дело не забрасывать.
Эт точно! Главное упорство! Изучение всевозможных кодов программ! Очень, например, интересно изучение дизассемблированного кода написанного на Си! улыбка
zombiez
Участник
Сообщения: 121




29-10-2009 08:15

Всю жизнь изучал бейсик, потому баском как-то ближе:)
Что имею на данный момент:
Лсд дисплей поборол. И русский текст и необходимые пиктограммы рисует
Клавиатуру опрашивает другой контроллер. Может и не сильно красивый код, но работает
uart обустроил, двоичный код нажатой кнопки передается от одной тиньки ко второй.
Сегодня буду писать третью программу, по сути тот же ресивер с дешифратором, единственное, придется софтварный uart сделать на клавиатурной тиньке.
Более правильно, конечно, будет в передаваемом коде прописать адрес контроллера, которому предназначается передача, например, первый бит
Короче, разбираюсь потихоньку.
zombiez
Участник
Сообщения: 121




01-11-2009 17:53

Ребят, а как организовать софтварный uart для авр в баскоме?
zombiez
Участник
Сообщения: 121




01-11-2009 20:31

www.qsl.net писал:
Software UART

The AT90S2313 and most other AVR controllers has a hardware UART on pins 2 and 3. Sometimes you have to use these pins for another purpose. Bascom has a software UART function that uses extra program space, but you may specify which pins to use for RxD and TxD. The pins to use are specified in the Open command:

Open "Comb.0: 9600 , 8 , n , 1" for Input As #1
Open "Comb.1: 9600 , 8 , n , 1" for Output as #2

uses pin 0 of PortB as receiver (RxD) and pin 1 of PortB as transmitter (TxD). Both are set to a baud-rate of 9600, use 8 databits per character, do not use a parity bit and use one stopbit. In Bascom every reference to #1 will be used for RxD and #2 for TxD:
software-rs232.bas

$regfile = "2313def.dat"
$crystal = 4000000

Config Pind.6 = Output

Dim Tstr As String * 4
Dim Num As Word

'open channel for output
Open "comb.1:9600,8,n,1" For Output As #1
Open "comb.0:9600,8,n,1" For Input As #2

Do
Set Portd.6
Waitms 100
Reset Portd.6
Print #1 , "text: "
Input #2 , Tstr
Print #1 , Tstr
Print #1 , "number: "
Input #2 , Num
Print #1 , Num
Loop

End

Note that the software UART does not echo characters. Also different from the hardware UART implementation is that after every prompt a linefeed/carriage return is used.

The software UART can be used with the Print, Input, Inputhex, Inkey, Waitkey and Ischarwaiting commands. Note the syntax used in Inkey, Waitkey and Ischarwaiting:

Var = Inkey(#2)
Var = Waitkey(#2)
Var = Ischarwaiting(#2)

A software UART channel can be opened, but also closed :

Close #1
Close #2

so that after the close the i/o pins can be used for another purpose.

zombiez
Участник
Сообщения: 121




02-11-2009 17:54

Все сделано, тему можно закрыть.
Список форумов» Программное обеспечение» Микроконтроллеры» 12-и канальное управляющее устройство на avr
Перейти:  
Текущий раздел» Программное обеспечение» Микроконтроллеры (Микроконтроллеры - AVR-ы, PIC-и и другие)


Похожая информация:
  • Устройство ЖК панелей.
  • PCI устройство на MAX3000
  • Устройство на микросхеме ST62T60C6
  • Устройство защиты на микроконтроллере
  • Помогите опознать микрококонтроллерное устройство








  • Информация по ремонту для специалистов - справочники, инструкции, энциклопедия, советы и секреты ремонта,  настройка, сервисные режимы
    Powered by phpBB 2.0.18 © 2001, 2002 phpBB Group!