Главная  Микроконтроллеры 

[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

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

3. Подключение к компьютеру и внепшему устройству Схема подключается к параллельному порту, также необходимо подвести питание +5 В к микросхемам, лучще всего для этого использовать блок питания компьютера. В моем варианте собранная схема находится внутри компьютера, подключается к внутреннему разъему LPT-порта на системной плате, для питания использует 4-контрактный разъем, а рабочие выходы выведены на 32-контактный разъем, вмонтированный в заглушку от отсека 5,25 на передней панели. На этот же разъем выведены напряжения питания +5, +12 В.

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

Подключение к параллельному порту

Вывод порта

Название вывода

Цепьгщаптера

-STROBE

-AUTOFD

IN10



Подключение к параллельному порту (продолжение)

Вывод порта

Название вывода

Цепьгщаптера

-INIT

IN11

-SLCTIN

IN12

-АСК

IN13

BUSY

IN14

IN15

SLCT

IN16

18...25

общ.

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

Первый

Второй

Первый

Второй

Для подключения к внешнему устройству используются цепи 01...024, из них 01...016 являются обычными выходами, а 017...024 могут использоваться как входы или выходы. Цепь 016 параллельно используется для внутренних нужд.

4. Программирование

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



Практически любой язык программирования имеет функции, позволяющие записать число по заданному адресу в порт ввода-вывода. Управление схемой осуществляется через вызовы таких функций. Для записи 8-битового числа в буферный регистр схемы необходимо записать его в регистр данных параллельного порта, затем записать в регистр управления любое число, имеющее в соответствующем разряде единицу (соответствующем выводу С выбранного буферного регистра), и затем в него же ноль. Для чтения 4 битов данных достаточно просто прочитать регистр состояния порта, для чтения остальных битов предварительно измените состояние линии 016. Необходимо учитывать, что некоторые входные и выходные линии порта проинвертированы.

Адреса регистров для LPT1 приведены в таблице (верно для большинства компьютеров, но для корректного определения адресов следует использовать данные BIOS):

Регистр данных

378h

Регистр состояния

379h

Регистр управления

37Ah

Автор: Сафонников В. В. (E-mail: sw@ufanet.ru).

6.16. Электронные часы с будильником на AT90S2313-10PI

В данном проекте описаны электронные часы с будильником, выполненные на AVR-микроконтроллере типа AT90S2313-10P1. Часы имеют светодиодный индикатор отображения текущего времени и встроенный аккумулятор для поддержания хода при пропадании сетевого напряжения, что очень актуально в условиях непрекращающегося экономического кризиса. Устройство содержит минимум комплектующих и имеет несложную электрическую схему. Часы были испытаны автором на протяжении нескольких месяцев, что показало их надежность и работоспособность.



[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [ 74 ] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

0.0009