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 03-11-2006, 07:39 PM   #1
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
Lỗi về Interupt, các anh giúp em với

Em viết một cái code rất đơn giản để làm quen với Interupt nhưng sao không biết cái Proteus lại chẳng thực hiện được! T_T, ấn nút mỏi tay mà đèn hông sáng! Các anh xem hộ em với
Em không post phàn khai báo, chỉ có phần chạy thui ^^
Còn đây là ảnh của phần giả lập Proteus
http://s23.quicksharing.com/v/500147/TESTLED.GIF.html (namqn: Link không hoạt động)
Code:
	ORG			00
		Goto		Main
		ORG			04
		Goto		LED		
Main	
		bsf		INTCON,GIE
		bsf		INTCON,INTE
		banksel	TRISB
		bsf		TRISB,0
		bcf		TRISB,1
		bcf		TRISB,2
		banksel	PORTB
		bcf		PORTB,0
		Goto	$
;==========================================================
LED	
		bcf		PORTB,2
		bsf		PORTB,2
		movwf 	_work 		; Save W in Bank0 or Bank1
		btfsc 	STATUS,RP0 	; Check which bank PIC is in
		goto 	IN_BANK0 	; IF == 0 THEN already in Bank0
		; Continue here if PIC is in Bank1 on entry
		bcf 	STATUS,RP0 	; Change into Bank0
		swapf 	STATUS,w	; Save STATUS in Bank0
		movwf 	_status 	; in the usual way
		bsf 	_status,RP0	; Set back saved RP0 in memory
		goto	 INVERT		; and begin the core code
IN_BANK0 
		swapf 	STATUS,w	; If already in Bank0
		movwf 	_status		; save STATUS in the usual way
;============================================================
INVERT
		bcf		INTCON,INTF
		movf	PORTB,w
		xorlw	b'00000010'
		movwf	PORTB
;=============================================================
; Restore context. Processor in Bank0
		swapf 	_status,w 	; Untwist & get old Status from memory
		movwf	 STATUS 	; which also restores original bank
		swapf 	_work,f 	; Now get original W register from
		swapf	 _work,w 	; interrupted bank
		retfie 				; and return to interrupted background
		end

thay đổi nội dung bởi: namqn, 03-11-2006 lúc 09:04 PM.
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-11-2006, 09:06 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
Kiểm tra lại cách mô phỏng trong Proteus, post lại sơ đồ mạch mô phỏng, tham khảo thêm ví dụ Doorbell của Proteus.

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 04-11-2006, 04:03 PM   #3
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
Cảm ơn anh Nam, em đã đính kèm file ảnh!anh giúp hộ em với!
Hình Kèm Theo
File Type: gif TESTLED.GIF (12.8 KB, 19 lần tải)
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-11-2006, 09:22 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
Khi nhấn nút và thả ra, sẽ có cả 2 cạnh lên và xuống, do đó không cần cổng NOT ở đây. Một bạn nào đó (có lẽ là MoH) đã nhắc là khi nối LED với các ngõ ra của PIC thì phải thêm vào một điện trở khoảng vài trăm ôm giữa chân PIC và LED thì LED mới sáng. Cũng nên chú ý cực tính của LED.

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 04-11-2006, 10:15 PM   #5
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
Anh Nam ơi! Em đã mắc thêm R200 vào LED nhưng mà nó vẫn không sáng anh ạ. Còn cái NOT thì quả là không cần nhưng khi có NOT thì em thấy trên Simulation mới xuất hiện mấy cái nút xanh đỏ khi RUN, còn nếu không có NOT thì chả có gì cả! Em kèm theo 2 cái hình mạch đã sửa! Anh xem hộ em lại phàn CODE với, do em mới làm quen với Interupt à, nên không biết có sơ sót gì không!
Cảm ơn anh
Hình Kèm Theo
File Type: gif Testled1.GIF (13.3 KB, 5 lần tải)
File Type: gif testled2.GIF (13.4 KB, 7 lần tải)
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2006, 01:14 PM   #6
MHz
Đệ tử 2 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 34
:
... khi dùng Proteus để mô phỏng mà bác dùng con LED theo sơ đồ đính kèm nó không phát sáng được đâu... bác dùng LED-YELLOW á...
MHz vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2006, 06:44 PM   #7
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
Không nhất thiết phải dùng màu vàng, nhưng phải dùng LED thuộc loại Animated LED model (thuộc thư viện Active chứ không phải thư viện Device) thì mới hiển thị được.

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 05-11-2006, 07:12 PM   #8
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
Cảm ơn anh Nam và Mhz, em đã thay đèn LED bằng Led-green (ACTIVE) nhưng nó vẫn không sáng! Mong các anh xem lại hộ em cái code với! chắc là nó có vấn đề gì đó! Nhân tiện xin các anh cho em hỏi làm sao debug trong Proteus ạ, em không biết Debug Interupt trong MPLAB mà qua Proteus cũng không bít sai chỗ nào để mà sửa lun!
Thân
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2006, 08:24 PM   #9
MHz
Đệ tử 2 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 34
:
Thật ra chương trình của bác viết không có gì sai, chỉ thừa một vài lệnh,
dựa vào chương trình của bác tui có Edit lại chút đỉnh, và đã dùng proteus mô phỏng OK... bác thử lại xem...
Code:
;========================================
	TITLE 		"TESTLED"
	PROCESSOR	PIC16f877a 
	INCLUDE		<P16f877a.inc> 
	__CONFIG _CP_OFF & _WDT_OFF  & _PWRTE_ON & _HS_OSC 

;=============================================================================
; KHAI BAO BIEN
;**************
_work equ 0x20 
_status equ 0x21 

;================================================= =====================================

		ORG			0x00
		Goto		Main
		ORG			0x04
		Goto		LED		
Main	
		bsf		INTCON,GIE
		bsf		INTCON,INTE
		banksel	TRISB
		bsf		TRISB,0
		bcf		TRISB,1
		
		banksel	PORTB
		bcf		PORTB,0
		Goto	$
;==========================================================
LED	
		
	
		movwf 	_work 		; Save W in Bank0 or Bank1
		btfsc 	STATUS,RP0 	; Check which bank PIC is in
		goto 	IN_BANK0 	; IF == 0 THEN already in Bank0
		; Continue here if PIC is in Bank1 on entry
		bcf 	STATUS,RP0 	; Change into Bank0
		swapf 	STATUS,w	; Save STATUS in Bank0
		movwf 	_status 	; in the usual way
		bsf 	_status,RP0	; Set back saved RP0 in memory
		goto	 INVERT		; and begin the core code
IN_BANK0 
		swapf 	STATUS,w	; If already in Bank0
		movwf 	_status		; save STATUS in the usual way
;============================================================
INVERT
		bcf		INTCON,INTF
		movf	PORTB,w
		xorlw	b'00000010'
		movwf	PORTB
;=============================================================
; Restore context. Processor in Bank0
		swapf 	_status,w 	; Untwist & get old Status from memory
		movwf	 STATUS 	; which also restores original bank
		swapf 	_work,f 	; Now get original W register from
		swapf	 _work,w 	; interrupted bank
		retfie 				; and return to interrupted background
		end
Hình Kèm Theo
File Type: gif Testled.gif (5.1 KB, 11 lần tải)
MHz vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-11-2006, 11:43 PM   #10
chipchipvn
Đệ tử 2 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 43
:
hà! Cảm ơn bác Mhz, cuối cùng đã giải quyết xong chuỵen này!
chipchipvn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-01-2007, 02:25 PM   #11
giaosucan
Đệ tử 1 túi
 
Tham gia ngày: Jan 2006
Bài gửi: 17
:
tốt nhất bạn nên làm trên mạch thật thì trực quan hơn ,mô phỏng đôi khi ko đúgn
__________________
TRUNG TÂM ĐÀO TẠO ĐIỆN TỬ VÀ TỰ ĐỘNG HOÁ MTC
MTC khai giảng khóa mới
http://blog.360.yahoo.com/blog-kHh38....lgCr0J4220m40
giaosucan 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à 09:40 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