Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект / КР1816ВЕ48..doc
Скачиваний:
135
Добавлен:
21.02.2014
Размер:
229.38 Кб
Скачать

16. Заключение.

Представляемый комплекс аппаратных и программных средств успешно прошёл все процедуры тестирования. Хочется также отметить удачную запись программатором кодов программы в ПЗУ.

К сожалению, данный аппаратно-программый комплекс ещё ни разу не использовался автором для выполнения реальной задачи по созданию устройств управления на базе МК48. Однако удачное прохождение всех тестовых испытаний не заставляет усомниться в работоспособности системы: написанные и отлаженные тестовые программы, прошитые в ПЗУ, готовы к работе на однокристальном микроконтроллере КР1816ВЕ48.

 

Приложение 1. Команды языка ASM-48

Mov a,r0

mov a,r1

mov a,r2

mov a,r3

mov a,r4

mov a,r5

mov a,r6

mov a,r7

mov a,@r0

mov a,@r1

mov r0,a

mov r1,a

mov r2,a

mov r3,a

mov r4,a

mov r5,a

mov r6,a

mov r7,a

mov @r0,a

mov @r1,a

mov a,psw

mov a,t

mov t,a

movx a,@r0

movx a,@r1

movx @r0,a

movx @r1,a

movp a,@a

movp3 a,@a

xch a,r0

xch a,r1

xch a,r2

xch a,r3

xch a,r4

xch a,r5

xch a,r6

xch a,r7

xch a,@r0

xch a,@r1

xchd a,@r0

xchd a,@r1

in a,p1

in a,p2

ins a,bus

outl p1,a

outl p2,a

outl bus,a

movd a,p4

movd a,p5

movd a,p6

movd a,p7

movd p4,a

movd p5,a

movd p6,a

movd p7,a

add a,r0

add a,r1

add a,r2

add a,r3

add a,r4

add a,r5

add a,r6

add a,r7

add a,@r0

add a,@r1

addc a,r0

addc a,r1

addc a,r2

addc a,r3

addc a,r4

addc a,r5

addc a,r6

addc a,r7

addc a,@r0

addc a,@r1

da a

inc a

inc r0

inc r1

inc r2

inc r3

inc r4

inc r5

inc r6

inc r7

inc @r0

inc @r1

dec a

dec r0

dec r1

dec r2

dec r3

dec r4

Dec r5

Dec r6

Dec r7

Anl a,r0

Anl a,r1

anl a,r2

anl a,r3

anl a,r4

anl a,r5

anl a,r6

anl a,r7

anl a,@r0

anl a,@r1

orl a,r0

orl a,r1

orl a,r2

orl a,r3

orl a,r4

orl a,r5

orl a,r6

orl a,r7

orl a,@r0

orl a,@r1

xrl a,r0

xrl a,r1

xrl a,r2

xrl a,r3

xrl a,r4

xrl a,r5

xrl a,r6

xrl a,r7

xrl a,@r0

xrl a,@r1

clr a

cpl a

swap a

rl a

rlc a

rr a

rrc a

anld p4,a

anld p5,a

anld p6,a

anld p7,a

orld p4,a

orld p5,a

orld p6,a

orld p7,a

clr c

clr f0

clr f1

cpl c

cpl f0

cpl f1

retr

ret

stop tcnt

strt t

strt cnt

en tcnti

dis tcnti

en i

dis i

sel rb0

sel rb1

sel mb0

sel mb1

ent0 clc

nop

mov a,#d

mov r0,#d

mov r1,#d

mov r2,#d

mov r3,#d

mov r4,#d

mov r5,#d

mov r6,#d

mov r7,#d

mov @r0,#d

mov @r1,#d

add a,#d

addc a,#d

anl a,#d

orl a,#d

xrl a,#d

anl p1,#d

anl p2,#d

anl bus,#d

orl p1,#d

orl p2,#d

orl bus,#d

djnz r0

djnz r1

djnz r2

djnz r3

djnz r4

djnz r5

djnz r6

djnz r7

jc

jnc

jz

jnz

jt0

jnt0

jt1

jnt1

jf0

jf1

jtf

jni

jb0

jb1

jb2

jb3

jb4

jb5

jb6

jb7

call

jmp

jmpp @a

Приложение 2. Пример исходного текста на языке ASM-48

000h jmp START ; Запуск программы

003h dis TCNTI ; Каждую секунду прерывание от секундомера (К176ИЕ5)

; Запрет прерывания от внутреннего таймера

; для того, чтобы не возникали вложенные прерывания!

004h jmp ADD_TIMER ; Переход к процедуре

007h dis I ; Прерывание от таймера - для динамической индикации

; Запрет внешнего прерывания от секундомера

mov R0,#38h ; Сохранение регистров и аккумулятора

mov @R0,A

sel RB1 ;

; Выбор первого банка регистров

mov A,#TIMER_PER ; Загрузка в таймер

mov T,A ; начального значения счёта

mov A,#0FFh ; Бланкирование (гашение

outl BUS,A ; всех индикаторов)

dec R2 ; Декремент счётчика знакомест

jс START_R2 ; Переход, если перенос (отрицательное значение)

RET_R2:

mov A,#COD_SIMV ; Загрузка начального адреса РПД, где лежат цифры индикации

add A,R2 ; Продвижение к нужной цифре

mov R0,A ; Загрузка адреса РПД в R0

mov A,@R0 ; Вытаскивание цифры индикации из РПД

mov R3,A ; Цифра индикации храниться в R3

mov A,#COD_7SIGM ; Загрузка начального номера в таблице перекодировки

add A,R3 ; Коррекция адреса по цифре индикации (R3)

movp3 A,@A ; Загрузка перекодированного символа

outl P1,A ; Вывод байта индикации на порт P1 (7-ми сегментный код R2)

; Реализация бегущего нуля

mov A,R2 ; Начальное значение цикла по R4

mov R4,A ; (равно номеру знакоместа)+1

add R4 ; Для специфичного цикла

mov A,7Fh ; Начальный нуль на старшем бите (01111111)

; Это для специфичного цикла - у него происходит один

; сдвиг влево даже если R4=1 (т.е. R4=0)

FOR_R4:

rl A ; Циклический сдвиг аккумулятора влево

djnz R4,EXIT_R4 ; Декремент счётчика цикла и повтор, если не нуль

anl A,R7 ; Логическое И того, что надо индицировать, и регистра маскировки

; Это для того, чтобы можно было погасить любое знакоместо

outl BUS,A ; Вывод на порт BUS байта с одним нулём (выбор знакоместа)

; С этого момента светиться одно знакоместо индикатора

sel RB0 ; Восстановление нулевого банка регистров

en I ; Разрешение прерывания от секундомера

mov R0,#38h ; Восстановление регистров и аккумулятора

mov A,@R0

retr ; Выход из подпрограммы индикации

; с восстановлением ССП

 

Соседние файлы в папке курсовой проект