21.07.2013 Views

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

SHOW MORE
SHOW LESS

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ý

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!