![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
Atreides |
![]()
Сообщение
#1
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Может, у кого есть подобная программка на асемблере:
Разработать микропроцессорный модуль ввода и обработки сигналов с двигателя, имеющий следующие входные параметры: 1. Напряжение с термодатчика сопротивления от -1 до +1 В. 2. Частота вращения вала – 5000 об/мин 3. Точность преобразования сигнала аналогового сигнала 0.01%. 4. Точность преобразования сигнала 0.0001%. 5. Точность срабатывания контроллера при перегрузке двигателя - +\-0.05% 6. Индикация выхода – параметры указанные выше и индикатор аварии с возможностью автоматизированного выключения питания двигателя. Или может, что не будь простенькое подобное? -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Atreides |
![]()
Сообщение
#2
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Может, есть кусочек программки для сбора данных с внешнего устройства и вывода их на семисегментный индикатор?
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
xds |
![]()
Сообщение
#3
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Мало данных. Да и те что есть неинтерпретируемы. Чем отличается "сигнал" от "сигнала аналогового сигнала"?
![]() -------------------- The idiots are winning.
|
Atreides |
![]()
Сообщение
#4
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Вообще я неправильно выразился. Мне надо написать программку для AVR микроконтроллера модель 2313. Всю эту модель надо прогнать в проге AVR Studio. Суть задания не во входных и выходных показаниях, а отображения самого процесса. У меня есть уже два написанных модуля для ввода данных с входа и вывода их на семисегментный индикатор, они работаю независимо друг от друга и надо их связать, а вот как? И цель задания, следующая если всё правильно, то я могу вручную задать значения двоичных сигналов на входе и автоматически получу соответствующие десятичные значения на выходе.
Для выхода: Код .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 Для входа: Код .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 -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Atreides |
![]()
Сообщение
#5
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Узнал более конкретно задание: нужна прога на любой AVR контроллер со встроенным АЦП (но желательно модели 2313), что она преобразовала аналоговый сигнал с датчика температуры измеряемой в Кельвинах (температура в Кельвинах 0 Цельсия=273 Кельвина = 2,73Вольта, 100 Цельсия =373Лельвина= 3,73 Вольта), и выдавалась в десятичном виде на семисегментный индикатор. Модель термодатчика и индикатора не имеет значения. Микроконтроллер то же можно любой, но AVR. Прога, как я понимаю, состоит из двух частей, преобразовать сигнал из аналогового в цифровой и вывести на индикатор в десятичном виде. Любой пример похожего задания то же пойдет. Нужна просто прога на ассемблере для отображения самого хода процесса на AVR Studio.
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
xds |
![]()
Сообщение
#6
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
2313 не бывает со встроенным АЦП. Подойдёт ATmega8 или ATtiny26. Программа должна быть именно на ассемблере? Или можно на Си?
Сообщение отредактировано: xds - 11.05.2007 12:34 -------------------- The idiots are winning.
|
Atreides |
![]()
Сообщение
#7
|
![]() Ветеран Броуновского Движения ![]() ![]() ![]() Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Цитата 2313 не бывает со встроенным АЦП. Подойдёт ATmega8 или ATtiny26. Программа должна быть именно на ассемблере? Или можно на Си? А это AVR’овские микроконтроллеры? Лучше конечно на ассемблере, но, наверное, и на Си пойдет. С датчиком температуры понятно, что чем выше идет напряжение, тем выше температура, а вот для датчика частоты вращения, что надо и какой принцип работы будет с ним? Если использовать цифровые датчики (есть такие модели?), то АЦП не нужен будет и тогда, можно будет использовать 2313? Сообщение отредактировано: Atreides - 13.05.2007 10:03 -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
xds |
![]()
Сообщение
#8
|
![]() N337 ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 737 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот firmware простого термометра (рабочий - прямо сейчас показывает 300.5 К
![]() ![]() Цитата для датчика частоты вращения, что надо и какой принцип работы будет с ним? Датчик оборотов - стробоскоп или датчик Холла - просто генерирует импульс (несколько импульсов) на каждый оборот вала двигателя. Достаточно посчитать количество импульсов за единицу времени. -------------------- The idiots are winning.
|
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 8:20 |