View Single Post
Old 31-12-2005, 07:43 PM   #6
qmk
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 7
:
Phiên bản khác dùng timer để delay

Code:
;Region		CẤU HÌNH BỘ BIÊN DỊCH - COMPILER CONFIGURATION
	TITLE 		"Hướng dẫn học Pic"
	PROCESSOR	PIC16F88
	CONFIG   	_CP_OFF	& _PWRTE_ON & _WDT_OFF &_HS_OSC

	include 	<P16F88.inc>
	include 	<myp16def.inc>						;; Bo sung mot so khai bao
;/Region
;;================================================|=================================================
;Region		KHAI BÁO BIẾN, HẰNG... - VARIABLE, CONSTANT,ETC DEFINITION

		ORG	0x20
			bTemp1			RES		1
			bTemp2			RES		1
;;================================================|=================================================
		ORG	0x0000
		GOTO MAIN

		ORG	0x0005
;;================================================|=================================================
;Region		CHƯƠNG TRÌNH CHÍNH - MAIN PROGRAM
MAIN		
		banksel TRISB								;; Bank select (Một iMacro của trình biên dịch?)
		clrf TRISB									;; TRISB = 0 Out, =1 In (Tri State)
Loop_Main:
		banksel PORTB
		bsf	PORTB,RB0								;; RB0 = 1
		call Delay100ms
		banksel PORTB
		bcf	PORTB,RB0								;; RB0 = 1
		call Delay100ms
		goto		Loop_Main						;; Trở về chương trình chính
;/Region
;;================================================|=================================================
;Function	Delay100ms - Hàm tạm ngưng 100ms
	;Sumary
		;; S
		;; Input:
		;; Output:
		;; Effect: Timer 1
	;/Sumary
		TIMER1_RELOAD		EQU  	-(50000+8)
	Delay100ms
		banksel PIE1
		clrf PIE1
		clrf INTCON 							;; Không sử dụng ngắt
		clrf PIR1
		banksel T1CON
		clrf T1CON
		movlw 0x10 								;; Đặt chế độ prescaler 1:2
		movwf T1CON
		movlw HIGH TIMER1_RELOAD				;; Nạp giá trị byte cao
		movwf TMR1H
		movlw LOW TIMER1_RELOAD					;; Nạp giá trị byte thấp
		movwf TMR1L
		bsf T1CON,TMR1ON 						;; Khởi động Timer
		banksel PIR1
	WAIT_DHM
		btfss PIR1, TMR1IF
		goto WAIT_DHM
		bcf PIR1, TMR1IF
	return
;/Function
;;------------------------------------------------|-------------------------------------------------
	END

thay đổi nội dung bởi: qmk, 01-01-2006 lúc 12:26 PM.
qmk vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn