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 03-04-2006, 12:15 PM   #11
zero_OR_one
Nhập môn đệ tử
 
Tham gia ngày: Oct 2005
Bài gửi: 5
:
Lightbulb

các bác cho em hỏi tý:

Code:
 ; Bài toán yêu cầu :nhấn 2 lần nút button(nối tại RA0) led nối với RB0
 ; sẽ sáng(mạch dùng luôn của bác Chính vậy chỉ khác có cái button 
 ; nối với VCC qua RA0 xuống đất)
 ; chương trình sẵn:
 ; Project: Two pushes to turn on a LED

	Processor  16F84a
	include <p16F84a.inc>
	__CONFIG    _CP_OFF & _PWRTE_ON & _WDT_OFF & _RC_OSC


	ORG 0		;This is the start of memory for the program.
SetUp	
             BSF 03,5	             ;Go to Bank 1
	CLRF 06		;Make all port B output
	MOVLW 01	;Load W with 0000 0001
	MOVWF 05	;Make RA0 input
	BCF 03,5	;Go to Bank 0 - the program memory area.
	CLRF 1F		;Clear the button file
	CLRF 06		;Blank the output
	GOTO Main
		
Delay	
             NOP		;Create approx 250mS delay
	DECFSZ 1A,1
	GOTO Delay
	DECFSZ 1B,1
	GOTO Delay
	RETURN	

Delay2	
             NOP		;Create 1mS debounce delay	
	DECFSZ 1A,1
	GOTO Delay2
	RETURN

Sw	
             BTFSS 05,0	;Test the push button
	GOTO Sw3	;Button not pressed	
	BTFSC 1F,2	;Test end-of-flash flag
	RETURN
	BTFSC 1F,0	;First pass?
	RETLW 00	;No
	BTFSS 1F,1	;Test first-press flag
	GOTO Sw2	;First press
	BSF 06,0	             ;Button has been pressed twice. Illuminate LED
	CALL Delay	;Keep LED on
	CALL Delay	;Keep LED on
	BCF 1F,1	             ;Clear second-push flag bit
	BSF 1F,2	             ;Set end-of-flash flag
	BCF 06,0	             ;Turn LED off
	RETURN
Sw2	
             BSF 1F,1	             ;Set the first-press flag
	BSF 1F,0	             ;Set button pass flag bit
	RETURN	
Sw3	
             BCF 1F,0	              ;Clear button pass flag bit
	BCF 1F,2	              ;Clear end-of-flash flag
	RETURN

Main	
             CALL Sw
	CALL Delay2	;Debounce switch	
	GOTO Main

	END		;Tells assembler end of program
Một số chỗ em chưa hiểu:
1.Các file 1A,1B mặc định bao nhiêu mà tạo được các thời gian trễ như trên
2.File 1F với các bit hoạt động ra sao
3.Chương trình này hoạt động thế nào :em chư hiểu giải thuật ,tại sao nhấn nút button lần 1 led chưa sáng,lần 2 led mới sáng
Chỗ này:
Code:
Sw	
             BTFSS 05,0	;Test the push button
	GOTO Sw3	;Button not pressed	
	BTFSC 1F,2	;Test end-of-flash flag
	RETURN
	BTFSC 1F,0	;First pass?
	RETLW 00	;No
	BTFSS 1F,1	;Test first-press flag
	GOTO Sw2	;First press
	BSF 06,0	;Button has been pressed twice. Illuminate LED
	CALL Delay	;Keep LED on
	CALL Delay	;Keep LED on
	BCF 1F,1	;Clear second-push flag bit
	BSF 1F,2	;Set end-of-flash flag
	BCF 06,0	;Turn LED off
	RETURN
Nhấn lần 1:->BTFSC 1F,2->BTFSC 1F,0->BTFSS 1F,1->GOTO Sw2
Sw2 BSF 1F,1 ;Set the first-press flag
BSF 1F,0 ;Set button pass flag bit
RETURN
Vậy thì sau khi nó trở về từ Sw2 sẽ BSF 06,0 ;Button has been pressed twice. Illuminate LED.
Em hiếu sai ở đâu ,mong anh Chính và mọi người trả lời hộ(Giait thích kĩ hộ em sử dụng các file 1A,1B,nhất là 1F)
Em cảm ơn nhiều

thay đổi nội dung bởi: ntc, 03-04-2006 lúc 12:55 PM. Lý do: SỬA LẠI CÁCH VIẾT CODE
zero_OR_one vẫn chưa có mặt trong diễn đà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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
TUT về USART trong PIC16F877A mafd_47a MPASM 16 19-02-2025 05:32 AM
TUT ve I2C ( pic16f877a ) mafd_47a MPASM 28 28-01-2025 10:45 PM
Lập nhóm PIC16F877A nhh Cơ bản về vi điều khiển và PIC 285 08-03-2017 11:08 PM
Bộ so sánh và PWM cho PIC16F877A anhquangngai Cơ bản về vi điều khiển và PIC 24 08-09-2012 09:00 AM
CCS C for PIC16F877A nhh Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) 405 24-04-2008 12:00 PM


Múi giờ GMT. Hiện tại là 11:06 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