Tải bản đầy đủ (.doc) (39 trang)

đồ án tốt nghiệp đóng ngắt thiết bị điện bằng máy vi tính

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 (421.31 KB, 39 trang )

ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP. HỒ CHÍ MINH
KHOA CÔNG NGHỆ ĐIỆN TỬ

ĐỒ ÁN
ĐỀ TÀI :
GIAO TIẾP MÁY TÍNH ĐIỀU KHIỂN
THIẾT BỊ ĐIỆN TRONG NHÀ
GVHD: Thạc sĩ TRẦN VĂN TRINH
SVTH : HOÀNG MẠNH GIANG
LỚP : ĐHDT2ALT
MSSV : 0700610
Tp.Hồ Chí Minh ,Tháng 01năm 2007
- 1 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
MỤC LỤC
Phần I: CƠ SỞ LÝ THUYẾT 2
Chương I: CỔNG COM VÀ CÁC PHƯƠNG THỨC
TRUYỀN THÔNG NỐI TIẾP 3
I. Cổng COM 3
II. Các phương thức truyền thông nối tiếp 4
Chương II: GIỚI THIỆU VI ĐIỀU KHIỂN 8051 8
I. Cấu tạo vi điều khiển 8051 8
II. Tóm tắt tập lệnh của 8051 10
III. Hoạt động định thời 12
IV. Hoạt động của Port nối tiếp 14
V. Hoạt động ngắt của 8051 16
Chương III: GIỚI THIỆU VỀ RS-232 20
I. Giới thiệu chung 20
II. IC MAX-232 21


Phần II: THIẾT KẾ PHẦN CỨNG VÀ GIAO DIỆN ĐIỀU KHIỂN 22
I. Giới thiệu phương án thiết kế 22
II. Thiết kế phần cứng 22
III. Thiết kế phần mềm và giao diện điều khiển 26
Phần III: PHỤ LỤC 29
I. Chương trình viết cho vi xử lý 29
II. Chương trình điều khiển trên máy tính 35
- 2 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
LỜI NÓI ĐẦU

Ngày nay, khi công nghiệp ngày càng phát triển thì nhu cầu điều khiển được đặt
lên hàng đầu. Xuất phát từ nhu cầu đó điện tử tự động hoá ra đời và nó đã được xếp
trong nhóm 5 ngành khoa học công nghệ hàng đầu vì những ứng dụng rộng rãi của nó.
Song song với sự ra đời của điện tử tự động hoá là sự ra đời và cải tiến không ngừng
của máy tính. Từ những chiếc máy tính đời đầu chỉ thực hiện những phép tính đơn
giản ngày nay máy tính có tốc độ xử lý rất cao, nó có thể xử lý hàng tỉ phép tính phức
tạp trong vòng một giây. Để khai thác được những ưu điểm đó điện tử tự động hoá đã
có sự bắt tay với máy vi tính. Nhờ có máy vi tính mà chúng ta có thể làm được nhiều
công việc mà không phải tốn nhiều công sức. Xuất phát từ thực tế đó, bằng những kiến
thức đã được học và được đọc ở trường cùng với những kiến thức tìm tòi từ báo chí
sách vở và Internet em đã quyết định tìm hiểu về đề tài “Đóng ngắt thiết bị điện bằng
máy vi tính”.
Nội dung đề tài gồm hai phần:
Phần I : Lý thuyết.
Phần II : Thiết kế và Thực hiện.

Thành phố Hồ Chí Minh ngày 12/1/2008
Sinh viên thực hiện: Hoàng Mạnh Giang
- 3 -

ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
- 4 -
PHẦN I: CƠ SỞ LÝ
THUYẾT
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
CHƯƠNG I: CỔNG COM VÀ CÁC PHƯƠNG THỨC
TRUYỀN THÔNG NỐI TIẾP.
I. Cổng COM:
Các máy tính được sản xuất gần đây thường có hai cổng nối tiếp theo chuẩn RS-232,
cổng thứ nhất với tên gọi COM1 thường được dùng cho chuột, còn cổng thứ hai COM2
thường được dùng cho các mục đích ghép nối khác như modem, máy in hoặc thiết bị đo
lường. Khi cần nhiều hơn hai cổng ta có thể lắp đặp các card mở rộng trên đó có thêm 1-2
cổng RS-232. Một số hãng phần cứng giới thiệu các mô-đun vào/ra cho phép tăng thêm hai
cổng RS-232 hoăc nhiều hơn.
Việc sử dụng giao diện nối tiếp mang lại nhiều ưu điểm, ngay cả với những mạch
ghép nối đơn giản, lý do là:
 Khả năng chống nhiễu của các cổng nối tiếp cao hơn so với cổng máy in
 Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy tính đang được cấp điện
 Các mạch điện đơn giản có thể nhận được điện áp nguồn nuôi qua cổng nối tiếp
Thông thường thì việc sử dụng cổng nối tiếp đòi hỏi chi phí nhiều hơn vì cần có sự
biến đổi dữ liệu được truyền theo kiểu nối tiếp thành dữ liệu song song. Với những bài toán
ghép nối không phức tạp, trong đó chỉ sử dụng một vài đường dẫn vào/ra thì ta có thể sử dụng
trực tiếp các đường dẫn phụ trợ có liên quan của giao diện. Tổng cộng có đến hai đường dẫn
ngõ ra và bốn đường dẫn ngõ vào, có thể được trao đổi trực tiếp bằng các lệnh đơn giản.
Việc trao đổi dữ liệu qua cổng nối tiếp trong các trường hợp thông thường đều qua
đường dẫn truyền nối tiếp TxD và đường dẫn nhận nối tiếp RxD. Tất cả các đường dẫn còn lại
có chức năng phụ trợ khi thiết lập và khi điều khiển cuộc truyền dữ liệu. Các đường dẫn này
gọi là các đường dẫn bắt tay bởi vì chúng được sử dụng theo phương pháp " ký nhận " giữa
các thiết bị. Ưu điểm đặc biệt của đường dẫn bắt tay là trạng thái của chúng có thể đặt hoặc
điều khiển trực tiếp.

Đặc trưng điện áp của các đường dẫn lối vào và lối ra đã được khẳng định trong tiêu
chuẩn RS-232. Trạng thái LOW tương ứng với mức điện áp +12V còn trạng thái HIGH tương
ứng với điện áp -12V. Tất cả các lối ra đều có đặc tính chống chập mạch và có thể cung cấp
dòng điện từ 10mA đến 20mA. Với các lối ra này, các LED có thể được dấu vào hoặc được
các khoảng thời gian trễ, nghĩa là trạng thái được đọc sẽ thay đổi khi điện áp lối vào nằm ở
bên ngoài vùng này
Thông thường thì giao diện nối tiếp được điều khiền bằng mức tín hiệu hai cực với độ
lớn bằng +12V và -12V. Bởi vì các mạch lối vào thông thường trong máy tính PC nhận dạng
một mức điện áp dưới 1V như là mức LOW, nên cổng nối tiếp cũng được phép làm việc với
- 5 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
mức điện áp TTL ( 0V/5V). Một số máy tính PC, phần lớn là máy tính xách tay làm việc với
ngưỡng chuyển mạch từ -3V đến +3V và vì thế có thể chấp nhận các tín hiệu lối vào hai cực.
Bảng dưới đây chỉ ra tất cả các đường dẫn được nối với các chân trên đầu nối 9 chân
và 25 chân (một số chân của đầu nối 25 được bỏ trống):
Chân
(25 chân)
Chân
(9 chân)
Lối
vào/ra
Tên gọi Chức năng
1 - - FG, Frame Ground Đất vỏ máy
8 1

DCD, Data Carrier
detect
Phát hiện tín hiệu mang dữ liệu
3 2


RxD, Receive Data Nhận dữ liệu
2 3

TxD, Transmit Data Truyền dữ liệu
20 4

DTR,Data terminal
ready
Đầu cuối dữ liệu sẵn sàng; tính
hoạt động giống với RTS nhưng
được kích hoạt bởi bộ nhận khi
muốn truyền dữ liệu
7 5 SG, Signal Ground Đất của tín hiệu
6 6

DSR, Data Set
Ready
Dữ liệu sẵn sàng; tính hoạt động
giống với CTS nhưng được kích
hoạt bởi bộ truyền khi nó sẵn
sàng nhận dữ liệu
4 7

RTS, Request to
Send
Yêu cầu gửi; bộ truyền đạt
đường này lên mức hoạt động
khi sẵn sàng truyền dư liệu
5 8


CTS, Clear to Send Xóa để gửi; bộ nhận đặt đường
này lên mức hoạt động để thông
báo cho bộ truyền là nó sẵn sàng
nhận dữ liệu
22 9

RI, Ring indicate Báo chuông cho biết là bộ phận
đang nhận tín hiệu rung chuông
II CÁC PHƯƠNG THỨC TRUYỀN THÔNG NỐI TIẾP:
1.Gửi dữ liệu nối tiếp:
Truyền dữ liệu đồng bộ:
Trong việc truyền dữ liệu đồng bộ, hầu hết các thiết bị sử dụng chung một nguồn phát
xung clock từ các thiết bị hay nguồn bên trong. Nguồn xung clock phải ổn định. Mỗi bit
truyền sẽ được truyền sau khi phát hiện tín hiệu xung clock truyền tới (xung cạnh lên hoặc
cạnh xuống). Ngõ nhận sử dụng xung nhịp truyền tới tử thiết bị khi nhận được mỗi bit truyền
tới. Ngõ nhận có thể chốt tín hiệu truyền tới từ xung cạnh lên hoặc cạnh xuống, hoặc chỉ ra
mức logic cao hay mức logic thấp. Chuẩn đồng bộ sử dụng việc thay đổi của tín hiệu start và
stop trong việc truyền dữ liệu, hai tín hiệu start và stop được chỉ định bên trong chip
Mặc định của truyền dữ liệu đồng bộ sử dụng cho việc truyền ở khoảng cách ngắn, với
chiều dài dây dẫn khoảng 15feet hoặc ngỏ hơn.Trong việc truyền tín hiệu đi xa, chuẩn đồng
- 6 -
Bảng 1.1: Các chân và chức năng trên đầu nối 25 chân và 9 chân
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
bộ không phù hợp bởi vì khi truyền tín hiệu dứơi dạng xung clock, thì tín hiệu truyền có thêm
phần tín hiệu nhiễu
Truyền dữ liệu không đồng bộ:
Trong việc truyền tín hiệu không đồng bộ, sự kết nối không bao hàm nhiều xung
clock, bởi vì mỗi ngừng kết nối tín hiệu đựơc cung cấp 1 xung riêng biệt. Khi kết thúc phải
được đồng ý trên tần số xung clock đó, và hầu hết xung clock phải được kết hợp với phần
trăm truyền tín hiệu. Mỗi 1 byte được truyền bao gồm 1 bit Start từ xung đồng bộ. Và 1 hay

nhiều bit Stop từ tín hiệu thông báo việc kết thúc việc truyền tín hiệu kết thúc.
Truyền tín hiệu không đồng có thể sử dụng nhiều hoặc một vài chuẩn chung. Có lẽ
phổ biến nhất là chuẩn 8-N-1, có nghĩa là khung dữ liệu được truyền đi có 8 bit dữ liệu, 1 bit
stop, không kiểm tra chẵn lẻ.

2. Định chuẩn dữ liệu
Dữ liệu dạng chữ:
Khi gửi chữ,chương trình sử dụng các đoạn mã để gán một giá trị số tới mỗi chữ ký
tự.Có nhiều đoạn mã để chuyển đổi. Một trong nhũng mã chung nhất là ASCII (American
Standard Code for Information Exchange), bao gồm 128 đoạn mã tương ứng với 7 bit dữ
liệu.Với loại 8 bit dữ liệu,có thể bit 0 hoặc là bit chẵn lẻ. ANSI (American National Standard
Institute) chữ thì có 256 mã, với những đoạn mã cao hơn dành cho thể hiện nhưng ký tự đặc
biệt.Trong IBM ASCII sử dụng chung cho máy tính IBM, nhiều đoạn mã cao hơn thể hiện
những đường thẳng ….
Chuẩn dùng 16 bit, cho phép thể hiện 65536 ký tự
- 7 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Hai chuẩn ANSI/ASCII là chuẩn dùng cho Visual Basic’s MSComm control
Mã ASCII Hex:
Ở chế độ này hiển nhiên chọn việc truyền dữ liệu ở dạng chuỗi hoặc một file chứa đựng
dạng chữ này. Nhưng ta cũng có thể truyền dữ liệu này ở dạng nhị phân, bằng cách biển diễn
dữ liệu này ở chuẩn ASCII Hex. Mỗi byte được biểu diễn bằng cách cặp với đoạn mã ASCII
và biểu diễn bằng 2 byte mã hex với 1 ký tự (như ký tự C có nhiều hơn 1 số hexa và lớn hơn 1
số hệ thống). Chuẩn này có thể được biểu diễn với nhiều giá trị sử dụng trong một mã ASCII
từ 30h

39h cho (0 tới 9) và 41h tới 46h (cho A tới F)
Để thay thế việc gửi tín hiệu 1 byte từ giá trị 0

255, việc gửi chia làm 2 lần, mỗi lần cho

1 ký tự trong giá trị mã hex biểu diễn được 1 byte. Ngõ nhận của máy tính xử lý giá trị giống
như chữ thông thường. Sau khi máy tính nhận được các giá trị, máy tính có thể xử lý hoặc sử
dụng nhiều thứ ta cần, bao gồm việc chuyển đổi dữ liệu trở lại dạng nhị phân.
3. Sử dụng Visual Basic trong truyền thông nối tiếp.
Để sử dụng được Visual Basic trong điều khiển nối tiếp, trước hết cần phải bổ sung
thêm thành phần Microsoft Comm Control mà bình thường khi chạy phần mềm Visual Basic
6.0 không có. Thành phần này có biểu tượng giống như hình chiếc điện thoại bàn.
Một số đặc tính cơ bản của thành phần MSComm:
CommPort:
Đặt và trả lại số cổng truyền thông, cú pháp của câu lệnh là:
MSComm.CommPort = Số cổng (thường là 1)
Settings:
Đặt và trả lại các thông số truyền thông cho cổng RS-232, như tốc độ baud, chẵn lẻ, số
bit dữ liệu và số các bit stop. Cú pháp là:
MSComm.Setting = “BBBB,P,D,S”
Trong đó, BBBB xác định tốc độ baud, P chỉ tính kiểm tra chẵn lẻ, D là số bit dữ liệu,
và S là số các bit stop. Giá trị mặc định là: “9600, N, 8, 1”, có nghĩa là tốc độ truyền là 9600
bit/s, không kiểm tra chẵn lẻ, 8 bit dữ liệu, 1 bit stop.
PortOpen:
Đặt và trả lại trạng thái của cổng truyền thông (đóng hoặc mở). Cú pháp câu lệnh là:
MSComm.PortOpen = True/False
Trong đó: Thông số True là để mở cổng, còn False là để đóng cổng và xóa nội dung các
bộ đệm nhận và truyền.
Input:
Nhận và xóa bỏ một chuỗi ký tự từ bộ đệm nhận, cú pháp câu lệnh như sau:
MSComm.input = dữ liệu
- 8 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Inputlen:
Quy định số ký tự được đọc bởi đặc tính Input, cú pháp câu lệnh như sau:

