PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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 ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 06-05-2010, 10:47 AM   #1
DSP
Đệ 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.
DSP vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-05-2010, 01:06 PM   #2
DSP
Đệ 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
DSP vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-05-2010, 04:07 AM   #3
chungcb86
Đệ tử 1 túi
 
chungcb86's Avatar
 
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
chungcb86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-05-2010, 06:43 AM   #4
kiemkhach10
Đệ tử 5 túi
 
Tham gia ngày: Jan 2010
Bài gửi: 114
:
Trích:
Nguyên văn bởi DSP View Post
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ứ
kiemkhach10 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2010, 12:57 AM   #5
DSP
Đệ tử 1 túi
 
Tham gia ngày: Dec 2008
Bài gửi: 17
:
Trích:
Nguyên văn bởi chungcb86 View Post
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 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2010, 01:04 AM   #6
DSP
Đệ 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
DSP vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2010, 01:09 AM   #7
DSP
Đệ 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
DSP vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-05-2010, 03:05 PM   #8
DSP
Đệ 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?
DSP vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bà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à 10:32 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