Основные разделы


Выбор разрядности переменных и микроконтроллера

Диапазон измеряемых значений длительности составляет T1=937…75000.

Разрядность переменной T1 выбирается как

N[T1]³log2(T1). Получим, что N[T1]=17.

Пересчет значений длительности T1 в частоту производится по формуле

.

Пусть T1`=5×105/Nизм, разрядность константы k3=5×105,

N[k3]=19.

Разрядность переменной T1,

N[T1`]³log2(5×105/937)=10.

Разрядность константы

k1=60/Nцил=5.

Разрядность переменной Nk=100…8000 (значение числа оборотов в об/мин) равна

N[Nk]³log2(8000)=13.

Так как величина Nk выводится на индикатор в виде 4-х разрядного десятичного числа, то разрядность двоично-десятичного значения Nk,

N[Nk10]=4*4=16.

Для датчика скорости:

Разрядность переменной измеренного числа импульсов

v=0…533, N[v]=10.

Для приведения значения скорости к величине км/час используется преобразование

V=v*200/333=v2/333, где v2=v*200.

Разрядность

N[v2]³log2(533)+log2(200)=17.

Разрядность

N[V]³17-log2(333)=8.

Так как величина V выводится на индикатор в виде 3-х разрядного десятичного числа, то разрядность двоично-десятичного значения V,

N[V10]=3*4=12.

Для датчика напряжения:

Разрядность АЦП равна 9, то есть

N[T2]=9.

Нормировка выходного значения к значению напряжения в единицах вольт производится по формуле

U=10*T2/32=T2`/32.

Следовательно, разрядность

N[Т2`]=9+4=13,

а разрядность

N[U]=13-5=8.

Так как величина U выводится на индикатор в виде 3-х разрядного десятичного числа, то разрядность

N[U10]=3*4=12.

В настоящее время распространены однокристальные микроконтроллеры с разрядностью 8 и 16 бит. Для данной работы был выбран 8-разрядный микроконтроллер AT89С51, исходя из требований к стоимости тахометра.

Микроконтроллер имеет 2 16-разрядных аппаратных таймера-счетчика. Для датчика частоты разрядность счетчика N[T1]=17, поэтому 17-й бит формируется программно по признаку переполнения счетчика.

Остальные счетчики, с разрядностью N[v]=10 и N[T2]=9 организуются программно.

В соответствии с выбранным значением разрядности контроллера равной 8 бит, уточним разрядности переменных:

N[T1]=N[k3]=N[v2]=24

N[T1`]=N[Nk]=N[v]=N[T2]=N[T2`]=16

N[k1]=N[V]=N[U]=8.

АЛУ микроконтроллера AT89С51 позволяет производить арифметические и логические операции с 8-разрядными данными. Поэтому для операций сложения чисел с большей разрядностью (например для организации счетчиков) используется число сложений (с учетом переноса из младших разрядов) nсл=N[оп]/8, где N[оп] - разрядность операндов.

Для выполнения деления и умножения в микроконтроллере предусмотрены операции 8-разрядного деления и умножения. Так как в данной работе требуется выполнять

При обработке данных используется 16-разрядное умножение, которое реализуется с помощью 8-разрядного следующим образом:

P16*16[31…0]=A[15…0] ×B[15…0]=

=(a[7…0] ×28+b[7…0]) × (c[7…0] ×28+d[7…0])=

=a[7…0]×c[7…0]×216+(a[7…0]×d[7…0]+b[7…0]×c[7…0])×28+d[7…0] ×b[7…0].

То есть заменяется на 4 операции 8-разрядного умножения и 3 операции сложения.

Операция умножения 16-разрядной величины на 8-разрядную соответственно заменится на

P16*8[23…0]=A[15…0] ×B[7…0]=

=(a[7…0] ×28+b[7…0]) × d[7…0]=a[7…0]×d[7…0]×28+d[7…0] ×b[7…0].

Перейти на страницу: 1 2

Прочитайте еще и эти статьи:

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

Расчет межстанционной сети связи районированной ГТС с УВС
. Для каждой АТС заданной сети рассчитать поступающую от абонентов телефонные нагрузки, пересчитать нагрузки на выходы каждой АТС. . Распределить общую выходящую нагрузку каждой АТС по следующим направлениям: на АМТС, на УСС, на внутристанционно ...

© Copyright 2020 | www.techattribute.ru