Sử dụng Timer T2

Một phần của tài liệu bai giang VXL potx (Trang 150 - 152)

Vớ dụ này mụ tả việc sử dụng cỏc Timer T2 cấu hỡnh để hoạt động ở chế độ tự động cập nhật. Trong trường hợp này, đốn LED được kết nối với cổng P3 trong khi cỏc nỳt nhấn được sử dụng để bắt buộc thiết lập lại bộ đếm thời gian (T2EX) được kết nối với chõn P1.1.

Chương trỡnh thực hiện tương tự như cỏc vớ dụ trước. Khi kết thỳc giờ đếm, một ngắt được kớch hoạt và chương trỡnh con TIM2_ISR được thi hành, do đú quay một logic khụng (0) trong accumulator và di chuyển nội dung của accumulator với chõn P3. Cuối cựng, cờ đú gõy ra một ngắt, được xúa và trả về chương trỡnh cho vũng lặp LOOP1 nơi nú vẫn cũn cho đến khi một yờu cầu ngắt mới xảy rạ..

Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 151 Nếu bấm T2EX, bộ đếm thời gian tạm thời đặt lạị Nỳt bấm này reset lại timer, trong khi nỳt nhấn RESET resets cỏc vi điều khiển.

;************************************************************************ ;* PROGRAM NAME : Timer2.ASM

;* DESCRIPTION: Program rotates log. "0" on port P3. Timer2 determines ;* the speed of rotation and operates in auto-reload mode

;************************************************************************ ;BASIC DIRECTIVES $MOD53 $TITLE(TIMER2.ASM) $PAGEWIDTH(132) $DEBUG $OBJECT $NOPAGING ;DEFINITION OF VARIABLES T2MOD DATA 0C9H ;STACK DSEG AT 03FH STACK_START: DS 040H ;RESET VECTORS CSEG AT 0

JMP XRESET ; Reset vector

ORG 02BH ; Timer T2 Reset vector JMP TIM2_ISR

ORG 100H

XRESET: MOV SP,#STACK_START ; Define Stack pointer MOV A,#0FFH

MOV P3,#0FFH

MOV RCAP2L,#0FH ; Prepare 16-bit auto-reload mode MOV RCAP2L,#01H

Bộ mụn Kỹ thuật mỏy tớnh – Khoa Điện tử - Trường ĐH Kỹ thuật Cụng nghiệp 152

SETB EXEN2 ; Pin P1.1 reset is enabled SETB TR2 ; Enable Timer T2

MOV IE,#0A0H ; Interrupt is enabled CLR C

LOOP1: SJMP LOOP1 ; Remain here

TIM2_ISR: RRC A ; Rotate contents of Accumulator ;to the right through

; Carry flag

MOV P3,A ; Move the contents of ;Accumulator A to PORT3 CLR TF2 ; Clear timer T2 flag TF2 CLR EXF2 ; Clear timer T2 flag EXF2 RETI ; Return from interrupt END ; End of program

Một phần của tài liệu bai giang VXL potx (Trang 150 - 152)

Tải bản đầy đủ (PDF)

(169 trang)