скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыОтчет по практике: Мікропроцесорна техніка

Уведення й відображення значень перемикачів здійснюється за допомогою регістра DPTR по адресах відповідно 0FFF2h й 0FFF1h.

Для фіксац значень у кожному з доступних регістрів використається зовнішнє переривання INT0(перехід з 1 в 0), в оброблювачі переривання якого й записаний код збереження значення.

Алгоритм роботи програми:

Текст програми:

cseg
org 2000h
jmp main
org 2003h ;початок переривання по INT0
mov DPTR,#0fff2h ;опитування перемикачів
movx A,@DPTR
mov DPTR, #0fff1h ;вивід значень перемикачів
movx @DPTR,A
call 0230h ;затримка 50млС
mov IE,#0 ;для закінчення програми
reti
main: mov IE, #10000001b ;дозволу переривання
loop: mov DPTR,#0fff2h ;опитування перемикачів
movx A,@DPTR
mov DPTR, #0fff1h ;вивід значень перемикачів
movx @DPTR,A
sjmp loop ;нескінченний цикл сканування до переривання

3.         Просуммировать два уведених значення й суму записати в DPTR.

Уведення й відображення значень перемикачів здійснюється за допомогою регістра DPTR по адресах відповідно 0FFF2h й 0FFF1h.

Текст програми:

cseg
org 2000h
jmp main
org 2003h
clr EX0
jmp INT_0
main: mov IE, #10000001b ;дозволу переривання
mov R7,#0 ;лічильник операндов
setb IT1
loop: mov DPTR,#0fff2h ;опитування перемикачів
movx A,@DPTR
mov DPTR, #0fff1h ;вивід значень перемикачів
movx @DPTR,A
sjmp loop ;нескінченний цикл сканування до переривання
INT_0: clr IT1  ;змінити фронт спрацьовування переривання
mov DPTR,#0fff2h ;опитування перемикачів
movx A,@DPTR
mov DPTR, #0fff1h ;вивід значень перемикачів
movx @DPTR,A
mov R6,A ;запам'ятовування поточних значень перемикачів
mov A,R7 ;для перевірки на кількість уведених операндов
jz nul ;уведено два операнда?
mov A,R6 ;да
mov R1,A ;додавання операндов
add A,R0
mov R0,A ;для виводу за допомогою процедури SSI_W
call 0940 ;вивід
mov DPL,A ;запис значення в DPTR
jmp exit ;кінець програми
nul: mov A,R6 ;немає
mov R0,A ;збереження першого операнда
inc R7 ;наступний буде вводитися другий операнд
setb EX0 ;дозволу переривання
jmp ex ;вихід з процедури уведення
exit: mov R7,#0 ;для закінчення програми
ex: reti

4.         Секундомір. Програма використає апаратні засоби відліку тимчасових інтервалів - таймер 0 (200Bh). Час виводиться на ССИ за допомогою стандартної процедури 0940 (для цього потрібне значення потрібно помістити в регістр R0). Програма виконується в зацикленому стані.


Алгоритм роботи програми:

Текст програми:

cseg
org 2000h
jmp main ;перехід до виконання головної програми
org 200Bh
jmp timer ;перехід до виконання програми обробки переривання
main: mov TMOD,#01h ;включаємо 16 – розрядний таймер
mov IE,#10000010b ;дозволяємо переривання від таймера
mov TL0,#LOW(555) ;завантаження значення для відліку – 50мС
mov TH0,#HIGH(555)
mov R0,#1 ;початку з 1 секунди
call 0940h ;візуалізація секунд
setb TR0 ;старт таймера
loop: sjmp loop ;нескінченний цикл
timer: clr TR0 ;зупинка таймера
inc R7 ;20*50мС=1С
cjne R7,#20,out ;пройшла 1С?
mov R7,#0 ;так обнуління лічильника циклів по 50мС
inc R0 ;пройшла 1С – инкремент показника секунд
cjne R0,#60,out1 ;пройшла 1 хвилина?
mov R0,#1 ;так - секунди = 1
out1: call 0940h ;показати секунди
out: mov TL0,#LOW(555) ;завантаження значення для відліку – 50мС
mov TH0,#HIGH(555)
setb TR0 ;старт таймера
reti ;кінець підпрограми обробки переривання

5.         Стан перемикача INT0. Завдяки цій програмі можна обробляти переривання від INT0 без використання переходів на програма-оброблювач переривань і сканувати стан цього виводу порту P3 як скануються перемикачі. Принцип програми складається з сканування всього порту й виділення із цього значення потрібного біта(другого). У судячи із цього біта визначається сигнал на INT0. Програма циклічно скану порт і відповідно до зазначеного біта видає значення на лінійку светодиодов. Два значення - усі запалені - INT0=1; Половина запалена - INT0=0


Текст програми:

cseg
org 2000h
jmp main ;перехід до виконання головної програми
org 2003h
jmp ent ;перехід до виконання програми обробки переривання
main: mov IE,#10000001b ;дозволяємо переривання від INT0
loop: mov A,P3 ;сканування значень на порту P3 (INT0 – P3.2)
jb Acc.2,true ;INT0=1?
jmp false ;немає
true: mov DPTR,#0FFF1h ;так візуалізація
mov A,#255 ;запалити всі светодиоды – INT0=1
movx @DPTR,A
jmp loop ;нескінченне сканування
false: mov DPTR,#0FFF1h ;нема - візуалізація
mov A,#11110000b ;запалити половину светодиодов – INT0=0
movx @DPTR,A
jmp loop ;нескінченне сканування
ent: clr EX0 ;прийшов сигнал INT0
mov DPTR,#0FFF2h ;вивід значень перемикачів на лінійку светодиодов
movx A,@DPTR
mov DPTR,#0FFF1h
movx @DPTR,A
call 0230h ;затримка для фіксації візуалізації
setb EX0 ;дозвіл переривання від INT0
reti ;кінець підпрограми обробки переривання

7 ІНДИВІДУАЛЬНЕ ЗАВДАННЯ

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.