Inputlen = số ký tự cần đọc
Nếu đặt Inputlen bằng 0 thì đặc tính Input sẽ đọc hết toàn bộ nội dung của bộ đệm nhận.
Output:
Đưa một chuỗi ký tự ra bộ đệm truyền để chuẩn bị truyền dữ liệu, cú pháp câu lệnh:
MSComm.Output = chuỗi ký tự
CommEvent:
Đặc tính này trả lại hầu hết, sự kiện hoặc lỗi truyền thông gần nhất. Cú pháp câu lệnh
này là:
MSComm.CommEvent =
SThreshold:
Đặt và trả lại số tối thiểu của các ký tự có thể cho phép trong bộ đệm truyền trước khi
diều khiển truyền thông xác lập đặc tính CommEvent và phát sinh sự kiện OnComm. Xác lập
đặc tính Sthreshold bằng 0 để vô hiện hóa việc phát sinh sự kiện OnComm. Ngược lại nếu đặt
bằng 1 thì điền khiển truyền thông phát sinh sự kiện OnComm (sự kiện OnComm được gọi)
khi bộ đệm truyền không có dữ liệu. Cú pháp câu lệnh là:
MSComm.Sthreshold = số ký tự
RThreshold:
Đặt và trả lại số ký tự nhận được trước khi điều khiển truyền thông xác lập đặc tính
ComEvent và phát sinh sự kiện OnComm. Xác lập bằng 0 để làm mất khả năng phát sinh sự
kiện OnComm khi nhận ký tự, xác lập bằng 1 để tạo ra sự kiện OnComm mỗi khi có một ký
tự được đặt vào bộ đệm nhận. Cú pháp câu lệnh là:
MSComm.Rthreshold = số ký tự
Chương trình ví dụ:
Chương trình xuất một ký tự ra cổng COM:
Private Sub Form_Load()
MSComm1.CommPort = 1 ‘Sử dụng COM1
MSComm1.Settings = "9600,n,8,1" ‘Cài đặt thông số cho cổng
MSComm1.RThreshold = 1 ‘Phát sinh sự kiện OnComm khi bộ đệm
nhận được một ký tự
MSComm1.SThreshold = 1 ‘Bộ đệm truyền chỉ chứa tối thiểu 1 ký tự

MSComm1.InputLen = 0 ‘Cho phép đọc toàn bộ nội dung bộ đệm
MSComm1.PortOpen = True ‘Mở cổng
MSComm1.Output = “A” ‘Truyền đi ký tự A
End Sub
- 9 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
CHƯƠNG II: GIỚI THIỆU VI ĐIỀU KHIỂN 8051
I.CẤU TẠO VI ĐIỀU KHIỂN 8051
1.TÓM TẮT PHẨN CỨNG HỌ MCS-51 (8051)
MCS-51 là họ IC vi điều khiển do hãng INTEL sản xuất. Các IC tiêu biểu cho họ là
8031, 8051, 8951… Những đặc điểm chính và nguyên tắc hoạt động của các bộ vi điều khiển
này khác nhau không nhiều. Khi đã sử dụng thành thạo một vi điều khiển thì ta có thể nhanh
chóng vận dụng kinh nghiệm để làm quen và làm chủ các ứng dụng của bộ vi điều khiển
khác. Vì vậy để có những hiểu biết cụ thể về các bộ vi điều khiển cũng như để phục vụ cho đề
tài này ta bắt đầu tìm hiểu một bộ vi điều khiển thông dụng nhất, đó là họ MCS-51 và nếu như
họ MCS-51 là họ điển hình thì 8051 lại chính là đại diện tiêu biểu.
Các đặc điểm của 8051 được tóm tắt như sau:
 4 KB ROM bên trong
 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ớ mã ngoài.
 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
 4µs cho hoạt động nhân hoặc chia.
Loại Bộ nhớ mã trên Chip Bộ nhớ dữ liệu trên Chip Số Timer
8051 4K ROM 128 Byte 2
8031 0K ROM 128 Byte 2
8751 4K ROM 128 Byte 2

8052 8K ROM 256 Byte 2
8032 0K ROM 256 Byte 2
8752 8K EPROM 256 Byte 2
- 10 -
Bảng 2.1: Bảng mô tả sự khác nhau của các IC trong họ MCS-51
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
2. Một số thanh ghi chức năng đặc biệt trong vi điều khiển 8051.
2.1. Các thanh ghi Port (Port Register):
Các port 0, port 1,port2, port 3 có địa chỉ tương ứng 80H, 90H, A0H, B0H. Các Port 0,
Port 1, Port 2, Port 3 không còn tác dụng xuất nhập nữa nếu bộ nhớ ngoài được dùng hoặc
một vài tính chất đặc biệt của 8051 được dùng (như Interupt, Port nối tiếp…). Do vậy chỉ còn
có tác dụng xuất nhập I/O.
2.2. Các thanh ghi Timer (Timer Register):
8051 có 2 bộ định thời/đếm16 bit, được dùng cho việc định thì hoặc đêm ssự kiện.
Timer 0 có bit thấp TL0 ở địa chỉ 8AH và có bit cao TH0 ở địa chỉ 8CH. Timer 1 có bit thấp ở
địa chỉ 8BH và bit cao TH1 ở địa chỉ 8DH.
Hoạt động định thời được cho phép bởi thanh ghi mode định thời TMOD (Timer
Mode Register). Ở địa chỉ 89H và thanh ghi điều khiển định thời TCON (Timer Control
Registor) ở địa chỉ 88H chỉ có TCON có bit định vị.
2.3.Các thanh ghi Port nối tiếp (Serial Port Register):
- 11 -
Hình 2.1: Sơ đồ chân của 8051
9
1 8
1 9
2 0
2 9
3 0
3 1
4 0

1
2
3
4
5
6
7
8
2 1
2 2
2 3
2 4
2 5
2 6
2 7
2 8
1 0
1 1
1 2
1 3
1 4
1 5
1 6
1 7
3 9
3 8
3 7
3 6
3 5
3 4

3 3
3 2
R S T
X T A L 2
X T A L 1
G N D
P S E N
A L E / P R O G
E A / V P P
V C C
P 1 . 0
P 1 . 1
P 1 . 2
P 1 . 3
P 1 . 4
P 1 . 5
P 1 . 6
P 1 . 7
P 2 . 0 / A 8
P 2 . 1 / A 9
P 2 . 2 / A 1 0
P 2 . 3 / A 1 1
P 2 . 4 / A 1 2
P 2 . 5 / A 1 3
P 2 . 6 / A 1 4
P 2 . 7 / A 1 5
P 3 . 0 / R X D
P 3 . 1 / T X D
P 3 . 2 / I N T 0
P 3 . 3 / I N T 1

P 3 . 4 / T 0
P 3 . 5 / T 1
P 3 . 6 / W R
P 3 . 7 / R D
P 0 . 0 / A D 0
P 0 . 1 / A D 1
P 0 . 2 / A D 2
P 0 . 3 / A D 3
P 0 . 4 / A D 4
P 0 . 5 / A D 5
P 0 . 6 / A D 6
P 0 . 7 / A D 7
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
8051 chứa một Port nối tiếp trên Chip cho việc truyền thông tin với những thiết bị nối
tiếp như là những thiết bị đầu cuối, modem, hoặc để giao tiếp IC khác với những bộ biến đổi
A/D, những thanh ghi di chuyển, RAM…Thanh ghi đệm dữ liệu nối tiếp SBUF ở địa chỉ 99H
giữ cả dữ liệu phát lẫn dữ liệu thu. Việc ghi lên SBUF để LOAD dữ liệu cho việc truyền và
đọc SBUF để truy xuất dữ liệu cho việc nhận những mode hoạt động khác nhau được lập trình
thông qua thanh ghi điều khiển Port nối tiếp SCON.
2.4.Các thanh ghi ngắt (Interupt Register):
8051 có hai cấu trúc ngắt ưu tiên, 5 bộ nguồn . Những Interupt bị mất tác dụng sau khi
hệ thống Reset (bị cấm) và sau đó được cho phép bởi việc cho phép ghi lên thanh ghi cho
phép ngắt IE (Interupt Enable Register) ở địa chỉ A8H. Mức ưu tiên được đặt vào thanh ghi
ưu tiên ngẳt IP (Interupt Priority Level) tại địa chỉ B8H. Cả 2 thanh ghi trên đều có bit địa chỉ.
II. TÓM TẮT TẬP LỆNH CỦA 8051
Các chương trình được cấu tạo từ nhiều lệnh, chúng được xây dựng logic, sự nối tiếp của
các lệnh được nghĩ ra một cách hiệu quả và nhanh, kết quả của chương trình thì khả quan.
Tập lệnh họ MCS-51 được sự kiểm tra của các mode định vị và các lệnh của chúng có
các Opcode 8 bit. Điều này cung cấp khả năng 2
8

= 256 lệnh được thi hành và một lệnh không
được định nghĩa. Vài lệnh có 1 hoặc 2 byte bởi dữ liệu hoặc địa chỉ thêm vào Opcode. Trong
toàn bộ các lệnh có 139 lệnh 1 byte, 92 lệnh 2 byte và 24 lệnh 3 byte.
8051chia ra 5 nhóm chính:
 Các lệnh số học.
 Lệnh logic.
 Lệnh dịch chuyển dữ liệu.
 Lệnh luận lý.
 Lệnh rẽ nhánh chương trình.
1.Các lệnh số học:
ADD A, <src,byte>
SUBB A, <src, byte>
INC <byte>
DEC <byte>
MUL AB : (A)

LOW [(A) x (B)]; có ảnh hưởng cờ OV
: (B)

HIGH [(A) x (B)]; cờ Carry được xoá
DIV AB : (A)

Integer result of [(A) / (B)]; cờ OV
: (B)

Remainder of [(A) / (B)]; cờ Carry xoá
- 12 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
2. Các lệnh logic:
Tất cả các lệnh logic sử dụng thanh ghi A như là một trong những toán hạng thực thi một

chu kì máy, ngoài A mất 2 chu kì máy. Những hoạt động logic có thể được thực hiện trên bất
kì byte nào trong vị trí nhớ dữ liệu nội mà không thông qua thanh ghi A.
Các hoạt động logic được tóm tắt như sau:
ANL <dest-byte>,<src-byte>
ORL <dest-byte><src-byte>
XRL <dest-byte>,<src-byte>
RL A : Quay thanh ghi A qua trái 1 bit
RLC A : Quay vòng thanh ghi A qua trái 1 bit có cờ Carry
RR A : Quay thanh A ghi sang phải 1 bit
RRC A : Quay thanh ghi A sang phải 1 bit có cờ nhớ
3. Các lệnh rẽ nhánh:
JC Rel : Nhảy đến “Rel” nếu cờ carry C =1.
JNC Rel : Nhảy đến “Rel” nếu cờ Carry C =0
JB bit,rel : Nhảy đến “Rel” nếu (bit) =1
JNB bit,rel : Nhảy đến “rel” nếu (bit) =0
JBC bit, rel : Nhảy đến “rel” nếu (bit) =1 và xoá bit.
ACALL addr 11 : Lệnh gọi tuyệt đối trong Page 2K
LCAL Addr 16 :Lệnh gọi dài chương trình con trong 64 K
RET : Kết thúc chương trình con trở về chương trình chính.
RETI : Kết thúc thủ tục phục vụ ngắt quay về chương trình chính
AJMP addr11 : Nhảy tuyệt đối không điều kiện trong 2 K
LJMP addr16 : Nhảy dài không điều kiện trong 64 K
SJMP rel : Nhảy ngắn không điều kiện trong (-128
÷
127) byte
CJNE A, direct, rel : so sánh và nhảy đến A nếu A

direct
DJNE Rn,rel : Giảm Rn và nhảy nếu Rn


0
DJNZ direct, rel : Giảm và nhảy nếu direct

0
4. Các lệnh dịch chuyển dữ liệu:
Các lệnh dịch chuyển dữ liệu trong những vùng nhớ nội thực thi 1 hoặc 2 chu kỳ máy.
Mẫu lệnh MOV <destination>, <source> cho phép di chuyển dữ liệu bất kỳ 2 vùng nhớ nào
của RAM nội hoặc các vùng nhớ của các thanh ghi chức năng đặc biệt mà không thông qua
thanh ghi A.
Vùng Stack của 8051 chỉ chứa 128 byte RAM nội, nếu con trỏ Stack SP được tăng quá
địa chỉ 7FH thì các byte được PUSH vào sẽ mất đi vào các byte POP ra thì không biết rõ.
- 13 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Các lệnh dịch chuyển bộ nhớ nội và bộ nhớ ngoại dùng sự định vị gián tiếp. Địa chỉ gián
tiếp có thể dùng địa chỉ 1 byte (@ Ri) hoặc địa chỉ 2 byte (@ DPTR). Tất cả các lệnh dịch
chuyển hoạt động trên toàn bộ nhớ ngoài thực thi trong 2 chu kỳ máy và dùng thanh ghi A
làm toán hạng DESTINATION.
Việc đọc và ghi RAM ngoài (RD và WR) chỉ tích cực trong suốt quá trình thực thi của
lệnh MOVX, còn bình thường RD và WR không tích cực (mức 1).
5.Các lệnh luận lý:
CLR C : Xoá cờ Carry xuống 0. Có ảnh hưởng cờ Carry.
CLR BIT : Xoá bit xuống 0. Không ảnh hưởng cờ Carry.
SET C : Set cờ Carry lên 1. Có ảnh hưởng cờ Carry.
SET BIT : Set bit lên 1. Không ảnh hưởng cờ Carry.
CPL C : Đảo bit cờ Carry. Có ảnh hưởng cờ Carry.
CPL BIT : Đảo bit. Không ảnh hưởng cờ Carry.
ANL C, BIT : Có ảnh hưởng cờ Carry.
ANL C,
BIT
: Không ảnh hưởng cờ Carry.

ORL C, BIT : Tác động cờ Carry.
ORL C, : Tác động cờ Carry.
MOV C, BIT : Cờ Carry bị tác động.
MOV BIT, C : Không ảnh hưởng cờ Carry.
III. HOẠT ĐỘNG ĐỊNH THỜI
Các bộ định thời được sử dụng hầu hết trong các ứng dụng hướng điều khiển và 8051 với
các bộ định thời trên chip không phải là trường hợp ngoại lệ. 8051 có hai bộ định thời 16 bit,
mỗi bộ có 4 chế độ hoạt động. Các bộ định thời được dùng để:
 Định thời trong một khoảng thời gian.
 Đếm sự kiện.
 Tạo tốc độ baud cho port nối tiếp của chip 8051.
1.Thanh ghi chế độ định thời (TMOD)
Thanh ghi TMOD (time mode register) chứa hai nhóm 4-bit dùng để thiết lập chế độ
hoạt động cho bộ định thời 0 và bộ định thời 1 (xem bảng 4.2 và 4.3). TMOD không được
định địa chỉ từng bit và điều này cũng không cần thiết. Một cách tổng quát, TMOD được nạp
một lần bởi phần mềm ở thời điểm bắt đầu của một chương trình để khởi động chế độ hoạt
động của bộ định thời. Sau đó bộ định thời có thể được dừng, bắt đầu, v.v… bằng cách truy
xuất các thanh ghi chức năng đặc biệt khác của bộ định thời.
- 14 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
M1 M0 Chế độ Mô tả
0 0 0 Chế độ định thời 13 bit
0 1 1 Chế độ định thời 16 bit
1 0 2 Chế độ tự nạp lại 8 bit
1 1 3 Chế độ định thời chia sẻ
3.Các chế độ định thời và cờ tràn
3.1.Chế độ timer 13-bit (chế độ 0)
Chế độ 0 là chế độ định thời 13 bit cung cấp khả năng tương thích với bộ vi điều khiển
tiền nhiệm 8048. Byte cao của bộ định thời THx được ghép cascade với 5 bit thấp của byte
thấp của bộ định thời TLx để tạo thành một bộ định thời 13-bit. Ba bit cao của TLx không sử

dụng.
3.2. Chế độ timer 16-bit (chế độ 1)
Chế độ 1 là chế độ timer 16 bit giống như chế độ 0, ngoại trừ lúc này timer hoạt động
như timer 16 bit đầy đủ. Xung nhịp được đưa vào thanh ghi 16 bit được kết hợp bởi THx và
TLx. Khi nhận được xung nhịp thì timer đếm lên: 0000H, 0001H, 0002H, v.v… Tràn xảy ra
khi có chuyển tiếp từ FFFFH sang 0000H trong số đếm và nó đặt cờ báo tràn timer lên 1.
Timer tiếp tục đếm tiếp. Cờ báo tràn là bit TFx trong TCON mà người ta có thể đọc hoặc ghi
vào bằng phần mềm.
3.3. Chế độ timer 8 bit tự nạp lại trị đầu (chế độ 2)
Chế độ 2 là chế độ tự động nạp giá trị đầu. Byte thấp của timer TLx làm việc như timer
8 bit trong khi đó byte cao của timer THx giữ giá trị cần nạp lại. Khi bộ đếm trnf từ FFH sang
00H thì không những cờ timer được đặt lên 1 mà giá trị trong THx còn được nạp vào TLx ,
việc đếm tiếp tục từ giá trị này đến chuyển tiếp từ FFH sang 00H kế, và cứ tiếp tục như vậy.
Chế độ này tiện lợi vì tràn timer xảy ra theo những khoảng thời gian có chu kỳ một khi
TMOD và THx đã được khởi tạo trị đầu.
3.4. Khởi động, dừng và điều khiển các bộ định thời:
Bit TRx trong thanh ghi TCON được điều khiển bởi phần mềm để bắt đầu hoặc kết thúc
các timer. Để bắt đầu các timer ta set bit TRx và để kết thúc timer ta clear TRx. Ví dụ timer
được khởi động bởi lệnh SETB TR0 và được kết thúc bởi lệnh CLR TR0 (bit Gate=0). Bit
TRx bị xóa sau sự reset hệ thống, do đó các timer bị cấm bằng sự mặc định.
- 15 -
Bit Tên Bộ định thời Mô tả
7 GATE 1 Bit điều khiển cổng. khi được set lên 1, bộ định
thời chỉ hoạt động trong khi
INT
ở mức cao.
TC /
1 Bit chọn chức năng đếm hoặc định thời :
1 = đếm sự kiện
0 = định thời trong một khoảng thời gian

5 M1 1 Bit chọn chế độ thứ nhất (xem bảng 4.3)
4 M0 1 Bit chọn chế độ thứ hai (xem bảng 4.3)
3 GATE 0 Bit điều khiển cổng cho bộ định thời 0.
2
TC /
0 Bit chọn chức năng đếm hoặc định thời cho bộ
định thời 0
Bảng 2.5: Thanh ghi chọn chế độ định thời
Bảng 2.6: Các chế độ định thời
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Thêm phương pháp nữa để điều khiển timer là dùng bit Gate trong thanh ghi TMOD và
ngõ nhập bên ngoài INTx. Điều này được dùng để đo các độ rộng xung. Giả sử xung đưa vào
chân INT0 ta khởi động timer 0 cho mode 1 là mode timer 16 bit với TL0/TH0 = 0000H, Gate
=1, TR0 =1. Như vậy khi INT0 =1 thì timer “được mở cổng” và ghi giờ với tốc độ của tần số
1MHz. Khi INT0 xuống mức thấp thì timer “đóng cổng” và khoảng thời gian của xung tính
bằng us là sự đếm được trong thanh ghi TL0/TH0.
IV. HOẠT ĐỘNG CỦA PORT NỐI TIẾP 8051.
Phần cứng truy xuất tới Port nối tiếp qua các chân TxD (P3.1) và RxD (P3.0). Port nối
tiếp tham dự hoạt động đầy đủ (sự phát và thu cùng lúc), và thu vào bộ đệm mà nó cho phép 1
ký tự nhận vào và được cất ở bộ đệm trong khi ký tự thứ hai được nhận vào. Nếu CPU đọc ký
tự thứ nhất trước khi ký tự thứ hai được nhận vào hoàn toàn thì dữ liệu không bị mất.
Hai thanh ghi chức năng đặc biệt cung cấp cho phần mềm truy xuất đến Port nối tiếp
là SBUF và SCON. Sự đệm Port nối tiếp (SBUF) ở địa chỉ 99H là 2 sự đệm thật sự: Ghi lên
SBUF (nạp dữ liệu phát) và đọc SBUF (truy xuất dữ liệu đã nhận). Đây là hai thanh ghi riêng
biệt và rõ rệt, và thanh ghi phát chỉ ghi còn thanh ghi thu chỉ đọc. Sơ đồ khối của Port nối tiếp
như sau:
1.Thanh ghi điều khiển Port nối tiếp SCON:
Mode hoạt động của Port nối tiếp được set bởi việc ghi lên thanh ghi mode của Port nối
tiếp SCON ở địa chỉ 99H. Bảng tóm tắt thanh ghi điều khiển Port nối tiếp SCON như sau:
- 16 -

TXD (P3.1) RXD (P3.0)
CLK CLK
SBUF
(Write – only) Shift Register
SBUF
(Read – only)
8051 Internal Bus
Baud Rate
clock (Transmit)
Baud Rate
clock (Receive)
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
SM0 SM1 MODE MÔ TẢ TỐC ĐỘ BAUD
0 0 0 Thanh ghi dịch Cố định (tần số dao động/12)
0 1 1 UART 8 bit Thay đổi (thiết lập bởi bộ định thời)
1 0 2 UART 9 bit Cố định (tần số dao động /12 hoặc /64)
1 1 3 UART 9 bit Thay đổi (thiết lập bởi bộ định thời)
Trước khi dùng Port nối tiếp, SCON phải được định đúng chế độ. VD: Để khởi tạo Port
nối tiếp chế độ 1 (SM0/SM1 = 0/1), cho phép thu (REN = 1), và set cờ ngắt của việc phát sẵn
sàng hoạt động (TI = 1), ta dùng lệnh sau :
MOV SCON, #01010010H.
Port nối tiếp của 8051 có 4 mode hoạt động tùy thuộc theo trạng thái của SM0/SM1.
Ba trong 4 mode cho phép truyền động bộ với mỗi ký tự thu hoặc phát sẽ được bố trí
bởi bit Start hoặc bit Stop.
2. Khởi động và truy xuất các thanh ghi Port nối tiếp:
2.1. Cho phép thu:
Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần mềm để cho
phép sự thu các ký tự. Điều này thường được dùng làm ở đầu chương trình khi các Port nối
tiếp và các timer được khởi động.
Ta có thể tác động bằng lệnh:

