Tải bản đầy đủ (.docx) (38 trang)

Đồ án chuyên ngành động cơ bước

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.57 MB, 38 trang )

TRƯỜNG ĐHSPKT HƯNG YÊN

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA ĐIỆN - ĐIỆN TỬ

Độc lập - Tự do - Hạnh phúc

------------

------------

ĐỒ ÁN CHUYÊN NGÀNH I

Khóa học: 2012-2016
Ngành học: Tự động hóa công nghiệp
Lớp: Đ- ĐT K10.1

ĐỀ TÀI: THIẾT KẾ CHẾ TẠO MẠCH ĐIỀU KHIỂN
ĐỘNG CƠ BƯỚC

Giảng viên hướng dẫn :

Đỗ Quang Huy

Nhóm sinh viên thực hiện:

Hoàng Văn Công
Trương Văn Dự

Hưng Yên, Ngày 21 tháng 4 năm 2015



LỜI NÓI ĐẦU


Trong những năm gần đây, nền kinh tế của nước ta phát triển rất mạnh mẽ và
nhanh chóng, để đạt được kết quả như này thì có sự đóng góp rất lớn của ngành kĩ
thuật điện tử, kỹ thuật vi xử lý.
Với sự phát triển như vũ bão như hiện nay thì kỹ thuật điện tử, kĩ thuật vi xử
lý đang xâm nhập vào tất cả các ngành khoa học – kỹ thuật khác và đã đáp ứng được
mọi nhu cầu của người dân. Sự ra đời của các vi mạch điều khiển với giá thành giảm
nhanh, khả năng lập trình ngày càng cao đã mang lại những thay đổi sâu sắc trong
ngành kỹ thuật điện tử.
Và việc ứng dụng các kỹ thuật này vào thực tế sẽ giúp ích rất nhiều cho mọi người.
Để góp một phần nhỏ vào việc này chúng em đã thực hiện đề tài “Thiết kế chế tạo
mạch điều khiển động cơ bước ” thông qua đề tài này chúng em sễ có những điều
kiện tốt nhất để học hỏi, tích lũy kinh nghiệm quý báu, bổ xung thêm vào hành
trang của mình trên con đường đã chọn.
Trong suốt quá trình thực hiện đề tài chúng em đã nhận được sự hướng dẫn tận
tình của thầy “ Đỗ Quang Huy” và các thầy cô trong khoa điện- điện tử. Chúng em
xin chân thành cám ơn các thầy cô. Tuy nhiên trong quá trình thực hiện đồ án do
kiến thức hiểu biết còn hạn hẹp cũng như chúng em chưa có nhiều điều kiện khảo
sát thực tế nhiều, thời gian làm đồ án không dài do vậy đồ án của chúng em cũng
không thể tránh được những thiếu sót. Chúng em rất mong thầy cô và các các bạn
đóng góp và bổ sung ý kiến để đồ án của chúng em thêm hoàn thiện hơn.

Chúng em xin chân thành cảm ơn !

NHẬN XÉT CỦA GIÁO VIÊN



...........................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
................................................................................................................................
..... ..........................................................................................................................
...... .........................................................................................................................
....... ........................................................................................................................
........
Hưng Yên, Ngày 21 tháng 4 năm 2015
Giáo viên hướng dẫn

Đỗ Quang Huy

MỤC LỤC



CHƯƠNG I : Yêu cầu và mục tiêu của đề tài........................................................5
1.1 Phân tích yêu cầu của đề tài.................................................................................5
1.2 Mục tiêu của đề tài...............................................................................................5
1.3 Phương án thực hiện.............................................................................................5
1.4 Ý nghĩa của đề tài.................................................................................................5
CHƯƠNG II : Cơ sở lý thuyết.................................................................................6
2.1 Tổng quan về động cơ bước.................................................................................6
2.1.1 Giới thiệu về các loại động cơ bước đã chọn.............................................6
2.1.2 Các phương pháp điều khiển động cơ bước.............................................10
2.2 Vi xử lý AT89C51..............................................................................................10
2.2.1 Giới thiệu chung về AT89C51. ................................................................10
2.2.2 Sơ đồ khối của 89C51...............................................................................11
2.2.3 Sơ đồ chân của 89C51..............................................................................13
2.3 Chip DS1307......................................................................................................26
2.4 Opto PC817........................................................................................................30
Chương III : Thiết kế và thi công mạch. .............................................................32
3.1 Sơ đồ mạch nguyên lí và sơ đồ board. ..............................................................32
3.2 Tính toán lựa chọn các linh kiện trong mạch. ...................................................33
3.3 Lưu đồ thuật toán. ..............................................................................................34
KẾT LUẬN. ...........................................................................................................35
TÀI LIỆU THAM KHẢO……………………………………………………….38

CHƯƠNG I : YÊU CẦU VÀ MỤC TIÊU CỦA ĐỀ TÀI


1.1 : Phân tích yêu cầu của đề tài.
Với yêu cầu của đề tài ta phải thiết kế mạch điều khiển được động cơ bước. Từ đó
đưa ra ứng dụng của động cơ bước như quay đĩa mặt trời theo thời gian thực, ...
1.2 : Mục tiêu của đề tài.
- Nắm được một cách tổng quan về các phần tử vi xử lí.

- Nghiên cứu về các cách điều khiển động cơ bước từ đó hiểu nguyên lý của mạch
điều khiển rồi lựa chọn phương án tối ưu nhất để áp dụng vào đồ án và trong thực tế.
1.3 : Phương án thực hiện.
- Lập kế hoạch thực hiện.
- Giới thiệu một số ứng dụng và đặc điểm của mạch điều khiển động cơ bước
- Phân tích nguyên lý làm việc và các thông số trong mạch điều khiển động cơ bước
- Thiết kế, chế tạo mạch
- Thí nghiệm, kiểm tra sản phẩm, sản phẩm phải đảm bảo yêu cầu kỹ thuật, mỹ thuật.
Quyển thuyết minh, Folie mô tả đầy đủ nội dung của đề tài.
1.4 : Ý nghĩa của đề tài.
Để giúp sinh viên có thể có thể củng cố kiến thức, tổng hợp và nâng cao kiến thức
chuyên nghành cũng như kiến thức ngoài thực tế. Đề tài còn thiết kế chế tạo thiết bị,
mô hình để các sinh viên trong trường đặc biệt là sinh viên khoa Điện – Điện tử tham
khảo, học hỏi tạo tiền đề nguồn tài liệu cho các học sinh, sinh viên khoá sau có thêm
nguồn tài liệu để nghiên cứu và học tập.
Những kết quả thu được sau khi hoàn thành đề tài này trước tiên là sẽ giúp chúng
em có thể hiểu sâu hơn về các loại động cơ bước, các phương pháp điều khiển động
cơ bước. Từ đó sẽ tích luỹ được kiến thức cho các năm học sau và ra ngoài thực tế.


CHƯƠNG II : CƠ SỞ LÝ THUYẾT.
2.1 Tổng quan về động cơ bước
Động cơ bước là một loại động cơ điện có nguyên lý và ứng dụng khác biệt với đa
số động cơ điện thông thường. Chúng thực chất là động cơ đồng bộ dùng để biến đổi
các tín hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển
động góc quay hoặc chuyển động của roto có khả năng cố định roto và các vị trí cần
thiết.
2.1.1 Giới thiệu về loại động cơ bước đã lựa chọn
Động cơ bước được chia làm hai loại, nam châm vĩnh cửu và biến từ trở (cũng có
loại động cơ hỗn hợp nữa, nhưng nó không khác biệt gì với động cơ nam châm vĩnh

cửu). Nếu mất đi nhãn trên động cơ ta vẫn có thể phân biệt hai loại động cơ này bằng
cảm giác mà không cần cấp điện cho chúng. Động cơ nam châm vĩnh cửu dường như
có các nấc khi ta dùng tay xoay nhẹ rotor , trong khi động cơ biến từ trở thì dường như
xoay tự do (mặc dù cảm thấy cũng có những nấc nhẹ bởi sự giảm từ tính trong rotor).
Ta cũng có thể phân biệt hai loại động cơ này bằng ohm kế. Động cơ biến từ trở
thường có 3 mấu, với một dây về chung, trong khi đó, động cơ nam châm vĩnh cửu
thường có hai mấu phân biệt, có hoặc không có nút trung tâm. Nút trung tâm được
dùng trong động cơ nam châm vĩnh cửu đơn cực. Động cơ bước phong phú về góc
quay. Các động cơ kém nhất quay 90 độ mỗi bước, trong khi đó các động cơ nam
châm vĩnh cửu xử lý cao thường quay 1.8 độ đến 0.72 độ mỗi bước. Với một bộ điều
khiển, hầu hết các loại động cơ nam châm vĩnh cửu và hỗn hợp đều có thể chạy ở chế
độ nửa bước, và một vài bộ điều khiển có thể điều khiển các phân bước nhỏ hơn hay
còn gọi là vi bước. Đối với cả động cơ nam châm vĩnh cửu hoặc động cơ biến từ trở,
nếu chỉ một mấu của động cơ được kích, rotor (ở không tải) sẽ nhảy đến một góc cố
định và sau đó giữ nguyên ở góc đó cho đến khi moment xoắn vượt qua giá trị
moment xoắn giữ (hold torque) của động cơ.


Hình 2.1 : Sơ

đồ cấu tạo động

cơ bước đơn

cực.

Động cơ bước đơn cực, cả nam châm vĩnh cửu và động cơ hỗn hợp, với 5, 6
hoặc 8 dây ra thường được quấn như sơ đồ hình 2.1, với một đầu nối trung tâm trên
các cuộn. Khi dùng, các đầu nối trung tâm thường được nối vào cực dương
nguồn cấp, và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ

trường tạo bởi cuộn đó.
Sự khác nhau giữa hai loại động cơ nam châm vĩnh cửu đơn cực và động cơ hỗn
hợp đơn cực không thể nói rõ trong nội dung tóm tắt của tài liệu này. Từ đây, khi
khảo sát động cơ đơn cực, chỉ khảo sát động cơ nam châm vĩnh cửu, việc điều khiển
động cơ hỗn hợp đơn cực hoàn toàn tương tự. Mấu 1 nằm ở cực trên và dưới của
stator, còn mấu 2 nằm ở hai cực bên phải và bên trái động cơ. Rotor là một nam châm
vĩnh cửu với 6 cực, 3 Nam và 3 Bắc,xếp xen kẽ trên vòng tròn.
Để xử lý góc bước ở mức độ cao hơn, rotor phải có nhiều cực đối xứng hơn.
Động cơ 30 độ mỗi bước là một trong những thiết kế động cơ nam
châm vĩnh cửu thông dụng nhất, mặc dù động cơ có bước 15 độ và 7.5 độ là khá
lớn. Người ta cũng đã tạo ra được động cơ nam châm vĩnh cửu với mỗi bước là
1.8 độ và với động cơ hỗn hợp mỗi bước nhỏ nhất có thể đạt được là 3.6 độ đến
1.8 độ, còn tốt hơn nữa, có thể đạt đến 0.72 độ.
Như trong hình, dòng điện đi qua từ đầu trung tâm của mấu 1 đến đầu a tạo ra
cực Bắc trong stator trong khi đó cực còn lại của stator là cực Nam. Nếu điện ở
mấu 1 bị ngắt và kích mấu 2, rotor sẽ quay 30 độ, hay 1 bước. Để quay động cơ
một cách liên tục, chúng ta chỉ cần áp điện vào hai mấu của đông cơ theo dãy.
Mấu 1a 1000100010001000100010001 Mấu 1a 1100110011001100110011001


Mấu 1b 0010001000100010001000100 Mấu 1b 0011001100110011001100110
Mấu 2a 0100010001000100010001000 Mấu 2a 0110011001100110011001100
Mấu 2b 0001000100010001000100010 Mấu 2b 1001100110011001100110011
thời gian ‐‐>

thời gian ‐‐>

Nhớ rằng hai nửa của một mấu không bao giờ được kích cùng một lúc. Cả hai
dãy nêu trên sẽ quay một động cơ nam châm vĩnh cửu một bước ở mỗi thời
điểm. Dãy bên trái chỉ cấp điện cho một mấu tại một thời điểm, như mô tả trong

hình trên; vì vậy, nó dùng ít năng lượng hơn. Dãy bên phải đòi hỏi cấp điện cho
cả hai mấu một lúc và nói chung sẽ tạo ra một moment xoắy lớn hơn dãy bên
trái 1.4 lần trong khi phải cấp điện gấp 2 lần.
Phần Điều khiển mức trung bình trong tài liệu này sẽ cung cấp chi tiết về
phương pháp tạo ra những dãy tín hiệu điều khiển như vậy, còn phần Các mạch
điều khiển nói về mạch đóng ngắt các mạch điện cần thiết để điều khiển các
mấu động cơ từ các dãy điều khiển trên.
Vị trí bước được tạo ra bởi hai chuỗi trên không giống nhau; kết quả, kết hợp 2
chuỗi trên cho phép điều khiển nửa bước, với việc dừng động cơ một cách lần
lượt tại những vị trí đã nêu ở một trong hai dãy trên. Chuỗi kết hợp như sau:
Mấu 1a 11000001110000011100000111
Mấu 1b 00011100000111000001110000
Mấu 2a 01110000011100000111000001
Mấu 2b 00000111000001110000011100
Thời gian ‐‐>


Hình 2.2 : Sơ đồ cấu tạo động cơ bước hai cực.

Động cơ nam châm vĩnh cửu hoặc hỗn hợp hai cực có cấu trúc cơ khí giống y như
động cơ đơn cực, nhưng hai mấu của động cơ được nối đơn giản hơn, không có đầu
trung tâm. Vì vậy, bản thân động cơ thì đơn giản hơn, nhưng mạch điều khiển để đảo
cực mỗi cặp cực trong động cơ thì phức tạp hơn. Minh hoạ ở hình 2.2 chỉ ra cách nối
động cơ, trong khi đó phần rotor ở đây giống y như ở hình 2.1.
Hoạt động : Động cơ bước không quay theo cơ chế thông thường , chúng quay
theo từng bước nên có độ chính xác rất cao về mặt điều khiển học chúng làm việc nhờ
các bộ chuyển mạch điênh tử đưa các tín hiệu điều khiển vào stato theo thư tự và mộ
tần số nhất định. Tổng số góc quay của roto tương ứng với số lần chuyển mạch, cũng
như chiều quay và tốc độ quay của roto phụ thuộc và thứ tự chuyển đổi và tần số
chuyển đổi.

Ứng dụng :
Trong điều khiển chuyển động kỹ thuật số , động cơ bước là một cơ cấu chấp hành
đặc biệt hữu hiệu bởi nó có thể thực hiện trung thành các lệnh đưa ra dưới dạng số.
Động cơ bước được ứng dụng trong nhiều ngành : Tự động hóa , chúng được ứng
dụng trong các thiết bị cần điều khiển chính xác. Ví dụ điều khiển robot, điều khiển
tiêu cự trong các hệ quang học, điều khiển định vị, bám mục tiêu trong các khí tài
quan sát , điều khiển lập trình trong các thiết bị gia công cắt gọt, điều khiển các cơ cấu
lái phương và chiều trong máy bay….


Trong công nghệ máy tính động cơ bước được sử dụng cho các loại ổ đĩa cứng, đĩa
mềm ,máy in….
2.1.2 Các phương pháp điều khiển động cơ bước
Tùy thuộc vào momen yêu cầu trên trục động cơ và tốc độ quay mà ta có thể áp
dụng các phương pháp điều khiển khác nhau cho động cơ bước:
-

Trong vùng tốc độ thấp chỉ cần sử dụng phương pháp điều khiển điện áp trực

tiếp.
-

Trong vùng tốc độ cao sử dụng điện trở nối thêm vào các cuộn dây của động

cơ.
-

Khi hằng số thời gian của động cơ giảm dòng điện tăng nhanh hơn làm đặc tính

cơ của động cơ cứng hơn vì vậy phương pháp điều khiển băm xung thường được sử

dụng nhằm nâng cao hiệu suất tăng , tăng độ cứng cho đặc tính cơ động cơ bước.
2.2 Vi Xử Lý AT89C51.
2.2.1 Giới thiệu chung về AT89C51.
 Giới thiệu:
Bộ vi điều khiển viết tắt là Mircro-controller là mạch tích hợp trên một chíp có thể
lập trình được, dùng để điều khiển hoạt động của một hệ thống. Theo các tập lệnh của
người lập trình bộ vi điều khiển tiến hành đọc, lưu trữ thông tin, xử lý thông tin, đo
thời gian và tiến hành đóng mở một cơ cấu nào đó.
Trong các thiết bị điện và điện tử dân dụng các bộ vi điều khiển điều khiển hoạt
động của TV, máy giặt, điện thoại, lò vi-ba…Trong hệ thống sản xuất tự động, bộ vi
điều khiển được sử dụng trong Robot, dây chuyền tự động. Các hệ thống càng “thông
minh” thì vai trò của hệ vi điều khiển càng quan trọng.
 Khảo sát bộ vi điều khiển (8951)
IC vi điều khiển 8051(8951) thuộc họ MCS51 có các đặc điểm sau:
- 4Kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8951)
- 128 byte RAM
- 4 port I10 8 bit


- Hai bộ định thời 16bit
- Giao tiếp nối tiếp
- 64KB không gian bộ nhớ chương trình mở rộng
- 64KB không gian bộ nhớ dữ liệu mở rộng
- 1 bộ xử lý luận lý (thao tác trên các bit đơn)
- 210bit được địa chỉ hoá
- Bộ nhân / chia 4µs
2.2.2 Sơ đồ khối của 89C51

Hình 2.2.1 Sơ đồ khối của 89C51
Phần chính của vi điều khiển 8051(8951) là bộ vi xử lý trung tâm (CPU: Central

Processing Unit) bao gồm:


- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia.
- Đơn vị logic học (ALU: Arithmetic Logical Unit)
- Từ trạng thái chương trình (PSW: Program Status Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
- Ngoài ra còn có bộ nhớ chương trình, bộ giải mã lệnh, bộ điều khiển thời gian và
logic.
Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động, ngoài ra còn có khả
năng đưa một tín hiệu giữ nhịp từ bên ngoài.
Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ngắt ở bên
trong. Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm định thời
hoặc cũng có thể là giao diện nối tiếp.
Hai bộ định thời 16bit hoạt động như một bộ đếm.
Các cổng (port0, port1, port2, port3) sử dụng vào mục đích điều khiển.
Ở cổng 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên
ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài.
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ làm việc
độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong vảy rộng và được
ấn định bằng một bộ định thời.
Trong vi điều khiển 8051(8951) có hai thành phần quan trọng khác đó là bộ nhớ và
các thanh ghi:
- Bộ nhớ gồm có bộ nhớ RAM dùng để lưu trữ dữ liệu và mã lệnh.
- Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lý. Khi CPU làm việc
nó làm thay đổi nội dung của các thanh ghi.



2.2.3 Sơ đồ chân của 89C51.

Hình 2.2.2 Sơ đồ chân của 89C51.
*Port0: Là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ nhỏ
(không dùng bộ nhớ mở rộng) có hai chức năng như các đường IO. Đối với các thiết
kế cỡ lớn (với bộ nhớ mở rộng) nó được kết hợp kênh giữa các bus.
*Port1: Là một port I/O trên các chân 1-8. Các chân được ký hiệu P1.0, P1.1, P1.2...
có thể dùng cho các thiết bị ngoài nếu cần. Port1 không có chức năng khác, vì vậy
chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài.
*Port2: Là một port công dụng kép trên các chân 21-28 được dùng như các đường
xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng.
*Port3: là một port công dụng kép trên các chân 10-17. Các chân của port này có
nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tính đặc biệt của
8951 như ở bảng sau:


Bit

Tên

Chức năng chuyển đổi

P3.0

RXD

Dữ liệu nhận cho port nối tiếp

P3.1


TXD

Dữ liệu phát cho port nối tiếp

P3.2

INTO

Ngắt 0 bên ngoài

P3.3

INT1

Ngắt 1 bên ngoài

P3.4

TO

Ngõ vào của Timer/Counter 0

P3.5

T1

Ngõ vào của Timer/Counter 1

P3.6


WR

Xung ghi bộ nhớ dữ liệu ngoài

P3.7

RD

Xung đọc bộ nhớ dữ liệu ngoài

Bảng 2.1: Chức năng của các chân trên Port3
- PSEN (Program Store Enable): 8951 có 4 tín hiệu điều khiển PSEN là tín hiệu ra
trên chân 29. Nó 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 sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình
được đọc từ EPROM qua bus và được chốt vào thanh ghi lệnh của 8951 để giải mã
lệnh. Khi thi hành chương trình trong ROM nội PSEN sẽ ở mức thụ động (mức cao).
- ALE (Address Latch Enable):
Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý
8585, 8088, 8086, 8051 dùng ALE một cách tương tự cho làm việc giải các kênh các
bus địa chỉ và dữ liệu khi port0 đựoc dùng trong chế độ chuyển đổi của nó: vừa là bus
dữ liệu vừa là bus thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào một thanh ghi
bên ngoài trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đường port0 dùng để xuất
hoặc nhập dữ liểutong nửa sau chu kỳ của bộ nhớ.
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à nguồn xung nhịp cho các hệ thống. Nếu xung trên 8051(8951) là 12
MHz thì ALE có tần số 2MHz. Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE



sẽ bị mất. Chân này cũng được làm ngõ vào cho xung lập trình cho EPROM trong
8051(8951).
- EA (External Access):
Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao (+5V) hoặc mức thấp
(GND). Nếu ở mức cao, 8051(8951) thi hành chương trình từ ROM nội trong khoảng
địa chỉ thấp (4K). Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ mở
rộng.Nếu EA được nối mức thấp bộ nhớ bên trong chương trình 8051(8951) sẽ bị cấm
và chương trình thi hành từ EPROM mở rộng. Người ta còn dùng chân EA làm chân
cấp điện áp 21V khi lập trình cho EPROM trong 8051(8951).
-

SRT (Reset):

Ngõ vào RST trên chân 9 là ngõ Reset của 8051(8951). Khi tín hiệu này được đưa
lên mức cao (trong ít nhất 2 chu kỳ máy), các thanh ghi trong 8951 đựoc tải những giá
trị thích hợp để khởi động hệ thống.
- Các ngõ vào bộ dao động trên chip:
8051(8951) có một bộ dao động trên chip. Nó thường được nối với thạch anh giữa
hai chân 18 và 19. Các tụ giữa cũng cần thiết. Tần số thạch anh thông thường là 12
MHz.
- Các chân nguồn:
8051(8951) vận hành với nguồn đơn +5V. VCC được nối vào chân 40 và GND
được nối vào chân 20.
 Các thanh ghi chức năng đặc biệt:
- Từng trạng thái chương trình:
- 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ộng được 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 luỹ) để mang kết quả lớn hơn 9 trở về tâm
từ 0 ÷ 9.

- Cờ 0:


Cờ 0 (F0) là một bit cờ đa dụng dành 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 xoá sau khi reset hệ thống và được thay đổi bằng phần mềm nếu cần.
- Cờ tràn:
Cờ tràn (OV) được set 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ủa nó 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
- Thanh ghi B:
Thanh ghi B ở địa chỉ F0H được dùng cùng với thanh ghi tích luỹ A cho các phép
toán nhân và chia.
- Con trỏ ngăn xếp:
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à làm giảm SP. Ngăn xếp của 8051/8951 được giữ trong RAM nội và
được giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là 128 byte
đầu của 8051/8951.
Trên 8051/8951 ngăn xếp bị giới hạn bởi 32 byte vì địa chỉ cao nhất của RAM trên
chip là 7FH.
- Con trỏ dữ liệu:
Con trỏ dữ liệu (DPTR) đượ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).


- Các thanh ghi port xuất nhập:


Các port của 8951 bao gồm Port0 ở địa chỉ 80H, Port1 ở địa chỉ 90H, Port2 ở địa
chỉ A0H và Port3 ở địa chỉ B0H. Tất cả các port đều được địa chỉ hoá từng bit. Điều
đó cung cấp một khả năng giao tiếp thuận lợi.
-

Các thanh ghi Timer:

8951 chứa 2 bộ định thời đếm 16bit được dùng trong việc định thời hoặc đếm sự kiện.
Timer 0 ở địa chỉ 8AH (TL0: byte thấp) và 8CH (TH0: byte cao). Timer 1 ở địa chỉ
8BH (TL1: byte thấp) và 8DH (TH1: byte cao), việc vận hành timer được set bởi
thanh ghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON)
ở địa chỉ 88H. CHỉ có TCON được địa chỉ hoá từng bit.
- Các thanh ghi port nối tiếp:
8951 chứa một port nối tiếp trên chip dành cho việc trao đổi thông tin với các thiết
bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác có giao tiếp
nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch…). Một thanh ghi gọi là bộ đệm dữ
liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả hai dữ liệu truyền và nhận. Khi truyền dữ
liệu thì ghi lên SBUF, khi nhận dữ liệu thì đọc SBUF. Các mode vận hành khác nhau
được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được địa chỉ hoá từng
bit) ở địa chỉ 98H.
- Các thanh ghi ngắt:
8951 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên. Các ngắt bị cấm sau khi reset hệ
thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ 8AH.
Cả 2 thanh ghi được địa chỉ hoá từng bit.
 Bộ nhớ ngoài.
8951 có khả năng mở rộng bộ nhớ đến 64K bộ nhớ chương trình và 64K bộ nhớ dữ
liệu bên ngoài. Do đó có thể dùng thêm ROM và RAM nếu cần.

Khi dùng bộ nhớ ngoài, port0 không còn là một port I/O thuần tuý nữa. Nó được
hợp kênh giữa bus địa chỉ (A0 – A7) và bus dữ liệu (D0 – D7) với tín hiệu ALE để
chốt byte thấp của địa chỉ khi bắt đầu mỗi chu kỳ bộ nhớ. Port2 thông thường được
dùng cho byte cao của bus địa chỉ.


Trong nửa đầu mỗi chu kỳ bộ nhớ, byte thấp của địa chỉ được cấp trong port0 và
được chốt bằng xung ALE. Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte địa
chỉ thấp trong phần còn lại của chu kỳ bộ nhớ. Trong nửa sau của chu kỳ bộ nhớ port0
được dùng như bus dữ liệu và được đọc hoặc ghi tuỳ theo lệnh.

- Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình ngoài là một IC ROM được phép bởi tín hiệu PSEn. Hình sau
mô tả cách nối một EPROM vào 8951:

Port 0

D0-D7
D
Q
74HC373
G

EA

8951
ALE

A0-A7
EPROM


Port 2

A8-A15

PSEN

OE

Hình 2.2.3: Giao tiếp giữa 8951 và EPROM.
Một chu kỳ máy của 8951 có 12 chu kỳ xung nhịp. Nếu bộ dao động trên chip được
lái bởi một thạch anh 12MHz thì chu kỳ máy kéo dài 1μs. Trong một chu kỳ máy sẽ
có hai xung ALE và 2 byte được đọc từ bộ nhớ chương trình

- Truy xuất bộ nhớ dữ liệu ngoài


Hình 2.2.4 Truy xuất bộ nhớ dữ liệu ngoài của 89C51

Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tín hiệu
WR và RD (các chân P3.6 và P3.7 thay đổi chức năng), chỉ có một cách truy xuất bộ
nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit hoặc R0 và
R1 xem như thanh ghi địa chỉ.
Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8951 cũng giống EPROM và do
đó cũng có thể lên đến 64byte bộ nhớ RAM. Ngoài ra, chân RD của 8051/8951 đựoc
nối tới chân cho phép xuất (OE) của RAM và chân WR được nối tới chân ghi (WR)
của RAM.
Giản đồ thời gian cho lệnh đọc bộ nhớ dữ liệu ngoài được vẽ trên hình sau đối với
lệnh MOVX A, @DPTR
 Lệnh reset.

