THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
THỰC HÀNH VI XỬ LÝ - Khoa Khoa học và Kỹ thuật Máy tính
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Trường ĐH. Bách <strong>Khoa</strong> TP.HCM <strong>Khoa</strong> KH & KTMT<br />
BSF INTCON,TMR0IF;set timer0 interrupt flag bit<br />
BSF INTCON,TMR0IE ; enable timer 0<br />
;set the global interrupt enable bits<br />
BSF INTCON,GIEH<br />
BSF INTCON,GIEL<br />
CLRF T0CON<br />
MOVLW 0x3c<br />
MOVWF TMR0H<br />
MOVLW 0xAF<br />
MOVWF TMR0L<br />
BSF T0CON,TMR0ON<br />
RETURN<br />
Bước 5: Khởi tạo ngắt ngoài 0 tích cực cạnh xuống.<br />
Đối với ngắt ngoài 1 <strong>và</strong> ngắt ngoài 2 thì độ ưu tiên ngắt phụ thuộc <strong>và</strong>o 2 bit<br />
INT1IP <strong>và</strong> INT2IP trong thanh ghi INTCON3. Còn với ngắt ngoài 0 thì không có<br />
bít xác định độ ưu tiên, nó chỉ có một mức ưu tiên là high priority.<br />
INIT_EXTERNAL_INTERRUPT<br />
;falling edge on RB0<br />
BCF INTCON2,INTEDG0<br />
; clear external interrupt flag bit<br />
BCF INTCON,INT0IF<br />
; enable external 0 interrupt<br />
BSF INTCON,INT0IE<br />
;set the global interrupt enable bits<br />
BSF INTCON,GIEH<br />
BSF INTCON,GIEL<br />
RETURN<br />
Bước 6: Viết chương trình cho ngắt ngoài 0, bật 3 đèn led đơn cùng<br />
sáng <strong>và</strong> khởi tạo lại giá trị cho biến delay để 1s sau thì ngắt timer sẽ tắt 3 đèn đó.<br />
EXTERNAL_INTERUPT_ROUTINE<br />
BCF INTCON,INT0IF<br />
BSF PORTB,1<br />
BSF PORTB,2<br />
BSF PORTB,3<br />
MOVLW .10<br />
MOVWF delay<br />
RETURN<br />
Bước 7: Viết chương trình cho ngắt timer0, sau 1s sau khi led được bật<br />
sáng thì nó sẽ làm cho led tắt.<br />
Thời gian để timer đếm lên 1 đơn vị đựơc <strong>tính</strong> bằng công thức :<br />
Bộ môn <strong>Kỹ</strong> Thuật <strong>Máy</strong> Tính 27 Thực hành Vi xử lý