Teres-1t.ru

Инженерные решения
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Четырехразрядный двоичный счетчик схема

Цоколёвка микросхемы К561ИЕ14

Чтобы получить раздельные тактовые входы для уменьшения и увеличения: CU и CD, можно собрать небольшую схемку-триггер на микросхеме К561ЛА7

Защёлка для К561ИЕ14

Если необходимо увеличивать счёт, импульсы подают на CU К561ИЕ14, если уменьшать, соответственно на CD. Выход С подают на тактовый вход С счётчика, выход U/D на вход направления счёта U/D.

Учитель информатики

Информатика. 7 класса. Босова Л.Л. Оглавление

  • дискретизация
  • алфавит
  • мощность алфавита
  • двоичный алфавит
  • двоичное кодирование
  • разрядность двоичного кода

1.5.1. Преобразование информации из непрерывной формы в дискретную

Для решения своих задач человеку часто приходится преобразовывать имеющуюся информацию из одной формы представления в другую. Например, при чтении вслух происходит преобразование информации из дискретной (текстовой) формы в непрерывную (звук). Во время диктанта на уроке русского языка, наоборот, происходит преобразование информации из непрерывной формы (голос учителя) в дискретную (записи учеников).

Информация, представленная в дискретной форме, значительно проще для передачи, хранения или автоматической обработки. Поэтому в компьютерной технике большое внимание уделяется методам преобразования информации из непрерывной формы в дискретную.

Дискретизация информации — процесс преобразования информации из непрерывной формы представления в дискретную.

Рассмотрим суть процесса дискретизации информации на примере.

На метеорологических станциях имеются самопишущие приборы для непрерывной записи атмосферного давления. Результатом их работы являются барограммы — кривые, показывающие, как изменялось давление в течение длительных промежутков времени. Одна из таких кривых, вычерченная прибором в течение семи часов проведения наблюдений, показана на рис. 1.9.

На основании полученной информации можно построить таблицу, содержащую показания прибора в начале измерений и на конец каждого часа наблюдений (рис. 1.10).

Полученная таблица даёт не совсем полную картину того, как изменялось давление за время наблюдений: например, не указано самое большое значение давления, имевшее место в течение четвёртого часа наблюдений. Но если занести в таблицу значения давления, наблюдаемые каждые полчаса или 15 минут, то новая таблица будет давать более полное представление о том, как изменялось давление.

Таким образом, информацию, представленную в непрерывной форме (барограмму, кривую), мы с некоторой потерей точности преобразовали в дискретную форму (таблицу).

В дальнейшем вы познакомитесь со способами дискретного представления звуковой и графической информации.

1.5.2. Двоичное кодирование

В общем случае, чтобы представить информацию в дискретной форме, её следует выразить с помощью символов какого-нибудь естественного или формального языка. Таких языков тысячи. Каждый язык имеет свой алфавит.

Читайте так же:
Как сделать пульт управления счетчика

Алфавит — конечный набор отличных друг от друга символов (знаков), используемых для представления информации. Мощность алфавита — это количество входящих в него символов (знаков).

Алфавит, содержащий два символа, называется двоичным алфавитом (рис. 1.11). Представление информации с помощью двоичного алфавита называют двоичным кодированием. Закодировав таким способом информацию, мы получим её двоичный код.

Рассмотрим в качестве символов двоичного алфавита цифры 0 и 1.

Покажем, что любой алфавит можно заменить двоичным алфавитом. Прежде всего, присвоим каждому символу рассматриваемого алфавита порядковый номер. Номер представим с помощью двоичного алфавита. Полученный двоичный код будем считать кодом исходного символа (рис. 1.12).

Если мощность исходного алфавита больше двух, то для кодирования символа этого алфавита потребуется не один, а несколько двоичных символов. Другими словами, порядковому номеру каждого символа исходного алфавита будет поставлена в соответствие цепочка (последовательность) из нескольких двоичных символов.

Правило получения двоичных кодов для символов алфавита мощностью больше двух можно представить схемой на рис. 1.13.

Двоичные символы (0,1) здесь берутся в заданном алфавитном порядке и размещаются слева направо. Двоичные коды (цепочки символов) читаются сверху вниз. Все цепочки (кодовые комбинации) из двух двоичных символов позволяют представить четыре различных символа произвольного алфавита:

Цепочки из трёх двоичных символов получаются дополнением двухразрядных двоичных кодов справа символом 0 или 1. В итоге кодовых комбинаций из трёх двоичных символов получается 8 — вдвое больше, чем из двух двоичных символов:

Соответственно, четырёхразрядный двоичный код позволяет получить 16 кодовых комбинаций, пятиразрядный — 32, шестиразрядный — 64 и т. д.

Длину двоичной цепочки — количество символов в двоичном коде — называют разрядностью двоичного кода.

Обратите внимание, что:

32 = 2•2•2•2•2 и т. д.

Здесь количество кодовых комбинаций представляет собой произведение некоторого количества одинаковых множителей, равного разрядности двоичного кода.

Если количество кодовых комбинаций обозначить буквой N, а разрядность двоичного кода — буквой i, то выявленная закономерность в общем виде будет записана так:

В математике такие произведения записывают в виде:

N = 2 i .

Запись 2 i читают так: «2 в i-й степени».

Задача. Вождь племени Мульти поручил своему министру разработать двоичный код и перевести в него всю важную информацию. Двоичный код какой разрядности потребуется, если алфавит, используемый племенем Мульти, содержит 16 символов? Выпишите все кодовые комбинации.

Читайте так же:
Счетчик лабораторный окпд 2

Решение. Так как алфавит племени Мульти состоит из 16 символов, то и кодовых комбинаций им нужно 16. В этом случае длина (разрядность) двоичного кода определяется из соотношения: 16 = 2 i . Отсюда i = 4.

Чтобы выписать все кодовые комбинации из четырёх 0 и 1, воспользуемся схемой на рис. 1.13: 0000, 0001, 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111.

На сайте http://sc.edu.ru/ размещена виртуальная лаборатория «Цифровые весы» (135009). С её помощью вы можете самостоятельно открыть метод разностей — ещё один способ получения двоичного кода целых десятичных чисел.

1.5.3. Универсальность двоичного кодирования

В начале этого параграфа вы узнали, что информация, представленная в непрерывной форме, может быть выражена с помощью символов некоторого естественного или формального языка. В свою очередь, символы произвольного алфавита могут быть преобразованы в двоичный код. Таким образом, с помощью двоичного кода может быть представлена любая информация на естественных и формальных языках, а также изображения и звуки (рис. 1.14). Это и означает универсальность двоичного кодирования.

Двоичные коды широко используются в компьютерной технике, требуя только двух состояний электронной схемы — «включено» (это соответствует цифре 1) и «выключено» (это соответствует цифре 0).

Простота технической реализации — главное достоинство двоичного кодирования. Недостаток двоичного кодирования — большая длина получаемого кода.

1.5.4. Равномерные и неравномерные коды

Различают равномерные и неравномерные коды. Равномерные коды в кодовых комбинациях содержат одинаковое число символов, неравномерные — разное.

Выше мы рассмотрели равномерные двоичные коды.

Примером неравномерного кода может служить азбука Морзе, в которой для каждой буквы и цифры определена последовательность коротких и длинных сигналов. Так, букве Е соответствует короткий сигнал («точка»), а букве Ш — четыре длинных сигнала (четыре «тире»). Неравномерное кодирование позволяет повысить скорость передачи сообщений за счёт того, что наиболее часто встречающиеся в передаваемой информации символы имеют самые короткие кодовые комбинации.

Самое главное.

Дискретизация информации — процесс преобразования информации из непрерывной формы представления в дискретную. Чтобы представить информацию в дискретной форме, её следует выразить с помощью символов какого-нибудь естественного или формального языка.

