0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551

преобразование и вывод симвoлов

30.12.2016, 07:50. Показов 5055. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ASM

ADD symv,temp1
результат сложения двух регистров всегда получается какое либо десятичное число от 1 по 7.
эти же числа должны преобразоваться в 6ти разрядные шестнадцатиричные числа, как пример - abh cdh efh 43h 23h 89h, как выражение, которых тоже семь
алгоритм
выражению abh cdh efh 43h 23h 89h присвоить значение десятичного числа от 1 по 7
результат сложения двух регистров, число от 1 по 7 сравнить с присвоенными - числа от 1 по 7
если не равно, переход на следующую строку в цикл
если равно, то загрузка в регистр symv соответствующего 6ти разрядного шестнадцатиричного числа десятичному числу от 1 по 7
какой написать код для AVR?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.12.2016, 07:50
Ответы с готовыми решениями:

Преобразование и вывод массива
Есть задание: В одномерном массиве из N вещественных элементов, вычислить: • количество элементов массива, меньших С; • сумму...

textBox1.Text преобразование и вывод
Здравствуйте, как преобразовать int в string и вывести в textBox? Код: public void button1_Click(object sender, EventArgs e) ...

Преобразование массивов и вывод на форму
У меня есть программа для дикретного преобразования Хаара одномерного сигнала. Есть массив входных данных. Есть уже написаный класс для...

28
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
01.01.2017, 10:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от moto261
что то с адресацией чтения из памяти
можно выбрать кнопками только воскр понед вторн
Вот проверил, сравнивайте. День недели передвинул на позицию влево, чтоб "среда" поместилась и убрал один пробел после "цельсия", чтоб этому не мешал.

[134.36 Кб]

0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551
01.01.2017, 12:38
при запуске в протеусе устанавливается вторник
и дни крутятся между вторником понедельником

.db "**WSSS**"
.db "**PNNN**"
.db "**WTTT**"
.db "**SRRR**"
.db "**CHHH**"
.db "**PTTT**"
.db "**SBBB**",0
в реальных часах "**SRRR**" будет "**СРЕД**", "**PTTT** будет "**ПЯТН**
у меня физический индикатор поддерживает кириллицу
тч в коде будем ориентироваться на эти знаки
как должно быть в протеусе
при включении устанавливается текущий день недели понедельник
жмём 3 раза * и кнопками + или - и выбираем день, затем 4 раза * и входим в режим часов
в физических часах при включении было время 00:00 дата 01/01/01
дни - по дате 01/01/01
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
01.01.2017, 13:11
Цитата Сообщение от moto261
при запуске в протеусе устанавливается вторник
и дни крутятся между вторником понедельником
Вспомнил, что у DS1307 дни недели считаются не 0-6, а 1-7. Поэтому для отображения необходимо после :

lds Temp, clock+3 ; возьмем день недели
omdi Temp, $7

Надо вычесть «1»:

subi Temp, 1

И учесть эту особенность при коррекции дней недели.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551
01.01.2017, 13:19
Цитата Сообщение от tyzord66
Цитата Сообщение от moto261
при запуске в протеусе устанавливается вторник
и дни крутятся между вторником понедельником
Вспомнил, что у DS1307 дни недели считаются не 0-6, а 1-7. Поэтому для отображения необходимо после :

lds Temp, clock+3 ; возьмем день недели
omdi Temp, $7

Надо вычесть «1»:

subi Temp, 1

И учесть эту особенность при коррекции дней недели.
выводит в любой год века правильно дни недели 1-7
воскресенью соответствует число 1, субботе 7
я писал раньше
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551
01.01.2017, 13:33
с вашей латиницей всё ок
выбор дней недели не работает, но он не нужен,тк при запуске часов он установится в зависимости от даты
проверю со своими знаками
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    rcall   prt_DAYw
 
ret
 
;********************************************************
 
w_DAY:      .db      "**WSSS**","**PNNN**"
.db      "**WTTT**","**SRRR**"
.db      "**CHHH**","**PTTT**"
.db      "**SBBB**",0
 
;********************************************************
prt_DAYw:   ldi      Kur,   $c8
rcall WriteCmd
ldi      ZL,      LOW(w_DAY*2)
ldi      ZH,      HIGH(w_DAY*2)
lds      Temp,   clock+3
omdi     Temp,   $7
subi     Temp, 1
mov      Temp1,   Temp
lsl      Temp
lsl      Temp
lsl      Temp
add      Temp,   Temp1
clr      Temp1
add      ZL,      Temp
adc      ZH,      Temp1
ldi      Temp1,   8
nx_CHAR:   lpm      symv,   Z+
rcall    Writes
dec      Temp1
brne   nx_CHAR
ret
;********************************************************

<Изображение удалено>

где ошибка
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
01.01.2017, 14:27
Цитата Сообщение от moto261
где ошибка
Вы заложили 8 символов под запись, поэтому для определения поинтера на нужную запись надо умножать не на 9, а на 8. В процедуре "prt_DAYw:" после сдвигов закомментируйте "add Temp, Temp1".
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551
01.01.2017, 14:59
Цитата Сообщение от tyzord66
Цитата Сообщение от moto261
где ошибка
Вы заложили 8 символов под запись, поэтому для определения поинтера на нужную запись надо умножать не на 9, а на 8. В процедуре "prt_DAYw:" после сдвигов закомментируйте "add Temp, Temp1".
всё очень изящно сделано, спасибо
мастер ассемблера AVR
0
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
01.01.2017, 15:22
Цитата Сообщение от moto261
всё очень изящно сделано, спасибо
мастер ассемблера AVR
Вдогонку, в случае четного числа символов при определении констант в данном варианте «терминатор» в конце строки не нужен, он только сожрет лишнее слово во FLASH.

.db "**SBBB**",0

В варианте с латиницей (9 символов в записи), он избавлял от лишнего варнинга при компиляции.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 551
01.01.2017, 16:07
Цитата Сообщение от tyzord66
Вдогонку, в случае четного числа символов при определении констант в данном варианте «терминатор» в конце строки не нужен, он только сожрет лишнее слово во FLASH.

.db "**SBBB**",0

В варианте с латиницей (9 символов в записи), он избавлял от лишнего варнинга при компиляции.
убрал

как сделаю часы будет фото в я сделал , см moto261
в будущем на шину I2C подключу 24CXX, чтобы показывать продолжительность дня в зависимости от широты и долготы
но после изучения ассемблера и даташита контроллера
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.01.2017, 16:07

Преобразование массива 7 чисел в вывод 12 позиций
Добрый день! В одной из существующих тем я задавал вопрос как обеспечить вывод цветов на экран согласно заданному массиву чисел....

HashMap вывод значений и преобразование в Сет
Например есть Map Map&lt;Integer, String&gt; phones = new HashMap&lt;&gt;(); phones.put(54641212, &quot;Ivanov&quot;); phones.put(121324545,...

Преобразование 16-тиричного числа в двоичное и вывод
Друзья! Такая проблема! Есть код (алгоритм) преобразования. Но он не верный (не преобразовывает). Подскажите, в чем ошибка, как ее...

Вывод числовых значений из БЗ и преобразование в текстовые значения
Всем привет! Есть функция, которая отвечает за вывод единиц измерений товара &lt;p&gt;Единицы измерения&lt;/p&gt; &lt;select...

Матрицы: считывание из файла, преобразование, вывод результатов
#include &lt;stdio.h&gt; int main () { srand(time(NULL)); const int n = 10; int a,b,tmp; int i,j; FILE...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru