PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

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

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 20-03-2011, 06:25 AM   #1
ngonhan
Nhập môn đệ tử
 
Tham gia ngày: Mar 2008
Bài gửi: 5
:
Question Giải thích giúp mình nguyên lý hoạt động Timer0 PIC 16f877a

đọc tài iệu thấy khó nhớ và ko trực quan, nên nhìn thấy và hiểu được sơ đồ thì nhớ và hiểu lâu hơn. Mình mới học PIC nên cũng ko thành thạo lắm. Bạn nào giúp mình giải thích sơ đồ với !!!!!!!!!!!!!!!!!!!
Hình Kèm Theo
File Type: jpg timer-0-block-diagram.jpg (71.6 KB, 14 lần tải)
ngonhan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-03-2011, 08:29 PM   #2
romantics892005
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Bài gửi: 10
:
hiz, nhìn cái hình này đuối nữa, bạn đọc referrence manual + data sheet là ok , chịu khó tí ^^
romantics892005 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-03-2011, 08:57 PM   #3
stupid11
Đệ tử 6 túi
 
stupid11's Avatar
 
Tham gia ngày: Dec 2009
Nơi Cư Ngụ: TP.Hồ Chí Minh
Bài gửi: 133
:
Send a message via Yahoo to stupid11
TIMER 0 là bộ đếm lên,tức là nó sẽ đếm từ giá trị mình đặt vào TMR0(0x01)

Timer 0 hoạt động ở 2 chế độ như sau:

TIMER:

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC
(OPTION_REG<5>), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kỳ xung
đồng hồ (tần số vào Timer0 bằng ¼ tần số Oscillator).Khi giá trị thanh ghi TMR0 từ
FFh trở về 00h, ngắt Timer0 sẽ xuất hiện.Thanh ghi TMR0 cho phép ghi và xoá
được giúp ta ấn định được thời điểm ngắt của Timer0 xuất hiện một cách linh động.


COUNTER:

Muốn Timer 0 hoạt động ở chế độ counter ta set bit TOSC
(OPTION_REG<5>).Khi đó xung tác động lên bộ đếm được lấy từ chân
RA4/TOCK1.Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào
bộ đếm.Cạnh tác động sẽ là cạnh lên nếu TOSE =0 và ngược lại là TOSE =1.
Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON <2>) sẽ được set.Đây
chính là cờ ngắt của Timer0.Cờ ngắt này phải được xoá bằng chương trình trước khi
bộ đếm bắt đầu thực hiện lại quá trình đếm.


Bộ chia tần số (prescaler):

Prescaler được điều khiển bởi
thanh ghi OPTION_REG.Bit PSA (OPTION_REG <3>) xác định đối tượng tác
động của prescaler.Các bit PS2:PS0 (OPTION_REG <2:0>) xác định tỉ số chia tần
số của prescaler.

cụ thể như sau:

để viết 1 chương trình delay dùng TMR0
+chọn chia tần option_reg<2><1><0>;
+đặt giá trị vào TMR0
+cho phép TMR0 hoạt động option_reg<5>=0 //chọn TMR0 ở chế độ timer
+kiểm tra cờ tràn intcon<2>

để viết 1 chương trình counter dùng TMR0:làm tương tự như trên nhưng thay option_reg<5>=1.


Chỉ cần hiểu được nhiêu đây là bạn có thể sử dụng TMR0 1 cách ngon lành rồi..có gì ko hiểu liên hệ với mình gmail: dungdt08b@gmail.com .Thân.

thay đổi nội dung bởi: stupid11, 20-03-2011 lúc 09:06 PM.
stupid11 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 09:05 PM.


Đượ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