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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 02-04-2009, 12:31 PM   #1
newpic2009
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 4
:
lỗi chương trình

hi,
mình viết 1 đoạn để xuất ra GP1, GP2, GP5 theo xung nhu sau :
GP5 __i-----------------------------------------
GP1 __i--i____i--i____i--i____
GP2 _____i--i____i--i____i--i____

và lập lại như trên, code mình viết như sau,

Code:
;****************************************************
	list      p=12F508            ; list directive to define processor
	#include <p12F508.inc>        ; processor specific variable definitions

	__CONFIG   _MCLRE_ON & _CP_ON & _WDT_OFF & _IntRC_OSC

;***** VARIABLE DEFINITIONS
		UDATA
count1 	res 1                         ; delay loop counters
count2 	res 1
dc3 	res 1

;**********************************************************************
RESET CODE 0x1FF  					; processor reset vector
res 1  								; holds movlw with factory RC cal value
; Internal RC calibration value is placed at location 0x1FF by Microchip
; as a movlw k, where the k is a literal value.
MAIN	code	0x000
		movwf	OSCCAL

		movlw   b'011000'          ; configure GP0,GP1,GP2,GP5 as output
               tris 	GPIO          
 
start	

		movlw	b'000111'
		movwf	GPIO		

		bsf		GPIO,5			;GP5 = 1
;form1 wareform
begin
		bcf		GPIO,2
		nop
		nop
		nop
		bsf		GPIO,2
		nop
		bcf		GPIO,1
		nop
		nop
		nop
		bsf		GPIO,1
		nop		
		bcf		GPIO,2	
		nop
		nop
		nop
		bsf		GPIO,2	
		nop
		bcf		GPIO,1
		nop
		nop
		nop
		bsf		GPIO,1
		nop
		bcf		GPIO,2
		nop
		nop
		nop
		bsf		GPIO,2	
		nop
		bcf		GPIO,1
		nop
		nop
		nop
		bsf		GPIO,1
		nop
		bcf		GPIO,2
		nop
		nop
		nop
		bsf		GPIO,2	
		nop
		bcf		GPIO,1
		nop
		nop
		nop
		bsf		GPIO,1
		nop
		bcf		GPIO,2
		nop
		nop
		nop
		bsf		GPIO,2		
		nop
		bcf		GPIO,1
		nop
		nop
		nop
		nop

		goto	begin

	END               

;*****************************************
nhờ các bác xem giúp sao GP1 thì xuất ra đúng mà GP2 lại không xuất ra ?
và sao nó không lập lại liên tục, chỉ xuất lập lại một số lần là dừng lại ?

thanks,

thay đổi nội dung bởi: namqn, 02-04-2009 lúc 04:29 PM.
newpic2009 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 02-04-2009, 05:27 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Code của bạn là ví dụ kinh điển về hoạt động read-modify-write. Bạn nên dùng thanh ghi W như ảnh của GPIO, cập nhật W khi cần thiết và ghi W vào GPIO, tránh cập nhật trực tiếp GPIO như hiện giờ. Bạn có thể loại bỏ một số lệnh nop để thay vào đó là các lệnh cập nhật thanh ghi W.

Còn về việc chạy được vài lần rồi dừng lại thì tôi chưa nghĩ ra, vì hiện thời bạn không dùng WDT.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263

thay đổi nội dung bởi: namqn, 03-04-2009 lúc 05:12 PM. Lý do: thiếu một từ
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2009, 05:08 PM   #3
newpic2009
Nhập môn đệ tử
 
Tham gia ngày: Mar 2009
Bài gửi: 4
:
Question

không ai trả lời giúp tại sao xuất được vài lần rồi ngưng nhỉ ?

khi ngưng là toàn bộ các ngõ out đều về 0 hết, và nếu tắt mở nguồn càng nhanh thì số lần xuất ra càng ít, thậm chí nếu tắt nguồn, mở lại ngay là Pic không chạy luôn (chả thấy xuất gì ra cả)
để lâu lâu tí, mở nguồn nó mới có xung ra.

các bác xem giúp với
thanks,
newpic2009 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-04-2009, 05:13 PM   #4
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi newpic2009 View Post
không ai trả lời giúp tại sao xuất được vài lần rồi ngưng nhỉ ?

khi ngưng là toàn bộ các ngõ out đều về 0 hết, và nếu tắt mở nguồn càng nhanh thì số lần xuất ra càng ít, thậm chí nếu tắt nguồn, mở lại ngay là Pic không chạy luôn (chả thấy xuất gì ra cả)
để lâu lâu tí, mở nguồn nó mới có xung ra.

các bác xem giúp với
thanks,
Bạn nên cho biết sơ đồ mạch thử nghiệm, nên thể hiện tất cả các linh kiện đang được dùng.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-08-2010, 02:28 PM   #5
picwall
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 1
:
Question
không ai trả lời giúp tại sao xuất được vài lần rồi ngưng nhỉ ?

khi ngưng là toàn bộ các ngõ out đều về 0 hết, và nếu tắt mở nguồn càng nhanh thì số lần xuất ra càng ít, thậm chí nếu tắt nguồn, mở lại ngay là Pic không chạy luôn (chả thấy xuất gì ra cả)
để lâu lâu tí, mở nguồn nó mới có xung ra.

các bác xem giúp với
thanks,
tôi cũng đang gặp vấn đề gần giống với của bạn, tôi đang dùng con 16f877A, khi tắt bật nguồn thì lúc chạy lúc không, lúc thì chương trình chạy một ít thì treo cứng, cũng không biết tại sao.
picwall vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 10:44 AM.


Đượ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