PDA

View Full Version : chao cac ban!


DSP
06-05-2010, 10:47 AM
mình đang vướng mắc khi giải quyết bài toán: đo khoảng thời gian giữa 2 lần ấn nút và hiển thị LCD. cụ thể là thế này:
-mình dùng pic6f877a,sử dụng timer1.
-khi ấn nút lần 1 (nối với 1 chân pic) timer bắt đầu đếm,có hỏi ngắt liên tục.bấm nút lần 2 thì dừng timer.
-xử lý các số liệu và gửi lên LCD.
nhưng khi hiển thi ra những ký tự rất lạ.chẳng theo ý mình.
ai đã làm vấn đề này giúp mình với
thanks cả nhà!

DSP
06-05-2010, 01:06 PM
ko ai giúp mình đc vấn đề này sao?
mình chưa rõ là: khi stop timer1 thì các giá trị tức thời trong các thanh ghi đếm có còn lưu ở đó ko hay nó bị reset về 0

chungcb86
07-05-2010, 04:07 AM
tất nhiên là khi dừng timer thì giá trị đếm vẫn còn lưu dữ. và bạn chú ý là LCD hiển thị mã ascii. trước tiên bạn phải tách số đếm đc thành từng con số sau đó chuyển đổi sang ascii thì mới hiển thị đc.
À mà bạn viết code bằng gì nhi ? C hay ASM

kiemkhach10
07-05-2010, 06:43 AM
mình đang vướng mắc khi giải quyết bài toán: đo khoảng thời gian giữa 2 lần ấn nút và hiển thị LCD. cụ thể là thế này:
-mình dùng pic6f877a,sử dụng timer1.
-khi ấn nút lần 1 (nối với 1 chân pic) timer bắt đầu đếm,có hỏi ngắt liên tục.bấm nút lần 2 thì dừng timer.
-xử lý các số liệu và gửi lên LCD.
nhưng khi hiển thi ra những ký tự rất lạ.chẳng theo ý mình.
ai đã làm vấn đề này giúp mình với
thanks cả nhà!
bạn port code lên cho anh em học hỏi và giúp đỡ 1 cách cụ thể chứ:D

DSP
14-05-2010, 12:57 AM
tất nhiên là khi dừng timer thì giá trị đếm vẫn còn lưu dữ. và bạn chú ý là LCD hiển thị mã ascii. trước tiên bạn phải tách số đếm đc thành từng con số sau đó chuyển đổi sang ascii thì mới hiển thị đc.
À mà bạn viết code bằng gì nhi ? C hay ASM

thanks!vấn đề hiển thị mình giải quyết đc rồi.mình dung asm

DSP
14-05-2010, 01:04 AM
bây giờ mình chuyển sang hướng giải quyết khác là sử dụng capture mode để đo khoảng thời gian.có trục trặc thế này mong mọi người chỉ dùm.
Mình khởi tạo chế độ capture,sườn lên phát hiện ngắt.
trong ngắt chỉ sử lý đơn giản là xuất dữ liệu sáng portB.
mình đã kiểm tra kỹ không thấy lỗi,nhưng portB ko sáng.chứng tỏ ngắt capture chưa xảy ra.ko biết lỗi ở đâu.các bạn gỡ rối dùm mình với. dưới đây là code

DSP
14-05-2010, 01:09 AM
MÌNH DÙNG 555 PHÁT XUNG ĐƯA VÀO RC2,DƯỚI ĐÂY LÀ ĐOẠN CODE


__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _BODEN_OFF & _WRT_OFF & _CPD_OFF

PROCESSOR P16F877A
#INCLUDE <P16F877A.INC>

PB EQU PORTB
PC EQU PORTC
TB EQU TRISB
TC EQU TRISC
PD EQU PORTD
TD EQU TRISD

B0 EQU 0X00
B1 EQU 0X80



ORG 0X00
GOTO MAIN
ORG 0X04
GOTO NGAT

NGAT
BCF STATUS,RP0
BTFSC PIR1,CCP1IF
GOTO CAPTURE
BTFSC PIR1,TMR1IF
GOTO TMR

ERROR1
BSF PD,1
BCF PD,1
GOTO ERROR1

TMR
BCF PIR1,TMR1IF
RETFIE
;-------------------------------
;NGAT DO CAPTURE
;-------------------------------
CAPTURE
MOVLW B'11111111'
MOVWF PB
RETFIE
;------------------------------
;MAIN
;------------------------------
MAIN
BANKSEL B0
CLRF PB
CLRF PC
CLRF PD
CLRF INTCON
CLRF PIR1

BANKSEL B1
CLRF TB
CLRF TD
BSF TC,2
MOVLW 0X06
CLRF ADCON1
CLRF PIE1
BSF PIE1,CCP1IE
BSF PIE1,TMR1IE

BANKSEL B0
CLRF TMR1L
CLRF TMR1H
MOVLW 0X30
MOVWF T1CON
BSF INTCON,PEIE
BSF INTCON,GIE
MOVLW b'00000101'
MOVWF CCP1CON
BSF T1CON,TMR1ON

loop
GOTO loop

END

DSP
14-05-2010, 03:05 PM
anh Namqn có thể giúp e vấn đề này ko?