PDA

View Full Version : Hỏi về chân RA4 của pic 16f84a


thanco112
09-01-2008, 01:22 AM
Chào các bác ạ!

Em đang nghịch con pic 16f84a và biết rằng cái chân RA4 của nó có thể dùng để điểu chỉnh timer0. Nhưng cụ thể điểu chỉnh cái gì và điều chỉnh thế nào thì em không biết. Vậy bác nào biết thì chỉ dùm em với ạ!

Cám ơn các bác ạ!

P/s: Các bác làm ơn giảng giải cho em bằng C chứ đừng dùng ASM. Em mù tịt ASM ạ! :D

Thanks cái nữa :)

namqn
09-01-2008, 04:25 AM
Chào các bác ạ!

Em đang nghịch con pic 16f84a và biết rằng cái chân RA4 của nó có thể dùng để điểu chỉnh timer0. Nhưng cụ thể điểu chỉnh cái gì và điều chỉnh thế nào thì em không biết. Vậy bác nào biết thì chỉ dùm em với ạ!

Cám ơn các bác ạ!

P/s: Các bác làm ơn giảng giải cho em bằng C chứ đừng dùng ASM. Em mù tịt ASM ạ! :D

Thanks cái nữa :)
Chân RA4 có thể dùng làm ngõ vào khi Timer0 làm việc ở chế độ đếm (counter). Khi đó, Timer0 sẽ đếm các cạnh xung lên/xuống ở chân RA4 thay vì đếm xung clock của PIC (có thể qua bộ prescaler hay đi thẳng vào Timer0). Đề nghị bạn đọc mục 5.1 trong datasheet của PIC16F84A.

Có một vài C compiler dành cho PIC16, bạn nên chọn một compiler nào đó thì mới có thể cung cấp code ví dụ cho bạn (các compiler có thể có cách định vị bit khác nhau).

Thân,

thanco112
09-01-2008, 12:19 PM
Camd ơn bác namqn nhiều ạ!
Bác có thể cho em một ví dụ viết bằng CCS C được không ạ!

namqn
09-01-2008, 07:53 PM
Ví dụ, thiết lập Timer0 làm việc ở chế độ đếm, kích hoạt bằng cạnh lên (low to high), có prescaler là 1:2 (cứ 2 xung bên ngoài thì Timer0 mới đếm lên 1):

setup_timer_0(RTCC_EXT_L_TO_H | RTCC_DIV_2);

Bạn có thể đọc số đếm của Timer0 bằng hàm get_timer_0(), hay đặt sẵn một số đếm cho Timer0 bằng hàm set_timer_0(). Timer0 sẽ đặt cờ ngắt T0IF (trong thanh ghi INTCON) lên 1 khi số đếm bị tràn từ 255 về 0.

Đề nghị bạn đọc tài liệu hướng dẫn của CCS C, link download dưới đây:

http://www.ccsinfo.com/downloads/CReferenceManual.pdf

Thân,