Mill
2002
■ни
Программа на ассемблере
org; q.ooh :
ВЕКТОР СБРОС
;::V
pX" . ■
■'KVA.'
,-mov PI, »O ff
СБРОС ПОРТА ВО
MOV
■P2:,
#OOH
СБРОС ПОРТА PI
- 2
С,А
BEGIN; . JNB P I.0 ,NEXT1
ЕСЛИ P1.0 HE УСТАНОВЛЕН, TO ПЕРЕХОД НА МЕТКУ NEXT1
: MOV P2,#001H
ЗАПИСЬ ЗНАЧЕНИЯ В'■
ПОРТ Р'2,-ВКЛЮЧЕНИЯ 1-го СВЕТОДИОДА
-.CLR p i. a
СБРОС БИТА Р1.0
.NEXT1: ' .JNB. РГ.1,NEXT2 ■
ЕСЛИ PI ;;1 НЕ УСТАНОВЛ ЕН л. ТбТВЁРЕХОД :НА; МЕТКУ NEXT2 -0.
MOV P2,:*.003H
Запись значения в.; порт р2: включения 2-х :светодиодов:.
.CLR pi .:
.
СБРОС БИТА Р1.1
NEXT2:
JNB. P-1 .2/NEXT 3' '
ЕСЛИ Р-1.2 НЕ УСТАНОВЛЕН, ТО ПЕРЕХОД НА. МЕТКУ NEXT3
MOV P2,#607H
ЗАПИСЬ .'ЗНАЧЕНИЯ В ПОРТ Р2 ВКЛЮЧЕНИЯ.: 3-х СВЕТОДИОДОВ■
CLR P I.2
.'СБРОС 'БИТА Р1.2
next;!:
JNB .PI. 3,KEXT4'
ЕСЛИ Р1.
..3. НЕ УСТАНОВЛЕН, ТО ПЕРЕХОД НА МЕТКУ МЕХТ4
MOV. P2,#00FH
ЗАПИСЬ: ЗНАЧЕНИЯ В ПОРТ Р2 ВКЛЮЧЕНИЯ 4-х .СВЕТОДИОДОВ;
■CLR P1.3
СБРОС ГБИТА: Рр.З' ' .
.
NEXT4;
JNB PI
. 4-,
NEXT5
; .ЕСЛИ РЬ4 НЁ УСТАНОВЛЕН, ТО. .ПЕРЕХОД НА МЕТКУ NEXT5
■■
MOV P2, # 01FH ■"
ЗАПИСЬ; ЗНАЧЕНИЯ В .ПОРТ Р2 ВКЛЮЧЕНИЯ 5-и :СВЕТОДИОДОВ,
CLR PI.
4-;
.СБРОС ВЙТА-В1.:-4
:
NEXT 5:; :■
JNB PI . 5, NEXT6--
ЕСЛИ'.-Р1 - 5 -НЕ УСТАНОВЛЕН, ТО ПЕРЕХОД PLA МЕТКУ NEXT6 :.
. MOV P2,#02 EH
'
ЗАПИСЬ ЗНАЧЕНИЯ"ВУЙОРТ Р2нВКЛЮЧЕНИЯ 6-и СВЕТОДИОДОВ'
CLR P I.5
СБРОС БИТА Р1.5
У
' NEXT 6:
JNB P i.6 ,NEXT?
ЕСЛИ. Р1.6 НЕ УСТАНОВЛЕН, ,ТО "ПЕРЕХОД НА' МЕТКА1
NEXT7■ '
: MOV P2., # 07 EH
ЗАПИСЬ ЗНАЧЕНИЯ. В ПОРТ F2 ВКЛЮЧЕНИЯ 7-и ■СВЕТОДИОДОВ
CLR P I-.6
.СБРОС БИТА Р1.6
NEXT7.
JNB P I.7 ,BEGIN
1
ЕСЛИ' Р1.7 'НЕ УСТАНОВЛЕН, ТО:ПЕРЕХОД НА. МЕТКУ BEGIN
; MOV P2-, #0EEH
.ачпись' ЗНАМЕНИЯ В ПОРТ Р2;ВКЛЮЧЕНИЯ 8-и СВЕТОДИОДОВ
CLR
P I. 7
СБРОС БИТА Р1.7 -у
'.'.JMP BEGIN
ПЕРЕХОД НА МЕТКУ BEGIN
'
".END
Рис. 4
айлы
В
в
ш м
•Щ1*}
800000) /;• 90 08 75fit 14
' ay 98
OF/5 ft 881C2 98 3891
000010) «5 75й»
<&
'!.
СУ91 ;>a9 2
- 05 75 80 J
‘7C293 заv:j
080020) 6575 Й
0ilF C?93 3 09 4 - 05 /5 0« If C?94 3895
000930) 05 75f!0 ЗГC? 95 oft >6
П5 75 ftp- ’Г
r.?
•7
ft 3« 97
000040) С575 ЙЗrr c? 9
'7ееO
f
08 88 00 ne П808
ao
000950) I
i
И ft t Ff FF
t f- l- F
- i t H н f f f Гf Frr ?
Ь
080060) н FF»
Гt FГ
f f f i t ‘ f - f f ' f гг 1
f h
i H H Г
i
900070) FFГГ f Гf Ff г ff Ff Ff - ff ff гг
П
Ff FFFFFF
0001» Й
) ГГ FFГГ FFГГ F
Г
FF
v •
Г
FFFгг rr ГГ F
Гrr FF
000998) Ff F
! ff FFFf Г
Г
rr
rr
rr FTгг rr rr rr rr { r
800000) Н F
f FFFF fF F
f f FI- г - ; i FF FF
и
f f f F>
Ff Г
080098) f f ГГ ГГ Г
г Г
FИ- FF
i
Г
-
>
ГГ
ГГГ гг ГГ ГГ ГГ ГГ
ООООСО
) F1 ГГ FFFFFF ГГ Ff ff - fF гг FF Ff FF
' FFFFFF
000000) FFFr FTГГ rr
FT
Ff FF
- rr FFFFFTFFFFFFГ F
8009ЕО
) If ГГ FFГГ Ff FFFF
<
Г
IT ГГ Ff П
rr
rr rr rr
OQGOF0) Г»
' ГГ ff f'FFFFr f f
f
F
- <
f И ГГ fr FF f f f Гf Г
800108) ГГ гг Ff ГГ ГГ FTFTf Г
- г г ГГ гг Г
f
ГГ FFгг Г
Г
000110)
FF
FFFFFFFFFFFFFF
- FFFFг г FFFf FFГРFF
8Й01?Й) ГГ ГГ rr ГГ rr Ff ГГ rr
rr ГГ гг FFFFrr гг ГГ
080138) гг ГГ rr ГГ rr rr rr rr
rr ГГ Г
FFFrr rr rr
rr
800140) ff F
f FFff- FF FFfF F
f - ; f гг ГГ- f
f
FF FTff ff
000150) FFFFFFFTFFFF
FF
FF -
Ff
FFFF
Ff
FFff FFfF
000168
) FFГГ FTFFFFFFff ?F - FFFFFF
FF
Ff FFFFFF
800170) ГГ ГГ ГГ ГГ rr Ff FFrr
rr ГГ ГГ
FT
F
ГГГ rr FF
808188) FFГГ FFГГ rr Tf rr rr
ГГ ГГ ГГ ГГ rr FFrr rr
888198) F
ГГ> Ff FFrr FFFF* F
- F
f } >гг FFf FFT>
Г
' rr
800180) Ff FFFFFFFFFFFFff - FFГГ
' FFFFFFFFFFFF
880186) FFГГ FFFFFFff FFГЯ
-
FF
FFFFFFff ff FFFF
6Q01C0) ГГ ГГ rr rr rr Fr FFrr
rr
ГГ ГГ rr ГГ FFFFrr
000100) ГГ гг Г
Гrr rr rr rr rr
rr ГГ Ff rr rr rr rr ?r
О001ЕО
) FFF
f FF Ff FFFFFF ff - FF гг FFFFFF Г
ГГ
Г
' f f
8001F6) Ff FFFFFFFFFF
FF
ff - FFFFFFFFFFFF
FF
FF
880208) FFГГ FFFFFFFFFFFF - FFГГFFFFFFFFFFrr
880218) ГГ ГГ rr rr FFFFFFff
rr ГГ ГГ FFFFFf FFrr
888228) ГГ ГГ rr rr rr rr
rr
rr
! ГГГ rr ГГ rr rr ГГ f r
800230) FF Г! Ff FF FFFr f Ff f - ff гг FFFFFT
ff
ГГ rr
Pe^ej^L. £t8SS£552
.-ф
:$св 1С240Bytes : ЖС~8а51Н
.о .8’O
'.u .В
'8
-tt
.B'fl'.H -ВЙ-
.» ?8* 0- л) .B-fi
Eu s8 T
is.
........
*ЯЧвЯЯЯЯЯЯЯЯ«1ЯЯЯ
ЯЯЯЯЯЯЯЗЯЯЯЯЯЯЯЯ
яявяяя»«яяня»яяв
я»я«яяяяяяя5»я«»н
яяяяяяяяяяяяяяяя
яяяяяяяяяяяячяяя
яяяяяяяяяяяяяяяя
яяя«яя»яя»янаяяя
яяяяаяяязяяяяяяя
яяяяяяяяяяяяяяяя
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
яяяяяяяяяаяяяняя
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
яяяяяаяяяаяячяяч
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
яяяяяяяяяяяяяяяя
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
ЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ
Составим и рассмотрим блок схему
программы (рис. 3). После подачи напря-
жения питания на всех выводах портов
Р0.
..РЗ устанавливается высокий уро-
вень. Поэтому при запуске программы
необходимо установить на выводах, ис-
пользуемых в нашем случае, низкие
уровни. После этого необходимо органи-
зовать циклический опрос каждого из
выводов порта Р1, к которому подклю-
чены кнопки ЗВ1.
..ЭВ8. При обнаруже-
нии уровня логической “1” на каком-либо
выводе порта Р1 производим соответ-
ствующую операцию. В данном приме-
ре при обнаружении уровня логической
“1" на выводе порта Р1.0 нужно устано-
вить логические уровни на выводах пор-
та Р2 для включения только одного све-
тодиода, при обнаружении уровня логи-
ческой “Г на выводе порта Р1.1 - логи-
ческие уровни для включения двух све-
тодиодов и так далее.
Составив блок-схему программы,
приступим к ее реализации на языке Ас-
сем блер-51. Н аписание программы
предполагает изучение команд данного
ассемблера.
Для написания программы на ассем-
блере для семейства контроллеров
МСЭ-51 можно рекомендовать старень-
кую бесплатную программу компилято-
ра 1 ^0 -8 0 5 1 (рис. 4). Данная програм-
ма работает под ООЭ и имеет встроен-
ный внутрисистемный эмулятор, с помо-
щью которого можно проверить правиль-
ность работы программы.
Текст программы, соответствующий
блок-схеме, приведен выше. В теле про-
граммы приведены подробные коммен-
тарии для каждой команды. После того,
как вы набрали текст программы, ском-
пилируйте его. При правильном завер-
шении работы компилятора он выдаст
сообщение о количестве скомпилиро-
ванных строк. После этого можно запу-
стить эмулятор и проверить правиль-
ность работы программы. Затем, если
вы уверены, что все правильно, необ-
ходимо сохранить в файл данные со-
зданного вами машинного кода в шес-
надцатиричном или двоичном форма-
те соответственно, давая ему расшире-
ние
И ех
или
Ы п.
Этот файл использует-
ся для записи в контроллер. Для про-
шивки кантроллера можно использовать
любой имеющийся программатор, за не-
имением такового можно использовать
ранее описанный РопуРгод (рис. 5).
Подключаем программатор к одному из
портов, производим калибровку порта.
Открываем ранее созданный файл ма-
шинного кода нашей программы и за-
писываем его в контроллер. Вот и все,
осталось только вставить контроллер в
нашу схему и подать питание.
МИКРОКОНТРОЛЛЕРЫ
|
9/2002 \
предыдущая страница 32 Радиолюбитель 2002-09 читать онлайн следующая страница 34 Радиолюбитель 2002-09 читать онлайн Домой Выключить/включить текст