Delay = Timer1 16f877a?
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! |
|
Đọ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? |
Trích:
. 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 |
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? |
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?
|
Trích:
Tôi không hiểu ý bạn : Vị trí phần tử > 255 hay giá trị phần tử > 255. |
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! |
À! Các bác cho hỏi có con Pic nào có Ram nội lên đến vài Kbyte không?
|
Trích:
Thân, |
Còn vấn đề tra bảng thì sao?
|
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. |
Múi giờ GMT. Hiện tại là 07:27 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam