Материал: Микропроцессорные устройства систем управления (2005)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

cnt_off:

 

 

 

 

 

 

; переход в режим СТОП

 

 

000050 2333

tst

rent

 

 

 

000051 f3 71

breq

keyout

; завершить по признаку режима СТОП

000052

2733

clr

rent

; сбросить признаки режима ПУСК в rent

000053

2711

clr

temph

 

 

 

000054

ЬПЗ

out

TCCR0, temph

; останов таймера циклов контроля

000055 bf!2

out

TCNT0, temph

; сброс таймера циклов контроля

000056

2722

clr

counT

; сброс счетчика для формирования цикла

000057

98df

cbi

PORTA, PA7

; выключение охлаждения

000058

98de

cbi

PORTA, PA6

; выключение подогрева

 

waitspi:

 

 

 

 

000059

ЗОаО

cpi

XL, low(Mind); контроль вывода байтов индикации

00005а Ю11

breq

cnt_end

продолжение процедуры, если вывод завершен

00005b 9478

sei

; разрешить прерывания при ожидании

00005с effe

rjmp

wait_spi

; возврат к контролю завершения цикла вывода

 

cntend:

 

 

 

 

00005d dfdO

rcall

ind_off ;выключить индикацию температуры для СТОП

00005ecfel

rjmp

key_out

 

; завершение процедуры

 

;передача кодов управления индикацией

 

spistc:

 

 

 

0000bd930f

push

temp"!

 

0000be924f

push

saveF

 

OOOObf b64f

in

saveF, SREG

0000c0

30a3

cpi

XL, low(Mind+3)

0000c1

f051

breq

load

;

0000c2 910d

Id

tempi, X+

;

0000c3

30a2

cpi

XL, low(Mind+2)

0000c4

f409

brne

skip

;

0000c5

6800

sbr

tempi, 0x80

;

 

skip:

 

 

 

ООООсб b90f

out

SPDR, tempi

0000c7 b90f

out

SPDR, tempi

120

spiout:

; завершение с восстановлением из стека флагов и регистров

О000с8 be4f

 

out

SREG, saveF

O000c9 904f

 

pop

saveF

 

O000ca910f

 

pop

tempi

 

O000cb9518

 

reti

 

 

load:

 

 

 

OOOOcc 98c0

 

cbi

PORTB, PBO

OOOOcd 0000

 

nop

 

 

OOOOce 0000

 

nop

 

;

O000cf9ac0

 

sbi

PORTB, PBO ;

0OOOdOcff7

 

rjmp

spi_out

;

.ORG 0x0800

 

 

cdind:

; коды индикации цифр, начиная с нуля

000800 063f

 

 

 

 

000801 4f5b

 

 

 

 

000802 6d66

 

 

 

 

000803 077d

 

 

 

 

000804 6f7f

.dB

0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f

;EndOfFile

RESOURCE USE INFORMATION

Notice:

The register and instruction counts are symbol table hit counts, and hence implicitly used resources are not counted, eg, the 'lpm' instruction without operands implicitly uses rO and z, none of which are counted.

x,y,z are separate entities in the symbol table and are counted separately from r26..r31 here.

.dseg memory usage only counts static data declared with .byte

AT90S8535 register use summary:

 

 

 

 

 

 

 

 

 

 

 

 

rO:

1 rl

: 0

r2 :

0

r3 :

0

r4 :

16

r5 :

0

r6 :

0

r7 :

0

 

r8:0r9:

0

rlO:

0

rll:

0

rl2:

0

rl3:

0

rl4:

0

rl5:

0

 

rl6:

50

rl7:

29

rl8:

7

rl9:

6

r20:

0

r21:

0

r22:

0

r23:

0

r24:

0

r25:

0

r26:

5

r27:

2

r28:

0

r29:

0

r30:

2

r31:

1

x :

5

у :

0

z

:

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Registers used: 11 out of 35 (31.4%)

121

AT90S8535 instruction use summary:

adc

 

:

0

add

:

4

adiw

:

0

and

:

0

andi

:

0

asr

:

 

0

bclr ::

0

bid

;;

0

brbc

:

0

brbs

:

0

brcc

:

4

brcs

:

8

breq

:

12

brge :0

brhc

:

0

brhs

:

0

brid

 

:

0

brie ::

0

brio

 

:

0

brlt :

0

brmi

:

0

brne

:

4

brpl

 

:

0

brsh

:

0

brtc ::

0

brts :

0

brvc

:

0

brvs

:

0

bset

 

:

0

bst

:

 

0

cbi

:

14

cbr

:

0

clc

:

0

clh

:

0

cli

:

 

0

cln

:

 

0

clr

:

20

els

:

0

clt

:

0

 

civ

:

0

elz

:

 

0

com

:

0

cp

:

 

0

epe

:

0

cpi

:

18

cpse

:

0

dec

 

:

0

eor

:

 

0

icall:

 

0

ijmp

:

0

in

:

16

inc

:

6

Id

:

 

21

dd

:

0

Idi

:

32

Ids

:

2

1pm

:

2

Isl

:

0

 

lsr

