www.chms.ru - вывоз мусора в Балашихе |
Динамо-машины Однокристальные микроконтроллеры
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
jsr sta mic movl %c5,10010000b ]sr byte m w movl %c5,Oeeh jsr byte m w jsr sto mic pop raquo;c
movl %a5,00000000b
movl %а6,00000011b
push ffc
lar laquo;c,50h
jsr kon wr
jsr sta mic
movl %c5,10010000b
jsr byte m w
movl %c5,0aah
jsr byte m w
jsr sta mlc
movl %c5,10010001b
jsr byte m w
jsr kon re
push raquo;c
Idr ffc,58h
jsr byte m r
mov %a0,%c5
pop ffc
jsr kon wr
jsr ack wr
jsr kon re
push DC
Idr ffc.58h
jsr byte m r
mov %a1,%c5
pop ffc
jsr kon wr
jsr noack wr
jsr sto mic
jsr led
movl %a5,11111111b movl %а6,10101000b jsr timer pop ffc jmp zikl
повторный START команда -SLAVE+W-вывод в порт команда laquo;старт raquo; вывод в порт условие STOP
; вход в бесконечный цикл вывода ;старший байт интервального таймера ; младший байт интервального таймера
: конфигурация на запись ; условие START ;команда SLAVE+W ;вывод в порт
[команда laquo;чтение температуры raquo;
; вывод в порт
;повторный START
; команда lt; gt;SLAVE+R raquo;
:вывод в порт
;конфигурация на чтение
; сегмент чтения из порта
;чтение старшего байта температуры
;пересылка в %аО
;конфигурация на запись ;выдача АСК
;конфигурация на чтение
;чтение младшего байта температуры ;пересылка в %a1
;конфигурация на запись ;выдача NOACK ;условие STOP ;вывод на LCD
;старший байт интервала 1 с ;младший байг интервала 1 с ;отсчет 1 с
;возврат к считыванию --------- процедуры --------
;======= процедура конфигурации порта В на запись (write)
push йс Idr raquo;с,18h
movl %с2,00011011b ;автоинкремент конфигурации порта В ; тип вывода - выход
; включение р-канального транзистора (кроме битов О и 1) ; выключение нагрузочного резистора (кроме битов О и 1)
movl %с2, 11111111b movl %с2,11111100b movl %с2,00000011b
movl %с2, 00000000b movl %c2,00000000b pop laquo;С rts
;запрещение прерывания от положительного фронта ;запрещение прерывания от отрицательного фронта
коп ге:
== процедура конфигурации порта В на чтение (read)
push йс
Idr laquo;с,18h
movl %с2,00011011b
raovl %c2,11111110b
raovl %c2.11111100b
movl %c2,0000001 lb
movl %c2,00000000b
movl %c2,00000000b
pop laquo;с
;автоинкремент конфигурации порта В
;тип вывода - выход (кроме бита 0)
;включение р-канального транзистора (кроме битов О и 1)
;выключение нагрузочного резистора (кроме битов О и 1)
;запрещение прерывания от положительного фронта
;запрещение прерывания от отрицательного фронта
timer:
movl %d4,00010000b movl %d5,01001001b
movl %d4,00000100b
mov %d5,%a5
movl %d4,00000000b
mov %d5,%a6
movl %d4, 00000011b
wait
sta mic: ;===
movl %d2,00000011b jsr timer
movl %d2, 00000010b jsr timer
movl %d2,00000000b
jsr timer
sto mic: ;===
movl %d2,00000000b jsr timer
movl %d2,00000010b jsr timer
movl %d2,00000011b
jsr timer
byte m w: ; ===
movl %c3,09h
byte 00:
movl *c2,00h shl %c5 adc *c2 mov *d2,%c2 jsr timer
= процедура таймера ====
;обращение к регистру конфигурации
;регистр конфигурации:
;коэффициент деления входной частоты 400 кГц - 1/4 ;пересчет по фронту
;размерность регистра интервала - 16 бит
;установка старшего байта интервала
;старший байт интервала
;установка младшего байта интервала
;младший байт интервала
;пуск таймера на счет
;возврат из процедуры таймера
= формирование условия START =====
условие STOP ====
= вывод в порт микросхемы ОДНОГО байта ;установка счетчика цикла
movl %С4,00000010b or %C2,%C4 mov %d2,%c2 jsr timer
movl %c4,00000001b and %c2,%c4 mov %d2,%c2 jsr timer subl %c3,01h cmpl %c3,00h jnz byte 00 rts
byte m r: ;===
movl %c3,08h movl %c5,00h
byte 01:
shl %c5
movl %C2, 00000001b mov %d2,%c2 jsr timer
movl %c2, 00000011b
mov %d2,%c2
jsr timer
mov %c2,%d2
movl %c4,00000001b
and %c2,%c4
or %c5,%c2
movl %c2,00000001b
mov %d2,%c2
jsr timer
subl %c3,01h
cmpl %c3,00h
jnz byte 01
;пока не будет выведено 9 бит
= чтение из порта микросхемы ОДНОГО байта ;установка счетчика цикла
аск wr:
;пока не будет выведено 8 бит == АСК при чтении
movl %d2,00000000b jsr timer
movl %d2,00000010b jsr timer
movl %d2,00000000b jsr timer rts noaCk wr:
movl %d2,00000001b jsr timer
movl %d2,0000001 lb jsr timer
movl %d2,00000001b jsr timer
NOACK при чтении
led:
процедура вывода в LCD
push ffc
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 |