қосалқы қосылған файлдар
.include "m8535def.inc";
ATmega8535 файлдың жазуы
.include«1 файлдың аты.кеңейту»; қосалқы файлдың қосылуы
.include«2 файлдың аты.кеңейту»;
*****
*глобальды конетант
;
*******
бағдарлама асты 2 subr2: <команда>хххх ret
******** INTO
жөндеуші үзілу бағдарламасы: <команда>хххх reti
/ бағдарламаның соңы ешқандай мән бермейді.
Төмен қарай оңай бағдарламалар, демонстрацияланған ассемблер
директивін қолдану. Бағдарламаны 5 санынан 3 санына шегереді. Егер сигнал
рұқсаты берілсе («1» РА4 шығуға), онда индикацияға (РС0...РС7 бит - сегменті,
РВЗ бит - индикаторы) нәтижені шегеру беріледі. Егер рұқсат болмаса, онда
индикацияны нөл санына шығарады. ПА.1 суретте алгортим бағдарламасы
көрсетілген.
Сурет ПАЛ – Алгоритм бағдарламасы
90
#include "m8535def.inc" /ATmega8535
9 жазуы үшін файлды қосу /сегмент
мәліметі
.equ
cod0=$64 /SRAM
-equ
codl=$ 65
-equ
cod2=$66
•equ
cod3=$67
•equ
cod4=$68
.equ
cod5=$69
•equ
cod6=$6a
.equ
cod7=$6b
-equ
cod8=$6c
-equ
cod9=$6d
. cseg
. org
0
rjmp reset
or
9 $30
/бағдалманың басы
reset:
ldirl6,$00
/определение стека с вершиной по адресу $00ff
out sph,r!6 ldi r!6,$ff out
spl,rl6
dizl,$64 ,
ldizh,$00
ldi rl6,$ff /
С портын шығуға күйіне келтіру
outddrc,rl6
ldi rl6,00 /
А портын кіруге күйіне келтіру
outddra,rl6
ldi r!6,$c
/В портын күйіне келтіру: 2 және3 биттерін сыртқа, ал қалғаны
ішке
out ddrb,rl6
ldi r!6,$f0
/ Д портын күйіне келтіру: 0...4 биттерін сыртқа, ал қалғаны ішке
out ddrd,rl6
sbi portB,3
/В портынан 3 разрядына 1 жіберу
ldi rl7,$3f
/жетісегментті код тапсырмасы
sts codO,rl7
ldi rl7,$06
-.
sts codl,rl7
ldi rl7,$5b
sts cod2,rl7
ldi rl7,$4f
sts cod3,rl7
ldi r17,$ 66
sts cod4,rl7
ldi rl7,$ 6d
sts cod5,rl7
ldi rl7,$7d
91
sts cod6,rl7
ldi rl7,$07
sts cod7,rl7
ldi rl7,$7f
sts cod8,rl7
ldi r17,$ 6f
sts cod9,rl7
ldi rl7,5
/ бөліну тапсырмасы
ldi rl8,3 /
шегеру тапсырмасы
ml: sbispina,4 /
SA1 тумблері қосылған болса,
ОНДА КЕЛЕСІ КОМАНДАНЫ
ЖІБЕРЕДІ
rjmp m2
mov r20,rl7
sub r20,rl8
rjmpvv
m2:
ldi r20, 0
vv:
pushzl /zl
в стектесақтау
addzl,r20 /zl
с нәтижесін қосу
Idr0,z
/г20 жетісегментті код нәтижесін лақтыру
Popzl /zl
стектан өшіру
outportc,r0
/нәтижесін индикацияға беру
rjmpml
|