![]() |
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 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Вообще я неправильно выразился. Мне надо написать программку для 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 -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
![]() ![]() |
![]() |
Текстовая версия | 17.07.2025 18:34 |