8051/8951 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ
máy và trả nó về mức thấp. RST có thể được kích khi cấp điện dùng một mạch R-C:
Trạng thái của tất cả các thanh ghi của 8951 sau khi reset hệ thống được tóm tắt:Trạng
thái của tất cả các thanh ghi của 8951 sau khi reset hệ thống được tóm tắt:


Thanh ghi

Nội dung

Đếm chương trình

0000H

Tích luỹ

00H

B

00H

PSW

00H

SP

07H


DPTR

0000H

Port 0-3

FFH

IP

XXX00000B

IE

0XX00000B

Các thanh ghi định thời

00H

SCON

00H

SBUF

00H

PCON (HMOS)


0XXXXXXB

PCON (CMOS)

0XXX0000B
Bảng 2.2 Trạng thái các thanh ghi của 89C51

Quan trọng nhất trong các thanh ghi trên là thanh ghi đếm chương trình, nó được đặt
lại 0000H. Khi RST trở lại mức thấp, việc thi hành chương trình luôn bắt đầu ở địa chỉ
đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H. Nội dung của RAM trên
chip không bị thay đổi bởi lệnh reset.

Hoạt động của bộ định thời (Timer)
Truy xuất timer của 8051/8951 dùng 6 thanh ghi chức năng đặc biệt cho trong bảng:
SFR

Mục đích

Địa chỉ

Địa chỉ hoá từng bit

TCON

Điều khiển timer

88H




TMOD

Chế độ timer

89H

Không


TL0

Byte thấp của timer 0

8AH

Không

TL1

Byte thấp của timer1

8BH

Không

TH0

Byte cao của timer 0

8CH


Không

TH1

Byte cao của timer 1

8DH

Không

Bảng 2.3: Thanh ghi chức năng đặc biệt dùng time.
-Thanh ghi chế độ timer (TMOD)
Thanh ghi TMOD chứa 2 nhóm 4 bit dùng để đặt chế độ làm việc cho timer 0 và
timer
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 8255A 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ế độ


Bảng 2.4 : Các bit của thanh ghi TMOD
- Thanh ghi điều khiển timer (TCON)
Thanh ghi TCON chứa các bit trạng thái và các bit điều khiển cho timer 0 và timer
1.
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 xoá 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/xoá 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


TCON.2

IT1

8AH

ờ kiểu ngắt 1 bên ngoài. Đặt bằng phần cứng khi
phát hiện một cạnh xuống ở INT1, xoá bằng
phần mềm hoặc phần cứng khi CPU chỉ đến
chương trình phục vụ ngắt.
Đặt/xoá 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

ITO

88H

Cờ kiểu ngắt 0 bên ngoài

- Chế độ 0, chế độ timer 13 bit.


Ba bit cao của TLX (TL0 và/hoặc TL1) không dùng


Hoạt động timer 16 bit đầy đủ.
Cờ báo tràn là bit TFx trong TCON có thể đọc hoặc ghi bằng phần mềm.
MSB của giá trị trong các thanh ghi timer là bit 7 của THx và LBS là bit 0 của
TLx. Các thanh ghi timer (TLx/THx) có thể được đọc hoặc ghi bất cứ lúc nào bằng
phần mền.
- Chế độ 0 - Chế độ tự động nạp lại 8 bit.
TLx hoạt động như một timer 8 bit, trong khi đó THx vẫn giữ nguyên giá trị được
nạp. Khi số đếm tràn từ FFH đến 00H, không những cờ timer được set mà giá trị trong
THx đồng thời được nạp vào TLx. Việc đếm tiếp tục từ giá trị này lên đến FFH xuống
00H và nạp lại…chế độ này rất thông dụng vì sự tràn timer xảy ra trong những
khoảng thời gian nhất định và tuần hoàn một khi đã khởi động TMOD và THx.
- Chế độ 3 - Chế độ tách timer
Timer 0 tách thành hai timer 8 bit (TL0 và TH0), TL0 có cờ báo tràn là TF0 và TH0
có cờ báo tràn là TF1. Timer 1 ngưng ở chế độ 3, nhưng có thể được khởi động bằng
cách chuyển sang chế độ khác. Giới hạn duy nhất là cờ báo tràn TF1 không còn bị tác
động khi timer 1 bị tràn vì nó đã được nối tới TH0.
Khi timer 0 ở chế độ 3, có thể cho timer 1 chạy và ngưng bằng cách chuyển nó ra
ngoài và vào chế độ 3. Nó vẫn có thể được sử dụng bởi port nối tiếp như bộ tạo tốc độ
baud hoặc nó có thể được sử dụng bằng bất cứ cách nào không cần ngắt (vì nó không
còn được nối với TF1).
Xung nhịp timer
TL1

