Đăng nhập
Tìm kiếm
Chào mừng bạn đến với Chợ thông tin Thiết bị điện Việt Nam.
» Nếu đây là lần đầu tiên bạn tham gia diễn đàn, xin mời bạn xem phần hỏi/đáp để biết cách dùng diễn đàn.
» Để có thể tham gia thảo luận, các bạn phải đăng ký làm thành viên, click vào đây để đăng ký.
Vui lòng nhấn để đăng ký.
Trả lời
 
Công cụ bài viết Kiểu hiển thị
  #1  
Cũ 16-04-2013, 10:13 AM
sangtrong2000 sangtrong2000 đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 5
Mặc định Bộ đếm thời gian

Hệ thống quảng cáo SangNhuong.com

Bộ đếm thời gian

Hầu hết các vi điều khiển đều được trang bị một hay nhiều hệ thống thời gian chính xác mà có thể được sử dụng để thực hiện một số chức năng như thực hiện một nhiệm vụ nào đó trong một thời gian xác định, quyết định khoảng thời gian gữa hai nhiệm vụ, hay chỉ đơn giản là thực hiện đếm.
Ví dụ : các ứng dụng yêu cầu thực hiện nhiệm vụ bao gồm tạo ra các tín hiệu chính xác 1 Hz trong đồng hồ điện tử, điều khiển đèn giao thông trong một thời gian xác định, hay giao tiếp nối tiếp các bit giữa các thiết bị với một tốc độ xác định… Phần chính của mỗi hệ thống thời gian là một bộ đếm nhị phân tự động. Bộ đếm này tăng lên khi có xung thời gian tác động vào. Bộ đếm chạy liên tục từ 0 tới 2[SUP]n[/SUP]-1, với n là số bit của bộ đếm. Khi bộ đếm này chạy độc lập, nó có thể đếm đồng thời trong khi vi điều khiển đang thực hiện nhiệm vụ chính. Nếu đồng hồ ngõ vào của bộ đếm nhị phân được cố định ở một tần số, chúng ta có thể thiết lập một khoảng thời gian chính xác bằng cách đếm các xung tạo ra bởi đồng hồ. Ví dụ, nếu đồng hồ có tần số 1 MHz (chu kì 1µs), và chúng ta có 3000 xung đã được đếm trên tín hiệu đồng hồ, thì khoảng thời gian đã trôi qua là 3000 µs. Trong vi điều khiển, ta có thể lựa chọn kiểu của đồng hồ ngõ vào.Trong một vài trường hợp khi đồng hồ ngõ vào chính là đồng hồ bên trong của vi điều khiển, hệ thống thời gian hoạt động giống như hẹn giờ do được điều khiển bởi một đồng hồ có tần số cố định. Tuy nhiên, đồng hồ ngõ vào trong hệ thống thời gian cũng có thể được cung cấp qua một chân I/O ngoài của vi điều khiển trong trường hợp nó làm việc như một bộ đếm, và sẽ đếm các xung xuất hiện ngẫu nhiên từ bên ngoài. Những xung này có thể được tạo ra bằng tay với nút bấm, hay được tạo ra bằng các nguồn tín hiệu khác, ví dụ như các cảm biến đường bộ tạo ra xung mỗi khi có xe chạy qua. Cấu trúc chức năng của một module hẹn giờ đơn giản được thể hiện dưới đây. Nó có bộ đếm tự động 16 bit tăng dần giá trị mỗi khi có xung đồng hồ. Do đó, ngõ ra của bộ đếm 16 bit sẽ biểu thị giá trị là số lượng xung đã đến từ khi bộ đếm được reset về 0. Chúng ta có thể chuyển đổi tín hiệu ngõ ra này thành các khoảng thời gian do đã biết tần số hay chu kì của đồng hồ ngõ vào.

Giả sử rằng, chúng ta muốn đo một khoảng thời gian giữa hai nhiệm vụ. Cho rằng nhiệm vụ thứ nhất được thực hiện và thời gian được đặt về 0, và khi nhiệm vụ thứ hai được thực hiện, ngõ ra thời gian là 25000. Nếu chúng ra biết được đồng hồ ngõ vào có chu kì là 1µs, thì thời gian giữa hai nhiệm vụ là 25000×1 µs = 25 mili giây. Trong khi bộ đếm thời gian chỉ có thể đếm từ 0 tới 65535 (2[SUP]16[/SUP]-1), thì khoảng thời gian có thể đo được là từ 0 tới 65535 x 1 µs = 65.535 mili giây. Chúng ta có thể nâng cấp bộ đếm thời gian bằng cách sử dụng các mạch clock-divider (prescaler). Tùy theo việc lựa chọn cấu hình bit, mạch clock-divider có thể có tần số bằng một nửa hay một phần tư… của tần số ngõ vào. Giá trị cực đại có thể đếm được sẽ tăng gấp hai, gấp bốn…nhưng các chu kì cũng sẽ tăng lên theo tương ứng.

Bộ đếm thời gian trong vi điều khiển có các chức năng như cho phép hay dừng bộ đếm, cho phép hay loại bỏ việc ngắt khi tràn bộ đếm.
Trả lời với trích dẫn


CHUYÊN MỤC ĐƯỢC TÀI TRỢ BỞI
Trả lời


Công cụ bài viết
Kiểu hiển thị

Quyền viết bài
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is Mở
Mặt cười đang Mở
[IMG] đang Mở
HTML đang Mở
Chuyển đến

SangNhuong.com


Múi giờ GMT +7. Hiện tại là 07:53 AM