![]() |
|
Tài trợ cho PIC Vietnam |
MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ... |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
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à! thay đổi nội dung bởi: DSP, 14-05-2010 lúc 11:48 PM. |
![]() |
![]() |
![]() |
#2 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
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 |
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Dec 2009
Bài gửi: 24
: |
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 |
![]() |
![]() |
![]() |
#4 | |
Đệ tử 5 túi
Tham gia ngày: Jan 2010
Bài gửi: 114
: |
Trích:
![]() |
|
![]() |
![]() |
![]() |
#5 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
thanks!vấn đề hiển thị mình giải quyết đc rồi.mình dung asm
|
![]() |
![]() |
![]() |
#6 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
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 |
![]() |
![]() |
![]() |
#7 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
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 |
![]() |
![]() |
![]() |
#8 |
Đệ tử 1 túi
Tham gia ngày: Dec 2008
Bài gửi: 17
: |
anh Namqn có thể giúp e vấn đề này ko?
|
![]() |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|