:

 

4

mov

:

2

neg

 

:

0

nop

:

6

or

 

2

 

ori

:

0

 

out

:

48

pop

 

:

20

push

:

20 rcall: 20

ret

:

10

reti

:

8

 

rjmp

:

40

rol

:

0

ror

:

 

6

sbc

:

0

sbci

:

0

sbi

:

14

sbic

:

4

sbis

:

 

4

sbiw

:

0

sbr

:

2

sbrc

0

sbrs : 4

sec

:

0

seh

:

 

0

sei

:

 

4

sen

:

0

ser

:

2

 

ses

:

0

set

:

 

0

sev

:

 

0

sez

:

0

sleep :

0

st

:

8

 

std

:

0

 

sts

:

 

2

sub

:

0

subi ::

4

swap :

0

tst

:

10

wdr

:

0

 

 

 

 

 

 

 

 

Instructions used: 37 out ofl 00 (37.0%)

 

 

 

 

 

 

 

 

 

 

 

AT90S8535 memory use summary [bytes]:

 

 

 

 

 

 

 

 

 

 

Segment

Begin

End

Code

Data Used

Size Use%

 

 

 

 

[xseg] 0x000000 0x00100a

394

10

400

8192

4.9%

 

 

 

 

[.dseg] 0x000060 0x000060

 

0

 

0

0

 

512

0.0%

 

 

 

 

 

[.eseg] 0x000000 0x000000

 

0

 

0

0

5J2

0.0%

 

 

 

 

 

Assembly complete, 0 errors, 1 warnings

В выходном сообщении компилятора указано, что программа содержит 394 команды, используя менее 5% адресного пространства FLASH. В алго­ ритме работы все необходимые функции управления реализованы вектора­ ми прерываний, основной программный цикл (метка main) при работе сис­ темы управления температурой не используется, с его помощью могут ре­ шаться любые дополнительные задачи. Управление аппаратными средст­ вами микроконтроллера, обеспечивающими выполнение всех необходимых функций, достаточно просто и эффективно производится программной об­ работкой прерываний, суммарное время загрузки процессора подпрограм­ мами обработки прерываний в каждом цикле работы составляет менее 1 %. Таким образом, суммарное использование программных ресурсов микро­ контроллера (процессора, памяти, регистров и т.п.) не превышает несколь­ ких процентов.

Оценку использования аппаратных ресурсов микроконтроллера можно произвести по функциональной схеме (рис. 9). Для передачи сигналов не­ обходимы 10 линий ввода-вывода из 32. Большая часть входов АЦП сво­ бодна, также не используются внешнее прерывание INT1, таймеры 1 и 2, 122

компаратор и интерфейс UART. Следует отметить, что значительный объ­ ем резервных ресурсов микроконтроллера не является признаком неэффек­ тивного решения задачи. Напротив, эти резервные ресурсы практически всегда должны оставаться для возможной модернизации: изменения алго­ ритмов работы или введения каких-либо дополнительных функций. Неко­ торые варианты модернизации функций системы управления приведены ниже.

Программу несложно доработать при изменении и усложнении требуе­ мых алгоритмов управления. Например, управление нагревом и охлажде­ нием будет более эффективным, если использовать не релейное управление (включено/выключено), а ПИД-регулятор с управлением тепловой мощно­ стью по отклонению температуры. Аналоговый сигнал управления в этом случае можно формировать таймером 1 или 2 в режиме модулятора ШИМ.

Пороговые значения температур в программе фиксированные, так как определены в виде констант. Несложно реализовать процедуру ввода, ин­ дикации и хранения в EEPROM изменяемых пороговых значений темпера­ туры. В этой процедуре можно использовать уже имеющийся цифровой индикатор температуры, а для управления вводом необходимо подключить дополнительные кнопки на свободные входы портов микроконтроллера по схеме, которая аналогична приведенной на рис. 7.

Неиспользованный интерфейс UART позволяет создать средства обмена данными с другими устройствами управления. Например, в рассматривае­ мую систему управления температурой можно ввести средства поддержки дистанционного контроля работы через интерфейс UART. Функции дис­ танционного контроля могут выполняться из персонального компьютера с передачей команд управления параметрами и режимами работы и с запро­ сом данных о текущем состоянии системы.

5.3. Средства подготовки программ

Подготовка файла программы микроконтроллера для процедуры внутри­ системного программирования может выполняться инструментальным па­ кетом AVR Studio 4.X. Пользовательский интерфейс пакета AVR Studio стандартный для Window's-приложений (рис. 10) и содержит полоску ме­ ню, панель инструментов и рабочую область. Для активизации функций AVR Studio, необходимых для работы с текстом программы, должны быть выполнены следующие операции:

1.Для работы с текстом программы необходимо создать проект (project). Проект создается с помощью меню Project (пункт New Project). В поя­ вившемся на рабочем поле окне (рис. 11) указать тип проекта - AVR Assembler, имя и путь папки, имя проекта. Кнопкой "Next" необходимо

123

to

РисЛО. Интерфейс AVR Studio

Источник: https://studfile.net/preview/16521245/