Читаем Микроконтроллеры AVR: от простого к сложному полностью

#include

#include

#include

char SendByte(char ByteOut)

{

  int i.j; long li;

  unsigned char ByteOutCpy, Byteln = 0;

  ByteOutCpy = ByteOut;

  for (i=0; i

  {

    Byteln = (Byteln <<1) + ((inportb(0x379)&0x80)==0);

    outportb(0x37A,0x021(((128&Byte0utCpy)==0)));

    for (li=0; li<20001; li++);

    outportb(0x37A,0x001(((12B&Byte0utCpy)==0)));

    for (li=0; li<20001; li++);

    outportb(0x37A,0x021(((128&Byte0utCpy)==0)));

    ByteOutCpy = ByteOutCpy <<1;

    for (li=0; 1К20001; li++);

  }

  return Byteln;

}

void KeyOn(void)

{

  int i;

  long li;

  for (i=0; i<64; i++)

  {

    outportb(0x37A,0x00);

    for (li=0; li<200001; li++);

    outportb(0x37A.0x03);

    for (li=0; li<200001; li++);

  }

  delay(100);

}

void KeyOff(void)

{

  int i;

  long li;

  for (i=0; i<128; i++)

  {

    outportb(0x37A,0x0B);

    for (li=0; li<20001: li++):

    outportb(0x37A.0x08);

    for (li=0; 1K20001: li++);

  }

}

void Riain()

{

  Key0n(); // Включение ключа

  printf("%02X",SendByte(0)); // Отправка 8 байтов.

  printf("%02X",SendByte(1))

  printf("%02X",SendByte(2));

  printf("%02X",SendByte(3));

  printf("%02X",SendByte(4));

  printf("%02X",SendByte(5));

  printf("%02X",SendByte(6));

  printf("%02X",SendByte(7));

  printf("\n");

  printf(''%02X",SendByte(7)); // Отправка следующих 8 байтов и одновременное

  printf(”%02X",SendByte(6)); // получение байтов, отправленных раньше

  printf("%02X",SendByte(5));

  printf("%02X",SendByte(4));

  printf("%02X",SendByte(3));

  printf("%02X",SendByte(2));

  printf("%02X",SendByte(1));

  printf(:%02X".SendByte(0)):

  printf("\n");

  printf("%02Х''.SendByte(0xF0)); // Отправка следующих 8 байтов и одновременное

  ргintf("%02Х",SendByte(0xF1)); // получение байтов, отправленных раньше

  printf("%02Х",SendByte(0xF2));

  printf("%02X",SendByte(0xF3));

  printf("%02X",SendByte(0xF4));

  printf("%02X",SendByte(0xF5));

  printf("%02X",SendByte(0xF6));

  printf("%02X", SendByte(0xF7));

  printf("\n");

  printf("\n');

  KeyOff(); // Отключение питания ключа

Автор: Сафонников В. В. (E-mail: [email protected]).

<p>6.11. Кодовый замок</p>

1. Назначение и описание устройства

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

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

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

При проигрывании мелодии останавливается вывод данных во внешний компьютер, поэтому, если шел прием данных и был нажат звонок, потребуется дополнительное время на исправление возникшей ошибки. При проигрывании простого сигнала такого не происходит. Кроме того, для правильного воспроизведения мелодии желательно использовать внешний кварц вместо внутреннего RC-генератора микросхемы.

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

Все книги серии Библиотека инженера

Похожие книги

Электроника для начинающих (2-е издание)
Электроника для начинающих (2-е издание)

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

Чарльз Платт

Радиоэлектроника / Технические науки
Электроника для начинающих
Электроника для начинающих

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

Паоло Аливерти , Чарльз Платт

Радиоэлектроника / Технические науки
Искусство схемотехники. Том 3 (Изд.4-е)
Искусство схемотехники. Том 3 (Изд.4-е)

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

Пауль Хоровиц , Уинфилд Хилл

Техника / Радиоэлектроника