Лабораторная работа 4 / mps_lab4
.docСанкт-Петербургский государственный электротехнический университет
Кафедра ВТ
Микропроцессорные системы
Отчет по лабораторной работе №4
Вариант 1
Выполнили: Попов А.
Таранюк М.
Гр.2372
Проверила: Головина Л.К.
Санкт-Петербург
2006
Логика работы T/C0 или T/C1 в режиме 1
Логика работы T/C0 или T/C1 в режиме 2
Код программы
$NOMOD51
#include <reg932.h>
Blinking SEGMENT CODE ; segment declaration
; defines a segment with the name 'Blinking' and the memory class CODE
RSEG Blinking ; switch to this code segment
JMP punkt3
ORG 0Bh ; 0BH is address for Timer 0 interrupt
PUSH PSW
PUSH ACC
MOV P2, R7
DJNZ R6, next
MOV R6, #2Eh
CJNE R7, #10000000b, shift
MOV R7, #00000001b
JMP next
shift:
MOV A, R7
RL A
MOV R7, A
next: POP ACC
POP PSW
RETI
punkt1:
MOV P2M1, #00h ; configure Port 2 as Quasi-bidirectional
MOV R7, #00000001b
MOV R6, #2Eh
MOV TMOD, #01h ; configure Timer 0 in mode 1 (16-bit timer)
; programming interrupt logic
SETB EA ; enable all interrupts
SETB ET0 ; enable interrupt request from T/C0
SETB TR0 ; run Timer
jmp forever
punkt2:
MOV TMOD, #05h ; configure Timer 0 in mode 1 (16-bit counter)
SETB TR0 ; run Counter
jmp forever
punkt3:
MOV P2M1, #00h ; configure Port 2 as Quasi-bidirectional
MOV TMOD, #06h ; configere Timer 0 in mode 2 (8 bit auto-reload counter)
SETB TR0 ; run Counter
mov tl0,#0F8h
mov th0,#0F8h
jmp forever_p3
forever:
JMP forever
forever_p3:
mov p2,tl0
jmp forever_p3
END