1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

BTL_kỹ thuật vi xử lý giám sát nhiệt độ

55 78 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 2 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

+ Độ nhạy lớn + Tốc độ đo lớn, tự động hóa hoàn toàn trong quá trình đo + Kết quả đo hiển thị dưới dạng số Hình 1.7 :Sơ đồ khối của tần số kế chỉ số  Nguyên lý chung của tần số kế chỉ t

Trang 1

CHƯƠNG I : TỔNG QUAN HỆ THỐNG

1 Khái niệm về đo lường tần số

- Tần số là số lần lặp lại của dòng điện trong một giây

VD : Tần số 50Hz chính là tần số lặp lại của dòng điện trong 1s Tức là cứ mỗi 1/50 (s), thì dòng điện sẽ quay về trạng thái trước đó

- Tần số góc : ( ) biểu thị tốc độ biến đổi pha của dao động

( ) =

( ) = 2 ( )

- Quan hệ giữa tần số và bước sóng :

= λ

- Quan hệ giữa chu kỳ và tần số : =

- Đặc điểm của phép đo tần số :

+ Là phép đo có độ chính xác cao nhất trong kỹ thuật đo lường nhờ sự phát triển vượt bậc của việc chế tạo các mẫu tần số có độ chính xác và ổn định cao

- Dùng các cầu đo mà điều kiện cân bằng của cầu phụ thuộc tần số nguồn

điện cung cấp cho cầu

- Mạch cầu tổng quát :

Z1 Z3 = Z2 Z4 = UAB = 0

Trang 2

- Bộ chỉ thị cân bằng là vôn mét chỉnh lưu, vôn mét điện tử

Hình 1.2 : Sơ đồ khối của phương pháp đo cộng hưởng

- Dùng để đo tần số cao và siêu cao

- Nguyên tắc chung : dựa vào nguyên lý chọn lọc tần số của mạch cộng hưởng

+ Khối cơ bản của tần số này là mạch cộng hưởng Mạch này được kích thích bằng dao động lấy từ nguồn có tần số cần đo thông qua khối ghép tín hiệu

Trang 3

+ Việc điều chỉnh để thiết lập trạng thái cộng hưởng nhờ dùng khối điều chuẩn

+ Hiện tượng cộng hưởng được phát hiện bằng khối chỉ thị cộng hưởng Khối này thường là vonmet tách sóng

+ Tùy theo dải tần số mà cấu tạo mạch cộng hưởng sẽ khác nhau Trong cá thiết bị đo tần số bằng phương pháp cộng hưởng, thì thực tế để dùng được trong các tần đoạn khác nhau thì mạch cộng hưởng có 3 loại :

 Mạch cộng hưởng có điện dung và điện cảm đều là các linh kiện có thông số tập trung

 Mạch cộng hưởng có pha trộn giữa linh kiện có thông số tập trung

là điện dung và linh kiện có thông số phân bố là điện cảm

 Mạch cộng hưởng có điện dung và điện cảm đều là các linh kiện có thông số phân bố

a) Tần số mét cộng hưởng có tham số tập trung

- C và L đều là các linh kiện có thông số tập trung Bộ phận điều chỉnh cộng hưởng chính là tụ biến đổi C có thang khắc độ theo đơn vị tần số

- Ufx được ghép và mạch cộng hưởng thông qua cuộn ghép Lg

- Mạch chỉ thị cộng hưởng là mạch ghép hỗ cảm giữa cuộn dây L2 và L và được tách sóng bằng điốt và chỉ thị bằng cơ cấu đo từ điện

Hình 1.3 : Tần số mét cộng hưởng có tham số tập trung

- Khi đo ta đưa Ufx vào và điều chỉnh tụ C để mạch cộng hưởng Khi đó cơ cấu đo sẽ chỉ thị cực đại

Trang 4

= 1

2 √

- Tần số mét loại này thường dùng trong các dải sóng : 10 kHz  500 kHz

- Sai số : (0,25  3) %

b) Tần số mét cộng hưởng có tham số phân bố dùng cáp đồng trục

Hình 1.4 :Tần số mét cộng hưởng có tham số phân bố dùng cáp đồng trục

- Ở đây mạch cộng hưởng là một đoạn cáp đồng trục có nối tắt một đầu, đầu kia được nối bằng 1 pít tông P có thể dịch chuyển dọc trục bởi hệ thống răng cưa xoắc ốc có khắc độ

- Vòng ghép Vg đưa tín hiệu vào, còn vòng ghép Vd ghép tín hiệu ra mạch chỉ thị cộng hưởng

- Các chỗ ghép đều ở gần vị trí nối tắt cố định sao cho các vị trí này gần với

vị trí bụng sóng để khi có chiều dài tương đương Itđ = λ thì thiết bị chỉ thị sẽ chỉ cực đại

c) Tần số mét cộng hưởng có pha trộn các linh kiện có thông số tập trung và phân bố

- Mạch cộng hưởng ở đây gồm có tụ xoay kiểu tròn

- Bộ phận tĩnh điện của tụ được nối với nhau bằng vòng kim loại V, vòng này đóng vai trò điện cảm phân bố của mạch

Trang 5

Hình 1.5 :Tần số mét cộng hưởng pha trộn

- Khi phần tĩnh điện T và phần động Đ của tụ điện được hoàn toàn lồng vào nhau, thì tụ điện có trị số điện dung là cực đại Khi chúng hoàn toàn đưa ra khỏi nhau thì tụ điện có trị số điện dung là cực tiểu Khi đó, không những chỉ biến đổi được trị số của điện dung mà đồng thời còn biến đổi cả trị số điện cảm nữa

3 Phương pháp so sánh (Phương pháp quét sin)

Hình 1.6 : Phương pháp quét sin

- Máy hiện sóng đặt ở chế độ khuếch đại

- Điện áp có tần số cần đo Ufx được đưa và kênh Y, điện áp có tần số mẫu Ufmđưa vào kênh X

- Hình ảnh nhận được trên màn hình Liazu Thay đổi fm sao cho trên màn hỉnh nhận được hình Lixazu ổn định nhất

4 Phương pháp số

- Là phương pháp hiện đại và thông dụng nhất để đo tần số

- Ưu điểm :

+ Độ chính xác cao

Trang 6

+ Độ nhạy lớn

+ Tốc độ đo lớn, tự động hóa hoàn toàn trong quá trình đo

+ Kết quả đo hiển thị dưới dạng số

Hình 1.7 :Sơ đồ khối của tần số kế chỉ số

 Nguyên lý chung của tần số kế chỉ thị số là đếm số xung N tương ứng với chu

kỳ của tần số cần đo fx trong khoảng thời gian gọi là thời gian đo : Tđo

- Khối bộ vào : là bộ khuếch đại dải rộng có tần số từ 10 Hz  3,5 MHz, nó dùng để hoạt động hoặc hạn chế điện áp vào đến giá trị nhất định để có thể kích thích cho bộ tạo xung hoạt động (bộ Tx)

- Bộ tạo xung Tx : có nhiệm vụ biến tín hiệu hình sin hoặc tín hiệu xung chu

kỳ thành một dãy xung có biên độ không đổi, có tần số xung bằng tần số tín hiệu vào

- Máy phát tần số chuẩn f0 : là một bộ tạo dao động bằng thạch anh có tần số

f0 = 1 MHz Tín hiệu có tần số f0 đó đi qua bộ chia tần số theo các nấc với

hệ số chia là 10n và tần số chuẩn đó có thể chia đến 0,01 Hz, thời gian đó để đưa đến bộ điều khiển ĐK có thể gồm các thời gian như sau : 10-6, 10-5,

- Nếu Tđo là 1s thì số xung mà bộ đếm đếm được chính là tần số cần đo: N= fx

- Mạch điều khiển phụ trách điều khiển quá trình đo để đảm bảo thời gian hiển thị kết quả đo từ 0,3  0,5s trên chỉ thị số và xóa kết quả đo về trạng thái 0 ban đầu trước mỗi lần đo

Trang 7

 Đưa xung cần đo tần số vào chân INTx (x=0,1) của vi điều khiển

 Sử dụng ngắt ngoài để đếm xung Nếu INT0  sử dụng ngắt ngoài 0, nếu INT1  sử dụng ngắt ngoài 1

+ Đếm thời gian

 Lập trình ngắt timer để đếm thời gian Có thể là 1s, 3s, 2s, 5s, … Tùy theo khoảng thời gian mà chúng ta muốn vi điều khiển hiển thị tần số

- Hiển thị tần số :

Tùy theo khoảng thời gian chúng ta muốn cập nhật mà nhận giá trị

Muốn 3s cập nhật tần số 1 lần thì số xung đếm được trong 3s sẽ chia cho 3 Tương tự với 5s  chia 5 Vì tần số là số lần lặp lại của dòng điện trong 1s

- Ứng dụng : Ta có thể đo các loại tần số từ Hz  KHz  MHz

6 Các yêu cầu đối với bộ đo tần số

- Sai số nhỏ (không vượt quá mức cho phép)

- Thời gian đáp ứng nhanh

- Ít bị hỏng hóc trong quá trình đo

 Nhận xét : Những phương pháp trên đều chỉ ứng dụng cho một loại tần số nhất

định Không linh hoạt khi đó Giá thành lại rất tốn kém

Trang 8

 Phương pháp thường hay được dùng trong thực tế và đây cũng chính là phương pháp tối ưu nhất đó là đo tần số dùng VĐK 8051

Trang 9

CHƯƠNG II TÌM HIỂU CÁC THIẾU BỊ SỬ DỤNG CỦA HỆ THỐNG

1 IC AT89C51

1.1 Giới thiệu chung

- Có khả năng 1000 chu kì ghi xóa

Trang 10

1.2 Chức năng của các chân

- Hình dưới đây là sơ đồ bố trí chân của 8051 Ta thấy rằng trong 40

chân thì có 32 chân dành cho các cổng P0, P1, P2 và P3 với mỗi cổng có 8 chân Các chân còn lại được dành cho nguồn V CC , đất GND, các chân dao động XTAL1 và XTAL2, chân Reset RST, chân cho phép chốt địa chỉ ALE, chân truy cập địa chỉ ngoài EA, cho phép cất chương trình PSEN Trong 8 chân này thì 6 chân V CC , GND, XTAL1, XTAL2, RST và EAđược các họ

8051 sử dụng Hay nói cách khác là chúng phải được nối để cho hệ thống làm

việc Còn hai chân khác là PSEN và ALE được sử dụng chủ yếu trong các họ

Trang 11

Chân GND

Chân số 20 là GND, được nối với đất

Chân XTAL1 và XTAL2

8051 có một bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng

hồ ngoài để chạy nó Một bộ dao động thạch anh sẽ được nối tới các chân

đầu vào XTAL1 (chân 19) và XTAL2 (chân 18) Bộ dao động thạch anh

được nối tới XTAL1 và XTAL2 cũng cần hai tụ gốm giá trị khoảng 30pF

Một phía của tụ điện được nối xuống đất

Có nhiều tốc độ khác nhau của họ 8051 Tốc độ được coi như là tần số

cực đại của bộ dao động được nối tới chân XTAL Một bộ vi điều khiển

8051 yêu cầu một tinh thể thạch anh có tần số không lớn hơn 20MHz Khi

8051 được nối tới một bộ dao động tinh thể thạch anh và cấp nguồn thì ta có

thể quan sát tần số trên chânXTAL2 bằng máy hiện sóng Nếu ta quyết định

sử dụng một nguồn tần số khác bộ dao động thạch anh, chẳng hạn như là bộ

dao động TTL thì nó sẽ được nối tới chân XTAL1, còn chân XTAL2 thì để

hở không nối

Hình 2.2 : a) Nối XTAL tới thạch anh b) Nối XTAL tới đồng bộ ngoài

- Chân RST

RST là chân số 9 - Reset Nó là một chân đầu vào có mức tích cực cao

(bình thường ở mức thấp) Khi cấp xung cao tới chân này thì bộ vi điều

Trang 12

khiển sẽ được Reset và kết thúc mọi hoạt động Điều này thường được coi như là sự tái bật nguồn Khi kích hoạt tái bật nguồn sẽ làm mất mọi giá trị

trên các thanh ghi Hình dưới liệt kê các thanh ghi đặc biệt của 8051 và giá

trị của chúng sau khi Reset

Hình 2.3: Giá trị một số thanh ghi sau Reset

- Lưu ý rằng giá trị của bộ đếm chương trình PC là 0 khi tái lập để ép CPU nạp mã lệnh đầu tiên từ bộ nhớ ROM tại vị trí ngăn nhớ 0000 Điều này có nghĩa là ta phải đặt dòng đầu tiên của mã nguồn tại vị trí ngăn nhớ 0

của ROM vì đây là mã mà sau khi CPU thức tỉnh sẽ tìm lệnh đầu tiên Hình dưới trình bày cách nối chân RST với mạch Reset

Trang 13

Hình 2.4:Mạch reset

- Chân EA

EA có nghĩa là truy cập ngoài (External Access): là chân số 31 trên vỏ

kiểu DIP Nó là một chân đầu vào và phải được nối hoặc

với Vcc hoặc GND Hay nói cách khác là nó không được để hở

Các thành viên họ 8051 như 8751, 98C51 hoặc DS5000 đều có ROM trên chíp lưu cất chương trình Trong các trường hợp như vậy thì

chân EA được nối tới Vcc Đối với các thành viên của họ như 8031 và 8032

mà không có ROM trên chíp thì mã chương trình được lưu cất ở trên bộ nhớ ROM ngoài và chúng được nạp cho 8031/32 Do vậy, đối với 8031 thì

chân EA phải được nối đất để báo rằng mã chương trình được cất ở ngoài

Các chân mô tả ở trên đều phải được nối mà không cần thành phần nào được sử dụng Còn hai chân dưới đây được sử dụng chủ yếu trong hệ thống

vi điều khiển 8031

Chân PSEN

Trang 14

- PSEN là chân đầu ra cho phép cất chương trình (Program Store

Enable) trong hệ thống Trên vi điều khiển 8031, chương trình được cất ở

bộ nhớ ROM ngoài thì chân này được nối tới chân OE của ROM

Chân ALE

- Chân cho phép chốt địa chỉ ALE là chân đầu ra tích cực cao Khi nối

8031 tới bộ nhớ ngoài thì cổng P0 dùng để trao đổi cả địa chỉ và dữ liệu Hay nói cách khác 8031 dồn cả địa chỉ và dữ liệu qua cổng P0 để tiết kiệm

số chân Chân ALE được sử dụng để phân kênh địa chỉ và dữ liệu

Các chân cổng vào/ra và các chức năng của chúng

- Bốn cổng P0, P1, P2 và P3 đều sử dụng 8 chân và tạo thành cổng 8 bít Tất cả các cổng khi Reset đều được cấu hình như các đầu ra, sẵn sàng

để được sử dụng như các cổng đầu ra Muốn sử dụng cổng nào trong số các cổng này làm đầu vào thì nó phải được lập trình

Cổng P0

- Cổng P0 chiếm tất cả 8 chân (từ chân 32 đến 39) Nó có thể được dùng như cổng đầu ra, để sử dụng các chân của cổng P0 vừa làm đầu ra,

vừa làm đầu vào thì mỗi chân phải được nối tới một điện trở kéo bên ngoài

10kW Điều này là do một thực tế là cổngP0 là một máng mở khác với các cổng P1, P2 và P3 Khái niệm máng mở được sử dụng trong các chíp MOS

về chừng mực nào đó nó giống như collector hở đối với các chíp TTL

Trang 15

- Trong bất kỳ hệ thống nào sử dụng 8751, 89C51 hoặc DS5000 ta

thường nối cổngP0 tới các điện trở kéo (Xem hình dưới), bằng cách này ta

có thể sử dụng được cổng P0 cho cả 2 trường hợp đầu ra và đầu vào Với những điện trở kéo ngoài được nối, khi Reset cổngP0 được cấu hình như

một cổng đầu ra

- Cổng P0 là đầu vào: Với các điện trở được nối tới cổng P0 nhằm để

tạo nó thành cổng đầu vào thì nó phải được lập trình bằng cách ghi 1 tới tất

cả các bit của P0

- Vai trò kép của cổng P0: Như trên hình 1, cổng P0 được gán là các bit địa chỉAD0 - AD7 cho phép nó được sử dụng vừa cho địa chỉ, vừa cho

dữ liệu Khi nối 8051/31 tới bộ nhớ ngoài thì cổng P0 cung cấp cả địa chỉ

và dữ liệu, 8051 dồn dữ liệu và địa chỉ qua cổng P0 để tiết kiệm số chân ALE được sử dụng để tách địa chỉ và dữ liệu với sự trợ giúp của IC

chốt dữ liệu 74LS373

Hình 2.5:Cổng P0 nối với các điện trở kéo

Cổng P1

Trang 16

- Cổng P1 cũng chiếm tất cả 8 chân (từ chân 1 đến chân 8) nó có thể được sử dụng như đầu vào hoặc đầu ra So với cổng P0 thì cổng này không

cần đến điện trở kéo vì nó đã có các điện trở kéo bên trong Trong quá trình

Reset thì cổng P1 được cấu hình như một cổng đầu ra

- Cổng P1 là đầu vào: Tương tự P0, để biến cổng P1 thành đầu vào thì

nó phải được lập trình bằng cách ghi 1 đến tất cả các bit của nó

Cổng P2

- Cổng P2 cũng chiếm 8 chân (các chân từ 21 đến 28) Nó có thể được

sử dụng như đầu vào hoặc đầu ra, giống như cổng P1, cổng P2 cũng không

cần điện trở kéo vì nó đã có các điện trở kéo bên trong Khi Reset, thì

cổng P2 được cấu hình như một cổng đầu ra

- Cổng P2 là đầu vào: Để tạo cổng P2 như đầu vào thì nó phải được

lập trình bằng cách ghi các số 1 tới tất cả các chân của nó

- Vai trò kép của P2: Trong các hệ thống 8751, 89C51 và DS5000 thì P2 được dùng như đầu ra Tuy nhiên trong hệ thống 80312 thì cổng P2 có thể được dùng cùng vớiP0 để tạo ra địa chỉ 16 bit đối với bộ nhớ ngoài Như chỉ ra trên hình 1 cổng P2 cũng được chỉ định như là các bit địa chỉ A8 - A15 báo chức năng kép của nó Vì một bộ 8031 có khả năng

truy cập 64k byte bộ nhớ ngoài, nên nó cần một đường địa chỉ 16 bít Trong

khi P0 cung cấp 8 bit thấp qua A0 - A7 Công việc của P2 là cung cấp các bít địa chỉ A8 -A15 Hay nói cách khác khi 8031 được nối tới bộ nhớ ngoài thì P2 được dùng cho 8 bít cao của địa chỉ 16 bit và nó không thể dùng cho

vào/ra

- Từ những trình bày trên đây ta có thể kết luận rằng trong các hệ

thống vi điều khiển 8751, 89C51 hoặc DS5000 thì ta có các cống P0, P1,

Trang 17

P2 và P3 cho các thao tác vào ra và như thế là có thể đủ cho các ứng dụng với hầu hết các bộ vi điều khiển Ngoài ra cổng P3 còn để dành cho các

chức năng đặc biệt khác mà ta sẽ cùng bàn dưới đây

Cổng P3

- Cổng P3 chiếm tổng cộng là 8 chân từ chân 10 đến chân 17 Nó có thể được sử dụng như đầu vào hoặc đầu ra Cống P3 không cần các điện trở kéo cũng như P1 và P2 Mặc dù cổng P3 được cấu hình như một cống đầu

ra khi Reset, nhưng đây không phải là cách nó được sử dụng phổ biến nhất

- Cống P3 được bổ sung các chức năng quan trọng, đặc biệt Bảng

2 cung cấp các chức năng khác của cống P3 Thông tin này áp dụng cho cả

Trang 18

- Các bit P3.0 và P3.1 cung cấp tín hiệu nhận và phát dữ liệu trong truyền thông dữ liệu nối tiếp

- Các bit P3.2 và P3.3 được dành cho các ngắt ngoài

- Bit P3.4 và P3.5 được dùng cho các bộ định thời 0 và 1

- Cuối cùng các bit P3.6 và P3.7 để ghi và đọc các bộ nhớ ngoài khi được

nối tới các hệ thống 8031

1.3 Các thanh ghi

- 8051 có 21 thanh ghi chức năng đặc biết SFR chiến phần trên RAM nội từ địa chỉ 80H đến FFH Cần lưu ý là không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chỉ có 21 địa chỉ được định nghĩa

Hình 2.7: Các thanh ghi đặc biệt

- Thanh ghi chính

Thanh ghi tính toán chính của bi điều khiển 8051 ACC (Accumulator) Là thanh ghi đặc biệt của 8051 dùng để thực hiện các phép toán CPU, thường kí hiệu là A

- Thanh ghi phụ

Thanh ghi tính toán phụ của vi điều khiển 8051 là B Thanh ghi B ở địa chỉ F0H được dùng chung với thanh chứa A trong các phép toán nhân, chia, lệnh

Trang 19

MUL AB nhân 2 số 8 bit không dấu chứa trong A và B và chứa kết quả 16 bit vào cặp thanh ghi B,A

Lệnh chia DIV AB chia A bởi B, thương số cất trong thanh chứa A và dư số cất trong thanh ghi B Thanh ghi B còn được xử lý như một thanh ghi nháp Các bit được định địa chỉ của thanh ghi B có địa chỉ từ F0GH đến F7H

- Thanh ghi trạng thái chương trình (PSW)

Thanh ghi trạng thái chương trình PSW là thanh ghi mô tả toàn bộ trạng thái chương trình đang hoạt động của hệ thống Hình dưới sẽ mô tả thanh ghi này

Hình 2.8: Các thanh ghi trạng thái chương trình PSW

Hình 2.9: Chi tết các bit trong thanh ghi PSW

Trang 20

- Thanh ghi ngăn xếp

Con trỏ stack SP (stack pointer) là 1 thanh ghi 8 bit ở địa chỉ 81H SP chứa địa chỉ của dữ liệu hiện đang ở đỉnh của stack Các lệnh liên quan đến satck bao gồm lệnh cất dữ liệu vào stack và lệnh lấy dữ liệu ra khỏi stack Việc cất vào stack làm tăng SP trước khi ghi dữ liệu và việc lấy dữ liệu ra khỏi stack sẽ giảm SP Vùng stack của 8051 được giữ trong RAM nội và được giới hạn đến các địa chỉ truy xuất được bởi kiểu định địa chỉ gián tiếp Các lệnh PUSH và POP sẽ cất dữ liệu vào stack và lấy dữ liệu từ stack, các lệnh gọi chương trình con (ACALL, LCALL) và lệnh trở về (RET, RETI) cũng cất và phục hồi nội dung của bộ đếm chương trình PC (Program

counter)

- Con trỏ dữ liệu DPTR

Con trỏ dữ liệu DPTR (data pointer) được dùng để truy xuất bộ nhớ chương trình ngoài hoặc bộ nhớ dữ liệu ngoài DPTR là một thanh ghi 16 bit có địa chỉ là 82H (DPL, byte thấp) và 83H (DPH, byte cao)

- Thanh ghi các cổng P0 – P3

Các port xuất/nhập của 8051 bao gồm Port 0 tại địa chỉ 80H, Port 1 tại địa chỉ 90H, Port 2 tại địa chỉ A0H và Port 3 tại địa chỉ B0H Tất cả các port đều được định địa chỉ từng bit nhằm cung cấp các khả năng giao tiếp mạnh

- Thanh ghi bộ đếm truyền thông nối tiếp

Bộ đệm truyền thông được chia thành hai bộ đệm, bộ đệm truyền dữ liệu

và bộ đệm nhận dữ liệu Khi dữ liệu được chuyển vào thanh ghi SBUF, dữ liệu sẽ được chuyển vào bộ đệm truyền dữ liệu và sẽ được lưu giữ ở đó cho đến khi quá trình truyền dữ liệu qua truyền thông nối tiếp kết thúc Khi thực hiện việc chuyển dữ liệu từ SBUF ra ngoài, dữ liệu sẽ được lấy từ bộ đệm nhận dữ liệu của truyền thông nối tiếp

- Thanh ghi của bộ định thời/ bộ đếm

Trang 21

8051 có 2 bộ đếm/định thời (counter/timer) 16 bit để định các khoảng thời gian hoặc để đếm các sự kiện Các cặp thanh ghi (TH0, TL0) và (TH1, TL1) là các thanh ghi của bộ đếm thời gian Bộ định thời 0 có địa chỉ 8AH (TL0, byte thấp) và 8CH (TH0, byte cao) Bộ định thời 1 có địa chỉ 8BH (TL1, byte thấp) và 8DH (TH1, byte cao)

Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời TMOD (Timer Mode Register) ở địa chỉ 88H Chỉ có TCON được định địa chỉ từng bit

- Các thanh ghi điều khiển

Các thanh ghi điều khiển đặc biệt như IP, IE, TMOD, TCON, SCON và PCON là các thanh ghi điều khiển và ghi nhận trạng thái của hệ thống ngắt,

bộ đếm/định thời, truyền thông nối tiếp Chi tiết của các thanh ghi này sẽ được mô tả sau

1.4 Bộ đếm, Bộ định thời trong 8051

- Bộ đếm/Bộ định thời: Đây là các ngoại vi được thiết kế để thực hiện một nhiệm vụ đơn giản: đếm các xung nhịp Mỗi khi có thêm một xung nhịp tại đầu vào đếm thì giá trị của bộ đếm sẽ được tăng lên 01 đơn vị (trong chế độ đếm tiến/đếm lên) hay giảm đi 01 đơn vị (trong chế độ đếm lùi/đếm xuống)

- Xung nhịp đưa vào đếm có thể là một trong hai loại:

+) Xung nhịp bên trong IC: Đó là xung nhịp được tạo ra nhờ kết hợp mạch dao động bên trong IC và các linh kiện phụ bên ngoài nối với IC Trong

trường hợp sử dụng xung nhịp loại này, người ta gọi là các bộ định thời (timers) Do xung nhịp bên loại này thường đều đặn nên ta có thể dùng

để đếm thời gian một cách khá chính xác

+) Xung nhịp bên ngoài IC: Đó là các tín hiệu logic thay đổi liên tục giữa

02 mức 0-1 và không nhất thiết phải là đều đặn Trong trường hợp này người

Trang 22

ta gọi là các bộ đếm (counters) Ứng dụng phổ biến của các bộ đếm là đếm các sự kiện bên ngoài như đếm các sản phầm chạy trên băng chuyền, đếm

xe ra/vào kho bãi…

- Một khái niệm quan trọng cần phải nói đến là sự kiện “tràn” (overflow)

Nó được hiểu là sự kiện bộ đếm đếm vượt quá giá trị tối đa mà nó có thể biểu diễn và quay trở về giá trị 0 Với bộ đếm 8 bit, giá trị tối đa là 255 (tương đương với FF trong hệ Hexa) và là 65535 (FFFFH) với bộ đếm 16 bit

8051 có 02 bộ đếm/bộ định thời Chúng có thể được dùng như các bộ định thờiđể tạo một bộ trễ thời gian hoặc như các bộ đếm để đếm các sự

kiện xảy ra bên ngoài bộ VĐK Trong bài này chúng ta sẽ tìm hiểu về cách

lập trình cho chúng và sử dụng chúng như thế nào Phần 1 là Lập trình bộ định thời, và phần 2 là Lập trình cho bộ đếm

a) Các bộ định thời của 8051

8051 có hai bộ định thời là Timer 0 và Timer 1, ở phần này chúng ta bàn về các thanh ghi của chúng và sau đó trình bày cách lập trình chúng như thế nào để tạo ra các độ trễ thời gian

Các thanh ghi cơ sở của bộ định thời

Cả hai bộ định thời Timer 0 và Timer 1 đều có độ dài 16 bit được truy cập như hai thanh ghi tách biệt byte thấp và byte cao Chúng ta sẽ bàn

riêng về từng thanh ghi

Các thanh ghi của bộ Timer 0

Trang 23

Thanh ghi 16 bit của bộ Timer 0 được truy cập như byte thấp và byte cao:

+) Thanh ghi byte thấp được gọi là TL0 (Timer0 Low byte)

+) Thanh ghi byte cao được gọi là TH0 (Timer0 High byte)

Các thanh ghi này có thể được truy cập, hoặc được đọc như mọi thanh ghi khác chẳng hạn như A, B, R0, R1, R2 v.v

Hình 2.10: Các thanh ghi của bộ timer 0

Các thanh ghi của bộ Timer 1

Giống như timer 0, bộ định thời gian Timer 1 cũng dài 16 bit và thanh ghi 16 bit của nó cũng được chia ra thành hai byte là TL1 và TH1

Các thanh ghi này được truy cập và đọc giống như các thanh ghi của bộ Timer 0 ở trên

Hình 2.11: Các thanh ghi của bộ timer 1

Thanh ghi TMOD

Cả hai bộ định thời Timer 0 và Timer 1 đều dùng chung một thanh ghi được gọi là TMOD: để thiết lập các chế độ làm việc khác nhau của bộ định thời

Thanh ghi TMOD là thanh ghi 8 bit gồm có:

Trang 24

+) 4 bit thấp để thiết lập cho bộ Timer 0

+) 4 bit cao để thiết lập cho Timer 1

Trong đó:

+) 2 bit thấp của chúng dùng để thiết lập chế độ của bộ định thời

+) 2 bit cao dùng để xác định phép toán

Hình 2.12: Thanh ghi TMOD

Các bit M1, M0

Là các bit chế độ của các bộ Timer 0 và Timer 1 Chúng chọn chế

độ của các bộ định thời: 0, 1, 2 và 3 như bảng dưới Chúng ta chỉ tập chung vào các chế độ thường được sử dụng rộng rãi nhất là chế độ 1 và chế độ 2

Chúng ta sẽ sớm khám phá ra các đặc tính của các chế độ này sau khi khám

phần còn lại của thanh ghi TMOD Các chế độ được thiết lập theo trạng thái của M1 và M0 như sau:

trước

Hình 2.13: Các chế độ hoạt động của bộ đếm, bộ định thời

Trang 25

Bit C/T (Counter/Timer)

Bit này trong thanh ghi TMOD được dùng để quyết định xem bộ định thời được dùng như một máy tạo độ trễ hay bộ đếm sự kiện Nếu bit C/T =

0 thì nó được dùng như một bộ định thời tạo độ trễ thời gian

Nguồn đồng hồ cho chế độ trễ thời gian là tần số thạch anh của 8051 Điều đó có nghĩa là độ lớn của tần số thạch anh đi kèm với 8051 quyết định tốc

độ nhịp của các bộ định thời trên 8051 Tần số của bộ định thời luôn bằng 1/12 tần số của thạch anh gắn với 8051

và dừng Một số bộ định thời thực hiện điều này bằng phần mềm, một số

Trang 26

khác bằng phần cứng và một số khác vừa bằng phần cứng vừa bằng phần mềm Các bộ định thời trên 8051 có cả hai:

+) Việc khởi động và dừng bộ định thời được khởi động bằng phần mềm bởi cácbit khởi động bộ định thời TR là TR0 và TR1 Điều này có được nhờ các lệnh Set bit TR0 lên 1 (khởi động bộ định thời) hoặc Clear bit TR0 (dừng bộ định thời) đối với Timer 0, và tương tự TR1 đối với Timer 1 Các lệnh này có tác dụng khi bit GATE = 0 trong thanh ghi TMOD

+) Việc khởi động và ngừng bộ định thời bằng phần cứng từ nguồn ngoài bằng cách đặt bit GATE = 1 trong thanh ghi TMOD

Tuy nhiên, để tránh sự lẫn lộn ngay từ bây giờ ta đặt GATE = 0 có

nghĩa là không cần khởi động và dừng các bộ định thời bằng phần cứng từ bên ngoài

Lập trình cho chế độ 1

+) Đây là bộ định thời 16 bit, do vậy nó cho phép các giá trị 0000 đến FFFFHđược nạp vào các thanh ghi TL và TH của bộ định thời +) Sau khi TL và TH được nạp một giá trị khởi tạo 16 bit thì bộ định thời phải được khởi động Điều này được thực hiện bởi việc SET bit TR0 đối vớiTimer 0 và SET bit TR1 đối với Timer 1

+) Sau khi bộ định thời được khởi động, nó bắt đầu đếm lên Nó đếm lên

cho đến khi đạt được giới hạn FFFFH của nó Sau đó, khi nó quay

từ FFFFH về 0000thì nó bật lên bit cờ TF được gọi là cờ bộ định thời Cờ

bộ định thời này có thể được hiển thị Khi cờ bộ định thời này được thiết

lập, để dừng bộ định thời: ta thực hiện xóa các bit TR0 đối với Timer

0 hoặc TR1 đối với Timer 1 Ở đây cũng cần phải nhắc lại là đối với mỗi bộ định thời đều có cờ TF riêng của mình: TF0 đối với Timer 0 và TF1 đối với Timer 1

Trang 27

+) Sau khi bộ định thời đạt được giới hạn của nó là giá trị FFFFH, muốn lặp lại quá trình thì các thanh ghi TH và TL phải được nạp lại với giá trị ban đầu và cờTF phải được xóa về 0

Hình 2.15: Timer/Counter chế độ 1

Các bước lập trình ở chế độ 1

Để tạo ra một độ trễ thời gian dùng chế độ 1 của bộ định thời thì cần phải thực hiện các bước dưới đây:

Nạp giá trị TMOD cho thanh ghi báo độ định thời nào (Timer0 hay Timer1)

được sử dụng và chế độ nào được chọn

Nạp các thanh ghi TL và TH với các giá trị đếm ban đầu

Khởi động bộ định thời

Duy trì kiểm tra cờ bộ định thời TF bằng một vòng lặp để xem nó được bật lên 1 không Thoát vòng lặp khi TF được lên cao

Dừng bộ định thời

Xoá cờ TF cho vòng kế tiếp

Quay trở lại bước 2 để nạp lại TL và TH

Công thức tính toán độ trễ sử dụng chế độ 1 (16 bit) của bộ định thời

đối với tần số thạch anh XTAL = f (MHz):

a) Tính theo số Hex b) Tính theo số thập phân

(FFFF - YYXX + 1)*12/f ( s)

trong đó YYXX là các giá trị

khởi tạo của TH, TL tương

Chuyển đổi các giá trị YYXX của TH, TL về số thập phân để nhận một số thập phân NNNNN

Ngày đăng: 26/10/2019, 19:27

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Thu Hà, Kỹ thuật lập trình 8051, Đại Học Công Nghiệp Hà Nội Sách, tạp chí
Tiêu đề: Kỹ thuật lập trình 8051
[2] Tống Văn On, Cấu trúc – Lập trình – Ghép nối và ứng dụng vi điều khiển, Nhà xuất bản khoa học kỹ thuật Sách, tạp chí
Tiêu đề: Cấu trúc – Lập trình – Ghép nối và ứng dụng vi điều khiển
Nhà XB: Nhà xuất bản khoa học kỹ thuật
[3] Nguyễn Tăng Cường, Phan Quốc Thắng, Cấu trúc và Lập Trình học vi điều khiển 8051, Nhà xuất bản Khoa Học Kỹ Thuật Sách, tạp chí
Tiêu đề: Cấu trúc và Lập Trình học vi điều khiển 8051
Nhà XB: Nhà xuất bản Khoa Học Kỹ Thuật
[4] Phạm Quang Trí (2005), Vi điều khiển 8051 , Nhà xuất bản khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Vi điều khiển 8051
Tác giả: Phạm Quang Trí
Nhà XB: Nhà xuất bản khoa học và kỹ thuật
Năm: 2005
[5] Kiều Xuân Thực, Vi điều khiển Cấu trúc – Lập trình và Ứng Dụng, Nhà xuất bản giáo dục Việt Nam Sách, tạp chí
Tiêu đề: Vi điều khiển Cấu trúc – Lập trình và Ứng Dụng
Nhà XB: Nhà xuất bản giáo dục Việt Nam
[6] Nhiều tài liệu khác được lấy từ mạng Internet Khác

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w