Дальномер на микронтроллере
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
- Реклама
Ну а как же иначе можно увидеть число на индикаторе ? Только в виде строки символов ( цифр ) .
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
Почему так? Ведь единице в коде индикатора соответствует скорее 0b00000110, нежели 00110001 .
0b00000110 будет для вашего семисегментника, а 0b00110001 для ASCII.
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
А как мне преобразовать цифру в двоичном коде в код семисегментника. Как то дешифрировать надо или как?
- Реклама
Просто создать чтото типа таблицы или массива кодов для семисегментника по возрастанию цифр от 0 до 9, а затем так каждый разряд выводить на дисплей, для этого и нужно преобразовывать из HEX в DEC формат. Думаю даже в ASCII преобразовывать нет смысла, если не используешь какие нибудь либы готовые, пишешь просто свой код без всяких либ.
Ну я же не в курсе ( схема не приведена ), что вывод на 7-сегментник, а не ЖКИ. Тогда действительно через массив символов, как сказал коллега zero648. Да и ещё смотря -- индикация стат. или дин., индикаторы с ОА или ОК.
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
А стоит ли? Во-первых, все равно придется в десятичный по разрядам разбирать из НЕХа, затем упаковывать все в BCD, а чтобы вывести на дисплей используя таблицу кодов придется опять вытаскивать из BCD в DEC, чтобы найти нужный адрес кода в таблице. Плюсов немного, больше минусов.
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
Jack_A писал(а):Ну а как же иначе можно увидеть число на индикаторе ? Только в виде строки символов ( цифр ) .
Например : число 127 : 01111111
Преобразуем в 3 десятичных байта :
00000001, 00000010, 00000111
затем, чтоб преобразовать в коды цифровых символов, добавляем к каждому байту 00110000 :
00110001, 00110010, 00110111, что и есть строка символов "127"
Что то я запутался. Судя по этому сообщению, обязательно преобразовывать в десятичное.
А Я что говорю
все равно придется в десятичный по разрядам разбирать из НЕХа
- Сообщения: 23
- Зарегистрирован: Вс дек 15, 2013 00:07:02
Тут в процессе возник еще один вопрос. Чем упакованный BCD отличается от неупакованного ?
Простой пример:Dimon11 писал(а):Тут в процессе возник еще один вопрос. Чем упакованный BCD отличается от неупакованного ?
Десятичное число 35
Неупакованный BCD-формат выглядит так: 0000 0011, 0000 0101
Упакованный BCD-формат выглядит так: 0011 0101.
Для неупакованного BCD-формата на каждое число требуется один байт, а для упакованного - на каждое число половина байта.


