PDA

View Full Version : Delay = Timer1 16f877a?


lungtung
20-05-2009, 05:45 PM
Tôi đang tự học Pic tại nhà (trước nay chỉ dùng 8051).
Đến đoạn TImer thì bị đứng lại.
Bác nào viết giúp dùm tôi một chương trình con delay = timer1 khoảng 0,5 giây (viết = asm)
Và tiện thể giải thích dùm chức năng các lệnh trong chương trình luôn nhé.
Cám ơn rất nhiều!

falleaf
20-05-2009, 06:31 PM
http://www.picvietnam.com/forum/showthread.php?t=5

Xem bài này.

chúc vui.

lungtung
20-05-2009, 06:50 PM
Đọc rồi mà không thấy đoạn nào nói đến timer1 hết.
Chỉ thấy delay bằng lệnh không hà rồi sau đó thì tới ngắt.
Mình không muốn dùng ngắt.
VD: ở 8051 khi cho phép timer 1 chạy thì setb tr1
Khi timer1 tràn thì chỉ cần xét tf1 là ok.
Còn Pic thì sao?

phandinh
20-05-2009, 10:22 PM
Đọc rồi mà không thấy đoạn nào nói đến timer1 hết.
Chỉ thấy delay bằng lệnh không hà rồi sau đó thì tới ngắt.
Mình không muốn dùng ngắt.
VD: ở 8051 khi cho phép timer 1 chạy thì setb tr1
Khi timer1 tràn thì chỉ cần xét tf1 là ok.
Còn Pic thì sao?
Timer1 :
. TMR1ON = 1 ( bit thu 0 trong t.ghi T1CON ) // cho phep timer 1 chay
. TMR1IF = 1 ( bit thu 0 trong t.ghi PIR1 ) // co bao tran timer1

lungtung
20-05-2009, 10:59 PM
Tôi đã làm được rồi, nhưng còn chưa biết trong mplap có hỗ trợ việc biên dịch sau không:
mov th1,#high(-50000)
ở 8051 thì như vậy. Còn ở Pic phải tự đổi số chu kỳ sang bù 2 rồi nạp vào các thanh ghi hay sao? Có cách nào nhanh hơn không?

lungtung
20-05-2009, 11:00 PM
Còn ở kỹ thuật tra bảng, nếu các phần tử trong bảng lớn hơn 255 thì dùng cách nào?

phandinh
21-05-2009, 12:16 AM
Còn ở kỹ thuật tra bảng, nếu các phần tử trong bảng lớn hơn 255 thì dùng cách nào?
ở PIC không có chức năng như 8051 (mov th1,#high(-50000) ).
Tôi không hiểu ý bạn : Vị trí phần tử > 255 hay giá trị phần tử > 255.

lungtung
21-05-2009, 10:14 AM
Là vị trí phần tử đó bạn. Ví dụ tôi muốn làm mạch quang báo dịch dòng chữ dài thì tất nhiên có nhiều phần tử trong bảng rồi.
Cám ơn nhiêu!

lungtung
21-05-2009, 10:19 AM
À! Các bác cho hỏi có con Pic nào có Ram nội lên đến vài Kbyte không?

namqn
21-05-2009, 09:59 PM
À! Các bác cho hỏi có con Pic nào có Ram nội lên đến vài Kbyte không?
Chỉ xét riêng PIC 8-bit, các PIC18F với dung lượng flash khoảng 24 kword sẽ có RAM khoảng hơn 3 kB.

Thân,

lungtung
22-05-2009, 09:14 AM
Còn vấn đề tra bảng thì sao?

phandinh
22-05-2009, 02:06 PM
Một bảng chi cho phép tối đa 255 phần tử.
Do đó bạn phải dùng 2 bảng hoặc hơn.