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 />
;assigning PORTB is a digital output<br />
MOVLW 0x0e<br />
MOVWF ADCON1<br />
; setup portb for outputs<br />
CLRF TRISB<br />
CLRF PORTB<br />
RETURN<br />
Bước 4: Khởi tạo các vector ngắt.<br />
Địa chỉ 0x00 bắt đầu chương trình chính.<br />
Địa chỉ 0x08 địa chỉ của vector ngắt có độ ưu tiên cao<br />
Địa chỉ 0x18 địa chỉ của vector ngắt có độ ưu tiên thấp.<br />
Chú ý: VĐK Pic chỉ có 2 độ ưu tiên khi ngắt xảy ra như nói ở trên.<br />
org 0x0<br />
goto MAIN<br />
ORG 0x000008 ; high priority interrupt vector<br />
GOTO ISR_HIGH<br />
ORG 0x000018 ; low priority interrupt vector<br />
GOTO ISR_LOW<br />
MAIN<br />
GOTO MAIN<br />
;interrupt sevice routine for high priority interrupt<br />
ISR_HIGH<br />
RETFIE<br />
;interrupt sevice routine for low priority interrupt<br />
ISR_LOW<br />
RETFIE<br />
Bước 5: Khởi tạo ngắt timer 0 cứ sau 100ms thì <strong>và</strong>o ngắt một lần.<br />
Thời gian để timer đếm lên 1 đơn vị đựơc <strong>tính</strong> bằng công thức<br />
T = 1/((Focs/4)/2) = 1/((4Mhz/4)/2) = 0.5us<br />
Nên khi ta để giá trị trong các thanh ghi của timer giá trị 50000 thì cứ sau<br />
100ms, timer sẽ ngắt một lần. Để <strong>tính</strong> được giá trị số Hex gán cho thanh ghi đếm<br />
của timer ta làm như sau :<br />
Đầu tiên đổi số 50000 sang số hex: C350.<br />
Sau đó lấy FFFF – C350 = 3CAF.<br />
Có được số này rồi ta lấy byte cao lưu <strong>và</strong>o TMR0H, byte thấp lưu <strong>và</strong>o<br />
TMR0L.<br />
Bộ môn <strong>Kỹ</strong> Thuật <strong>Máy</strong> Tính 43 Thực hành Vi xử lý