Xung nhịp timer
I/12 Fosc


TH1

Cờ báo tràn
TL0

TF0

Cờ báo tràn

TH0

TF1


Hoạt động ngắt.
Ngắt là hoạt động ngừng tạm thời một chương trình này để tiến hành một chương
trình khác. Các ngắt có một vai trò quan trọng trong thiết kế và khả năng thực thi của
vi điều khiển. Chúng cho phép hệ thống đáp ứng không cùng lúc tới một công việc và
giải quyết công việc đó trong khi một chương trình khác đang thực thi.
Một hệ thông được điều khiển bằng ngắt cho ảo giác là làm nhiều việc đồng thời.
CPU mỗi lần không thể thực thi một chương trình để thực thi một chương trình khác,
rồi quay về chương trình đầu khi có yêu cầu ngắt. Chương trình giải quyết ngắt được
gọi là chương trình phục vụ ngắt (ISR : Interrupt Service Reutine).
- Tổ chức ngắt
Ở 89C51 có 5 nguồn ngắt:
- 2 ngắt ngoài
- 2 ngắt từ timer
- 1 ngắt port nối tiếp.
Tất cả các ngắt sẽ không được đặt sau khi reset hệ thống và cho phép ngắt riêng rẽ
bởi phần mềm.

- Các ngắt timer.
Các ngắt timer có địa chỉ vector ngắt là 000BH (timer 0) và 001BH (timer 1). Ngắt
timer xảy ra khi các thanh ghi timer tràn (TLx và THx) và set cờ báo tràn (TFx) lên 1.
Các cờ timer (TFx) không bị xoá bằng phần mềm. Khi cho phép các ngắt, TFx tự
động bị xoá bởi phần cứng khi CPU chuyển đến ngắt.


- Các ngắt cổng nối tiếp.
Ngắt cổng nối tiếp xảy ra khi hoặc cờ ngắt phát (TI) hoặc cờ ngắt thu (KI) được đặt
lên 1. Ngắt phát xảy ra khi một ký tự đã được nhận xong và đang đợi trong SBUF để
được đọc.
Các ngắt cổng nối tiếp khác với các ngắt cổng timer. Cờ gây ra ngắt cổng nối tiếp
không bị xoá bằng phần cứng khi CPU chuyển tới ngắt. Do có hai nguồn ngắt cổng
nối tiếp TI và RI. Nguồn ngắt phải được xác định trong ISR và cờ tạo ngắt sẽ được
xoá bằng phần mềm. Các ngắt timer có cờ ngắt được xoá bằng phần cứng khi CPU
hướng tới ISR.
- Các ngắt ngoài.
- Các ngắt ngoài xảy ra khi có một mức thấp hoặc cạnh xuống trên chân INT0 hoặc
INT1 của vi điều khiển. Đây là chức năng chuyển đổi của các bit port 3. (Port 3.2 và
port 3.3).
Các cờ tạo ngắt này là các bit IE0 và IE1 trong TCON. Khi quyền điều khiển đã
chuyển đến ISR, cờ tạo ngắt chỉ được xoá nếu ngắt được tích cực bằng cạnh xuống.
Nếu ngắt được tích cực theo mức, thì nguồn yêu cầu ngắt bên ngoài sẽ điều khiển mức
của cờ thay cho phần cứng.
Sự lựa chọn ngắt tích cực mức thấp hay tích cực cạnh xuống được lập trình qua các
bit IT0 và IT1 tong TCON. Nếu IT1 = 0, ngắt ngoài 1 được tác động bằng mức thấp ở
chân IT1. Nếu IT1 = 1 ngắt ngoài 1 sẽ được tác động bằng cạnh xuống. Trong chế độ
này, nếu các mẫu liên tiếp trên chân INT1 chỉ mức cao trong một chu kỳ và chỉ mức
thấp trong chu kỳ kế, cờ yêu cầu ngắt IE1 trong TCON được đặt lên 1, bit IE1 yêu cầu
ngắt.

Nếu ngắt ngoài được tác động bằng cạnh xuống thì nguồn bên ngoài phải giữ chân
tác động ở mức cao tối thiểu một chu kỳ và giữ nó ở mức thấp thêm môt chu kỳ nữa
để đảm bảo phát hiện được cạnh xuống. Nếu ngắt ngoài được tác động theo mức thì
nguồn bên ngoài phải giữ tín hiệu yêu cầu tác động cho đến khi ngắt được và không
tác động yêu cầu ngắt trước khi ISR được hoàn tất. Nếu không một ngắt khác sẽ được
lặp lại.


×