![]() |
a namqn giúp e vấn đề này với!
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à! |
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 |
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 |
Trích:
|
Trích:
|
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 |
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 |
anh Namqn có thể giúp e vấn đề này ko?
|
Múi giờ GMT. Hiện tại là 07:44 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam