ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 4
LUẬN VĂN
Điều khiển thiết bị điện qua
máy vi tính
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 5
I. ĐẶT VẤN ĐỀ
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à sự giúp đở của thầy cô, em đã
quyết định tìm hiểu về đề tài “điều khiển thiết bị điện qua máy vi tính”.
II. TẦM QUAN TRỌNG CỦA ĐỀ TÀI
- Đây là một đề tài nghiên cứu mang tính thực tiễn trong việc vận dụng các kiến thức
đã được học dưới mái trường Cao Đẳng vào trong thực tế.
- Về mặt khoa học, đề tài sẽ giúp cho nhóm sinh viên thực hiện hiểu rõ thêm về
Truyền dữ liệu điều khiển và Cách điều khiển mạch điện thông qua máy tính.
- Về mặt thực tiễn, đề tài này có thể áp dụng vào thực tế để điều khiển một số thiết bị
trong nhà như đèn điện, quạt máy v v
III. GIỚI HẠN ĐỀ TÀI
Do thời gian thực hiện đề tài có hạn và kiến thức còn hạn chế nên nhóm sinh viên
thực hiện đã đưa ra những giới hạn sau:
1.
Điều khiển cùng lúc tối đa 10 thiết bị.
2.
Mạch
phải hoạt động tốt không bị nhiễu trên đường truyền tín hiệu
3.
Mạch
phải chạy ổn định trong quá trình làm việc
IV. MỤC ĐÍCH NGHIÊN CỨU
Khi bắt tay vào thực hiện đề tài này, nhóm thực hiện mong muốn rằng sản
phẩm
của đề tài phải được ứng dụng. Và đặc biệt, đối với nhóm nghiên cứu đây là điều kiện, cơ hội,
cách thức để củng cố, bổ sung và ứng dụng những gì đã được lĩnh hội được trong lý thuyết
cũng như thực tập. Từ đó sử dụng và ứng dụng nó nhằm đáp ứng
cho nhu cầu thực tế. Đây
chính là những tiền đề đầu tiên để mỗi thành viên trong
nhóm có được một số kiến thức
chuyên ngành nhất định, làm hành trang cho công việc sau này.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 6
V. ĐỐI TƯỢNG NGHIÊN CỨU
Đối tượng nghiên cứu của đề tài này chính là:
► Cách thức giao tiếp giữa mạch đo và máy tính.
► Cách thức giao tiếp giữa mạch đo và mạch điều khiển.
► Cách lập trình cho vi điều khiển để cho dữ liệu có thể thu, phát liên tục mà không
bị ngắt quãng.
► Cách cân chỉnh mạch đo, đảm bảo độ chính xác của mạch đo.
VI. PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN NGHIÊN CỨU
1. Phương pháp nghiên cứu
Trong quá trình nghiên cứu, nhóm sinh viên thực hiện chủ yếu dựa vào hai
phương pháp chính:
- Phương pháp tham khảo tài liệu: Thu thập các tài liệu liên quan đến giao tiếp máy
tính, Truyền số liệu, Kỹ thuật mạch điện tử, Thiết kế mạch điện tử và Phương
pháp nghiên cứu khoa học. Sau đó, nhóm sinh viên vận dụng các kiến thức hiện
có để tổng hợp các tài liệu, sau cùng thiết kế ra mạch điện phù hợp với các yêu
cầu mà ban đầu nhóm đã đề ra.
-
Phương pháp quan sát và thực nghiệm: Sau khi đã có mạch theo tính toán lý
thuyết, nhóm sinh viên thực hiện đã thi công mạch thực tế theo đúng sơ
đồ
nguyên lý đã vạch ra. Do không có các thiết bị đo chuyên dụng thích hợp,
nhóm sinh viên thực hiện đã cân chỉnh thủ công từng khối, đo điện áp và dòng
điện ngõ ra của chúng. Sau đó, nhóm đã sử dụng kết quả cân chỉnh này để điều
chỉnh lại lý thuyết một cách hợp lý.
2. Phương tiện nghiên cứu
a. Các tài liệu liên quan đến đề tài.
b. Bộ nguồn ổn áp tuyến tính 5V, ±12V.
c. Đồng hồ đo VOM kim và số.
d. Máy tính
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 7
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 8
Đồ án tốt nghiệp thực chất là một quá trình nghiên cứu khoa học - quá trình nhận thức và
hành động. Quá trình này đòi hỏi phải có thời gian nhất định tương xứng với nội dung của
đối tượng nghiên cứu và tính chất phức tạp của vấn đề nghiên cứu.
Việc nghiên cứu khoa học giúp ta tìm ra cái mới. Cái mới ở đây không những
mang tính chủ quan của người nghiên cứu mà còn mang tính khách quan đối với xã hội.
Nghiên cứu khoa học phải nhằm mục đích phục vụ xã hội, đáp ứng yêu cầu thực tiễn.
Hoạt động nghiên cứu khoa học muốn đạt kết quả tốt phải hội đủ các yếu tố: phương tiện,
phương pháp, cơ sở vật chất, máy móc thiết bị, hình thức tổ chức. Các yếu tố này có mối
quan hệ hữu cơ và phù hợp với đối tượng nghiên cứu.
Các cơ sở cho việc nghiên cứu đề tài:
I. KIẾN THỨC VÀ NĂNG LỰC NGƯỜI NGHIÊN CỨU
Trong quá trình nghiên cứu và thực hiện đề tài người nghiên cứu cần phải cân nhắc
kỹ độ khó và độ phức tạp của đề tài sao cho phù hợp với khả năng, kiến thức và năng lực của
người nghiên cứu.
Độ phức tạp của đề tài thể hiện ở các mặt: lĩnh vực nghiên cứu rộng hay hẹp, ở một
ngành hay liên ngành, đối tượng nghiên cứu là đồng nhất hay không đồng nhất. Tuy nhiên
cần lưu ý rằng giá trị của đề tài không phụ thuộc vào độ phức tạp của nó. Đề tài hẹp chưa
hẳn là đề tài kém giá trị. Mỗi đề tài nghiên cứu khoa học có một phạm vi nhất định, phạm vi
này càng hẹp thì sự nghiên cứu càng sâu. Độ khó của đề tài nói lên tính vừa sức đối với
người nghiên cứu. Do đó độ phức tạp của đề tài thường có mối liên hệ tương hỗ với độ khó
của nó.
Kiến thức của người nghiên cứu (đây là điều kiện chủ quan ở người nghiên cứu).
Trước hết đó là kiến thức, kinh nghiệm của người nghiên cứu.
Người nghiên cứu phải thể
hiện năng lực nghiên cứu khoa học bao gồm việc
nắm vững lý thuyết cơ bản của khoa học
trong lĩnh vực nghiên cứu của mình, nắm
được mức độ nhất định về sự phát triển và tiến bộ
thuộc lĩnh vực nghiên cứu có như thế mới chọn được đề tài có giá trị. Trong tình hình tiến bộ
của khoa học kỹ thuậthiện nay trên thế giới, khối lượng thông tin khoa học gia tăng với qui
mô lớn và nhịp độ nhanh đòi hỏi người nghiên cứu phải tham khảo tài liệu nước ngoài.Để
thực hiện được vấn đề này người nghiên cứu khoa học cần có số vốn ngoại ngữ nhất định.
II. VẤN ĐỀ THỰC TIỄN
Người nghiên cứu phải coi thực tiễn làm cơ sở, là động lực của nhận thức.
Angel
viết: “Khi xã hội có những yêu cầu kỹ thuật thì xã hội thúc đẩy khoa học hơn mười trường
đại học”. Mặt khác thực tiễn cũng là tiêu chuẩn để kiểm tra nhận thức .
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 9
Thực tế là những sự việc có thật, những tình hình cụ thể, những vấn đề đã hoặc chưa
được giải quyết trong cuộc sống. Người nghiên cứu với kinh nghiệm bản thân trong công
tác hàng ngày thường thấy được các mặt của vấn đề, các mối quan hệ phức tạp, các diễn
biến, phương hướng phát triển của sự vật từ đó có định hướng thích hợp giải quyết đề tài.
Chính thực tiễn giúp người nghiên cứu tìm thấy vấn đề một cách cụ thể. Người nghiên
cứu phải xem thực tiễn cao hơn nhận thức (lý luận) vì nó có ưu điểm không những có tính
phổ biến mà còn có tính hiện thực trực tiếp. Hồ Chủ Tịch cũng đã dạy: “Học tập thì theo
nguyên tắc: kinh nghiệm và thực tiễn phải đi cùng nhau”.
Đề tài thực hiện mang tính thực tiễn, nội dung của đề tài là có thật, phát triển từ thực tế
khách quan.
Có thể nói hầu như mọi công trình nghiên cứu điều có giá trị thực tế của nó, chỉ khác
nhau ở mức độ ít nhiều, phục vụ trước mắt hay lâu dài, gián tiếp hay trực tiếp.
III. TÁC ĐỘNG CỦA ĐIỀU KIỆN KHÁCH QUAN ĐẾN VIỆC THỰC HIỆN ĐỀ TÀI
Trong quá trình nghiên cứu thực hiện đề tài người nghiên cứu là yếu tố chủ
quan
góp phần quan trọng đến kết quả còn đối tượng nghiên cứu, phương pháp nghiên cứu kể cả
phương tiện ngiên cứu, thời gian nghiên cứu cùng những người cộng tác nghiên cứu và
người hướng dẫn nghiên cứu là những điều kiện khách quan ảnh hưởng trực tiếp đến việc
nghiên cứu và kết quả nghiên cứu. Người nghiên cứu càng nắm chắc các yếu tố khách quan
đó bao nhiêu thì kết quả nghiên cứu càng được khẳng định bấy nhiêu.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 10
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 11
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
B
ả
ng mô t
ả
s
ự
khác nhau c
ủ
a các IC trong h
ọ
MCS
-
51
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 12
2. Một số thanh ghi chức năng đặc biệt trong vi điều khiển 8051.
a. 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.
b. 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 sự
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ị.
c. Các thanh ghi Port nối tiếp (Serial Port Register):
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.
d. 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ỉ.
3. 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
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 13
đượ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.
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á
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ớ
Các lệnh rẽ nhánh:
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 14
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
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õ.
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.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 15
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).
● 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.
4. Họat độ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.
5. 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.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 16
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ẻ
6. Các chế độ định thời và cờ tràn
a. 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.
b. 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.
c. Chế độ timer 8 bit tự nạp lại trị đầu (chế độ 2)
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: Thanh ghi chọn chế độ định thời
B
ả
ng: Các ch
ế
đ
ộ
đ
ị
nh th
ờ
i
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 17
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.
d. 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.
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.
7. Họat độ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:
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 18
a. 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:
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
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 19
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.
b. Khởi động và truy xuất các thanh ghi Port nối tiếp:
b.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
b.2. Dùng timer tạo tốc độ Baud cho port nối tiếp:
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
ả
ng Các ch
ế
đ
ộ
ho
ạ
t đ
ộ
ng c
ủ
a port n
ố
i ti
ế
p
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 20
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à:
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
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
BAUD RATE = TIMER 1 OVERFLOW RATE
32
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 21
(ứ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.
8. Họat động ngắt của 8051.
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).
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.
Timer
Thục thi chương trình không có ngắt
**
*
**
*
Main Program
Main Main Main Main
ISR ISR ISR ISR
*
**
Timer
Thục thi chương trình có ngắt
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 22
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:
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
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
Bảng: Chức năng của thanh ghi IE
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 23
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.
- GIỚI THIỆU AT89S52
I. Đặt điểm
Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hoàn toàn tương tự như
nhau. Ở đây giới thiệu IC89S52 là một họ IC vi điều khiển do hãng Intel của Mỹ sản xuất.
Chúng có các đặc điểm chung như sau:
Các đặc điểm của 89S52 được tóm tắt như sau :
8 KB EPROM bên trong.
128 Byte RAM nội.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 24
4 Port xuất /nhập I/O 8 bit.
Có khả năng giao tiếp truyền dữ liệu nối tiếp.
Có thể giao tiếp với 64 KB vùng nhớ bên ngoài dùng lưu chương trình điều khiển.
Có thể giao tiếp với 64 KB vùng nhớ bên ngoài dùng lưu dữ liệu. Xử lí Boolean
(hoạt động trên bit đơn).
Có 210 vị trí nhớ có thể định vị bit
II. Sơ đồ chân
- Chức năng các chân của 89S52:
Vi điều khiển 89S52 có tất cả 40 chân có chức năng như các đường xuất nhập. Trong
đó có 24 chân có tác dụng kép (có nghĩa 1 chân có 2 chức năng), mỗi đường có thể hoạt động
như đường xuất nhập hoặc như đường điều khiển hoặc là thành phần của các bus dữ liệu và bus
địa chỉ.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 25
- Các Port:
Port 0 : Port 0 là port có 2 chức năng ở các chân 32 - 39 của 89S52. Trong
các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các
đường IO. Đối với các thiết kế cỡ lớn có bộ nhớ mở rộng, nó được kết hợp
giữa bus địa chỉ và bus dữ liệu.
Port 1: Port 1 là port IO 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 giao tiếp với các thiết bị ngoài nếu cần. Port 1
không có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các
thiết bị bên ngoài.
Port 2: Port 2 là 1 port có tác 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 bị dùng
bộ nhớ mở rộng.
Port 3: Port 3 là port có tác 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 89S52 như ở bảng sau:
Bit Tên Chức năng chuyển đổi
P 3.0 RXT Ngõ vào dữ liệu nối tiếp
P 3.1 TXD
Ngõ xuất dữ liệu nối
tiếp
P 3.2 INT0\
Ngõ vào ngắt cứng thứ
0
P 3.3 INT1\
Ngõ vào ngắt cứng thứ
1
P 3.4 T0
Ngõ vào của
TIMER/COUNTERthứ
0.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 26
Các ngõ tín hiệu điều khiển:
- Ngõ tín hiệu PSEN (Program store enable):
PSEN là tín hiệu ngõ ra ở chân 29 có tác dụng cho phép đọc bộ nhớ chương
trình
mở rộng thường được nói đến chân 0E\ (output enable) của Eprom cho phép đọc các byte mã
lệnh.
PSEN ở mức thấp trong thời gian Microcontroller 89S52 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
89S52 để giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội PSEN sẽ ở mức
logic 1.
- Ngõ tín hiệu điều khiển ALE (Address Latch Enable ) :
Khi 89S52 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 89S52.
- Ngõ tín hiệu EA\(External Access):
P 3.5 T1
Ngõ vào của
TIMER/COUNTER thứ
1.
P 3.6 WR\
Tín hiệu ghi dữ liệu lên
bộ nhớ ngoài
P 3.7 RD\
Tín hiệu đọc bộ nhớ dữ
liệu ngoài
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 27
Tín hiệu vào EA\ ở chân 31 thường được mắc lên mức 1 hoặc mức 0. Nếu ở
mức 1, 89S52 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 8
Kbyte. Nếu ở mức 0, 89S52 sẽ thi hành chương trình từ bộ nhớ mở rộng. Chân
EA\ được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52.
- Ngõ tín hiệu RST (Reset) :
Ngõ vào RST ở chân 9 là ngõ vào Reset của 89S52. Khi ngõ vào tín hiệu
này đưa lên cao ít nhất là 2 chu kỳ máy, các thanh ghi bên trong được nạp
những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch tự động
Reset.
- Các ngõ vào bộ dao động X1, X2:
Bộ dao động được tích hợp bên trong 89S52, khi sử dụng 89S52 người thiết kế
chỉ cần kết nối thêm thạch anh và các tụ như hình vẽ trong sơ đồ. Tần số
thạch anh thường sử dụng cho 89S52 là 12Mhz.
ĐIỀU KHIỂN THIẾT BỊ ĐIỆN QUA MÁY VI TÍNH
Trang 28