Код т2 в управляющей программе

В этой статье будет рассмотрено управление портами микроконтроллеров AVR на языке программирования С (Си): установка выводов порта на вход или выход, считывание значений на входах портов, программа для управления миганием светодиода.

Общие сведения о портах микроконтроллеров AVR

Порты микроконтроллеров AVR — это устройства ввода/вывода, позволяющие микроконтроллеру передавать или принимать данные. Стандартный порт микроконтроллера AVR содержит восемь разрядов данных, которые могут передаваться или приниматься параллельно. Ножки микроконтроллера также называют пинами, контактами или выводами. Порты обозначаются латинскими буквами А, В, С и т.д. Количество портов зависит от конкретной модели микроконтроллера.

Kонфигурирование каждой линии порта (задание направления передачи данных) может быть произведено программно в любой момент времени. Входные буферы портов построены по схеме триггера Шмитта. Для линий, сконфигурированных как входные, также имеется возможность подключения внутреннего подтягивающего резистора сопротивлением 35…120 кОм между входом и проводом питания. Kроме того, если вывод (вход) с подключенным внутренним подтягивающим резистором подключить к общему проводу, он может служить источником тока.

Как составить программу для токарного станка с ЧПУ

Обращение к портам производится через регистры ввода/вывода, причем под каждый порт в адресном пространстве ввода/вывода за-резервировано по 3 адреса. По этим адресам размещаются три регистра: регистр данных порта PORTx, регистр направления данных DDRx и регистр выводов порта PINx. Разряды этих регистров имеют названия: Px7…Px0 — для регистров PORTx, DDx7…DDx0 — для регистров DDRx и PINx7…PINx0 — для регистров PINx.

Действительные названия регистров (и их разрядов) получаются подстановкой названия порта вместо символа «x», соответственно для порта A ре¬гистры называются PORTA, DDRA, PINA, для порта B — PORTB, DDRB, PINB и т.д.

Следует заметить, что «регистры» PINx на самом деле регистрами не являются, по этим адресам осуществляется доступ к физическим значениям сигналов на выводах порта. Поэтому они доступны только для чтения, тогда как регистры PORTx и DDRx доступны и для чтения, и для записи.

Таким образом, запись в порт означает запись требуемого состояния для каждого вывода порта в соответствующий регистр данных порта PORTx. А чтение состояния порта выполняется чтением либо регистра данных порта PORTx, либо регистра выводов порта PINx. При чтении регистра выводов порта PINx происходит считывание логических уровней сигналов, присутствующих на выводах порта. А при чтении регистра данных порта PORTx происходит считывание данных, находящихся в регистре-защелке порта – это справедливо как для входных, так и для выходных контактов.

Любой порт микроконтроллера AVR можно сконфигурировать как вход или как выход. Для этой цели используется регистр DDRx. На вход или выход можно сконфигурировать сразу весь порт или только отдельный его вывод (контакт, пин).

Регистр DDRx определяет, является тот или иной вывод порта входом или выходом. Если некоторый разряд регистра DDRx содержит логическую единицу, то соответствующий вывод порта сконфигурирован как выход, в противном случае — как вход. Буква x в данном случае должна обозначать имя порта, с которым вы работаете. Таким образом, для порта A это будет регистр DDRA, для порта B — регистр DDRB и т. д.

ОБУЧЕНИЕ ЧПУ — УРОК 12 — СОЗДАНИЕ УП НА ПК / Программирование станков с ЧПУ и работа в CAD/CAM

Задание направления данных для всего порта

В программе для программирования микроконтроллеров AVR Atmel Studio на языке С можно задать направление передачи данных сразу для всего порта.

С помощью этой команды все выводы (контакты) порта B будут сконфигурированы как выходы.

0xff представляет собой шестнадцатиричное представление числа ff, а 0x является префиксом, указывающим на то, что число записано в шестнадцатиричное форме. В десятичном представлении число 0xff будет равно 255, а в двоичном – 11111111. То есть с помощью представленной команды во все биты регистра DDRB будут записаны логические единицы.

В языке Си для микроконтроллеров AVR для представления двоичных чисел применяется префикс 0b. Соответственно, представленную выше команду записи логических единиц во все биты регистра DDRB можно записать и с помощью двоичного вида числа 255:

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

Для того чтобы сконфигурировать все выводы (контакты) порта B как входы необходимо записать во все биты регистра DDRB логические нули. Это можно сделать с помощью следующей команды.

Читайте также:
Почему при установке игры или программы возникает ошибка произошла ошибка при распаковке

Но кроме рассмотренных «крайних» случаев (все единицы или все нули) в регистр DDRB можно записать и другие числа. Например:

0xb4 — шестнадцатиричное представление числа 180. В двоичном виде его можно записать как 10110100. То есть часть выводов (контактов) порта B будет сконфигурирована как выходы, а часть — как входы.

PB0 — 0 (вход)
PB1 — 0 (вход)
PB2 — 1 (выход)
PB3 — 0 (вход)
PB4 — 1 (выход)
PB5 — 1 (выход)
PB6 — 0 (вход)
PB7 — 1 (выход)

Установка 1 в произвольном бите регистра порта

Каждый бит регистров DDRx может быть установлен или сброшен отдельно. К примеру, если мы хотим сконфигурировать отдельно вывод PD2 как выход, то нам следует в соответствующий бит регистра DDRD записать 1. Для этой цели можно использовать следующую команду:

На первый взгляд она может показаться слишком сложной и запутанной, но после объяснения этой команды вы поймете, что все в ней выглядит достаточно логично.

То есть если хотя бы одно из слагаемых равно 1, то результат также равен 1.

Установка 0 в произвольном бите регистра порта

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

В этом случае результат сдвига единицы на две позиции влево инвертируется с помощью операции побитного инвертирования, которая в языке С обозначаемой знаком «~».

В результате операции инверсии мы получаем вместо нулей единицы, а вместо единиц — нули. Данная логическая операция также называется операцией НЕ (английское название NOT).

Получившееся число при помощи операции побитного логического умножения 1″ на всех выводах (контактах) порта B можно c помощью следующей команды:

Аналогично установка «0» на всех выводах порта B выполняется следующим образом:

К каждому биту регистров PORTx можно обращаться и по отдельности так же, как и в рассмотренном выше случае с регистрами DDRx. К примеру, команда

установит «1» (сигнал высокого уровня) на контакте PB3.

установит «0» (сигнал низкого уровня) на контакте PB4.

В программе Atmel Studio сдвиг можно выполнять и с помощью функции _BV(), которая производит поразрядный сдвиг и помещает результат в компилируемый код.

В этом случае две предыдущие команды можно записать следующим образом:

PORTB |= _BV(PB3); // установить «1» на линии 3 порта B

PORTB // установить «0» на линии 4 порта B

Пример программы зажигания светодиода, подключенного к выводу микроконтроллера AVR

Для лучшего понимания работы с портами микроконтроллеров AVR рассмотрим примеры простейших программ, осуществляющих включение и выключение светодиода, подключенного к выводу порта.

Светодиод к микроконтроллеру AVR можно подключить одним из следующих двух способов, представленных на рисунке.

В первом случае (рисунок слева) светодиод будет загораться от сигнала высокого уровня на выводе PD1, а во втором случае (рисунок справа) — от сигнала низкого уровня на этом же контакте.

В зависимости от способа подключения светодиод будет загораться либо от сигнала высокого уровня, подаваемого на вывод PD1 микроконтроллера, как в первом случае, либо от сигнала низкого уровня в случае подключения, изображенного на втором рисунке.

Теперь рассмотрим примеры программ, реализующих данные способы включения светодиода.

#include // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллера
int main(void) < // начало основной программы
DDRD = 0xff; // все выводы порта D сконфигурировать как выходы
PORTD |= 1 > // закрывающая скобка основной программы

#include // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллера
int main(void) < // начало основной программы
DDRD = 0xff; // все выводы порта D сконфигурировать как выходы
PORTD // установить «0» (низкий уровень) на выводе PD1
> // закрывающая скобка основной программы

Теперь для случая, представленного на рисунке 1, попробуем мигнуть светодиодом. Для этой цели воспользуемся функцией задержки _delay_ms() .

Функция _delay_ms() формирует задержку в зависимости от передаваемого ей аргумента, выраженного в миллисекундах (в одной секунде 1000 миллисекунд). Максимальная задержка составляет 262.14 миллисекунд. Если передать функции значение более 262.14, то осуществится автоматическое уменьшение разрешения до 1/10 миллисекунды, что обеспечивает задержки до 6.5535 секунд. Более длительные задержки можно реализовать с помощью циклов в программе.

Функция _delay_ms() содержится в файле delay.h, поэтому его нужно будет подключить к основной программе. Также для работы этой функции необходимо задать значение тактовой частоты микроконтроллера в Герцах (Гц).

#define F_CPU 1000000UL // указываем тактовую частоту микроконтроллера в герцах
#include // заголовок чтобы задействовать функции контроля данных на выводах микроконтроллера
#include // заголовок чтобы задействовать функции задержки в программе

int main(void) < // начало основной программы
DDRD = 0xff; // все выводы порта D сконфигурировать как выходы

PORTD |= _BV(PD1); // установить «1» (высокий уровень) на выводе PD1,
//зажечь светодиод

Читайте также:
Что такое программа петерсона

_delay_ms(500); // ждем 0.5 сек.

PORTD // установить «0» (низкий уровень) на выводе PD1,
//погасить светодиод

_delay_ms(500); // ждем 0.5 сек.

PORTD |= _BV(PD1); // установить «1» (высокий уровень) на выводе PD1,
//зажечь светодиод

_delay_ms(500); // ждем 0.5 сек.

PORTD // установить «0» (низкий уровень) на выводе PD1,
//погасить светодиод

> // закрывающая скобка основной программы

В представленной программе светодиод мигнет всего 2 раза. Чтобы он мигал непрерывно можно организовать бесконечный цикл с помощью оператора безусловного перехода » goto «. Данный оператор выполняет переход к месту программы, обозначенному меткой. Но лучше это реализовать с помощью бесконечного цикла на основе оператора while – пример работающей схемы для этого случая и программы для нее можно посмотреть в этой статье на нашем сайте.

Комментарии

Управление портами микроконтроллеров AVR на языке С (Си) — 21 комментарий

Gor говорит 28.08.2022 в 15:53 :

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

Gor говорит 28.08.2022 в 18:52 :

Наверное, нужно было сразу пояснить: я знаком с битовыми операциями, и знаю, как поменять состояние пина как вверх, так и вниз. Но перед этим потребуется определить текущее состояние пина, и только затем можно будет выполнить либо PORTB |= 1
admin-new говорит 31.08.2022 в 21:40 :

А почему для проверки текущего состояния пина нужно несколько операций? А команда по типу if (!bit_is_clear(PINA,5)) вам не подойдет. Примеры использования этой команды есть, к примеру, в этой статье.

Konter говорит 27.06.2022 в 17:34 :

Помогите пожалуйста.
У меня МК attiny13
Как мне задать направление пинам PB0 — 4
PB0 — вход
PB1 — вход
PB2 — выход
PB3 — выход
PB4 — выход Как я понимаю DDRB = 0x38 или DDRB = 0b00111000

admin-new говорит 29.06.2022 в 22:02 :

Извините, не могу временно помочь. У меня переезд, времени для работы над сайтом совсем нет, захожу на сайт с телефона

Источник: microkontroller.ru

Что значат в электросчетчике цифры Т0, Т1, Т2, Т3, какие из них записывать?

Как снимать показания с двух и трехтарифного счетчика, если у на принимаются только одни показания, общие?

Когда переключаешь кнопку на счетчике, меняются показания Т0 — одни, Т1 — другие, Т2 — вообще третьи. Ни чего не понять!

в избранное
Самохина Анна Петровна [0]
БЛАГОДАРЮ ЗА РАЗЪЯСНЕНИЕ! ВСЕ КОРОТКО, ЧЕТКО И ЯСНО! — 4 месяца назад
комментировать
11 ответов:
feier­ verk [29.8K]

3 года назад

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

Значит, у Вас запрограммирован или стоит трёхтарифный счётчик электроэнергии. На каждое время суток имеется своя плата. Разделяют сутки на три зоны.

Каждый временной интервал суток обозначается своей аббревиатурой.

Числа идут в киловаттах.

Т1 считается пиковым с наибльшей ценой для своего времени. Он отображает, сколько набежало утром в период с 7:00 до 10:00.

И сколько набежало вечером с 17:00 до 21:00.

Т2 является самым экономным, показывает сколько набежало в ночной период с 23:00 до 7:00 утра.

Т3 полупиковый тариф, показывает сколько набежало с 10:00 до 17:00 и с 21:00 до 23:00. Его цена чуть меньше Т1.

Чтобы верно расчитать показания, нужно узнать тарификацию для вашего региона.

1)Для этого следует взять все предыдущие данные — Т1, Т2, Т3.

2)Записать следует все настоящие показатели T1, T2, T3 для текущего месяца.

4)Вычесть из настоящих данных текущие для каждого показателя.

5)Затем результат каждого показателя перемножить на соответствующий тариф для этого показателя.

6)Последнее, складываем три полученных числа в кВт.

Т0 не понадобится — переключайте сразу, а то запутаетесь.

Источник: www.bolshoyvopros.ru

Форма Т-2: как заполнить личную карточку работника

Личная карточка работника — это документ, обязательный для каждого работодателя. Он заполняется на основании предоставленных сотрудником сведений об образовании, составе семьи, отношении к военной службе и прочей информации. Все записи заверяет и сотрудник, и представитель организации (ИП).

Что это за форма и когда она нужна

Бланк формы Т-2 утвержден постановлением Госкомстата России от 05.01.2004 № 1 . Документ ведут на каждого отдельного сотрудника. Это удобно, поскольку позволяет работодателю иметь полное досье на сотрудника. Дело в том, что в карточку записываются сведения:

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

Все эти данные аккумулируются работодателем для выполнения обязанностей, предусмотренных законом. Например, информация о составе семьи позволит включить детей работника в список получателей новогодних подарков или путевок в летние лагеря. Сведения о дополнительном образовании или степень знания иностранного языка в личной карточке дадут возможность предложить сотруднику другую должность или отправить его в заграничную командировку. Данные о награждениях и стаже рассматриваются как основание для направления документов коллеги на награждение на более высоком уровне. Отсюда вывод: личная карточка сотрудника — очень удобный и полезный источник информации для работодателей.

Читайте также:
С помощью каких программ можно создать календарь

Кто обязан вести карточки

Некоторые работодатели считают, что если приведенные в постановлении Госкомстата России первичные формы учета не являются обязательными, то заводить их в организации не стоит. Но не все так просто. Трудовой кодекс, действительно, напрямую не обязывает руководителей вести и заполнять эти бланки. Но в пункте 12 постановления правительства от 16.04.2003 № 225 «О трудовых книжках» говорится, что работодатель обязан знакомить сотрудника со всеми изменениями, вносимыми в трудовую книжку. Работник обязан подтвердить свое согласие подписью в личной карточке, в которую дублируются все вносимые в трудовую книжку записи.

Кроме того, надо знать, что форма Т-2 является одним из документов воинского учета, по пункту 27 постановления правительства РФ от 27.11.2006 № 719 . Таким образом, ведение этого документа является обязательным для всех организаций и предпринимателей.

Общие правила заполнения

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

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

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

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

Что касается ошибок и исправлений, от них, к сожалению, не уйти. Поскольку специальная инструкция по заполнению личной карточки Т-2 не разработана, ориентируемся на правила заполнения трудовых книжек. Если при заполнении допустили неточность, неверную запись необходимо зачеркнуть одной линией (запись должна оставаться читаемой), рядом написать корректную формулировку, затем дописать «Исправленному верить» и расписаться.

Как заполнить по пунктам

Допустим, в ООО «ППТ.ру» в августе 2021 года устраивается экономист Иванов Иван Иванович. При приеме на работу от нового сотрудника потребуются следующие документы (на их основании записываются данные в форму):

  • удостоверение личности;
  • трудовая книжка (при наличии);
  • СНИЛС;
  • документы воинского учета;
  • документы о полученном образовании и квалификации;
  • иные бумаги, если они требуются для допуска к выполнению трудовой функции.

Также кадровику необходим приказ о приеме на работу.

Когда все бумаги собраны, приступайте к оформлению бланка.

Начинаем заполнять бланк с шапки. Здесь следует указывать:

  • полное и сокращенное наименование организации-работодателя;
  • дату составления карточки;
  • табельный номер, ИНН (при наличии) и СНИЛС нового сотрудника, его пол (сокращенно — «М» или «Ж»);
  • обязательно уточнить, какой бывает характер работы в личной карточке Т-2, — постоянный или временный;
  • вид работы — основная или по совместительству. В этой ячейке слова надо писать полностью, сокращение недопустимо;
  • поле «Алфавит» заполняется той буквой, с которой начинается фамилия работника (в нашем примере это «И»).

личная карточка работника

Раздел I носит название «Общие сведения». Здесь указываются:

  • номер трудового договора и дата его заключения;
  • Ф.И.О. сотрудника, дата и место его рождения, гражданство;
  • степень владения иностранным языком (одним или несколькими);
  • информация об образовании и профессии.

Уже со второй строчки у кадровиков возникают сложности, потому что они не понимают, какие коды необходимо вписывать и откуда их брать. Код ОКАТО — номер населенного пункта (его района) в Общероссийском классификаторе объектов административно-территориального деления. В него часто вносят изменения, поэтому при заполнении желательно узнать точные сведения из проверенных источников.

Что касается аббревиатуры ОКИН, то она расшифровывается как Общероссийский классификатор информации о населении. Из этого списка кодов, которые поделены на 293 категории, и берут сведения для заполнения. Для удобства читателей приведем пример заполнения карточки Т-2: сводную таблицу кодов, которые понадобятся при оформлении строк 4, 5 и 6.

Что писать в строке

Какой код по ОКИН указывать

Гражданин РФ и иностранного государства (Республики Беларусь) (в скобках указать ту страну, подданным которой является работник)

Иностранный гражданин Республики Беларусь (указать ту страну, подданным которой является работник)

Источник: ppt.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru