PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
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
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 12:37 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam