На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Разработка микропроцессорного модуля , Модуль для ввода и обработки сигналов
      Может, есть программка для сбора данных с внешнего устройства и вывода их на семисегментный индикатор? Индикация выхода – параметры указанные выше и индикатор аварии с возможностью автоматизированного выключения.
        Цитата Pellegrino @
        Может, есть программка для сбора данных с внешнего устройства и вывода их на семисегментный индикатор? Индикация выхода – параметры указанные выше и индикатор аварии с возможностью автоматизированного выключения.

        Это запрос "на деревню дедушке" ? :blink:
        Конечно есть микроконтролеры (разных фирм и с разными мнемокодами и архитектурой)
        конечно есть сотни семисегментных индикаторов(динамические, статические, ЛСД-шные со своими командами) ну а про внешние устройства (которых миллионы ) я вообще молчу, устройство - стиральная машина, микроволновка, инжекторный двигатель...
        а протокол общения ... I2C, SPI, CAN, USB, COM....
          Желательно на AVR микроконтроллере, модель 2313. Нужен код для симуляции его работы на программе AVR Studio.
            Цитата Pellegrino @
            Желательно на AVR микроконтроллере, модель 2313. Нужен код для симуляции его работы на программе AVR Studio.

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

            http://electronix.ru/forum/index.php


            с уважением
            (круглый)
              Вообще я неправильно выразился. Мне надо написать программку для AVR микроконтроллера модель 2313. Всю эту модель надо прогнать в проге AVR Studio. Суть задания не во входных и выходных показаниях, а отображения самого процесса. У меня есть уже два написанных модуля для ввода данных с входа и вывода их на семисегментный индикатор, они работаю независимо друг от друга и надо их связать, а вот как? И цель задания, следующая если всё правильно, то я могу вручную задать значения двоичных сигналов на входе и автоматически получу соответствующие десятичные значения на выходе.
              Для выхода:
              ExpandedWrap disabled
                .include "2313def.inc"
                    LDI R16, 0b00001000;
                DIND:clr r30;
                    ser r31;
                    out DDRB, R31;
                    out PORTB,r30;
                    LSR R16;
                    BRCC M1;
                    LDI R16, 0b00001000;
                    MOV R0,R4;
                M1: SBRC R16,2;
                    MOV R0,R3;
                    SBRC R16,1;
                    MOV R0,R2;
                    SBRC R16,0;
                    MOV R0,R1;
                 
                INR0: ldi r30,low(tab0);
                    ldi r31,high(tab0);
                    lsl r30;
                    rol r31;
                    add r30,r0;
                    clr r0;
                    adc r31,r0;
                    lpm;
                    out PORTD, r16;
                    out PORTB, r0;
                    
                    RJMP DIND
                TAB0: .DB 0b00111111, 0b00010010, 0b01011011, 0b01001111, 0b01110010, 0b01111001, 0b01111101, 0b00000111, 0b01111111, 0b01101111;
                .exit


              Для входа:
              ExpandedWrap disabled
                .include "2313def.inc"
                    LDI R16, 0xdf;
                    STS 0x5d, R16;
                    LDI R16, 0b11110111;
                    out PORTD, r16;
                    LDI R16, 0x0F;
                    out DDRD, R16;
                    ser r16;
                    out DDRB, R16;
                 
                DIND:clr r16;
                    rcall k0;
                    out PORTB, r16;
                    in r16, PORTD;
                    LSR R16;
                    BRCS M1;
                    LDI R16, 0b11110111;
                    MOV R0, R4;
                M1: SBRC R16, 2;
                    MOV R0,R3;
                    SBRC R16, 1;
                    MOV R0, R2;
                    SBRC R16, 0;
                    MOV R0, R1;
                    RCALL INR0;
                    out PORTD, r16;
                    out PORTB, r0;
                    RJMP DIND
                 
                INR0:ldi r30,low(tab0);
                    ldi r31,high(tab0);
                    rcall k0;
                    rol r31;
                    add r30, r0;
                    clr r0;
                    adc r31, r0;
                    lpm;
                    RET;
                 
                k0: rcall k1;
                    ret;
                 
                TAB0: .DB 0b00111111, 0b00010010, 0b01011011,0b01001111, 0b01110010, 0b01111001, 0b01111101, 0b00000111, 0b01111111, 0b01101111;
                k1: ret;
                .exit
                Узнал более конкретно задание: нужна прога на любой AVR контроллер со встроенным АЦП (но желательно модели 2313), что она преобразовала аналоговый сигнал с датчика температуры измеряемой в Кельвинах (температура в Кельвинах 0 Цельсия=273 Кельвина = 2,73Вольта, 100 Цельсия =373Лельвина= 3,73 Вольта), и выдавалась в десятичном виде на семисегментный индикатор. Модель термодатчика и индикатора не имеет значения. Микроконтроллер то же можно любой, но AVR. Прога, как я понимаю, состоит из двух частей, преобразовать сигнал из аналогового в цифровой и вывести на индикатор в десятичном виде. Любой пример похожего задания то же пойдет. Нужна просто прога на ассемблере для отображения самого хода процесса на AVR Studio.
                  Цитата Pellegrino @
                  Узнал более конкретно задание: нужна прога на любой AVR контроллер со встроенным АЦП (но желательно модели 2313)..
                  ... и выдавалась в десятичном виде на семисегментный индикатор. Модель термодатчика и индикатора не имеет значения.

                  1. у 2313 нет АЦП - но есть компаратор. В таком случае обычно
                  пытаются формировать пилообразное напряжение и сравнивать его
                  (компаратором) с измеряемой величиной.
                  2. существуют термо-датчики с цифровым выходом. Например DS1820
                  3. Индикатор лучше взять супер-яркий или повышенной яркости.
                  Это позволит не слишком нагружать выводы процессора.
                    Да я же сказал, что можно любую модель AVR контроллера, но желательно с АЦП. Да, с индикатором лучше так. Суть в самой проге. Может, есть похожая программка, то же с входными параметрами и выдачей их на выход или с цифровым термодатчиком прожка есть?
                    Сообщение отредактировано: Pellegrino -
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0254 ]   [ 16 queries used ]   [ Generated: 26.04.24, 10:49 GMT ]