SETB REN
hoặc:
MOV SCON, # xxx1xxxxB
2.2. Dùng timer tạo tốc độ Baud cho port nối tiếp:
Muốn tạo ra tốc độ Baud, ta khởi tạo TMOD ở chế độ tự nạp lại 8 bit (mode 2 của
timer) và đặt trước giá trị nạp lại đúng vào byte cao của thanh ghi timer 1 (TH1) để tạo ra tốc
độ tràn chính xác. Có những tốc độ Baud rất chậm ta dùng chế độ 16 bit là chế độ 1 của timer,
nhưng ta phải khởi tạo lại sau mỗi lần tràn cho TL1/TH1.
Hoạt động khác được đếm giờ bởi việc dùng timer 1 ngoài là T1 (P3.5). Công thức
chung để xác định tốc độ Baud trong mode 1 và mode 3 là:
- 17 -
Bit Ký hiệu Địa chỉ Mô tả hoạt động
SCON.7 SM0 9FH Bit 0 của mode Port nối tiếp
SCON.6 SM1 9EH Bit 1 của mode Port nối tiếp
SCON.5 SM2 9DH Bit 2 của mode Port nối tiếp. cho phép sự truyền
của bộ xử lý đa kênh ở mode 2 và 3; RI sẽ không
tích cực nếu bit thứ 9 đã thu vào là 0.
SCON.4 REN 9CH REN = 1 sẽ cho phép thu ký tự
SCON.3 TB8 9BH Phát bit 8. Bit 9 phát trong mode 2 và 3, được set
và xóa bởi phần mềm
SCON.2 RB8 9AH Thu bit 8. Bit thứ 9 nhận được
SCON.1 TI 99H Cờ ngắt phát. Cờ này được set ngay khi kết thúc
việc phát một ký tự; được xóa bởi phần mềm
SCON.0 RI 98H Cờ ngắt thu. Cờ này được set ngay khi kết thúc
việc thu một ký tự; được xóa bởi phần mềm
Bảng2.8: Chức năng của thanh ghi SCON
Bảng 2.9: Các chế độ hoạt động của port nối tiếp
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Ví dụ một hoạt động 1200 Baud đòi hỏi một tốc độ tràn là 1200/32 = 38,4 KHz. Nếu
thạch anh 12MHz lái dao động trên Chip, thì timer 1 được đếm giờ ở tốc độ của tần số 1

MHz. Bởi vì timer phải tràn ở tốc độ tần số 38,4 KHz và Timer đếm giờ ở tốc độ của tần số 1
MHz, nên một sự tràn được yêu cầu với 1000/38,4 = 26,04 clock (làm tròn 26). Bởi vì các
timer đếm lên và tràn khi có sự chuyển đổi từ FFH  00H của bộ đếm, nên 26 là giá trị cần
nạp cho TH1 (giá trị đúng là -26). Ta dùng lệnh: MOV TH1, #26
Ví dụ sau khi khởi động Port nối tiếp hoạt động giống như một UART 8 bit ở tốc độ
2400 Baud, dùng timer 1 để cung cấp tốc độ Baud:
MOV SCON, #01010010B ; Port nối tiêp mode 1
MOV TMOD, #20 ; Timer 1 mode 2
MOV TH1, #-13 ; Nạp vào bộ đếm tốc độ
2400Baud
SETB TR1 ;Start timer 1
Trong SCON có SM0/SM1 để vào mode UART 8 bit, REN = 1 cho phép Port nối tiếp
thu các ký tự và TI = 1 cho phép phát ký tự đầu tiên bởi việc cho biết thanh ghi đếm rỗng.
TMOD có M1/M0 = 1/0 để đặt timer 1 vào mode tự động nạp lại 8 bit. Việc set bit TR1 để
mở máy chạy timer. Tốc độ Baud 2400 sẽ cho ta tốc độ tràn timer 1 là 2400/32 = 76,8 KHz
(ứng với thạch anh 12 MHz) sẽ cho số xung clock sau mỗi sự tràn là 1000/76,8 = 13,02 (lấy
tròn là 13). Vậy -13 là giá trị cần nạp vào TH1 để có tốc độ Baud là 2400 Baud.
V. HOẠT ĐỘNG NGẮT CỦA 8051.
Trong nhiều ứng dụng đòi hỏi ta phải dùng ngắt (Interrupt) mà không dùng timer bởi
vì nếu dùng timer ta phải mất thời gian để chờ cờ tràn timer TFx set mới xử lý tiếp chương
trình. Do đó ta không có thời gian để làm các việc khác mà ứng dụng đòi hỏi. Đây là chương
trình rất quan trọng của 8051 nói riêng và họ MSC – 51 nói chung.
Ngắt là một sự cố có điều kiện mà nó gây ra sự ngưng lại tạm thời của chương trình để
phục vụ một chương trình khác. Các ngắt đóng vai trò quan trọng trong việc thiết kế và hiện
thực các ứng dụng của bộ vi điều khiển. các ngắt cho phép hệ thống đáp ứng một sự kiện theo
cách không đồng bộ và xử lý sự kiện 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ởi ngắt cho ta ảo tưởng đang làm nhiều công việc đồng thời. Tất
nhiên CPU không thể thực thi nhiều lệnh tại một thời điểm, nhưng nó có thể tạm thời treo
việc thực thi của chương trình chính để thực thi chương trình khác và sau đó quay lại chương
trình chính.

Khi chương trình chính đang thực thi mà có một sự ngắt xảy đến thì chương trình
chính ngưng thực thi và rẽ nhánh đến thủ tục phục vụ ngắt ISP (Interrupt Service Routine).
- 18 -
BAUD RATE = TIMER 1 OVERFLOW RATE
÷
32
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
ISR thực thi để thực hiện hoạt động và kết thúc với lệnh RETI: chương trình tiếp tục nơi mà
nó dừng lại.
Ta có thể tóm tắt sự thực thi của 1 chương trình trong trường hợp có ngắt và không có
ngắt như sau:
Trong đó ký hiệu * cho biết ngắt chương trình chính để thực thi chương trình con trong
thủ tục phục vụ ngắt ISR. Còn ký hiệu ** cho biết việc quay lại chương trình chính thực thi
tiếp sau khi kết thúc chương trình con trong ISR.
1. Tổ chức ngắt của 8051:
8051 cung cấp 5 nguồn ngắt, 2 ngắt ngoài, 3 ngắt timer và một ngắt Port nối tiếp. tất
cả các ngắt bị mất tác dụng bởi sự mặc định sau khi reset hệ thống và được cho phép cá biệt
bởi phần mềm.
Trong trường hợp có hai hoặc nhiều hơn sự ngắt xảy ra đồng thời hoặc một sự ngắt
đang được phục vụ mà xuất hiện một sự ngắt khác, thì sẽ có hai cách thực hiện sự ngắt là sự
kiểm tra liên tiếp và sự ưu tiên cấp 2.
1.1.Sự cho phép ngắt và sự cấm ngắt:
Mỗi nguồn ngắt được cho phép riêng biệt hoặc sự cấm riêng biệt qua thanh ghi chức
năng đặc biệt có bit định vị IE (Interrupt Enable) tại địa chỉ 0A8H. Cũng như sự cá biệt cho
phép các bit của mỗi nguồn ngắt có 1 bit cho phép (hoặc cấm) chung mà nó có được xóa để
cấm tất cả các ngắt hoặc được set để cho phép chung các ngắt.
Hoạt động của từng bit trong thanh ghi cho phép ngắt IE được tóm tắt trong bảng sau:
- 19 -
Bit Symbol Bit Address Sự mô tả (Enable=1; Disable)
IE.7 EA AFH Cho phép ngắt toàn cục

