1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.

77 883 2
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Thiết Kế Một Mạch Đếm Tốc Độ Động Cơ Tuabin Đơn Giản Sử Dụng Vi Điều Khiển Họ 8051
Trường học Trường Đại Học Kỹ Thuật
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại Đồ án
Định dạng
Số trang 77
Dung lượng 2,43 MB

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

Nội dung

thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.

Trang 1

Chơng I: Mở đầu

1 Đặt vấn đề.

Ngày nay cùng với sự phát triển của các ngành khoa học kỹ thuật, kỹ thuật

điện tử mà trong đó là kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực khoahọc kỹ thuật, quản lý, công nghiệp tự động hóa, cung cấp thông tin do đó chúng taphải nắm bắt và vận dụng nó một cách có hiệu quả nhằm góp phần vào sự phát triểnnền khoa học kỹ thuật thế giới nói chung và trong sự phát triển kỹ thuật điện tử nóiriêng

Việc áp dụng những thành tựu của ngành điện tử, tự động hóa và quá trình điềukhiển tự động các thiết bị nhiệt đã mang lại những hiệu quả kinh tế và kỹ thuật rất tolớn Chi phí sản xuất giảm xuống, hiệu suất, hiệu quả làm việc tăng lên Đặt biệt là

độ chính xác và tin cậy của các thiết bị điện tử hơn hẳn so với việc vận hành cácthiết bị nhiệt bằng tay

Trong nhà máy nhiệt điện, bộ phận quan trọng nhất và đắt tiền nhất là tuabin

Và tốc độ của tuabin chính là một trong những thông số quan trọng đánh giá chất ợng của quá trình điều khiển tự động Việc đo đạc chính xác và chuyền tải tức thời

l-đến nơi điều khiển đã trở thành một nhu cầu thiết yếu của nhà máy

Từ nhu cầu thực tế đó và những gì đã đợc học ở trờng, em quyết định thiết kếmột mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051

Mạch đơn giản, dễ thực hiện

Có khả năng kết nối với máy tính

Có khả năng so sánh và liên kết với cơ cấu bảo vệ vợt tốc của tuabin

Số linh kiện sử dụng trong mạch ít hơn

Mạch có thể lu lại số liệu đã đo đạc

Trang 2

Mục đích, yêu cầu của đề tài:

Trong đồ án này em thực hiện mạch đo tốc độ bằng phơng pháp đếm xung

Nh vậy, ứng với mỗi vòng quay của roto sẽ tạo ra một xung bởi một thiết bị gọi làcảm biến Khi roto quay đợc một vòng, cảm biến sẽ nhận ra và tạo ra một xung điện

đa về khối xử lý để tăng dần số đếm Cứ sau một khoảng thời gian nhất định thì số

đếm này đợc hiện thị ra màn hình và đợc reset trở lại về không để bắt đầu một chutrình mới Trong quá trình đếm, nếu phát hiện ra số vòng quay trong một đơn vị thờigian vợt quá một giá trị định trớc thì vi điều khiển sẽ xuất ra một tín hiệu điều khiển.Tín hiệu này sẽ điều khiển mạch động lực để đảm bảo máy phát không chạy quátốc độ giới hạn cho trớc

Xây dựng sơ đồ khối tổng quát

Trang 3

Chơng II: Tổng quan các phơng pháp đo tốc độ

Để đo vận tốc góc th ờng ứng dụng các ph ơng pháp sau đây:ường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

Sử dụng tốc độ kế vòng kiểu điện từ: nguyên lý hoạt động dựa trên hiện t ợngường ứng dụng các phương pháp sau đây:cảm ứng điện từ Cảm biến gồm có hai phần: phần cảm (nguồn từ thông) và phầnứng (phần có từ thông đi qua) Khi có chuyển động t ơng đối giữa phần cảm vàường ứng dụng các phương pháp sau đây:phần ứng, từ thông đi qua phần ứng biến thiên, trong nó xuất hiện suất điện độngcảm ứng xác định theo công thức:

Suất điện động này tỉ lệ với vận tốc cần đo

Sử dụng tốc độ kế vòng loại xung: làm việc theo nguyên tắc đo tần số chuyển

động của phần tử chuyển động tuần hoàn, ví dụ chuyển động quay Cảm biến loạinày th ờng có một đĩa đ ợc mã hoá gắn với trục quay, chẳng hạn gồm các phầnường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:trong suốt xen kẽ các phần không trong suốt Cho chùm sáng chiếu qua đĩa đến một

đầu thu quang, xung điện lấy từ đầu thu quang có tần số tỉ lệ với vận tốc quay cần

Trang 4

Stato (phần cảm) là một nam châm điện hoặc nam châm vĩnh cửu, roto (phầnứng) là một trục sắt gồm nhiều lớp ghép lại, trên mặt ngoài roto xẽ các rãnh songsong với trục quay và cách đều nhau Trong các rãnh đặt các dây dẫn bằng đồng gọi

là dây chính, các dây chính đ ợc nối với nhau từng đôi một bằng các dây phụ Cổường ứng dụng các phương pháp sau đây:góp là một hình trụ trên mặt có gắn các lá đồng cách điện với nhau, mỗi lá nối vớimột dây chính của roto Hai chổi quét ép sát vào cổ góp đ ợc bố trí sao cho tại mộtường ứng dụng các phương pháp sau đây:thời điểm chúng luôn tiếp xúc với hai lá đồng đối diện nhau

Khi rô to quay, suất điện động xuất hiện trong một dây dẫn xác định theo biểuthức:

dSc = lvdt = lrdt

Trong đó:

l - chiều dài dây dẫn

v - vận tốc dài của dây

- vận tốc góc của dây.- vận tốc góc của dây

r - bán kính quay của dây

Biểu thức của suất điện động xuất hiện trong một dây:

e = - rlBiN

Trang 5

Suất điện động ứng với một nửa số dây ở bên phải đ ờng trung tính:ường ứng dụng các phương pháp sau đây:

Trang 6

e = E.sin  t

Trong đó E = K1,  = K2 , K1 và K2 là các thông số đặc tr ng choường ứng dụng các phương pháp sau đây:máy phát

Giá trị của  có thể tính đ ợc theo E hoặc ường ứng dụng các phương pháp sau đây: 

- Xác định  từ biên độ suất điện động:

E R

=

2 2 2

1

) (

) (

.

R i K L i R

K

R

Từ biểu thức , ta thấy điện áp U không phải là hàm tuyến tính của tốc độ quay

 Điều kiện để sử dụng máy phát nh một cảm biến vận tốc là R>>Zi để sao choường ứng dụng các phương pháp sau đây:

có thể coi U  E

Điện áp ở đầu ra đ ợc chỉnh l u thành điện áp một chiều, điện áp này khôngường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:phụ thuộc chiều quay và hiệu suất lọc giảm khi tần số thấp Mặt khác, sự có mặtcủabộ lọc làm tăng thời gian hồi đáp của cảm biến

- Xác định bằng cách đo tần số của suất điện động: ph ơng pháp này có uường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

điểm là tín hiệu có thể truyền đi xa mà sự suy giảm tín hiệu không ảnh h ởng tớiường ứng dụng các phương pháp sau đây:

độ chính xác của phép đo

- Máy phát không đồng bộ:

Cấu tạo của máy phát không đồng bộ t ơng tự nh động cơ không đồng bộường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:hai pha

Trang 7

Roto là một đĩa hình trụ kim loại mỏng và dị từ quay cùng tốc độ với trục cần

đo, kối l ợng và quán tính của nó không đáng kể ường ứng dụng các phương pháp sau đây:

Stato làm bằng thép từ tính, trên đó bố trí hai cuộn dây, một cuộn là cuộn kíchthích đ ợc cung cấp điện áp Vc có biên độ Ve và tần số ường ứng dụng các phương pháp sau đây: e ổn định Vc = Ve cos

- Cảm biến từ trở biến thiên: sử dụng khi vật quay là sắt từ

- Cảm biến từ điện trở: sử dụng khi vật quay là một hay nhiều nam châm nhỏ

- Cảm biến quang cùng với nguồn sáng: sử dụng khi trên vật quay có các lỗ,

đ ờng vát, mặt phản xạ.ường ứng dụng các phương pháp sau đây:

* Tốc độ kế từ trở biến thiên

Cấu tạo của cảm biến từ trở biến thiên gồm một cuộn dây có lõi sắt từ chịu tác

động của một nam châm vĩnh cửu đặt đối diện với một đĩa quay làm bằng vật liệu

Trang 8

sắt từ trên đó có khía răng Khi đĩa quay, từ trở của mạch từ biến thiên một cáchtuần hoàn làm cho từ thông qua cuộn dây biên thiên, trong cuộn dây xuất hiện mộtsuất điện động cảm ứng có tần số tỉ lệ với tốc độ quay.

Tần số của suất điện động trong cuộn dây xác định bởi biểu thức:

f = p.n

p - số l ợng răng trên đĩa.ường ứng dụng các phương pháp sau đây:

n - số vòng quay của đĩa trong một giây

Biên độ E của suất điện động trong cuộn dây phụ thuộc hai yếu tố:

- Khoảng cách giữa cuộn dây và đĩa quay: khoảng cách càng lớn E càng nhỏ

- Tốc độ quay: Tốc độ quay càng lớn, E càng lớn Khi tốc độ quay nhỏ, biên

độ

E rất bé và khó phát hiện, do vậy tồn tại một vùng tốc độ quay không thể đo

đ ợc, ng ời ta gọi vùng này là vùng chết.ường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

Dải đo của cảm biến phụ thuộc vào số răng của đĩa Khi p lớn, tốc độ nmin đo

đ ợc có giá trị bé Khi p nhỏ, tốc độ nmax đo đ ợc sẽ lớn Thí dụ với p = 60 răng,ường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:dải tốc độ đo đ ợc n = 50 - 500 vòng/phút, còn với p =15 răng dải tốc độ đo đ ợcường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

500 - 10.000 vòng/phút

* Tốc độ kế quang

Hình sau trình bày sơ đồ nguyên lý của một tốc độ kế quang đo tốc độ quay.Nguồn sáng phát tia hồng ngoại là một diot phát quang (LED) Đĩa quay, đặt giữa

Trang 9

nguồn sáng và đầu thu, có các lỗ bố trí cách đều trên một vòng tròn Đầu thu là mộtphotodiode hoặc phototranzitor Khi đĩa quay, đầu thu chỉ chuyển mạch khi nguồnsáng, lỗ, nguồn phát sáng thẳng hàng Kết quả là khi đĩa quay, đầu thu quang nhận

đ ợc một thông l ợng ánh sáng biến điệu và phát tín hiệu có tần số tỉ lệ với tốc độường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:quay nh ng biên độ không phụ thuộc tốc độ quay.ường ứng dụng các phương pháp sau đây:

Trong các cảm biến quang đo tốc độ, ng ời ta cũng có thể dùng đĩa quay cóường ứng dụng các phương pháp sau đây:các vùng phản xạ ánh sáng bố trí tuần hoàn trên một vòng tròn để phản xạ ánhsáng tới đầu thu quang

Phạm vi tốc độ đo đ ợc phụ thuộc vào hai yếu tố chính:ường ứng dụng các phương pháp sau đây:

- Số l ợng lỗ trên đĩa.ường ứng dụng các phương pháp sau đây:

- Dải thông của đầu thu quang và của mạch điện tử

Để đo tốc độ nhỏ (~ 0,1 vòng/phút) phải dùng đĩa có số l ợng lỗ lớn (500 -ường ứng dụng các phương pháp sau đây:1.000 lỗ) Trong tr ờng hợp đo tốc độ lớn ( ~ 105 - 106 vòng/phút) phải sử dụngường ứng dụng các phương pháp sau đây:

đĩa quay chỉ một lỗ, khi đó tần số ngắt của mạch điện xác định tốc độ cực đại có thể

đo đ ợc.ường ứng dụng các phương pháp sau đây:

c- Máy đo góc tuyệt đối

Máy đo góc tuyệt đối gồm hai phần: phần động gắn liền với trục quay chứacuộn sơ cấp đ ợc kích thích bằng sóng mang có tần số 2 - 10 kHz qua máy biến ápường ứng dụng các phương pháp sau đây:quay (hình 7.8a) Phần tĩnh có hai dây quấn thứ cấp (cuộn sin và cuộn cos) đặt lệchnhau 90o

Trang 10

Khi trục quay, ở đầu ra của hai dây quấn thứ cấp ta thu đ ợc hai tín hiệu điềuường ứng dụng các phương pháp sau đây:biên U.U0sin tsinvà U.U0.sintcos (hình 7.8b) Đ ờng bao của biên độ kênhường ứng dụng các phương pháp sau đây:tín hiệu ra chứa thông tin về vị trí tuyệt đối (góc ) của roto máy đo tức là vị trí tuyệt

đối của trục quay

Có hai cách xử lý thông tin thu đ ợc Cách thứ nhất là hiệu chỉnh sửa sai gócường ứng dụng các phương pháp sau đây:thu đ ợc đ ợc trên cơ sở so sánh góc với một số vi mạch sẵn có Các vi mạch nàyường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:cho tín hiệu góc dạng số với độ phân giải 10 - 16 bit/1vòng và một tốc độ quay dạng

t ơng tự Độ phân giải của ph ơng pháp này phụ thuộc vào thông số của mạchường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

điều chỉnh

Cách thứ hai, có chất l ợng cao hơn, là dùng hai bộ chuyển đổi t ơng tự - sốường ứng dụng các phương pháp sau đây: ường ứng dụng các phương pháp sau đây:

để lấy mẫu trực tiếp từ đỉnh tín hiệu điều chế Trong tr ờng hợp này cần đồng bộường ứng dụng các phương pháp sau đây:chặt chẽ giữa thời điểm lấy mẫu và khâu tạo tín hiệu kích thích 2 - 10 kHz sau đódùng bộ lọc để chuyển xung hình chữ nhật thành tín hiệu kích thích hình sin

Độ phân giải của phép đo dùng máy đo góc tuyệt đối hoàn toàn phụ thuộc vào

độ phân giải của bộ chuyển đổi t ơng tự số Khi biết góc quay tuyệt đối ường ứng dụng các phương pháp sau đây: , lấy đạohàm ta nhận đ ợc tốc độ góc ường ứng dụng các phương pháp sau đây:  cần đo

Trang 11

d- Tốc độ kế sử dụng cảm biến Eddy.

- Các thí nghiệm về nguyên lý của phơng pháp đo khoảng cách dựa theo

Trang 12

Hình 3: biểu đồ hiển thị quá trình thay đổi đờng kính của bánh xe quay trongthời gian khảo sát so với đờng kính thật của nó lúc đứng yên

Hình 4: biểu đồ hiển thị quá trình thay đổi đờng kính của bánh xe quay theoquá trình tăng điện tích

Trang 13

Hình 5: Biểu đồ biểu thị sự thay đổi đờng kính bánh quay theo quá trình ELID.Hình 6: kết quả của sự thay đổi độ mấp mô bề mặt của bánh quay.

Trang 14

Hình 7: biểu thị chu trình ELID

A: cờng độ dòng điện đi qua là -10 A Sự phóng các ion sắt ra khỏi lớp bề mặt.B: cờng độ dòng điện đi qua là -1A Sự hình thành lớp Fe2O3 bao phủ lớp bềmặt, làm tăng điện trở và do đó làm giảm cờng độ dòng điện đi qua

C: cờng độ dòng điện đi qua là -0.8A

D: Khi xảy ra sự bào mòn Lớp oxit mỏng đi Điện trở giảm xuống cờng độdòng điện tăng lên -15A

Trang 15

Hình 8: cho thấy nguyên tắc cơ bản để tạo nên một Eddy cảm biến hiện đại Sửdụng một dòng điện một chiều đi qua một cuộn dây sẽ làm xuất hiện các đờng cảmứng từ Từ thông đi qua vật dẫn ở dới sẽ tạo nên một dòng điện xoáy Dòng điệnnày phụ thuộc vào khoảng cách d giữa cuộn dây và vật dẫn và sẽ ảnh hởng ngợc trởlại đến cờng độ của dòng điện một chiều.

- Ta sẽ bố trí dùng cảm biến eddy để đo khoảng cách từ một mốc cụ thể đến

bề mặt của roto tuabin đang quay Trên chu trình bề mặt của roto đo cảm biến, ta sẽkhoét một lỗ nhỏ trên đó Cứ mỗi lần roto quay đợc một vòng sẽ tạo ra một xung

động về điện áp trên cảm biến và đợc gửi về vi xử lý Qua thực nghiệm đã cho thấytín hiệu đầu ra của cảm biến khi roto đang quay có dạng hình lợn sóng nh ảnh:

- Thông qua nắn xung bằng các ic điện tử, ta sẽ thu đợc xung vuông nh ảnh:

Trang 16

Chơng III: Các khâu cơ bản của máy đo tốc độ.

1- Khâu xử lý tín hiệu

- Tín hiệu nhận đợc sau cảm biến là xung có dạng là một đờng cong và khôngthể đếm đợc bằng vi điều khiển Bởi thế vấn đề đặt ra ở đây là phải biến tín hiệu từdạng đờng cong về xung vuông để có thể đếm đợc bằng vi điều khiển

- Các phần tử của bộ nắn xung này bao gồm có:

Trang 17

Là IC đóng vỏ dạng DIP có 40 chân, mỗi chân có một kí hiệu tên và có cácchức năng nh sau:

Chân 40: nối với nguồn nuôI +5V Chân 20: nối với đất(Mass, GND)

Chân 29 (PSEN)(program store enable) là tín hiệu điều khiển xuất ra của 8051,nó

cho phép chọn bộ nhớ ngoài và đợc nối chung với chân của OE (OutoutEnable) của EPROM ngoài để cho phép đọc các byte của chơng trình Các xung tínhiệu PSEN hạ thấp trong suốt thời gian thi hành lệnh Những mã nhị phân của ch-

ơng trình đợc đọc từ EPROM đi qua bus dữ liệu và đợc chốt vào thanh ghi lệnh của

8051 bởi mã lệnh.(chú ý việc đọc ở đây là đọc các lệnh (khác với đọc dữ liệu), khi

đó VXL chỉ đọc các bit opcode của lệnh và đa chúng vào hàng đợi lệnh thông quacác Bus địa chỉ và dữ liệu)

Chân 30 (ALE : Adress Latch Enable) là tín hiệu điều khiển xuất ra của 8051,

nó cho phép phân kênh bus địa chỉ và bus dữ liệu của Port 0

Chân 31 (EA : Eternal Acess) đợc đa xuống thấp cho phép chọn bộ nhớ mãngoàI

Trang 18

Riêng cổng 3 có 2 chức năng ở mỗi chân nh trên hình vẽ:

P3.0 – RxD : chân nhận dữ liệu nối tiếp khi giao tiếp RS232(Cổng COM ).P3.1 _ TxD : phân truyền dữ liệu nối tiếp khi giao tiếp RS232

P3.2 _ INTO : interrupt 0 , ngắt ngoài 0

P3.3 _ INT1: interrupt 1, ngắt ngoài 1 P3.4 _T0 : Timer0 , đầu vào timer0.P3.5_T1 : Timer1, đầu vào timer 1

P3.6_ WR: Write, điều khiển ghi dứ liệu

P3.7 _RD: Read , điều khiển đọc dữ liệu

Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK

Tần số thạch anh thờng dùng trong các ứng dụng là : 11.0592Mhz(giao tiếpvới cổng com máy tính) và 12Mhz Tần số tối đa 24Mhz Tần số càng lớn VĐK xử lícàng nhanh

Cấu trúc bus

Bus địa chỉ của họ vi điều khiển 8051 gồm 16 đờng tín hiệu (thờnggọi là bus địa chỉ 16 bit) Với số lợng bit địa chỉ nh trên, không gian nhớcủa chip đợc mở rộng tối đa là 216 = 65536 địa chỉ, tơng đơng 64K

Bus dữ liệu của họ vi điều khiển 8051 gồm 8 đờng tín hiệu (thờnggọi là bus dữ liệu 8 bit), đó là lý do tại sao nói 8051 là họ vi điều khiển

Trang 19

8 bit Với độ rộng của bus dữ liệu nh vậy, các chip họ 8051 có thể xử lýcác toán hạng 8 bit trong một chu kỳ lệnh.

Vi điều khiển họ 8051 có không gian bộ nhớ dữ liệu là 64K

địa chỉ, đó cũng là dung lợng bộ nhớ dữ liệu lớn nhất mà mỗi chip thuộc

họ này có thể có đợc (nếu phối ghép một cách chính tắc, sử dụng các ờng tín hiệu của bus địa chỉ và dữ liệu) Bộ nhớ dữ liệu của các chip họ

đ-8051 có thể thuộc một hay hai loại: SRAM hoặc EEPROM Bộ nhớ dữliệu SRAM đợc tích hợp bên trong mọi chip thuộc họ vi điều khiển này,

có dung lợng khác nhau tùy loại chip, nhng thờng chỉ khoảng vài trămbyte Đây chính là nơi chứa các biến trung gian trong quá trình hoạt độngcủa chip khi mất điện, do bản chất của SRAM mà giá trị của các biến nàycũng bị mất theo Khi có điện trở lại, nội dung của các ô nhớ chứa cácbiến này cũng là bất kỳ, không thể xác định trớc Bên cạnh bộ nhớloại SRAM, một số chip thuộc họ 8051 còn có thêm bộ nhớ dữ liệu loại

Trang 20

EEPROM với dung lợng tối đa vài Kbyte, tùy từng loại chip cụ thể Dới

đây là một vài ví dụ về bộ nhớ chơng trình của một số loại chip thôngdụng thuộc họ 8051

Đối với các chip có bộ nhớ SRAM 128 byte thì địa chỉ của các byteSRAM này

đợc đánh số từ 00h đến 7Fh Đối với các chip có bộ nhớ SRAM 256byte thì địa chỉ của các byte SRAM đợc đánh số từ 00h đến FFh ở cả hailoại chip, SRAM có địa chỉ từ 00h đến 7Fh đợc gọi là vùng RAM thấp,phần có địa chỉ từ 80h đến FFh (nếu có) đợc gọi là vùng RAM cao

Bên cạnh các bộ nhớ, bên trong mỗi chip 8051 còn có một tập hợpcác thanh ghi chức năng đặc biệt (SFR – Special Function Register).Các thanh ghi này liên quan đến hoạt động của các ngoại vi onchip (cáccổng vào ra, timer, ngắt ) Địa chỉ của chúng trùng với dải địa chỉ của

vùng SRAM cao, tức là cũng có địa chỉ từ 80h đến FFH

Trang 21

Vậy khi truy cập vào một địa chỉ thuộc dải từ 00h đến 7Fh thì sẽ truycập đến ô

nhớ thuộc vùng RAM thấp Tuy nhiên khi truy cập đến một địa chỉ xthuộc dải từ

80h đến FFh thì xảy ra vấn đề cần giải quyết: sẽ truy cập đến thanhghi SFR ở địa chỉ x hay truy cập đến ô nhớ ở địa chỉ x của vùng RAMcao? Nhà sản xuất quy định rằng, trong trờng hợp này, nếu kiểu truy cập

sử dụng chế độ địa chỉ trực tiếp thì sẽ truy cập vào vùng SFR, ngợc lạinếu kiểu truy cập sử dụng chế độ địa chỉ gián tiếp thì sẽ truy cập vào vùngRAM cao.

Trang 22

Nhắc lại về bộ nhớ 8051.

8051 có 2 không gian địa chỉ dành cho bộ nhớ chơng trình và bộ nhớ dữliệu riêng biệt Cả 2 không gian này đều có 16bit địa chỉ, do đó có thểchứa đợc tối đa 216 = 64K = 65536 ô nhớ mỗi loại

Bộ nhớ onchip của 8051 gồm có 4 Kbyte bộ nhớ chơng trình(ROM, EPROM, EEPROM hoặc Flash tùy loại biến thể) và 128byte bộnhớ dữ liệu

(RAM) 4 Kbyte bộ nhớ chơng trình onchip nằm trong không gian

địa chỉ 64

Kbyte dành cho bộ nhớ chơng trình (thuộc dải địa chỉ từ 0x0000 đến0x0FFF)

Trang 23

Ngợc lại, 128 byte RAM onchip lại không nằm trong không gian địachỉ

64 Kbyte dành cho bộ nhớ dữ liệu Ta có thể tởng tợng khônggian bộ nhớ chơng trình là một chiếc thùng đợc lấp đầy 1/16 dung tíchbởi 4 Kbyte bộ nhớ onchip, còn không gian bộ nhớ dữ liệu là một thùng

to dung tích 64 Kbyte rỗng hoàn toàn và một hộp nhỏ dung tích 128byte (địa chỉ từ 0x00 đến 0x7F) nằm riêng rẽ bên cạnh

Bộ nhớ chơng trình dùng để chứa mã của chơng trình nạp vào chip.Mỗi lệnh đợc mã hóa bởi 1 hay vài byte, dung lợng của bộ nhớ chơngtrình phản ánh số lợng lệnh mà bộ nhớ có thể chứa đợc Địa chỉ đầu tiêncủa bộ nhớ chơng trình (0x0000) chính là địa chỉ Reset của 8051 Ngaysau khi reset

(do tắt bật nguồn, do mức điện áp tại chân RESET bị kéo lên5V ), CPU sẽ nhảy đến thực hiện lệnh đặt tại địa chỉ này trớc tiên, luônluôn là nh vậy Phần còn trống trong không gian chơng trình không dùng

để làm gì cả Nếu muốn mở rộng bộ nhớ chơng trình, ta phải dùng bộ nhớchơng trình bên ngoài có dung lợng nh ý muốn Tuy nhiên khi dùng

Trang 24

bộ nhớ chơng trình ngoài, bộ nhớ chơng trình onchip không dùng đợcnữa, bộ nhớ chơng trình ngoài sẽ chiếm dải địa chỉ ngay từ địa chỉ 0x0000.

Bộ nhớ dữ liệu RAM onchip thờng dùng để chứa các biến tạm thờitrong quá trình vi điều khiển hoạt động, đó cũng là nơi dành cho ngăn xếphoạt động

Không gian dữ liệu 64Kbyte đợc để trống hoàn toàn và chỉ dùng đợckhi ghép

nối với bộ nhớ dữ liệu bên ngoài Khi ghép nối thêm bộ nhớ dữ liệubên ngoài, dung lợng của các bộ nhớ này sẽ chiếm dần các vị trí trongkhông gian, tuy nhiên không hề ảnh hởng đến 128byte RAM onchip

Ngăn xếp trong 8051 liên quan đến một thanh ghi tên là con trỏ ngănxếp SP (Stack Pointer) Thanh ghi này luôn trỏ vào đỉnh của ngăn xếp, tức

là nó chứa địa chỉ của vị trí ngay sát vị trí có thể lu địa chỉ/dữ liệu tiếptheo vào Khi cất 1 byte địa chỉ/dữ liệu vào ngăn xếp, SP tự động tăng lên

1 đơn vị sau đó mới cất địa chỉ/dữ liệu vào ô nhớ có địa chỉ bằng với giátrị của SP sau khi đã tăng Khi lấy 1 byte địa chỉ/dữ liệu ra khỏi ngănxếp, giá trị sẽ đợc lấy ra sau đó SP mới

tự động trừ đi 1 đơn vị Giá trị sau khi reset của SP là 0x07, do đó quy

định ngăn xếp sẽ cất dữ liệu từ địa chỉ 0x08 trở đi Tuy nhiên do đặc tínhhoạt động bành trớng theo chiều tăng địa chỉ mà ngăn xếp thờng đợc

bố trí lên vùng trên cùng của bộ nhớ RAM onchip để tránh tranh chấp vớicác biến lu trong RAM

Trang 26

Cổng ra vào song song trong 8051.

8051 có 4 cổng vào ra song song, có tên lần lợt là P0, P1, P2 và P3.Tất cả các cổng này đều là cổng vào ra hai chiều 8bit Các bit của mỗicổng là một chân trên chip, nh vậy mỗi cổng sẽ có 8 chân trên chip

Hớng dữ liệu (dùng cổng đó làm cổng ra hay cổng vào) là độc lậpgiữa các cổng và giữa các chân (các bit) trong cùng một cổng Ví dụ, ta

có thể định nghĩa cổng P0 là cổng ra, P1 là cổng vào hoặc ngợc lại mộtcách tùy ý, với cả 2 cổng P2 và P3 còn lại cũng vậy Trong cùng mộtcổng P0, ta cũng có thể định nghĩa chân P0.0 là cổng vào, P0.1 lại là cổng

ra tùy ý

Liên quan đến mỗi cổng vào/ra song song của 8051 chỉ có một thanhghi

SFR ( thanh ghi chức năng đặc biệt) có tên trùng với tên của cổng

Ta có các thanh ghi P0 dùng cho cổng P0, thanh ghi P1 dùng cho cổngP1 … Đây là các thanh ghi đánh địa chỉ đến từng bit (bit addressable),

do đó ta có thể dùng các lệnh tác động bit đối với các bit của các thanhghi này Mỗi thanh ghi này gồm 8 bit tơng ứng với các chân (bit) củacổng đó Khi một chân (bit) cổng nào đó đợc dùng làm cổng vào thìtrớc đó bit tơng ứng trong thanh ghi SFR phải đợc đặt ở mức 1 Nếu mộtchân (bit) cổng nào đó đợc dùng làm cổng ra thì giá trị của bit tơng ứngtrong thanh ghi SFR sẽ là giá trị lôgic muốn đa ra chân cổng đó Nếumuốn đa ra mức lôgic cao (điện áp gần 5V), bit tơng ứng trong thanh ghiphải đợc đặt bằng 1, hiển nhiên nếu muốn đa ra mức lôgic thấp

(điện áp gần 0V) thì bit tơng ứng trong thanh ghi phải đợc đặt bằng 0

áp vào là mức 0 hay mức 1 Các lệnh này là jb (nhảy nếu bit bằng 1), jnb

(nhảy nếu bit bằng 0)

Mỗi cổng có cấu trúc gồm một latch (chính là các bit của thanh ghicổng), mạch lái đầu ra (output driver) và mạch đệm đầu vào (input buffer)

Ngoài chức năng vào/ra thông thờng, một số cổng còn đợc tíchhợp thêm chức năng của một số ngoại vi khác Xem bảng liệt kê sau:

Trang 27

Các chân cổng P1.0 và P1.1 đợc tích hợp với các tín hiệu củatimer2 trong trờng hợp chip là 8052.

Khi dùng với các chức năng của các ngoại vi, chân cổng tơng ứng phải

đợc đặt lên 1 Nếu không các tín hiệu sẽ luôn bị ghim ở mức 0

Cổng P0 không có điện trở treo cao (pullup resistor) bên

trong, mạch lái tạo mức cao chỉ có khi sử dụng cổng này với

tính năng là bus dồn kênh địa chỉ/dữ liệu Nh vậy với chức năng

ra thông thờng, P0 là cổng ra open drain, với chức năng vào, P0 là

cổng vào cao trở (high impedance) Nếu muốn sử dụng cổng P0 làm

cổng vào/ra thông thờng, ta phải thêm điện trở pullup bên ngoài

Giá trị điện trở pullup bên ngoài thờng từ 4K7 đến 10K

Trang 28

Các cổng P1, P2 và P3 đều có điện trở pullup bên trong, do đó

có thể

dùng với chức năng cổng vào/ra thông thờng mà không cần có

thêm điện trở pullup bên ngoài Thực chất, điện trở pullup bên

trong là các FET, không phải điện trở tuyến tính thông thờng,

tuy vậy nhng khả năng phun dòng ra của mạch lái khi đầu ra

ở mức cao (hoặc khi là đầu vào) rất nhỏ, chỉ khoảng 100 micro

Ampe Trong datasheet của AT89S5x (một trong những biến thể

của họ

8051 do Atmel sản xuất) có thống kê số liệu nh sau:

Theo đó, nếu ta thiết kế để các cổng phải cung cấp cho tải ở đầu

ra mức cao một lợng dòng điện IOH = 60 micro Ampe thì mức điện

áp ở đầu ra VOH sẽ bị kéo sụt xuống, chỉ có thể đảm bảo từ 2.4V trởlên bởi nhà sản xuất, không thể cao sát với 5V nh lý thuyết

Trong khi đó, khả năng nuốt dòng của mạch lái khi đầu ra ở mức thấplại

cao hơn rất nhiều, có thể đạt từ vài đến hàng chục mili Ampe

Nh vậy, khi thiết kế với các phần tử bên ngoài, ta nên để ý đến

đặc tính vào/ra của các chân cổng Ví dụ khi dùng để ghép nối với

LED đơn hoặc LED 7 thanh, ta nên thiết kế chân cổng nuốt dòng từ

LED để làm LED sáng (cổng nối với Cathode của LED), không nên

thiết kế chân cổng phun dòng cho LED để làm LED sáng (cổng nối

với Anode của LED)

c h ế n g ắt của 8051

8051 chỉ có một số lợng khá ít các nguồn ngắt (interrupt

source) hoặc có thể gọi là các nguyên nhân ngắt Mỗi ngắt có một

vector ngắt riêng, đó là một địa chỉ cố định nằm trong bộ nhớ chơng

Trang 29

trình, khi ngắt xảy ra, CPU sẽ tự động nhảy đến thực hiện lệnh

nằm tại địa chỉ này

Vector ngắt

có tín hiệu tích cực theo kiểu đã chọn ở chân P3.2

khi giá trị timer0 tràn

từ giá trị max về giá trị min

có tín hiệu tích cực theo kiểu đã chọn ở chân P3.3

khi giá trị timer1 tràn

từ giá trị max về giá trị min

khi vi điều khiển nhận hoặc truyền xong một byte bằng cổng nối tiếp

TI, RI

nếu chơng trình đủ ngắn, mã tạo ra chứa đủ trong 8 byte, ngời

lập trình hoàn toàn có thể đặt phần chơng trình xử lý ngắt ngay

tại vector ngắt Tuy nhiên trong hầu hết các trờng hợp, chơng

trình xử lý ngắt có dung lợng mã tạo ra lớn hơn 8byte nên tại vector

ngắt, ta chỉ đặt lệnh nhảy tới chơng trình xử lý ngắt nằm ở vùng nhớ

khác Nếu không làm vậy, mã chơng trình xử lý ngắt này sẽ lấn

sang, đè vào vector ngắt kế cận

Liên quan đến ngắt chủ yếu có hai thanh ghi là thanh ghi IE và thanhghi IP

Trang 30

Để cho phép một ngắt, bit tơng ứng với ngắt đó và bit EA phải đợc đặtbằng 1 Thanh ghi IE là thanh ghi đánh địa chỉ bit, do đó có thể dùng cáclệnh tác động bit để tác động riêng rẽ lên từng bit mà không làm ảnh h-ởng đến giá trị các bit khác Cờ ngắt hoạt động độc lập với việc cho phépngắt, điều đó có nghĩa

là cờ ngắt sẽ tự động đặt lên bằng 1 khi có sự kiện gây ngắt xảy ra,bất kể sự

kiện đó có đợc cho phép ngắt hay không Do vậy, trớc khi cho phépmột ngắt,

ta nên xóa cờ của ngắt đó để đảm bảo sau khi cho phép, các sự kiệngây ngắt trong quá khứ không thể gây ngắt nữa Ví dụ trớc khi cho phépngắt timer0 mà timer 0 đã chạy và tràn (dù là tràn một hay nhiều lần) thì

cờ TF0 sẽ bằng 1, nếu sau đó ta cho phép ngắt timer0 thì sẽ gây ra ngắtngay do cờ tràn đang bằng 1

(sự kiện tràn gây ngắt trong trờng hợp này là tràn trong quá khứ, khôngphải sự kiện ta quan tâm đến) Vì vậy hãy xóa cờ TF0 trớc khi chophép ngắt tràn timer0

Ngoại trừ cờ của của ngắt nối tiếp (và cờ của ngắt timer2 trong 8052),các

cờ ngắt khác đều tự động đợc xóa khi CPU thực hiện chơng trìnhphục vụ ngắt Lý do là ngắt cổng nối tiếp (và ngắt timer2 trong 8052) đợcgây ra bởi 2 nguyên nhân (có 2 cờ cho mỗi ngắt), khi xảy ra ngắt, ngờilập trình cần phải kiểm tra xem cờ nào đợc đặt bằng 1 để phân biệt nguyênnhân gây ra ngắt đó là nguyên nhân nào để xử lý thích hợp Ví dụ ngắt cổngnối tiếp là ngắt đợc gây ra bởi 1 trong 2 nguyên nhân: vi điều khiển nhận

Trang 31

xong hoặc truyền xong một byte dữ liệu qua cổng nối tiếp Xảy ra sự kiệnnào thì cờ ngắt tơng ứng sẽ tự động đợc đặt lên bằng 1, nếu nhận xong thì

cờ RI bằng 1, nếu truyền xong thì cờ TI bằng 1 Trong chơng trình xử lýngắt, ngời lập trình phải kiểm tra cờ TI hay cờ

RI bằng 1 để quyết định xử lý ngắt truyền hay xử lý ngắt nhận Saukhi kiểm tra, ngời lập trình phải viết lệnh xóa cờ đó vì việc này không đợcCPU thực hiện

tự động nh các cờ ngắt khác

Nói đến ngắt không thể không nói đến mức u tiên của ngắt Mức utiên của ngắt ở đây có thể đợc hiểu là sự phân bậc, quyết định xử lý ngắtnào khi hai hay nhiều ngắt xảy ra Có 2 cơ chế phân bậc u tiên Thứnhất là cơ chế phân bậc dành cho các ngắt xảy ra đồng thời, hai ngắt A

và B xảy ra cùng một thời điểm nhìn từ phía vi điều khiển Thứ hai là cơchế phân bậc dành cho các ngắt xảy ra xen kẽ nhau, trong khi đang xử

lý ngắt A thì ngắt B xảy ra, vậy thì trong từng trờng hợp, CPU sẽ xử lý rasao? Hãy xem dới đây

Với trờng hợp các ngắt xảy ra đồng thời, CPU sẽ xem xét mức u tiêncủa các ngắt đó, từ đó quyết định xử lý ngắt có mức u tiên cao hơntrớc Mức u tiên trong trờng hợp này là mức u tiên cứng (đợc quy địnhbởi nhà sản xuất, bởi cấu trúc sẵn có của 8051 và ngời lập trình

không thể thay đổi đợc).

Nhìn vào bảng trên ta thấy ngắt INT0 là ngắt có mức u tiên cao nhất

và ngắt timer2 là ngắt có mức u tiên thấp nhất trong số các ngắt

Nh vậy nếu ngắt ngoài 1 và ngắt timer0 cùng xảy ra một lúc, ngắt ngoài

1 sẽ đợc CPU xử lý trớc, sau đó mới xử lý ngắt timer0

Với trờng hợp xảy ra ngắt xen kẽ, khi CPU đang xử lý ngắt A màngắt B xảy ra, CPU sẽ giải quyết theo 2 hớng: tiếp tục xử lý ngắt A nếu

Trang 32

mức u tiên của ngắt B không cao hơn mức u tiên của ngắt A, hoặc sẽ

dừng việc xử lý ngắt A lại, chuyển sang xử lý ngắt B nếu mức u tiên của

ngắt B cao hơn mức u tiên của ngắt A Mức u tiên cho các ngắt trong

tr-ờng hợp này không phải

là mức u tiên cứng do nhà sản xuất quy định (tức là không căn cứ vàobảng trên) mà là do ngời lập trình đặt Ngời lập trình có thể dùng thanh ghi

IP để quy định mức u tiên cho các ngắt ở một trong hai mức: mức cao vàmức thấp Để đặt mức u tiên của một ngắt (trong trờng hợp xảy ra xen kẽ)

ở mức cao, ta đặt bit tơng ứng với ngắt đó trong thanh ghi IP bằng 1, mứcthấp ứng với giá trị bit = 0

S

PT1 PX1 PT0 PX0

Thanh ghi IP (Interrupt Priority)

Các bit trong thanh ghi IP tơng ứng với các ngắt đúng nh trong thanhghi

IE (bit PX0 dành cho ngắt ngoài 0, bit PT0 dành cho ngắt timer 0…)Một điều dễ nhận ra là nếu một ngắt đợc đặt mức u tiên cao (bit t-

ơng

ứng trong thanh ghi IP bằng 1) thì sẽ chẳng có ngắt nào có thểxen vào quá trình xử lý nó đợc nữa

Nói về mức u tiên ngắt, có thể dùng một ví dụ tổng quát sau,

giả sử hai ngắt timer0 và ngắt cổng nối tiếp cùng đợc cho phép

(các bit tơng ứng và bit EA trong thanh ghi IE đợc đặt bằng 1), bit

PT0 = 0, bit PS = 1 thì:

- Nếu hai ngắt cùng xảy ra, ngắt timer0 sẽ thắng thế và đợcphục vụ

trớc

- Nếu ngắt cổng nối tiếp xảy ra trớc và đang đợc xử lý thì

ngắt timer0 nếu có xảy ra cũng không thể chen vào, làm dừng

quá trình xử lý ngắt cổng nối tiếp đợc

- Nếu ngắt timer0 xảy ra trớc và đang đợc xử lý mà ngắt

cổng nối tiếp xảy ra thì CPU sẽ phải dừng việc xử lý ngắt timer0

lại, chuyển sang xử lý ngắt cổng nối tiếp, xử lý xong mới quay lại

xử lý tiếp ngắt timer0

Ngắt ngoài (external interrupt )

Nh đã nói ở trên, 8051 có 2 ngắt ngoài là INT0 và INT1 Ngắt

ngoài đợc hiểu là ngắt đợc gây ra bởi sự kiện mức lôgic 0 (mức

Trang 33

điện áp thấp, gần 0V) hoặc sờn xuống (sự chuyển mức điện áp từ

mức cao về mức thấp) xảy ra ở chân ngắt tơng ứng (P3.2 với ngắt

ngoài 0 và P3.3 với ngắt ngoài 1) Việc lựa chọn kiểu ngắt đợc thực

hiện bằng các bit IT (Interrupt Type) nằm trong thanh ghi TCON

Đây là thanh ghi điều khiển timer nhng 4 bit LSB (bit0 3) đợc dùng

đến khi có sờn xuống tiếp theo Cờ ngắt IE sẽ dựng lên khi có sờn xuống

và tự động bị xóa khi CPU bắt đầu xử lý ngắt

Khi kiểu ngắt theo mức thấp đợc chọn thì ngắt sẽ xảy ra bất cứ khinào tín hiệu tại chân ngắt ở mức thấp Nếu sau khi xử lý xong ngắt mà tínhiệu vẫn ở mức thấp thì lại ngắt tiếp, cứ nh vậy cho đến khi xử lý xong ngắtlần thứ n , tín hiệu đã lên mức cao rồi thì thôi không ngắt nữa Cờ ngắt IEtrong trờng hợp này không có ý nghĩa gì cả

Thông thờng kiểu ngắt hay đợc chọn là ngắt theo sờn xuống

đếm lại đợc đa trở về giá trị min (thông thờng min = 0) Sự kiện này đợchiểu là sự kiện tràn timer (overflow) và có thể gây ra ngắt nếu ngắt tràntimer đợc cho phép (bit ETx trong thanh ghi IE = 1)

Trang 34

Việc cho timer chạy/dừng đợc thực hiện bởi các bit TR trong thanhghi

TCON (đánh địa chỉ đến từng bit)

Khi bit TRx = 1, timerx sẽ đếm, ngợc lại khi TRx = 0, timerx sẽkhông đếm mặc dù vẫn có xung đa vào Khi dừng không đếm, giá trị củatimer đợc giữ nguyên

Các bit TFx là các cờ báo tràn timer, khi sự kiện tràn timer xảy ra, cờ

sẽ đợc tự động đặt lên bằng 1 và nếu ngắt tràn timer đợc cho phép, ngắt sẽxảy ra Khi CPU xử lý ngắt tràn timerx, cờ ngắt TFx tơng ứng sẽ tự động đ-

ợc xóa

về 0

Giá trị đếm 16bit của timerx đợc lu trong hai thanh ghi THx (bytecao) và TLx (byte thấp) Hai thanh ghi này có thể ghi/đọc đợc bất kỳlúc nào Tuy nhiên nhà sản xuất khuyến cáo rằng nên dừng timer (cho bitTRx = 0) trớc khi ghi/đọc các thanh ghi chứa giá trị đếm

Các timer có thể hoạt động theo nhiều chế độ, đợc quy định bởi cácbit

trong thanh ghi TMOD (không đánh địa chỉ đến từng bit)

Trang 35

Để xác định thời gian, ngời ta chọn nguồn xung nhịp (clock) đavào

đếm trong timer là xung nhịp bên trong (dành cho CPU) Nguồnxung nhịp này

thờng rất đều đặn (có tần số ổn định), do đó từ số đếm của timer ngời

ta có

thể nhân với chu kỳ xung nhịp để tính ra thời gian trôi qua Timer lúcnày đợc gọi chính xác với cái tên “timer”, tức bộ định thời

Để đếm các sự kiện bên ngoài, ngời ta chọn nguồn xung nhịp đa vào

đếm trong timer là tín hiệu từ bên ngoài (đã đợc chuẩn hóa vềdạng xung vuông 0V/5V) Các tín hiệu này sẽ đợc nối với các bit cổng

có dồn kênh thêm các tính năng T0/T1/T2 Khi có sự kiện bên ngoài gây

ra thay đổi mức xung ở đầu vào đếm, timer sẽ tự động tăng lên 1 đơn

vị giống nh trờng hợp đếm xung nhịp bên trong Lúc này, timer đợcgọi chính xác với cái tên khác:

“counter”, tức bộ đếm (sự kiện)

Nhìn vào bảng mô tả thanh ghi TMOD bên trên, ta có thể nhận thấy

có 2 bộ 4 bit giống nhau (gồm GATEx, C/Tx, Mx0 và Mx1) dành cho 2timer0 và 1 ý nghĩa các bit là nh nhau đối với mỗi timer

Bit GATEx quy định việc cho phép timer đếm (run timer) Nếu GATEx

= 0,

Trang 36

timerx sẽ đếm khi bit TRx bằng 1, dừng khi bit TRx bằng 0.Nếu GATEx = 1, timerx sẽ chỉ đếm khi bit TRx = 1 và tín hiệu tạichân INTx = 1, dừng khi một trong hai điều kiện trên không còn thỏamãn Thông thờng ngời ta dùng timer với GATE = 0, chỉ dùng timer vớiGATE = 1 trong trờng hợp muốn đo độ rộng xung vì lúc đó timer sẽ chỉ

đếm thời gian khi xung đa vào chân INTx ở mức cao Bit C/Tx quy định

nguồn clock đa vào đếm trong timer Nếu C/Tx = 0,

timer sẽ đợc cấu hình là bộ định thời, nếu C/Tx = 1, timer sẽ đợc cấuhình là bộ đếm sự kiện

Hai bit còn lại (Mx0 và Mx1) tạo ra 4 tổ hợp các giá trị (00,01,10 và11) ứng với 4 chế độ hoạt động khác nhau của timerx Trong 4 chế độ đóthờng chỉ dùng chế độ timer/counter 16bit (Mx1 = 0, Mx0 = 1) vàchế độ Auto Reload 8bit timer/counter (Mx1 = 1, Mx0 = 0)

Trong chế độ timer/counter 16bit, giá trị đếm (chứa trong haithanh ghi THx và TLx) tự động đợc tăng lên 1 đơn vị mỗi lần nhận đợcthêm một xung nhịp Khi giá trị đếm tăng vợt quá giá trị max = 65535 thì

sẽ tràn về 0, cờ ngắt TFx đợc tự động đặt = 1 Chế độ này đợc dùng trongcác ứng dụng đếm thời gian và đếm sự kiện

Trong chế độ Auto Reload 8bit, giá trị đếm sẽ chỉ đợc chứa trongthanh ghi TLx, còn giá trị của thanh ghi THx bằng một số n (từ 0 đến 255)

do ngời lập trình đa vào Khi có thêm 1 xung nhịp, giá trị đếm trong TLx

đơng nhiên cũng tăng lên 1 đơn vị nh bình thờng Tuy nhiên trong trờnghợp này, giá trị đếm lớn nhất là 255 chứ không phải 65535 nh trờng hợptrên vì timer/counter chỉ còn 8bit Do vậy sự kiện tràn lúc này xảy ranhanh hơn, chỉ cần vợt quá 255 là giá trị đếm sẽ tràn Cờ ngắt TFx vẫn đ-

ợc tự động đặt = 1 nh trong trờng hợp tràn 16bit Điểm khác biệt là thay vìtràn về 0, giá trị THx sẽ đợc tự động nạp lại

(Auto Reload) vào thanh ghi TLx, do đó timer/counter sau khi tràn sẽ

có giá trị bằng n (giá trị chứa trong THx) và sẽ đếm từ giá trị n trở đi.Chế độ này đợc dùng trong việc tạo Baud rate cho truyền thông qua cổngnối tiếp

Trang 37

Để sử dụng timer của 8051, hãy thực hiện các bớc sau:

- Quy định chế độ hoạt động cho timer bằng cách tính toán và ghi giá trịcho các bit trong thanh ghi TMOD

- Ghi giá trị đếm khởi đầu mong muốn vào 2 thanh ghi đếm THx vàTLx Đôi khi ta không muốn timer/counter bắt đầu đếm từ 0 mà từ một giátrị nào đó để thời điểm tràn gần hơn, hoặc chẵn hơn trong tính toán saunày Ví dụ nếu cho timer đếm từ 15535 thì sau 50000 xung nhịp (tức

50000 micro giây với thạch anh 12MHz) timer sẽ tràn, và thời gian mộtgiây có thể dễ dàng tính ra khá chính xác = 20 lần tràn của timer (đơngnhiên mỗi lần tràn lại phải nạp lại giá trị 15535)

- Đặt mức u tiên ngắt và cho phép ngắt tràn timer (nếu muốn)

- Dùng bit TRx trong thanh ghi TCON để cho timer chạy hay dừngtheo ý muốn

Cổng nối tiếp (serial Port) của 8051

Cổng nối tiếp trong 8051 chủ yếu đợc dùng trong các ứng dụng cóyêu cầu truyền thông với máy tính, hoặc với một vi điều khiển khác.Liên quan đến cổng nối tiếp chủ yếu có 2 thanh ghi: SCON và SBUF.Ngoài ra, một thanh ghi khác là thanh ghi PCON (không đánh địa chỉbit) có bit 7 tên là SMOD quy định tốc độ truyền của cổng nối tiếp cógấp đôi lên (SMOD = 1) hay không (SMOD =

dễ dàng Khi ta muốn truyền dữ liệu đi, ta phải ghi vào thanh ghi SBUF

(ví dụ viết lệnh mov SBUF,a), còn khi muốn đọc kiểm tra dữ liệu nhận

Trang 38

về ta phải đọc thanh ghi SBUF (ví dụ viết lệnh mov a,SBUF) CPU sẽ

căn cứ vào việc thanh ghi SBUF nằm ở vị trí toán hạng đích (toán hạngbên trái) hay toán hạng nguồn (toán hạng bên phải) để quyết định sẽtruy nhập (đọc/ghi) thanh ghi SBUF nào Ngời lập trình không cần phảiquan tâm xử lý vấn đề này

Thanh ghi quy định chế độ hoạt động và điều khiển cổng nối tiếp làthanh ghi

SCON (đánh địa chỉ bit)

SM

0

SM 1

Chế độ Khung dữ liệu Baud rate

Chế độ 0: là chế độ truyền đồng bộ duy nhất Chân RxD sẽ là

tín hiệu truyền/nhận dữ liệu, chân TxD là tín hiệu xung nhịp Bit LSB (bit0) của dữ liệu đợc truyền đi trớc tiên Tốc độ truyền cố định và bằng 1/12giá trị thạch anh

Chế độ 1 : là chế độ truyền dị bộ 8 bit Dữ liệu 8 bit đợc đóng khung

bởi một bit Start (= 0) ở đầu và một bit Stop (=1) ở cuối trớc khi đợctruyền đi Tốc độ truyề thay đổi đợc theo ý ngời lập trình

Chế đ ộ 2: là chế độ truyền dị bộ 9 bit Dữ liệu 9 bit đợc ghép

thành bởi 8bit trong thanh ghi SBUF và bit RB8 (trờng hợp nhận về) hoặc

Ngày đăng: 05/08/2013, 11:32

HÌNH ẢNH LIÊN QUAN

Sơ đồ  cấu tạo của một tốc độ kế dòng một chiều biểu diễn trên hình. - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
c ấu tạo của một tốc độ kế dòng một chiều biểu diễn trên hình (Trang 4)
Hình sau trình bày sơ đồ nguyên lý của một tốc độ kế quang đo tốc độ quay. - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình sau trình bày sơ đồ nguyên lý của một tốc độ kế quang đo tốc độ quay (Trang 10)
Hình 1: Sơ đồ tổng quát biểu diễn các thành phần cấu tạo cần thiết của thí nghiệm. - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình 1 Sơ đồ tổng quát biểu diễn các thành phần cấu tạo cần thiết của thí nghiệm (Trang 13)
Hình 2: Biểu đồ hiển thị độ xê dịch ban đầu của bánh xe and ảnh hởng của grinding fluid - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình 2 Biểu đồ hiển thị độ xê dịch ban đầu của bánh xe and ảnh hởng của grinding fluid (Trang 14)
Hình 5: Biểu đồ biểu thị sự thay đổi đờng kính bánh quay theo quá trình ELID. - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình 5 Biểu đồ biểu thị sự thay đổi đờng kính bánh quay theo quá trình ELID (Trang 15)
Hình 7: biểu thị chu trình ELID. - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình 7 biểu thị chu trình ELID (Trang 16)
Hình 8: cho thấy nguyên tắc cơ bản để tạo nên một Eddy cảm biến hiện đại. Sử dụng một dòng điện một chiều đi qua một cuộn dây sẽ làm xuất hiện các đờng cảm ứng từ - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình 8 cho thấy nguyên tắc cơ bản để tạo nên một Eddy cảm biến hiện đại. Sử dụng một dòng điện một chiều đi qua một cuộn dây sẽ làm xuất hiện các đờng cảm ứng từ (Trang 17)
Hình vẽ: - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Hình v ẽ: (Trang 50)
Sơ đồ đấu nối của ic8051: - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
u nối của ic8051: (Trang 51)
Sơ đồ mạch: - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
Sơ đồ m ạch: (Trang 51)
Sơ đồ đấu nối cách ly quang và rơ le với ic8051: - thiết kế một mạch đếm tốc độ động cơ tuabin đơn giản sử dụng vi điều khiển họ 8051.
u nối cách ly quang và rơ le với ic8051: (Trang 52)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w