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