View Single Post
Old 09-11-2006, 05:18 PM   #12
dunghpc
Đệ tử 2 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 39
:
ví dụ trong chương trình sử dụng ngắt Timer0, Dùng thạch anh trong Chip = 4Mhz.
;---------------------------------------------------------------------
list p=pic16f627A, r=dec
#include <p16f627A.inc>
#include <Comm.h>
__CONFIG _BODEN_OFF & _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_CLKOUT & _LVP_OFF & _MCLRE_OFF

atris = 0x00
btris = 0x00

;Files define

org 0x0 ; Khi reset chip
goto Init
org 0x4 ; Địa chỉ ngắt Timer0
nop
clrwdt ; cấm WD
btfsc pir1,tmr1if
call T1Int ; Có cờ tràn Timer1
bcf intcon,tmr0if ; Xóa cờ ngắt Timer0
T0End retfie ; Kết thúc chương trình ngắt Timer0
;---------------------
T1Int bcf pir1,tmr1if
movlw 0xff
xorwf portb,f ; 8 Led nhấp nháy với tần số ~ 1Hz
return
;---------------------
;---------------------
Init call PortInit
call TimerInit
Loop
goto Loop
;----------------------
;----------------------
PortInit call rBank0
movlw 0x7
movwf cmcon ; All Pin are digital
movlw 0xf
movwf pcon
call rBank1
movlw 0x80
movwf option_reg ;Timer0 Interrupt ~ 0.5 ms
movlw atris
movwf trisa
movlw btris
movwf trisb
goto rBank0
;------------------------
TimerInit movlw 0xa0
movwf intcon ; Ngắt Timer0
movlw 0x31
movwf t1con ; Tràn Timer1 = 0,5s
return
;-------------------------
;----------------------------
rBank0 bcf status,rp0
bcf status,rp1
return
;---------------------
rBank1 bsf status,rp0
bcf status,rp1
return
;---------------------
end
;----------------------
dunghpc vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn