Khi đó tín hiệu ngõ vào “input” sẽ được điều khiển ở mức cao từ khối vi điều khiển, nhưng theo kinh nghiệm thì tốt nhất ta nên kích ở mức thấp, vì khi kích ở mức cao thì tín hiện xuất ra từ vi điều khiển không đủ kích cho Opto hoạt động. Chú ý là phải nối chung mass giữa vi điều khiển và nguồn kích. Trên hình 4 và hình 5 ta thấy có 2 con điện trở, con điện trở R26 này dùng để giảm áp đặt vào chân 1 và chân 2 của Opto, để phòng trường hợp con led bên trong Opto bị chết do bị quá áp, giá trị của điện trở này thường từ 100Ω đến 1kΩ, còn con điện trở R31 thì phụ thuộc vào mức dòng điện mà ta muốn lấy ở ngõ ra “output
107 trang |
Chia sẻ: lethao | Lượt xem: 2990 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Vẽ lại bức ảnh chụp được từ Webcam thông qua giao diện matlab và vi điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
o các cuộn dây sẽ làm cho động cơ quay theo chiều kim đồng hồ (CW).
Phương pháp này gọi là phương pháp điều khiển theo kiểu 1 bước (wave dirve). Ngoài ra để điều khiển động cơ 2 pha lưỡng cực, ta có thể kích vào 2 cuộn dây cùng một lúc. Trong chế độ này, rotor được hút tới giũa 2 cực kế bên gần nhất. Phương pháp này gọi là phương pháp điều khiển theo kiểu bước đủ (full drive). Bảng sau và Hình 2.3.1.3 sẽ minh hoạ cho chuỗi điện áp kích theo phương pháp này:
Cấp điện
Vị trí
1a+ 1b- và 2a+ 2b-
1’
1a- 1b+ và 2a+ 2b-
2’
1a- 1b+ và 2a- 2b+
3’
1a+ 1b- và 2a- 2b+
4’
Trong kiểu điều khiển này, 2 cuộn dây được kích cùng lúc. Điều này sẽ tạo nhiều momen xoắn hơn kiểu điều khiển một bước. Tuy nhiên, dòng cung cấp cho động cơ sẽ tăng gấp 2 lần và việc điều khiển khó khăn hơn so với phương pháp điều khiển một bước.
Cả hai phương pháp trình bày ở trên gồm 4 bước điều khiển (quay 4 bước trên 1 vòng). Bằng cách kết hợp 2 phương pháp trên, động cơ quay lần lượt đến các vị trí 1, 1’, 2, 2’, 3, 3’, 4, 4’, 1, 1’,2…đây gọi là phương pháp điều khiển theo kiểu nửa bước (hafl step). Khi điều khiển theo phương pháp này, động cơ chạy 8 bước trên một vòng. Phương pháp điều khiển theo kiểu nửa bước được ứng dụng nhiều vì nó cho phép động cơ tăng 2 lần số bước.
Ví dụ: động cơ bước 1.80/step. Như vậy, động cơ quay 1 vòng thì cần chỉ kích bước ở chế độ wave drive. Khi điều khiển bằng phương pháp half-step (nửa bước), ta cần phải kích 400 bước với góc quay 0.90. Hình 2.3.1.4 sẽ minh hoạ cho phương pháp half-step.
Cấp điện
Vị trí
1a+ 1b- và 2a- 2b-
1
1a+ 1b- và 2a+ 2b-
1’
1a- 1b- và 2a+ 2b-
2
1a- 1b+ và 2a+ 2b-
2’
1a- 1b+ và 2a- 2b-
3
1a- 1b+ và 2a- 2b+
3’
1a- 1b- và 2a- 2b+
4
1a+ 1b- và 2a- 2b+
4’
Các động cơ nam châm vĩnh cửu thường có góc bước nhỏ. Việc giảm góc bước của động cơ được thực hiện bằng cách tăng số cực của rotor như Hình 2.3.1.5 sau:
Góc bước của động cơ này được tính như sau:
Stator có 4 cực Góc giữa 2 cực gần nhau:
Rotor có 6 cực Góc giữa 2 cực gần nhau:
Vậy động cơ quay 900-600 = 300 mỗi bước.
Động cơ bước nam châm vĩnh cửu 4 pha đơn cực.
Bốn pha đơn cực là loại động cơ bước được sử dụng phổ biến nhất.
Động cơ bước nam châm vĩnh cửu đơn cực có 5 hay 6 đầu dây thường dùng sơ đồ như Hình 2.3.1.7 có kết nối giữa cho mỗi dây. Khi sử dụng các kết nối giữa của cuộn dây thường được cấp vào nguồn dương và hai đầu của mỗi cuộn dây được nối xuống đất, tuỳ thuộc vào đầu vào nối đất ta sẽ xác định chiều quay rotor. Gọi là động cơ 4 pha vì động cơ có 4 cuộn dây được cung cấp điện một cách độc lập và thuật ngữ đơn cực được sử dụng vì dòng điện luôn chạy qua cuộn Stator theo chiều nhất định.
Cách đơn giản để điều khiển động cơ bước 4 pha đơn cực là cung cấp điện cho một pha tại một thời điểm theo trình tự nhất định (phương pháp wave drive).
Bảng điều khiển sau sẽ minh hoạ cho quá trình điều khiển kiểu một bước:
Step
1a
2a
1b
2b
1
1
0
0
0
2
0
1
0
0
3
0
0
1
0
4
0
0
0
1
.
Việc điều khiển động cơ bước 4 pha đơn cực thì đơn giản hơn động cơ bước 2 pha lưỡng cực. Mạch driver cho động cơ bước 4 pha đơn cực đơn giản là đóng và ngắt các cực của Stator một cách tuần tự, nó không phải đảo cực tính của cuộn dây Stator. Tuy nhiên, động cơ bước 2 pha lưỡng cực tạo nhiều momen xoắn hơn do có lực đẩy và kéo ở cùng một lúc.
Lực xoắn của động cơ bước 4 pha đơn cực có thể được tăng lên nếu 2 cuộn dây kề nhau được cung cấp năng lượng cùng một lúc, tạo momen làm cho rotor quay đến nằm giữa 2 cực của 2 cuộn dây. Tuy nhiên, cách này sẽ tiêu hao dòng điện gấp 2 lần so với động cơ bước 2 pha lưỡng cực nhưng cũng chỉ làm momen xoắn tăng khoảng 40%. Bảng sau sẽ minh hoạ cho phương pháp điều khiển bước đủ này:
Step
1a
2a
1b
2b
1
1
1
0
0
2
0
1
1
0
3
0
0
1
1
4
1
0
0
1
Bằng cách xen kẽ các bước trong 2 chế độ điều khiển một bước và bước đủ, ta có thể điều khiển động cơ quay với góc bước nhỏ hơn 2 lần góc bước danh định của nó. Bảng sau sẽ minh hoạ cho kiểu điều khiển half-step này:
Step
1a
2a
1b
2b
1
1
0
0
0
2
1
1
0
0
3
0
1
0
0
4
0
1
1
0
5
0
0
1
0
6
0
0
1
1
7
0
0
0
1
8
1
0
0
1
Dựa vào cấu tạo của động cơ bước 2 pha lưỡng cực và 4 pha đơn cực, ta thấy rằng có thể chuyển chế độ dùng động cơ 4 pha đơn cực thành 2 pha lưỡng cực và ngược lại bằng cách :
Nếu muốn chuyển thành động cơ 4 pha từ động cơ 2 pha, ta có thể lấy ra ở mỗi cuộn 1 đầu dây chung (common), đầu dây chung này được nối vào điểm giữa 2 cực của mỗi cuộn dây. Hai đầu dây common (2 và 5) được kết nối như Hình 2.3.1.10:
Nếu muốn sử dụng ở chế độ 2 pha lưỡng cực thì 2 đầu dây common (2 và 5) không dùng.
Ngày nay, hầu hết các động cơ bước nam châm vĩnh cửu có góc bước rất nhỏ. Những loại động cơ có góc bước nhỏ này được làm bằng cách ghép chồng hai rotor đa cực như Hình 2.3.1.11:
Động cơ bước có từ trở biến thiên (động cơ bước biến từ trở).
Động cơ biến từ trở hay còn gọi là động cơ phản kháng. Rotor của loại động cơ này không sử dụng nam châm vĩnh cửu, thay vào đó nó sử dụng một bánh răng bằng sắt. Vì không sử dụng nam châm vĩnh cửu-không đòi hỏi rotor phải từ hoá- nên rotor có thể chế tạo với nhiều hình dạng khác nhau. Vì được làm bằng sắt nên mỗi răng rotor sẽ bị hút về phía cực stator được cấp điện gần nhất nhưng với lực hút yếu hơn loại nam châm vĩnh cửu. Điều này làm cho momen xoắn của động cơ biến từ trở nhỏ hơn momen xoắn của động cơ nam châm vĩnh cửu.
Động cơ biến từ trở thông thường có 3 hoặc 4 pha. Hình 2.3.2.1 minh hoạ cho loại động cơ biến từ trở 3 pha. Sator của loại động cơ này có 3 mạch từ: và . Mỗi mạch từ gồm 4 cực từ . Như vậy Stator của động cơ như hình 3 có 12 cực từ. Chú ý, rotor có 8 răng trong khi stator có tất cả 12 răng. Đây là cấu tạo đặc biệt của động cơ này. Bởi vậy, răng cuả rotor sẽ không bao giờ thẳng hàng từng đôi 1-1 với răng của sator, điều này đóng vai trò quan trọng trong hoạt động của loại động cơ này.
Hoạt động của loại động cơ này như sau:
+ Khi mạch từ được cung cấp năng lượng, răng A của rotor sẽ di chuyển đến thẳng hàng với cực của .
+ Kế tiếp, khi được cấp điện, răng B gần nhất sẽ di chuyển về phía nó.
+ Nếu tiếp tục cấp điện cho , rotor sẽ tiếp tục quay 150 theo hướng ngược chiều kim đồng hồ bằng cách hút răng C thẳng hàng với .
Góc bước của động cơ bước biến từ trở là hiệu số giữa góc 2 cực rotor gần nhất và góc 2 cực stator gần nhất. Góc bước của động cơ được minh hoạ như hình 3 được xác định là:
Bằng cách sử dụng lối thiết kế này, động cơ bước biến từ trở có thể đạt được những góc bước rất nhỏ, thậm chí nhỏ hơn 10. Góc bước càng nhỏ giúp cho việc điều khiển vị trí càng chính xác hơn.
Động cơ bước biến từ trở có sự khác biệt so với động cơ nam châm vĩnh cửu. Vì rotor của động cơ bước biến từ trở không được từ hoá nên lực xoắn của nó yếu hơn lực xoắn của động cơ nam châm vĩnh cửu có cùng góc bước. Mặc dầu vậy, nó sẽ không có lực xoắn hãm (detent torque) khi tắt nguồn như động cơ nam châm vĩnh cửu. Có góc bước nhỏ và không có lực xoắn hãm nên động cơ biến từ trở dễ bị mất bước. Đây là vấn đề cần được xem xét khi động cơ đang vận hành ở chế độ vòng hở. Vì thế, nên dùng các bộ điều khiển vòng kín cho loại động cơ này.
Động cơ bước hỗn hợp (động cơ bước dạng ghép).
Trong các loại động cơ bước kể trên thì động cơ bước hỗn hợp được sử dụng nhiều hơn cả vì loại động cơ này kết hợp những ưu điểm của loại động cơ bước nam châm vĩnh cửu và động cơ bước biến từ trở.
Rotor có các răng cho phép động cơ quay với góc bước nhỏ (có loại quay với góc bước 1.80) và nó có một nam châm vĩnh cửu tạo lực xoắn hãm nhỏ ngay cả khi không cấp điện cho động cơ.
Chúng ta thấy rằng việc từ hoá các cực rotor của động cơ bước nam châm vĩnh cửu tương đối khó khăn nên góc bước của loại động cơ này thường bị hạn chế. Nếu như động cơ bước biến từ trở có góc bước nhỏ nhờ rotor được cấu tạo bởi bánh răng bằng sắt thì lực quay và lực xoắn hãm của nó lại yếu hơn động cơ bước nam châm vĩnh cửu. Động cơ bước hỗn hợp từ hoá một cách hợp lý các cực của rotor và như vậy nó sẽ có những ưu điểm của động cơ nam châm vĩnh cửu và biến từ trở. Hình 2.3.3.1 minh hoạ cấu trúc bên trong của động cơ bước hỗn hợp:
Động cơ bước hỗn hợp có cấu tạo tương đối phức tạp hơn động cơ nam châm vĩnh cửu. Rotor bao gồm 2 vòng bánh răng và một nam châm vĩnh cửu được đặt ở giữa 2 vòng bánh rănh này-một vòng bánh răng ở cực bắc và vòng còn lại ở cực nam của nam châm vĩnh củu. Với mỗi bước, 2 răng đối nhau trên bánh răng nằm ở cực bắc sẽ bị hút tới 2 cực nam của cuộn dây Stator và 2 răng đối nhau trên bánh răng nằm ở cực nam sẽ bị hút tới 2 cực bắc của cuộn dây Stator. Cấu tạo bên trong tương đối phức tạp song việc điều khiển lại đơn giản hơn động cơ nam châm vĩnh cửu và biến từ trở.
Theo lý thuyết hoạt động của động cơ bước hỗn hợp cũng giống như hoạt động của động cơ biến từ trở, rotor và stator có số răng khác nhau, trong mỗi bước khi cực của stator được cấp điện thì răng rotor gần nhất sẽ quay xếp thẳng hàng với cực này. Tuy nhiên, do nguyên lý của lực từ trường mà trong bất kì lúc nào một nửa số cực của stator là cực bắc, nửa số cực còn lại là cực nam. Để cân bằng lực từ, mỗi cực của stator cần có khả năng chuyển được cực tính một cách nhanh chóng và đúng thời điểm.
Ảnh hưởng của tải.
Vì điều khiển theo kiểu vòng hở nên đòi hỏi mỗi bước phải thật chính xác, nhưng nếu tải quá lớn, động cơ không đủ momen để quay bước. Khi có xung điều khiển đặt vào, rotor chỉ quay nhẹ rồi bị kéo trở lại vị trí gốc, hiện tượng này gọi là ‘bị kẹt’ (stalling).
Trong mỗi bước, momen luôn thay đổi bởi vì step motor phụ thuộc vào góc của trục, thật vậy, khi rotor hướng thẳng hàng với cuộn dây được kích từ thì momen bằng 0. Hình 2.3.4.1 minh họa sự thay đổi momen khi cuộn dây bị kích từ.
Vấn đề này dẫn đến một trạng thái là rotor có thể bị dừng tại một vị trí nào đó mà tại đó momen quay cân bằng với momen cản. Nếu tải vượt quá momen cực đại của động cơ sẽ làm động cơ bị trượt nhanh. Hình 1.4 cho ta hai vấn đề khi ta cho rotor trễ đi một xung kích hay cho xung kích tới sớm hơn như ở hình 1.4 b. Vấn đề thứ nhất là tại đây có momen rất nhỏ hoặc không có momen sinh ra, vấn đề thứ hai là tại đây rotor sẽ bị cân bằng và ta không biết chắc rằng rotor sẽ quay trái hay quay phải.
Do đó bản thân rotor không cho phép trễ quá 1/2 kích thước một bước. Trong thực tế, momen động (dynamic torque : là momen có ích khi động cơ quay) chỉ bằng một nửa momen giữ (holding torque: momen giúp giữ rotor khi dừng).
Kết luận:
Từ những đặc điểm phân tích ở trên, ta thấy được những ưu điểm lớn của step motor , thứ nhất là điều khiển vòng hở, thứ hai là xác định vị trí theo góc bước một cách chính xác. Vấn đề ở đây là phải tính toán momen quay sao cho phù hợp với tải, để khi điều khiển không xảy ra hiện tượng trượt bước.
Công thức tính momen tổng quát: momen=lực*tay đòn.
Công thức tính momen xoắn đối vối động cơ bước:
T=‐h sin( ((π /2) / S)Θ ).
Trong đó:
T—momen xoắn.
h—momen xoắn giữ
S—góc bước (tính bằng radian)
Θ—góc trục.
Với đề tài này, ta không chọn động cơ DC vì thứ nhất cần phải có hồi tiếp về khi hệ thống hoạt động, khi đó ta phải dùng encorder, do đó sẽ phát sinh chi phí thiết kế, thứ hai là khi dừng, động cơ DC không dừng một cách tức thời như step motor, khi đó đòi hỏi ta phải có một phương pháp điều khiển hợp lí, vì trong đề tài của ta vấn đề vị trí của từng điểm rất quan trọng nên tính chất dừng tức thời của step motor rất phù hợp.
Vi điều khiển AT89C51
Giới thiệu.
Vi điều khiển viết tắt của từ micro- controller, là mạch tích hợp trên chip có thể lập trình, được dùng để điều khiển một hệ thống hoạt động theo mong muốn của mình. Hệ thống bao gồm cả phần cứng lẫn phần mềm, phần cứng và phần mềm phải có quan hệ với nhau; vi điều khiển có tập lệnh, khi người lập trình nạp vào vi điều khiển, vi điều khiển tiến hành đọc chương trình, lưu trữ chương trình, xử lí chương trình, đo thời gian tiến hành đóng mở một cơ cấu nào đó.
Vi điều khiển được sử dụng trong các tivi, máy giặt, lò vi-ba, điện thoại…..trong lĩnh vực tự động hóa thì vi điều khiển cũng được sử dụng khá phổ biến như trong robot, trong các băng chuyền, các bộ điều khiển tự động, và vi điều khiển còn ứng dụng trong nhiều thiết bị khác nữa.
Do họ MCS-51TM đã trở thành chuẩn công nghiệp nên có rất nhiều hãng sản xuất ra nó, điển hình là ATMEL Corporation. Hãng này đã kết hợp rất nhiều tính năng dựa trên nền tảng kỹ thuật của mình để tạo ra các vi điều khiển tương thích với MCS-51TM nhưng mạnh mẽ hơn.
AT89C51 cung cấp những đặc tính chuẩn như sau: 4 KB bộ nhớ chỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 2 TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP. Thêm vào đó, AT89C51 được thiết kế với logic tĩnh cho hoạt động đến mức không tần số và hỗ trợ hai phần mềm có thể lựa chọn những chế độ tiết kiệm công suất, chế độ chờ (IDLE MODE) sẽ dừng CPU trong khi vẫn cho phép RAM, timer/counter, port nối tiếp và hệ thống ngắt tiếp tục hoạt động. Chế độ giảm công suất sẽ lưu nội dung RAM nhưng sẽ treo bộ dao động làm mất khả năng hoạt động của tất cả những chức năng khác cho đến khi Reset hệ thống.
Các đặc điểm của 89C51 được tóm tắt như sau:
4 KB bộ nhớ có thể lập trình lại, có khả năng tới 1000 chu kỳ ghi xoá.
Tần số hoạt động từ: 0Hz đến 24 MHz.
3 mức khóa bộ nhớ lập trình.
2 bộ Timer/counter 16 Bit.
128 Byte RAM nội.
4 Port xuất /nhập I/O 8 bit.
Giao tiếp nối tiếp.
64 KB vùng nhớ dữ liệu ngoại.
Xử lý Boolean (hoạt động trên bit đơn).
210 vị trí nhớ có thể định vị bit.
Sơ đồ chân và sơ đồ khối của VĐK AT89C51.
Chức năng các chân AT89C51.
Chân 40: Cung cấp điện áp Vcc.
Chân 20: Chân nối đất.
Port 0 (32 – 39): Là một port 2 chức năng 8 bit Data Bus & 8 bit thấp Address Bus khi có bộ nhớ mở rộng. Khi port 0 là port xuất nhập dữ liệu phải sử dụng điện trở kéo lên bên ngoài.
Port 1 (1 – 8): Là một port I/O-xuất nhập dữ liệu. Sử dụng hoặc không sử dụng bộ nhớ ngoài.
Port 2 (21 – 28): Là một port có 2 chúc năng vừa làm port I/O khi không sử dụng bộ nhớ ngoài, vừa là 8 bit cao Address Bus khi sử dụng bộ nhớ ngoài.
Port 3 (10 – 17): Là một port có 2 chức năng vừa là port xuất nhập dữ liệu khi không sử dụng bộ nhớ ngoài vừa là các tín hiệu điều khiển khi sử dụng bộ nhớ ngoài hoặc thực hiện những chức năng đặc biệt.
Bit
Tên
Địa chỉ
Chức năng
P3.0
RxD
B0H
Thu dữ liệu của port nối tiếp
P3.1
TxD
B1H
Phát dữ liệu của port nối tiếp
P3.2
INT0\
B2H
Ngõ vào ngắt ngoài 0
P3.3
INT1\
B3H
Ngõ vào ngắt ngoài 1
P3.4
T0
B4H
Ngõ vào của bộ định thời/đếm 0
P3.5
T1
B5H
Ngõ vào của bộ định thời/đếm 1
P3.6
WR\
B6H
Điều khiển ghi vào RAM ngoài
P3.7
RD\
B7H
Điều khiển đọc vào RAM ngoài
PSEN (Program Store Enable), (chân 29): Là tín hiệu điều khiển để cho phép bộ nhớ chương trình mở rộng và thường được nối đến chân OE (output enable) của một EPROM để cho phép đọc các byte mã lệnh.
PSEN ở mức thấp trong thời gian Microcontroller 8951 lấy lệnh. Các mã lệnh của chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong 8951 để giải mã lệnh. Khi 8951 thi hành chương trình trong ROM nội PSEN sẽ ở mức logic 1 .
ALE (Address Latch Enable), (chân 30): Khi 8951 truy xuất bộ nhớ bên ngoài, port 0 có chức năng là bus địa chỉ và bus dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chip và có thể được dùng làm tín hiệu clock cho các phần khác của hệ thống. Chân ALE được dùng làm ngõ vào xung lập trình cho Eprom trong 8951.
EA (External Access), (chân 31): Tín hiệu vào EA nếu ở mức cao thì thực hiện chương trình từ ROM nội. Nếu ở mức thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
RST (reset), (chân 9): 8951 sẽ được reset khi RST ở mức cao.
Hoạt động reset:
Khi ngõ RST này được đưa lên cao (trong ít nhất hai chu kì máy), các thanh ghi bên trong AT89C51 được tải những giá trị thích hợp để khởi động hệ thống.
Các ngõ vào bộ dao động (chân 18, 19): XTAL1 và XTAL2 là hai ngõ vào và ra của một bộ khuếch đại dao động nghịch được cấu hình để dùng như một bộ dao động trên chip.
Tổ chức bộ nhớ.
Gồm có 4Kbyte ROM nội, 128 byte RAM nội và có thể mở rộng tối đa 64Kbyte bộ nhớ chương trình và 64Kbyte bộ nhớ dữ liệu.
Theo Hình 2.4.1, RAM bên trong 8951được phân chia giữa các bank thanh ghi (00H–1FH), RAM địa chỉ hóa từng bit (20H–2FH), RAM đa dụng (30H–7FH) và các thanh ghi chức năng đặc biệt (80H–FFH).
RAM nội:
Bank thanh ghi (00H – 1FH): 8951 hỗ trợ 8 thanh ghi (R0 – R7), các lệnh dùng thanh ghi R0 – R7 thì sẽ ngắn hơn các lệnh tương ứng nhưng dùng địa chỉ trực tiếp. Các giá trị dữ liệu được dùng thường xuyên nên dùng một trong các thanh ghi này. Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bank thanh ghi trong PSW.
RAM địa chỉ hóa từng bit (20H – 2FH)
RAM đa dụng-đa chức năng (30H – 7FH)
Các thanh ghi chức năng đặc biệt (80H – FFH) bao gồm:
Thanh ghi từ trạng thái chương trình PSW:
Thanh ghi
Trạng thái
Bộ đếm chương trình
0000 H
A
00 H
B
00 H
PSW
00 H
SP
07 H
DPTR
0000 H
Port 0®3
FF H
IP
XXX00000 B
IE
0XX00000 B
Các thanh ghi định thời
00 H
SCON
00 H
SBUF
00 H
PCON (HMOS)
0XXXXXX B
PCON (CMOS)
0XXX0000 B
Cờ nhớ
Cờ nhớ (CY) có công dụng kép. Thông thường nó được dùng cho các lệnh toán học : nó sẽ được set nếu có một số nhớ sinh ra bởi phép cộng hoặc có một số mượn bởi phép trừ. Ví dụ, nếu thanh ghi tích lũy chứa 0FFH, thì lệnh ADD A, #1 sẽ trả về thanh ghi tích lũy kết quả 00H và set cờ nhớ trong PSW.
Cờ nhớ cũng có thể xem như một thanh ghi 1 bit cho các lệnh luận lý thi hành trên bit.
Cờ nhớ phụ
Khi cộng các số BCD, cờ nhớ phụ (AC) được set nếu kết quả của 4 bit thấp trong khoảng 0AH đến 0FH. Nếu các giá trị được cộng là số BCD, thì sau lệnh cộng cần có DA A (hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết quả lớn hơn 9 vào nibble cao.
Cờ 0 Cờ 0 (F0) là 1 bit cờ đa dụng dành cho các ứng dụng của người dùng.
Các bit chọn bank thanh ghi
Các bit chọn bank thanh ghi (RS0 và RS1) xác định bank thanh ghi được tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần. Ví dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7 (địa chỉ byte 1FH) đến thanh ghi tích lũy :
SETB RS1
SETB RS0
MOV A, R7
Khi chương trình được hợp dịch, các địa chỉ bit đúng được thay thế cho các ký hiệu “RS1” và “RS0”. Vậy, lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H.
Cờ tràn
Cờ tràn (OV) được set sau một lệnh cộng hoặc trừ nếu có một phép toán bị tràn. Khi các số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này để xác định xem kết quả có nằm trong tầm xác định không. Khi các số không dấu được cộng, bit OV có thể được bỏ qua. Các kết quả lớn hơn +127 hoặc nhỏ hơn -128 sẽ set bit 0V.
Thanh ghi B (F0H): được dùng cùng với thanh ghi tích lũy A cho các phép toán nhân, chia.
Con trỏ ngăn xếp (SP: 81H): Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở địa chỉ 81H. Nó chứa địa chỉ của byte dữ liệu hiện hành trên đỉnh của ngăn xếp. Các lệnh trên ngăn xếp bao gồm các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp. Lệnh cất dữ liệu vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp sẽ đọc dữ liệu và giảm SP.
Con trỏ dữ liệu (DPTR: 83H – 82H): được dùng để truy xuất bộ nhớ ngoài, là một thanh ghi 16 bit ở địa chỉ 82H (DPL : byte thấp) và 83H (DPH : byte cao). Ba lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H :
MOV A, #55H
MOV DPTR, #1000H
MOVX @DPTR, A
Lệnh đầu tiên dùng địa chỉ tức thời để tải dữ liệu 55H vào thanh ghi tích lũy. Lệnh thứ hai cũng dùng địa chỉ tức thời, lần này để tải dữ liệu 16 bit 1000H vào con trỏ dữ liệu. Lệnh thứ ba dùng địa chỉ gián tiếp để di chuyển dữ liệu trong A (55H) đến RAM ngoài ở địa chỉ được chứa trong DPTR (1000H).
Các thanh ghi port I/O: port 0, port 1, port 2, port 3
Các thanh ghi Timer: timer 0: 8CH – 8AH ; timer 1: 8DH – 8BH ; TMOD: 89H ; TCON: 88H
Các thanh ghi port nối tiếp SBUF: 99H ; SCON: 98H
Các thanh ghi ngắt: 8951 có 5 nguồn ngắt được cho phép bằng thanh ghi IE: A8H
Thanh ghi điều khiển công suất PCON: 87H.
Khi có hoạt động reset, trạng thái của các thanh ghi:
Thanh ghi
Trạng thái
Bộ đếm chương trình
0000 H
A
00 H
B
00 H
PSW
00 H
SP
07 H
DPTR
0000 H
Port 0®3
FF H
IP
XXX00000 B
IE
0XX00000 B
Các thanh ghi định thời
00 H
SCON
00 H
SBUF
00 H
PCON (HMOS)
0XXXXXX B
PCON (CMOS)
0XXX0000 B
Một số chức năng của AT89C51
Bộ định thời Timer
8951 có hai timer 16 bit, mỗi timer có 4 cách làm việc. Người ta sử dụng các timer để: định khoảng thời gian; đếm sự kiện hoặc tạo tốc độ baud cho port nối tiếp trong 8951.
Truy xuất các timer của 8951 dùng 6 thanh ghi chức năng đặc biệt cho trong bảng sau:
SFR
Mục đích
Địa chỉ
Địa chỉ hóa từng bit
TCON
Điều khiển Timer
88H
Có
TMOD
Chế độ Timer
89H
Không
TL0
Byte thấp của Timer 0
8AH
Không
TL1
Byte thấp của Timer 1
8BH
Không
TH0
Byte cao của Timer 0
8CH
Không
TH1
Byte cao của Timer 1
8DH
Không
Thanh ghi chế độ Timer (TMOD):
Bit
Tên
Timer
Mô tả
7
GATE
1
Bit (mở) cổng, khi lên 1, timer chỉ chạy
khi INT1 ở mức cao
6
C/T
1
Bit chọn chế độ counter/timer
1 = bộ đếm sự kiện
0 = Bộ định khoảng thời gian
5
M1
1
Bit 1 của chế độ (mode)
4
M0
1
Bit 0 của chế độ:
00=chế độ 0: timer 13 bit
01=chế độ 1: timer 16 bit
10=chế độ 2: tự động nạp lại 8 bit
11=chế độ 3: tách timer
3
GATE
0
Bit (mở) cổng
2
C/T
0
Bit chọn counter/timer
1
M1
0
Bit 1 của chế độ
0
M0
0
Bit 0 của chế độ
Thanh ghi điều khiển Timer (TCON).
Bit
Ký hiệu
Địa chỉ
Mô tả
TCON.7
TF1
8FH
Cờ báo tràn Timer 1. Đặt bởi phần cứng khi tràn, được xóa bởi phần mềm hoặc phần cứng khi bộ xử lý chỉ đến chương trình phục vụ ngắt.
TCON.6
TR1
8EH
Bit điều khiển timer 1 chạy. Đặt/xóa bằng phần mềm để cho timer chạy/ngưng
TCON.5
TF0
8DH
Cờ báo tràn timer 0
TCON.4
TR0
8CH
Bit điều khiển timer 0 chạy
TCON.3
IE1
8BH
Cờ cạnh ngắt 1 bên ngoài. Đặt bởi phần cứng khi phát hiện một cạnh xuống ở INT1; xóa bằng phần mềm hoặc bằng phần cứng khi CPU chỉ đến chương trình phục vụ ngắt.
TCON.2
IT1
8AH
Cờ kiểu ngắt 1 bên ngoài. Đặt/xóa bằng phần mềm để ngắt ngoài tích cực cạnh xuống/mức thấp.
TCON.1
IE0
89H
Cờ cạnh ngắt 0 bên ngoài
TCON.0
IT0
88H
Cờ kiểu ngắt 0 bên ngoài
Serial port (Port nối tiếp)
AT89C51 có một port nối tiếp trong chip có thể hoạt động ở nhiều chế độ trên một dải tần số rộng. Chức năng chủ yếu của port nối tiếp là thực hiện chuyển đổi song song sang nối tiếp đối với dữ liệu xuất, và chuyển đổi nối tiếp sang song song với dữ liệu nhập.
Hai thanh ghi chức năng đặc biệt cho phép phần mềm truy xuất đến port nối tiếp là: SBUF và SCON. Viết vào SBUF để nạp dữ liệu sẽ được phát, và đọc SBUF để truy xuất dữ liệu thu được.
Thanh ghi điều khiển port nối tiếp:
Bit
Ký hiệu
Địa chỉ
Mô tả
SCON.7
SM0
9FH
Bit 0 của chế độ port nối tiếp
SCON.6
SM1
9EH
Bit 1 của chế độ port nối tiếp
SCON.5
SM2
9DH
Bit 2 của chế độ port nối tiếp. Cho phép truyền thông đa xử lý trong các chế độ 2 và 3; RI sẽ không bị tác động nếu bit thứ 9 thu được là 0
SCON.4
REN
9CH
Cho phép bộ thu phải được đặt lên 1 để thu các ký tự
SCON.3
TB8
9BH
Bit 8 phát, bit thứ 9 được phát trong các chế độ 2 và 3; được đặt và xóa bằng phần mềm
SCON.2
RB8
9AH
Bit 8 thu, bit thứ 9 thu được
SCON.1
TI
99H
Cờ ngắt phát. Đặt lên 1 khi kết thúc phát ký tự; được xóa bằng phần mềm
SCON.0
RI
98H
Cờ ngắt thu. Đặt lên 1 khi kết thúc thu ký tự; được xóa bằng phần mềm
Các chế độ port nối tiếp:
SM0
SM1
Chế độ
Mô tả
Tốc độ baud
0
0
0
Thanh ghi dịch
Cố định (FOSC/12)
0
1
1
UART 8 bit
Thay đổi (đặt bằng timer)
1
0
2
UART 9 bit
Cố định (Fosc chia cho 12 hoặc 64)
1
1
3
UART 9 bit
Thay đổi (đặt bằng timer)
Ngắt (Interrupt).
Một ngắt là sự xảy ra một điều kiện - một sự kiện – mà nó gây ra treo tạm thời chương trình trong khi điều kiện đó được phục vụ bởi một chương trình khác. Chương trình giải quyết ngắt được gọi là chưong trình phục vụ ngắt (ISR: Interrupt Service Routine). Khi ngắt xảy ra, chương trình chính tạm thời bị treo và rẻ nhánh đến ISR: ISR thực thi và kết thúc bằng lệnh trở về từ ngắt, chương trình chính tiếp tục thực thi ở chỗ mà nó tạm dừng.
Tổ chức ngắt ở 8951: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port nối tiếp. Tất cả các ngắt đều mặc nhiên bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm. Khi có hai hoặc nhiều ngắt đồng thời, hoặc một ngắt xảy ra trong khi một ngắt khác đang được phục vụ, có cả hai sự tuần tự hỏi vòng và sơ đồ ưu tiên hai mức dùng để xác định việc thực hiện các ngắt.
Cho phép và cấm các ngắt thông qua thanh ghi chức năng đặt biệt IE (Interrupt Enable).
Bi
Các file đính kèm theo tài liệu này:
- 82398297-Bao-Cao.doc