Алфавит языка — конечный набор отличных друг от друга символов, используемых для представления информации. Мощность алфавита — это количество входящих в него символов.

Читайте так же:
Как восстановить оплату по счетчикам

Алфавит, содержащий два символа, называется двоичным алфавитом. Представление информации с помощью двоичного алфавита называют двоичным кодированием. Двоичное кодирование универсально, так как с его помощью может быть представлена любая информация.

Вопросы и задания.

1.Ознакомьтесь с материалом презентации к параграфу, содержащейся в электронном приложении к учебнику. Что вы можете сказать о формах представления информации в презентации и в учебнике? Какими слайдами вы могли бы дополнить презентацию?

Перевод из одной системы в другую с помощью калькулятора

Давайте вернемся к нашей десятичной системе счисления. Если Вы помните, к десятичной системе мы относим циферки от 0 и до 9. А Вы знаете, что с помощью нехитрых вычислений, мы можем переводить информацию из одной системы счисления в другую? В вашей Винде есть одна нехитрая программка, на которую вы почти не обращаете внимание — это калькулятор ;-), с помощью которого можно легко переводить числа из десятичной в двоичную систему и наоборот.

Двоичная система счисления

Нажимаем в меню панели «Вид» —->»Программист» и у нас получается вот такой прикольный калькулятор.

Двоичная система счисления

Теперь самое простое, нажимаем маркер на «Dec» и для аккуратного вида на «1 байт». Пишем число в калькуляторе и смотрим на его двоичный код.

В данном примере я посмотрел, как запишется число «8» в двоичной системе счисления. Вуаля! А вот снизу под восьмеркой сразу и результат: 1000. Именно так запишется число «8» из десятичной системы счисления в двоичную.

Двоичная система счисления

Также калькулятор может переводить даже отрицательные числа из десятичной в двоичную систему. А вот число «-5» из десятичной системы в двоичной запишется, как 1111 1011 .

Двоичная система счисления

Кто-то из Вас может похвастаться: «Да я сам могу переводить числа из десятичной в двоичную на листочке бумаги». Но, Вам это надо, когда есть такой замечательный калькулятор? 😉

Схема и программа

Принципиальная схема подключения Ардуино и индикатора

В схеме опять много проводов. Но смысл опять в том, чтобы соединить 8 светодиодов и 4 разряда с пинами Ардуино для их адресации.

Чтобы было проще понять какие пины соединять между собой обратим внимание на таблицу.

В прошлый раз мы написали функцию для отображения чисел на одноразрядном индикаторе. Давайте улучшим ее для четырехразрядного индикатора.

Назовем сегменты переменными, чтобы проще к ним обращаться. И выведем одно число на каждом разряде.

Читайте так же:
Сброс счетчика количества реармов

Теперь осталось только научить программу выводить числа от 1 до 9999 и использовать точку. Давайте попробуем.

ASCII

Таблица была разработана в Соединенных Штатах Америки в одна тысяча девятьсот шестьдесят третьем году. Изначально предназначалась для использования в телетайпах. Эти устройства представляли собой печатные машинки, с помощью которых передавались сообщения по электрическому каналу. Физическая модель канала была простейшей – если по нему шел ток, то это трактовали как 1, если тока не было, то 0.

Такой системой пользовались высокопоставленные политические деятели. Например, так передавались слова между руководствами двух сверхдержав – США и СССР. Изначально в этой кодировке использовалось 7 бит информации (можно было переводить 128 символов), однако потом их значение увеличили до 256 (8 бит – 1 байт). Небольшая табличка значений двоичных величин, которые помогут с переводом в АСКИ, представлена ниже.

Перевод текста в двоичный код

Пример проекта с i2C модулем часов и дисплеем

Проект представляет собой обычные часы, на индикатор будет выведено точное время, а двоеточие между цифрами будет мигать с интервалом раз в одну секунду. Для реализации проекта потребуются плата Arduino Uno, цифровой индикатор, часы реального времени (в данном случае вышеописанный модуль ds1307), шилд для подключения (в данном случае используется Troyka Shield), батарейка для часов и провода.

В проекте используется простой четырехразрядный индикатор на микросхеме TM1637. Устройство обладает двухпроводным интерфейсом и обеспечивает 8 уровней яркости монитора. Используется только для показа времени в формате часы:минуты. Индикатор прост в использовании и легко подключается. Его выгодно применять для проектов, когда не требуется поминутная или почасовая проверка данных. Для получения более полной информации о времени и дате используются жидкокристаллические мониторы.

Модуль часов подключается к контактам SCL/SDA, которые относятся к шине I2C. Также нужно подключить землю и питание. К Ардуино подключается так же, как описан выше: SDA – A4, SCL – A5, земля с модуля к земле с Ардуино, VCC -5V.

Индикатор подключается просто – выводы с него CLK и DIO подключаются к любым цифровым пинам на плате.

Arduino будильник

Скетч. Для написания кода используется функция setup, которая позволяет инициализировать часы и индикатор, записать время компиляции. Вывод времени на экран будет выполнен с помощью loop.

После этого скетч нужно загрузить и на мониторе будет показано время.

Читайте так же:
Brother dcp 7057r не сбрасывает счетчик

Программу можно немного модернизировать. При отключении питания выше написанный скетч приведет к тому, что после включения на дисплее будет указано время, которое было установлено при компиляции. В функции setup каждый раз будет рассчитываться время, которое прошло с 00:00:00 до начала компиляции. Этот хэш будет сравниваться с тем, что хранятся в EEPROM, которые сохраняются при отключении питания.

Для записи и чтения времени в энергонезависимую память или из нее нужно добавить функции EEPROMWriteInt и EEPROMReadInt. Они нужны для проверки совпадения/несовпадения хэша с хэшем, записанным в EEPROM.

Можно усовершенствовать проект. Если использовать жидкокристаллический монитор, можно сделать проект, который будет отображать дату и время на экране. Подключение всех элементов показано на рисунке.

Arduino будильник

В результате в коде нужно будет указать новую библиотеку (для жидкокристаллических экранов это LiquidCrystal), и добавить в функцию loop() строки для получения даты.

Алгоритм работы следующий:

  • Подключение всех компонентов;
  • Загрузка скетча;
  • Проверка – на экране монитора должны меняться ежесекундно время и дата. Если на экране указано неправильное время, нужно добавить в скетч функцию RTC.write (tmElements_t tm). Проблемы с неправильно указанным временем связаны с тем, что модуль часов сбрасывает дату и время на 00:00:00 01/01/2000 при выключении.
  • Функция write позволяет получить дату и время с компьютера, после чего на экране будут указаны верные параметры.

Улучшаем программу для работы динамической индикации

Приведенный выше алгоритм является в большей степени обучающий, поэтому несколько упрощенный, но он также имеет место в программах, не выполняющих каких-либо быстрых расчетов в режиме реального времени. Единственным недостатком данного алгоритма является применение задержек, негативное влияние которых была рассмотрено ранее. Чтобы избавится от применения задержек можно применять прерывания от таймер-счетчиков. В ниже представленном коде задержки формируются с помощью нулевого таймер-счетчика и вызова прерывания по переполнению этого счетчика.

Программа код динамической индикации для микроконтроллеров AVR ATmega8

Для того, чтобы при каждом прерывании числа отображались последовательно в каждом разряде индикатора, добавлена переменная bc547, которая увеличивается на единицу при последующем вызове прерывания ISR (TIMER0_OVF_vect). Затем выполняется проверка значения переменной bc547 и получает питания соответствующий разряд. Когда bc547 становится больше четырех, происходит сброс в единицу.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector