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

[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]

ReadNote: Idi Idi mov Isl add inc 1pm mov inc 1pm sbrc rjmp mov

SetFreq: Idi Idi Isl

out inc

; Чтение длительности и номера одной ноты r31,High(2»ProgramTab) ; Freqlndex = Lo ProgramTab[Step] гЗО,Low(2«ProgramTab) : FreqDelay = Hi ProgramTab[Step]

rO,Step rO

гЗО,rO Step

Freqlndex,rO гЗО

rO.7

SleepReset FreqDelay.rO

Step++

; Если старший бит установлен, то

; это означает, что мелодия закончилась

: Настройка таймера 1 на вывод частоты текущей ноты r31.High(2«SoundTab) ; 0CR1A = SoundTab[FreqIndex] гЗО,Low(2«SoundTab) Freqlndex гЗО,Freqlndex

0CR1AL,rO гЗО

0CR1AH,rO

Wait; tst FreqDelay

brne Wait

rjmp ReadNote

SleepReset:

Idi гЗО,$3F

out MCUCR,гЗО sleep

rjmp Reset

Ожидаем заданное время, пока проигрывается текущая нота

; Подготовка к переходу в режим Power Down

; Отключение микроконтроллера

: Эта команда в данной версии программы не

: должна исполняться никогда

.ORG $100 SoundTab:

; Таблица констант соответствующим нотам

, Желательно выровнять таблицу по границе 256 байтов, чтобы упростить программу,

; отказавшись от операций с 16-битовыми словами

.DW 11364,10292,9322,8443,7647,6926,6273 ; 440 Гц - нота "ля"

.DW 5682,5146.4661.4222.3824.3463.3137 : вторая Октава

.DW 2841,2573,2330,2111,19-12,1732,1568 ; третья октава

; При необходимости таблицу можно продолжить

ProgramTab:

; Таблица последовательности нот,

; формат таблицы: байт длительности/кода операции, байт номера частоты

; В зтом примере записано проигрывание гаммы

.DW $1001, $1002, $1003, $1004, $1005, $1006, $1007



Способ подключения к компьютеру

сом-порт

Настройки порта

9600 8N1

Максимально допустимый ток через любой вывод,, мА

Максимально допустимый суммарный ток через все выводы, мА

Минимальное время обновления состояния выходов, мс

Основу схемы составляет микроконтроллер AT90S8515, он подключен к компьютеру через последовательный порт, а для управления внешними устройствами используются выводы трех свободных портов - А, В и С. Для упрощения схемы данные передаются только в одну сторону - от компьютера к микроконтроллеру, никаких под-

.DW $1008. $1009, $100А, $10СВ, $10СС, $100D, $1С0Е .DW $2C0D, $2006, $2009, $2007, $2005, $2003, $2001 DW $8000

.EXIT

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

6.13. Универсальный расширитель последовательного порта

Назначение

Схема предназначена для управления с помощью компьютера различными устро11ствами: бытовыми электроприборами, шаговыми двигателями, электромагнитами и т. д. Можно ее также использовать как основу для программирования микросхем памяти, микроконтроллеров или других разработок. Для подключения к внешним устройствам имеются 24 универсальных выхода, совместимых с TTL, состояние и режим работы каждого из них можно задать с помощью управляющей программы. Она может быть написана на любом языке, поддерживающем технологию СОМ (ActiveX), например Delphi, MS Visual С++, MS Visual Basic, JavaScript, VBS и т. д.

Характеристики устройства



Vcc=5B

Vcc=5B

Т=25С~

t=B5°C

VOH(B)


Vra.(B)

Рис. 6.14. Нагрузочные характеристики выводов микросхемы

Р TxDo-

VD1 КД102

D1 AT90S8S1S

GNDO-1

R2 10к

LJs.iK

17 16 15 14 13 12 11 10

VT1 КТ315

С3 1

20 г

i ВМГц

5?нк-

С1 O.lMK

PD7/RD PD6WR PD5/OC1A PD4

PD3/INT1 PD2/INT0 Р01ЯХ0 PDC/RXD

XTAL1

XTAL2

reset

PA7/AD7 PA6/AD6 PA5/AD5 PA4/AD4 PA3/AD4 PA2/AD2 PA1/AD1 РАС/ADO PA7/SCK PB6/MISO PB5/MOSI PB4/SS PB3/AIN1 PB2/ANI0 PBinl

рвол-о

PC0/A8 PC1/A9 PC2/A10 PC3/A11 PC4/A12 PC5/A13 PC6/A14 PC7/A15

о о.

<u

S <a

Рис. 6.15. Электрическая принципиальная схема

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

Уровни последовательного порта преобразуются в TTL с помощью схемы на транзисторе VT1. Если вы собираетесь использовать эту схему для управления устройствами, работающими с высоким на1фяжением, вместо транзистора следует использовать оптопару.



[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