IE.6 - AEH Không định nghĩa
IE.5 ET2 ADH Cho phép ngắt timer 2 (8052)
IE.4 ES ACH Cho phép ngắt Port nối tiếp
IE.3 ET1 ABH Cho phép ngắt timer 1
IE.2 EX1 AAH Cho phép ngắt ngoài External 1
IE.1 ET0 A9H Cho phép ngắt timer 0
IE.0 EX0 A8H Cho phép ngắt ngoài External 0
Timer
Thục thi chương trình không có ngắt
******
Main Program
Main Main Main Main
ISRISR ISR ISR
* **
Timer
Thục thi chương trình có ngắt
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Hai bit phải set để cho phép 1 sự ngắt nào đó: là bit cho phép riêng và bit cho phép
chung. Ví dụ để cho phép ngắt timer 1 ta có thể thực hiện trên bit:
SETB ET1 và SETB EA
hoặc sự thực hiện trên byte:
MOV IE, #10001000B
Cả hai phương pháp này có kết quả chính xác sau khi reset hệ thống, nhưng kết quả
khác nhau nếu thanh ghi IE được ghi trên tuyến ở giữa chương trình.
Giải pháp thứ nhất không có tác dụng trên các bit còn lại trong thanh ghi IE, còn giải
pháp thứ hai xóa các bit còn lại trong thanh ghi IE. Ở đầu chương trình ta nên khởi tạo IE với
lệnh MOV BYTE, nhưng sự cho phép ngắt và cấm ngắt trên tuyến trong một chương trình sẽ
dùng các lệnh SETB bit và CLR bit để tránh kết quả phụ với các bit khác trong thanh ghi IE.
2.Xử lý các ngắt:
Khi một ngắt xuất hiện và được chấp nhận bởi CPU thì chương trình chính bị ngắt.

Các hoạt động sau đây xuất hiện:
 Lệnh hiện hành và kết thúc thực thi.
 Bộ đếm chương trình PC được cất giữ vào Stack.
 Trạng thái ngắt hiện hành được cất giữ vào bên trong.
 Những sự ngắt bị ngăn lại tại mức ngắt.
 Bộ đếm chương trình PC được LOAD với địa chỉ vectơ của thủ tục phục vụ ngắt
ISR.
 Thủ tục phục vụ ngắt ISR được thực thi.
Thủ tục phục vụ ngắt ISR thực thi và đưa hoạt động vào đáp ứng ngắt, thủ tục phục vụ
ngắt ISR kết thúc với lệnh RETI (quay trở về chương trình chính từ Stack). Điều này khôi
phục lại giá trị của bộ đếm chương trình từ Stack và hoàn toàn dừng lại trạng thái cũ. Sự thực
thi của chương trình chính tiếp tục ở nơi mà nó ngừng lại.
- 20 -
Bảng 2.10: Chức năng của thanh ghi IE
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
CHƯƠNG III: GIỚI THIỆU VỀ RS-232
I. GIỚI THIỆU
RS-232 (tương ứng ở châu âu là CCITT V.24) đươc dùng chủ yều trong giao tiếp giữa
hai DTE, ví dụ giữa hai máy tính (PC, PLC…), giữa máy tính và máy in, hoặc giữa một DTE
và một DCE, ví dụ máy tính và Modem.
RS-232 sử dụng phương thức truyền không đối xứng, tức là sử dụng tín hiệu chênh
lệch giữa một dây dẫn với đất. Mức điện áp được sử dụng dao động trong khoảng từ -15V tới
15V. Trong khoảng từ 3V đến 15V ứng với giá trị logic 0, khoảng từ -15V đến -3V ứng với
giá trị logic 1.
- 21 -
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Chính vì từ -3V đến 3V là phạm vi không được định nghĩa, trong trường hợp thay đổi
giá trị từ logic 0 lên 1 hoăc từ 1 tới 0 một phải vượt qua khoảng qúa độ trong thời gian ngắn
hợp lý.
Tốc độ truyền dẫn đa số phụ thuộc vào chiều dài dây dẫn. Đa số các hệ thống hiện nay

chỉ hỗ trợ tốc độ 19.2 kBd ( chiều dài cho phép từ 30m đến 50m) gần đây, sự tiến bộ trong vi
mạch đã góp phần nâng cao tốc độ của các modem lên nhiều lần ngưỡng 19.2 kBd. Hiện nay
đã có những vi mạch thu phát tốc độ 460 kBd và hơn nữa, tuy nhiên tốc độ thực tế lớn hơn
115.2 kBd theo chuẩn RS-232 trong một hệ thống làm việc dựa vào ngắt là một điều kiện có
thể thực hiện.
Chế độ làm việc của hệ thống RS-232 là hai chiều toàn phần, tức là hai thiết bị tham
gia có thề thu và phát tín hiệu cùng một lúc. Như vậy, việc thực hiện truyền thông cần tối
thiểu 3 dây dẫn trong đó có hai dây tín hiệu nối chéo nhau các đầu thu phát của hai trạm và
một dây đất.
Một ưu điểm của chuẩn RS-232 là có thề sử dụng công suất phát tương đối thấp, nhờ
trở kháng đầu vào hạn chế trong phạm vi từ 3-7k

.
Thông Số Điều Kiện Tối Thiểu Tối Đa
Điện áp đầu ra hở mạch 25V
Điện áp đầu ra khi có tải 3K


R
L

7K

5V 15V
Trở kháng đầu vào khi cắt nguồn -2V

V
0

2V 300


Dòng ra ngắn mạch 500mA
Điện dung tải 2500pF
Trở kháng đầu vào 3V

V
I


25V 3K

7K

Ngưỡng cho giá trị logic 0 3V
Ngưỡng cho giá trị logic 1 -3V
Điện áp thay đổi từ 5V đến 10V được thay đổi nhờ sự bơm điện. Đầu tiên tụ C1 sẽ
bơm điện áp từ 5V đến 10V và để lưu trữ điện áp 10V cho tụ C1 thì tụ C3 có vai trò là lưu trữ
điện áp 10V ở ngõ ra.Thứ hai sử dụng tụ C2 là để biến đổi từ 10V sang -10V và để lưu trữ
điện áp -10V thì tụ C4 có vai trò lưu trữ điện áp -10V ở ngõ ra.
II. IC MAX-232:
Max-232 là IC thường được dùng trong lĩnh vực giao tiếp với máy tính, theo chuẩn
RS-232, MAX-232 có nhiều loại, ở đây chỉ đề cập đến loại MAX-232E có 16 chân.
Với điện áp là 5V thì điện ra của ngõ xuất sẽ dao động trong khoảng
±
8V khi tải ở
ngõ nhận có giá trị là 5k

, trong điều kiện tồi tệ nhất mức điện áp tối thiểu ở ngõ ra cũng
phải dao động trong khoảng
±

5V.Gồm có một tải 3k

