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

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

Idi BeepDuration,2*DURAriON/NoTe mi1

rcall Beep Del ;1 m 1/8

Idi FreqConst,Note mi1

Idi BeepDuration,2.DURATI0N/Note mi1

rcall Beep Del : 1 фа 3/8

Idi FreqConst,Note fa1

Idi BeepDuration,6-DURAT10N/Note fa1

rcall Beep Del ;1 ии 1/8

Idi FreqConst,Note mi1

Idi BeepDuration,2«DURATI0N/Note mi1

rcall Beep Del : 1 фа 3/8

Idi FreqConst,Note fa1

Idi BeepDuration,6.DURATI0N/Note fa1

rcall Beep Del ;1 ми 1/16 (1/8)

Idi FreqConst,Note mi1

Idi BeepDuration,2*DURATI0N/Note mi1

rcall Beep Del :1 pe 1/8

Idi FreqConst.Note re1

Idi BeepDuration,2.DURATI0N/Note re1

rcall Beep Del -.1 до 1/8

Idi FreqConst,Note do1

Idi BeepDuration,2*DURATI0N/Note do1

rcall Beep Del ;1 си 1/4

Idi FreqConst,Note ciO

Idi BeepDuration,4.DURATI0N/Note ci0

rcall Beep Del ;1 соль 1/4

Idi FreqConst,Note sol1

Idi BeepDuration.4*DURATI0N/Note sol1

rcall Beep Del ; 1 фа 3/8

Idi FreqConst.Note fal

Idi BeepDuration.6*DURAT10N/Note fa1

rcall Beep Del ;1 фа 1/8

Idi FreqConst.Note fa1

Idi BeepDuration.2.DURATI0N/Note fa1

rcall Beep Del ; 1 ми 3/8

Idi FreqConst.Note mi1

Idi BeepDuration,6«DURATI0N/Note mi1

rcall Beep Del



; 1 ми 1/6

Idi FreqConst.Note mi1

Idi BeepDuration,3«DURATI0N/Note mi1

rcall Beep Del :1 ми 1/8

Idi FreqConst,Note mi1

Idi BeepDuration,2.DURATI0N/Note mi1

rcall Beep Del ;1 фа 1/8

Idi FreqConst,Note fal

Idi BeepDuration,2.DURATI0N/Note fa1

rcall Beep Del ;1 ми 1/8

Idi FreqConst.Note.mil

Idi BeepDuration,2.DURATI0N/Note mi1

rcall Beep 0el ;0 си 1/8

Idi FreqConst.Note.ciO

Idi BeepDuration, 2.DURATI0N/Note ci0

rcall Beep Del ;1 pe 1/8

Idi FreqConst.Note.rel

Idi BeepDuration,2.DURATI0N/Note re1

rcall Beep Del :1 фа 1/8

Idi FreqConst,Note fa1

Idi BeepDuration,2«DURATI0N/Note fa1

rcall Beep.Del ;1 ми 5/8

Idi FreqConst, Note mi1

Idi BeepDuration,10*DURATI0N/Note mi1

rcall Beep Del

rjmp EndRing SimpleRing: ; Проигрываем простую мелодию

Idi FreqConst,Note 7

Idi BeepDuration, 1

rcall Beep

Idi FreqConst.Note 5

Idi BeepDuration, 1

rcall Beep

Idi FreqConst, Note 3

Idi BeepDuration, 1

rcall Beep

Idi FreqConst,Note 5

Idi BeepDuration, 1

rcall Beep EndRing:

clt ; Сбрасываем флаг нажатия клавиши NoRing: ret



Beep Del: Idi

Del2: clr Dell: dec brne dec brne cli rjmp

; Короткая пауза перед нотой и сама нота

BeepVar,50

DelayVar

DelayVar

Dell

BeepVar

Del2

Beep

Сканирование клавиатуры: установка на выходных линиях заданного кода и прием ответа вызывается из функции GetKey GetKeyAnswer:

mov Key,г31

andi Key, $0F

out PORTB,Key

clr DelayVar Delayl: dec DelayVar

brne Delayl

in Key,PINB

com Key

andi Key,$70 ; Если что-то было найдено, флаг Z не нулевой

; Запись события EventType в текущую ячейку EEPROM памяти и обнуление времени WrireEEPROM:

Поиск последней записи

clr Idi

FindNextAdr:

EEadr,2

TCNTO.ZerReg

SLbi

EEadr,-2

EEadr,62

brne

EERead

EEadr,4

sbic

EECR,EEWE

rjmp

EERead

EEAR,EEadr

EECR,EERE

EECR,EERE

r31,EEDR

breq

NoZav

sbrs

г31,0

rjmp

FindNextAdr

Пока не сработал таймер, читающий из EEPROM (через 300 мс), все операции должны быть завершены

Если дошли до 64-го адреса, начинаем с начала

Ждем обнуления бита EEWE

Подготавпиваем адрес Устанавливаем бит для синхронизации Дважды

Читаем данные

Если было 256 неудачных попыток найти бит -признак последней записи, значит, его нет вообще, значит, пишем по любому адресу



[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.001