View Single Post
Old 31-12-2005, 04:57 PM   #5
qmk
Nhập môn đệ tử
 
Tham gia ngày: Dec 2005
Bài gửi: 7
:
Chương trình thứ 2:

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>
;/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,0									;; RB0 = 1
		call Delay100ms
		bcf	PORTB,0									;; RB0 = 1
		call Delay100ms
		goto		Loop_Main						;; Trở về chương trình chính
;/Region
;;================================================|=================================================
	;Function	Delay10ms - Hàm tam ngưng Nx10ms
		;Sumary
			;; 
			;; Input:
			;; Output:
			;; Effect:
		;/Sumary
		Delay100ms
			movlw 250								;; Nap vao gia tri y
			movwf bTemp2
			movlw 199								;; Nap vao gia tri x
			movwf bTemp1							;; y lan
		Loop_DHM
			decfsz bTemp1,f							
			goto Loop_DHM							;; x-1 lan
			movwf bTemp1							;; y lan
			decfsz bTemp2,f
			goto Loop_DHM
		return										;; 8+3+y*(x-1)*2+y*4 = 7 + y(x+1)*2 = (100.008)
	;/Function
;;------------------------------------------------|-------------------------------------------------
END													;; Trình biên dịch tự động dừng khi gặp lệnh này
Bản cập nhật bổ sung thêm file myp16def.inc nội dung như sau:
RB0 EQU 0
RB1 EQU 1
RB2 EQU 2
RB3 EQU 3
RB4 EQU 4
RB5 EQU 5
RB6 EQU 6
RB7 EQU 7
Sửa một số chữ chú thích sai

Code:
;;================================================|================================================= 
;; Tên chương trình	: Hướng đẫn học Pic
;; Mã số kiểm tra	: 
;; Người thực hiện	: qmk
;; Ngày cập nhật	: 31/12/2005
;; Phiên bản		: Writing
;; Mô tả phần cứng	: 
;; - Pic16F88
;; - Tần số Xtal	: 4MHz
;; - Xem tài liệu thiết kế phần cứng đi kèm
;;------------------------------------------------|-------------------------------------------------
;; Mô tả chương trình:
;; - Các thông tin về cập nhật chương trình xem ở cuối chương trình
;;		
;;------------------------------------------------|-------------------------------------------------
;; Thỏa thuận bản quyền:
;; - Bản quyền phần mềm này thuộc về người viết chương trình...
;;================================================|================================================= 
;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>						;; Bổ sung thêm một vài định nghĩa
;/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
		bcf	PORTB,RB0								;; RB0 = 0
		call Delay100ms
		goto		Loop_Main						;; Trở về chương trình chính
;/Region
;;================================================|=================================================
	;Function	Delay10ms - Hàm tam ngưng Nx10ms
		;Sumary
			;; 
			;; Input:
			;; Output:
			;; Effect:
		;/Sumary
		Delay100ms
			movlw 250								;; Nap vao gia tri y
			movwf bTemp2
			movlw 199								;; Nap vao gia tri x
			movwf bTemp1							;; y lan
		Loop_DHM
			decfsz bTemp1,f							
			goto Loop_DHM							;; x-1 lan
			movwf bTemp1							;; y lan
			decfsz bTemp2,f
			goto Loop_DHM
		return										;; 8+3+y*(x-1)*2+y*4 = 7 + y(x+1)*2 = (100.008)
	;/Function
;;------------------------------------------------|-------------------------------------------------
END													;; Trình biên dịch tự động dừng khi gặp lệnh này

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