, điện áp tối thiểu, và một nhiệt độ
hoạt động tối đa. Trong một mạch điện mở rộng thì điện áp ngõ ra dao động trong khoảng từ
- 22 -
Bảng 3.1: tóm tắt càc thông số hoạt động của
RS-232
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
(V
+
- 0,6V) đến V
-
. Ngưỡng ngõ vào của hai họ CMOS/TTL phải tương thích với nhau. Max
232 không có điện trở kéo lên ở ngõ vào chân phát.
Ngõ nhận của RS-232 sẽ chuyển đổi tín hiệu đến ngõ ra của con CMOS-logic. để đảm
bảo ngưỡng vào của ngõ nhận đạt được 0.8V và 2.4V thì điều có nghĩa là phải nhỏ hơn
ngưỡng
±
3V (theo bắt buộc về đặc điểm kỹ thuật của EIA/TIA-232E). điều này cho phép
ngõ vào nhận (receiver) phản ứng lại mức độ hợp lý của TTL/CMOS cũng giống như của RS-
232.
Việc bảo đảm ngưỡng vào ở mức thấp 0.8V là sự đảm bảo được rằng ngõ nhận không
thể tồn tại lâu trạng thái ngõ ra ở mức 1. Điện trở 5k

ở ngõ vào hoàn toàn đảm bảo được
rằng ngõ nhận với ngõ vào tương ứng sẽ chỉ có duy nhất một ngõ ra ở mức 1.
Ngõ vào nhận chỉ sai lệch xấp xỉ 0.5V. Điều này đã làm cho ngõ ra được chuyển trạng
thái nhanh gọn hơn, thậm chí với tín hiệu tăng chậm hoặc giảm theo thời gian thì lượng tín
hiệu nhiễu cũng vừa phải hơn.
PHẦN 2:THIẾT KẾ PHẦN CỨNG VÀ GIAO DIỆN

ĐIỀU KHIỂN
I. GIỚI THIỆU PHƯƠNG ÁN THIẾT KẾ.
1.YÊU CẦU THIẾT KẾ:
Mạch điều khiển cần có những yêu cầu sau:
- Mạch phải hoạt động tốt không bị nhiễu trên đường truyền tín hiệu ở khoảng cách xa
- Mạch phải chạy ổn định trong quá trình làm việc lâu dài
- Có khả năng chuyển đổi tốt khi một trong hai phần có sự cố ( phần cứng và phần mềm)
- 23 -
Hình 3.1: Hình dạng và cấu tạo của MAX-232
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
2. GIỚI THIỆU CÁC PHƯƠNG ÁN:
Để thiết kế bộ điều khiển các thiết bị ở xa ta có các phương án sau:
a. Phương pháp dùng các IC số qua các cổng logic:
Ta có thể dựa vào các cổng logic, các bộ so sánh, bộ khuếch đại… cho nên phương
pháp này cổ điển và làm cho mạch điện cồng kềnh, phức tạp, khó mở rộng và tính bảo
mật kém vì vậy phương pháp này chỉ phù hợp cho hệ thống nhỏ
b. Phương pháp dùng vi xử lý kết hợp với máy tính:
Phương pháp này tỏ ra hiệu quả nhờ khả năng lập trình và kết hợp thực thi chương
trình phần mềm của vi xử lý và các IC số cho nên phần cứng đơn giản. Khi mở rộng thì ít
ảnh hưởng đến phần cứng so với dùng kỹ thuật số. Hệ thống dùng vi xử lý có tính linh
động, bảo mật cao hơn so với dùng kỹ thuật số do được điều khiển bằng phần mềm
Trong đề tài này, phương pháp dùng vi xử lý được dùng để thực hiện.
II. THIẾT KẾ PHẦN CỨNG
1. SƠ ĐỒ KHỐI VÀ SƠ ĐỒ NGUYÊN LÝ:
2. CHỨC NĂNG MỖI KHỐI
• Máy vi tính:
Khối này có nhiệm vụ hiển thị các quá trình hoạt động của toàn mạch khi nhận tín hiệu
từ vi xử lý truyền đến hay ngược lại khối này cũng có khả năng truyền một dữ liệu xuống
vi xử lý để điều khiển các thiết bị ngoại vi đồng thời cũng sẽ báo cho ta biết sự hoạt động
của từng thiết bị ngoại vi.

• Khối giao tiếp:
- 24 -
KHỐI GIAO TIẾP
RS-232
KHỐI VI XỬ LÝ
TRUNG TÂM ( 8951)
THIẾT BỊ
NGOẠI VI
NÚT
NHẤN
MÁY VI TÍNH
Hình 1.1: Sơ đồ khối của mạch điều khiển
ĐÓNG NGẮT THIẾT BỊ ĐIỆN BẰNG MÁY VI TÍNH
Khối này đóng vai trò là trung gian để cho mạch hoạt động làm nhiệm vụ giải mã tín
hiệu từ vi xử lý đưa tới máy tính và ngược lại, nghĩa là khi máy tính có một lệnh gởi xuống
qua khối chuyển đổi sẽ đưa lệnh này tới vi xử lý để điều khiển thiết bị ngoại vi.
• Khối vi xử lý:
Khối này có nhiệm vụ là trung tâm điều khiển sự hoạt động của các khối khác nó ra
lệnh để thi hành việc đóng mở các thiết bị ngoại vi bởi phần mềm và phần cứng.
• Thiết bị ngoại vi:
Gồm có các rờ - le để đóng – ngắt thiết bị điện.
• Khối nút nhấn:
Dùng để đóng ngắt thiết bị trên phần cứng.
3. THI CÔNG MÔ HÌNH
3.2. Khối giao tiép:
Do nguồn sử dụng là 5VDC và khoảng cách truyền không quá xa khoảng từ 1.5
÷
3m
và hoạt động trong môi trường không quá phức tạp nên ta chọn RS-232
• Nguyên lý hoạt động :

Khi có một tín hiệu (đó là các mức điện áp) từ một trong hai khối là máy chủ và từ vi xử
lý thì RS-232 sẽ chuyển các tín hiệu đó thành các mức tín hiệu phù hợp để kết nối hai khối
này lại với nhau để điều khiển thiết bị với các mức logic như sau: mức logic 1 sẽ là từ -3V
đến -12V và logic 0 sẽ từ 3V đến 12V và nó có thể biến đổi các mức điện áp này là nhờ 4
tụ hóa C1, C2, C3, C4
Các thông số kỹ thuật:
 Điện áp lớn nhất có thể cho qua là
±
30V
 Dòng cấp cho RS-232 trong khoảng 5
÷
10mA.
 Hoạt động trong khoảng tầm nhiệt -65
0
C
÷
+165
0
C
 Các tụ bơm điện áp nên sử dụng

1uf, ở đây ta chọn là 10uF
3.3. Khối vi xử lý trung tâm
Nhiệm vụ của khối này là xử lý các hoạt động điều khiển, gồm các nhiệm vụ:
 Nhận biết tín hiệu từ máy tính truyền xuống và đóng mở các thiết bị ngoại vi.
 Xử lý tín hiệu từ phần cứng điều khiển rồi truyền lên lại cho máy tính.
 Nếu có tín hiệu từ máy tính truyền xuống nó sẽ khởi động ngắt và bật cờ ngắt thu
RI để xử lý tín hiệu đóng mở đèn.
 Nếu có tín hiệu từ nút nhấn thì sẽ khởi động ngắt và bật cờ ngắt phát TI để xử lý tín
hiệu và đưa trở lại máy tính báo hiệu việc đóng mở đèn.

Các kết nối đến vi điều khiển :
- 25 -

×