Tải bản đầy đủ (.pdf) (15 trang)

Tài liệu GIÁM SÁT VÀ ĐIỀU KHIỂN pdf

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 (345.7 KB, 15 trang )

Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 34
BÀI 7
GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ


I. MỤC ĐÍCH YÊU CẦU
- Hiện nay, vi xử lý và vi điều khiển đóng vai trò rất quan trọng trong lĩnh vực
điều khiển tự động. Các bộ điều khiển dùng linh kiện rời dần dần được thay thế
bởi các bộ điều khiển dùng vi xử lý. Mặc dù đã được học các vấn đề cơ bản như
quét bàn phím, quét bảng đèn, điều khiển động cơ bước, điều rộng xung,… tuy
nhiên đa số sinh viên đều gặp nhiều khó khăn khi phải phối hợp các lý thuyết cơ
bản trên để được chương trình hoàn chỉnh điều khiển một đối tượng cụ thể. Mục
đích của bài thực hành này giúp sinh viên làm quen với vi điều khiển thông dụng
hiện nay và ứng dụng chúng để điều khiển các đối tượng cụ thể. Bài thực hành tập
trung vào phương pháp thiết kế chương trình sao cho dễ sửa chữa, mở rộng.
- Bài thực hành này yêu cầu sinh viên phải biết trước cấu tạo và lập trình
89C51
II. NỘI DUNG
1. Kiến trúc của vi điều khiển 8951.
2.























IC vi điều khiển 8951 thuộc họ MCS51 có các đặc điểm sau :
+ 4 kbyte Flash.
U1
AT89C51
9
18
19
29
30
31
1
2
3
4
5
6
7

8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XTAL2
XTAL1
PSEN
ALE/PROG

EA/VPP
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4

P0.5/AD5
P0.6/AD6
P0.7/AD7
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 35
+ 128 byte RAM
+ 4 port I/0 8 bit
+ Hai bộ định thời 16 bits
+ Giao tiếp nối tiếp
+ 64KB không gian bộ nhớ chương trình ngoài
+ 64 KB không gian bộ nhớ dữ liệu ngoài
a.Port0: là port có 2 chức năng, ở trên chân từ 32 đến 39 của MC 8951.
Trong các thiết kế cỡ nhỏ không dùng bộ nhớ ngoài, P0 được sử dụng như là
những cổng I/O. Còn trong các thiết kế lớn có yêu cầu một số lượng đáng kể bộ
nhớ ngoài thì P0 trở thành các đường truyền dữ liệu và 8 bit thấp của bus địa chỉ.
b. Port1: là một port I/O chuyên dụng, trên các chân 1-8 của MC8951.
Chúng được sử dụng với một múc đích duy nhất là giao tiếp với các thiết bị ngoài
khi cần thiết.
c. Port2: là một cổng có công dụng kép trên các chân 21 – 28 của MC 8951.
Ngoài chức năng I/O, các chân này dùng làm 8 bit cao của bus địa chỉ cho những
mô hình thiết kế có bộ nhớ chương trình ROM ngoài hoặc bộ nhớ dữ liệu RAM có
dung lượng lớn hơn 256 byte.
d. Port3: là một cổng có công dụng kép trên các chân 10 – 17 của MC 8951.
Ngoài chức năng là cổng I/O, những chân này kiêm luôn nhiều chức năng khác
nữa liên quan đến nhiều tính năng đặc biệt của MC 8951, được mô tả trong bảng
sau:

Bit Tên Chức năng chuyển đổi
P3.0

P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
RxD
TxD
0INT
1INT
T0
T1
ÖW
R

RD
Ngõ vào dữ liệu nối tiếp.
Ngõ xuất dữ liệu nối tiếp.
Ngắt ngoài 0.
Ngắt ngoài 1.
Ngõ vào TIMER 0.
Ngõ vào của TIMER 1.
Điều khiển ghi dữ liệu lên bộ nhớ ngoài.
Điều khiển đọ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

e. 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 truy xuất 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 của chương trình. Tín hiệu PSEN ở
mức thấp trong suốt phạm vi quá trình của một 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
cao.
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 36
f. 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. 8951 dùng ALE để giải đa hợp
bus địa chỉ và dữ liệu, khi port 0 được dùng làm bus địa chỉ/dữ liệu đa hợp: vừa là
bus dữ liệu vừa là byte thấp của địa chỉ 16 bit . 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 Port
0 dùng để xuất hoặc nhập dữ liệu trong nữa sau chu kỳ của chu kỳ 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 8951 là
12MHz thì ALE có tần số 2MHz. Chân này cũng được làm ngõ vào cho xung lập
trình cho EPROM trong 8951.
g. EA (External Access): Tín hiệu vào EA trên chân 31 thường được nối lên
mức cao (+5V) hoặc mức thấp (GND). Nếu ở mức cao, 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
chỉ được thi hành từ bộ nhớ 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 8951.
h. RST (Reset): Ngõ vào RST trên chân 9 là ngõ reset của 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
được đưa vào những giá trị thích hợp để khởi động hệ thống.
i.OSC: 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. Tần số thạch anh thông thường là 12MHz.
j. POWER: 8951 vận hành với nguồn đơn +5V ( 20%. Vcc được nối vào

chân 40 và Vss (GND) được nối vào chân 20.
2. Tìm hiểu về tập lệnh của 89C51.
Một số lệnh thường gặp.
ACALL addr11 : Gọi chương trình con(gọi đến địa chỉ tuyệt đối).
Mô tả: ACALL gọi không điều kiện một chương trình con đặt tại địa chỉ được chỉ
ra trong lệnh. Lệnh này tăng nội dung của PC bởi 2 để PC chứa địa chỉ của lệnh kế
lệnh ACALL, sau đó cất nội dung 16 bit của PC vào stack(Byte thấp cất trước) và
tăng con trỏ stack SP bởi 2. Do vậy chương trình con được gọi phải được bắt đầu
trong cùng khối 2K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo sau
lệnh ACALL. Các cờ khong bị ảnh hưởng.
LCALL addr16 : Gọi chương trình con. Chương trình con được gọi phải được bắt
đầu trong cùng khối 64K của bộ nhớ chương trình với Byte đầu tiên của lệnh theo
sau lệnh LCALL. Các cờ khong bị ảnh hưởng.
ADD A,<src-byte>: Cộng
Mô tả: ADD Cộng nội dung của một byte ở địa chỉ được chỉ ra trong lệnh với nội
dung thanh chứa và đặt kết quả vào thanh chứa.
ADD có 4 kiểu định địa chỉ cho toán hạn nguồn: thanh ghi, trực tiếp, thanh ghi
gián tiếp hoặc tức thời.
AJMP addr11: Nhảy đến địa chỉ tuyệt đối. Đích nhảy đến phải trong cùng khối
2K của bộ nhớ chương trình với byte đầu tiên của lệnh theo sau lệnh AJMP.
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 37
ANL <dest-byte>,<src-byte>: thực hiện phép toán AND từng bít giữa hai toán
hạng được chỉ ra trong lệnh và lưu kết quả vào toán hạn đích. Các cờ không bị ảnh
hưởng.
CJNE <dest-byte>,<src-byte>,rel : So sánh và nhảy nếu không bằng. Cờ nhớ
được set bằng 1 nếu giá trị nguyên không dấu của toán hạn trước nhỏ hơn giá trị
nguyên không dấu của toán hạn sau. Ngược lại cờ nhớ bị xoá.
CLR bit: Xoá bít.

CPL bit: Lấy bù bit.
DEC byte: Byte chỉ ra trong lệnh được giảm đi 1, cờ nhớ không bị anhư hưởng.
DIV AB: chia số nguyên không dấu 8 bit chứa trong thanh chứa cho số nguyên
không dấu 8 bít chứa trong thanh ghi B. Thương số chứa trong thanh chứa A còn
dư số chứa trong thanh ghi B.
DJNZ <byte>,<rel-addr): giảm byte chỉ ra trong toán hạn đầu trong lệnh và rẽ
nhánh đến địa chỉ được chỉ ra bưởi toán hạn thứ hai trong lệnh nếu kết quả sau khi
giảm khác 0.
INC byte: Byte chỉ ra trong lệnh được tăng bởi 1, cờ nhớ không bị anhư hưởng.
JB bit,ret : Nhảy nếu bít được set bằng 1.
MOV dest-byte>,<src-byte> : Di chuyển nội dung của toán hạng nguồn đến toán
hạn đích.
MUL AB: Nhân các số nguyên không dấu 8 bit chứa trong thanh chứa A và trong
thanh ghi B. Byte thấp của tích số 16 bit được cất trong thanh chứa cong byte cao
cất trong thanh ghi B.
RL A: 8 bít trong thanh chứa A được quay trái 1 bit.
SETB <bit>: Set bit bằng 1.
Một số ví dụ.
Chương trình hiển thị giây và phút dùng bộ định thời.
#include <Rc51Regs.inc>
GIAY EQU 31H ; Địa chỉ của RAM lưu giá trị của giây
PHUT EQU 32H ; Địa chỉ của RAM lưu giá trị của phút
ORG 00H
LJMP MAIN
ORG 001BH ;Vector của bộ định thời 1
LJMP T0ISR
ORG 0030H
MAIN: MOV R1,#0
MOV GIAY,#0
MOV PHUT,#0

LAP: MOV A,GIAY
CJNE A,#60,HT
INC PHUT
MOV GIAY,#00H
MOV A,PHUT
CJNE A,#60,HT
MOV PHUT,#00H
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 38
HT: MOV A,GIAY
ACALL HTGIAY
MOV A,PHUT
ACALL HTPHUT
MOV TMOD,#12H
MOV IE,#8AH ;Cho phép ngắt do các bộ định thời
SETB TF1 ; Buột ngắt do bộ định thời 1
CJNE R1,#100,LAP
MOV R1,#0
INC GIAY
LJMP LAP
; Chương trình ngắt
T0ISR: CLR TR1
MOV TH1,#HIGH(-10000)
MOV TL1,#LOW(-10000)
SETB TR1
INC R1
RETI
; Chương trình con hiển thị giây
HTGIAY: MOV B,#10

DIV AB
ADD A,#10H
MOV P2,A
ACALL DELAY
MOV A,B
ADD A,#00
MOV P2,A
ACALL DELAY
RET
; Chương trình con hiển thị phút
HTPHUT: MOV B,#10
DIV AB
ADD A,#30H
MOV P2,A
ACALL DELAY
MOV A,B
ADD A,#20H
MOV P2,A
ACALL DELAY
RET
DELAY: MOV R0,#200
DJNZ R0,$
RET
END

Chương trình sử dụng ngắt ngoài 0.
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 39
#include <Rc51Regs.inc>

ORG 00H
LJMP MAIN
LJMP EXOISR ;Địa chỉ vector EXT 0
ORG 001BH
LJMP T0ISR
ORG 0030
MAIN:
SETB IT0 ; Tác động cạnh âm
MOV TMOD,#11H
MOV IE,#81H ; Chỉ cho phép EX0
LJMP $
EXOISR:
SETB TF1 ; Buột ngắt do bộ định thời 1
SETB ET0
SETB ET1 ; Cho phép các ngắt do bộ định thời
RETI
T0ISR: CLR TR1
MOV TH1,#HIGH(-50000)
MOV TL1,#LOW(-50000)
SETB TR1
CPL P0.1 ; Tạo xung ra
RETI
END

3. Điều khiển công suất.
- Điều khiển tải DC:
R1
Q2
R0
Vcc

p1.0
Rtai

Đây là sơ đồ điều khiển khá đơn giản cả về phần cứng lẫn phần mềm, tuy
nhiên sơ đồ thường chỉ áp dụng để điều khiển các tải DC công suất nhỏ.
dm
on
T
dmhd
I
T
T
dtI
T
I
on
==

0
2
1

T
on
: Thời gian dòng điện chạy qua tải
T
OFF
: Thời gian dòng điện không chạy qua tải
T = T
on

+ T
OFF

Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập cơng nhân
Trang 40
Vậy muốn tăng dòng điện qua tải thì ta tăng T
on
. Khi T
on
= T thì dòng điện
qua tải là lớn nhất.
- Điều khiển tải AC:
Ta dùng phương pháp điều khiển góc pha là phương pháp thay đổi góc kích α
của Triac để làm biến đổi điện áp đặt lên tải, khi góc kích α = 0 thì coi như tồn bộ
điện áp lưới đặt lên tải nếu như ta bỏ qua sụt áp trên Triac. Ưu điểm của phương
pháp này là điều khiển liên tục và chính xác hơn.


Q2
Rt
Tai AC
V1
220V
R1
R2
Q1
TRIAC
p1.0
R0

5V






H
ình :Sơ đồ mạch điều khiển
Vtải
I
g

VAC
Hình : Sơ đồ da
ï
n
g
són
g
trên tải
α
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 41
Giá trị điện áp hiệu dụng trên tải
:
U
o
=








π
θ
θ
π
2
0
2
)sin(
2
1
2/1
d
Um

=







π

α
θ
θ
π
d
Um )sin(
1
2
2/1

=
2/1
)
2
2sin
(
2
1






+−
α
απ
π
U
m


=
2/1
)
2
2sin
(
1






+−
α
απ
π
U


Trong đó, U và Um lần lượt là giá trị điện áp hiệu dụng và điện áp đỉnh trên tải
còn α là góc kích dẩn Triac. Từ đây, suy ra công suất trên tải là :
P = U
o
* I
o
=
R
U

2
0
=














+−
2
2sin1
2
α
απ
π
R
U

P =







+−
π
π
π
α
2
2sin
1
2
R
U


Trong đó, P là công suất tiêu thụ trên tải còn R là trở kháng của tải.
Như vậy, công suất tiêu thụ trên tải phụ thuộc vào góc kích dẩn
α, khi góc
kích
α
tăng thì P giảm và ngược lại, tại α= 0 công suất là lớn nhất và bằng công
suất danh định của tải, tại giá trị
α = π công suất tiêu thụ nhỏ nhất P = 0. Nghĩa là,
bằng cách thay đổi góc kích dẩn
α ta sẽ điều khiển được công suất tiêu thụ trên tải.
4. Điều khiển động cơ bước.
- Đặc điểm chung của động cơ bước:
Động cơ bước thực chất là động cơ đồng bộ hoạt động dưới tác dụng của

các xung rời rạc và kế tiết nhau. Khi một xung dòng điện hoặc điện áp đặt vào
cuộn dây phần ứng của động cơ bước, thì roto (phần cảm) của động cơ sẽ quay đi
một góc nhất định, và được gọi là bước của động cơ, khi các xung dòng điện đặt
vào cuộn dây phần ứng liên tục thì roto sẽ quay liên tục.
Vị trí của động cơ bước được xác định bằng số lượng xung và vận tốc của
động cơ tỷ lệ với tần số xung và được xác định bằng số bước/giây.Tính năng làm
việc của động cơ bước được đặc trưng bởi bước được thực hiên, đặc tính góc
(quan hệ của momen địên từ theo góc giữa trục của roto và trục của từ trường
tổng, tần số xung giới hạn sao cho các quá trình quá độ, khi hoàn thành một bước
có thể tắt đi trước khi bắt đầu bước tiếp theo.Tính năng mở máy của độn g cơ,
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 42
được đặc trưng bởi tần số xung cực đại có thể mở máy mà không làm cho roto mất
đồng bộ ( bỏ bước)
Bước của động cơ (giá trị của góc giữa hai vị trí ổn định kế nhau của roto)
càng nhỏ thì độ chính xác trong điều khiển càng cao. Bước của động cơ phụ thuộc
vào số cuộn dây phần ứng, số cực của stato, số răng của roto và phương pháp điều
khiển bứơc đủ hoặc điều khiển nửa bước. Tuỳ theo yêu cầu về độ chính xác và kết
cấu của động cơ mà bước của động cơ thay đổi trong giới hạn từ

0,18
0
÷180
0.
Trong đó: động cơ bước nam châm vĩnh cữu dạng cực móng và có từ trở thay đổi
từ 6
0
÷45
0

, động cơ bước có từ trở thay đổi có góc bước nằm trong giới hạn từ
1,8
0
÷ 30
0
và động cơ bước hỗn hợp có góc bước thay đổi trong khoảng 0,36
0
÷15
0
.
Các giá trị góc của các loại động cơ kể trên được tính trong chế độ điều khiển
bước đủ.
Chiều quay của động cơ bước không phụ thuộc vào chiều dòng điện chạy
trong các cuộn dây phần ứng, mà phụ thuộc vào thứ tự cuộng dây phần ứng được
cấp xung điều khiển.
Số cuộn dây phần ứng ( hay còn gọi là cuộn dây pha) của động cơ bước
đựợc chế tạo từ 2 ÷ 5 cuộn dây pha ( hay còn gọi là bối dây và được đặt đối diện
nhau trong các rãnh ở stato. Đối với cuộn dây phải có hai cuộn dây thì chỉ dùng
cho điều khiển lưỡng cực ( cuộc dây có cực tính thay đổi) với 4 cuộn dây có thể
dùng cho cả hai chế độ điều khiển đơn cực và điều khiển lưỡng cực
Phương pháp điều khiển động cơ bước:
Có 3 phương pháp điều khiển động cơ bước: Đầy bước, nữa bước, vi bước
nhưng ở đây ta chỉ xét trường hợp đầy bước.
Nguyên lý làm việc của động cơ bước là dựa trên sự tác động tương hổ
giữa từ trường của stato và roto, hình thành momen điện từ làm quay roto đi một
góc nhất định. Khi cho xung dòng điện tác động vào cuộn dây pha A A

roto sẽ
quay đến vị trí, mà trục từ trường của roto (cũng chính là trục của roto) trùng với
trục từ trường pha A.

Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 43
Nếu cắt xung dòng điện vào pha A, cho xung dòng điện tác dụng vào cuộn
dây BB

thì véc tơ từ hoá của dòng điện sẽ quay đi một góc là 18
0
, do đó roto cũng
quay đi một góc 18
0
để cho trục của từ roto trùng với trục của từ trường tổng.
Sau đó cắt xung tác động vào pha B và cho dòng điện tác động vào pha A nhưng đổi
dấu thì roto quay tiếp một góc 18
0
. Nếu tính từ góc đầu thì roto đã quay một góc 36
0

Quá trình chuyển phát xung dòng điện tác dụng vào một trong hai pha cho
tới khi roto quay một vòng, động cơ sẽ thực hiện được 20 bước (Còn gọi 20 nhịp)
Quá trình chuyển mạch các cuộn dây điều khiển theo một trình tự (A
+
,B
+
,A
-
, B
-
) và quá trình chuyển mạch theo trình tự (A
+

,B
+
),( A
+
,B
-
,),(A
-
,B
+
),(A
-
,B
-
)
Trong trường hợp này thì trong một chu trình chuyển mạch có 20 nhịp (bước ) và
ở mỗi nhịp có số cuộn dây điều khiển được cấp xung dòng điện cho nhau.
Dạng điều khiển này được gọi là điều khiển bước đủ, hay còn gọi điều
khiển đối xứng.
Điều khiển động cơ bước 1 pha và hai pha theo phương pháp đầy bước
Bảng trạng thái điều khiển động cơ bước

2 pha 4 pha
Bước Pha 1 Pha 2 Bước Pha 1 Pha 2 Pha 3 Pha 4
1 1 1 1 1 0 1 0
2 -1 1 2 0 1 1 0
3 -1 -1 3 0 1 0 1
4 1 -1 4 1 0 0 1



Điều khiển động cơ 2 pha

Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 44
Điều khiển động cơ 4 pha

- Từ bảng trạng thái trên ta có thể dùng IC số để tạo mạch điều khiển.
Pha2
VCC
Pha3
U1A
7486
1
2
3
U2A
7473
14
1
3
12
13
2
J
CLK
K
Q
Q
CLR

VCC
U1B
7486
4
5
6
Pha1
State
U2B
7473
7
5
10
9
8
6
J
CLK
K
Q
Q
CLR
U1C
7486
9
10
8
U1D
7486
12

13
11
VCC
Pha4
Clook

- Đặc tính của động cơ bước : Vận tốc của động cơ bước phụ thuộc vào tần số
xung điều khiển.
Đặc điểm vận tốc của roto trên một bước thể hiện tính dao động của động
cơ, đặc tính này có thể được cải thiện bằng việc thiết kế một hộp biến tốc đặc biệt
nhằm hạn chế và loại trừ cộng hưởng để có được hằng số thời gian tốt hơn.
Khi có một xung dòng điện vào cuộn dây stato, roto động cơ không chuyển
động ngay từ góc này sang góc khác mà nó dao động một thời gian cần để quay
5% vòng thì mới đạt được vị trí ổn định. Hằng số thời gian phụ thuộc vào momen
quán tính của từ thông Φ.
Tần số xung càng cao thì hằng số thời gian điện từ sẽ càng ngắn. Nếu xung
điều khiển động cơ có tần số quá cao thì roto sẽ quay liên tục và làm việc quá tần
số giới hạn, ở chế độ này động cơ không thể dừng đột ngột và cũng không thể đảo
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 45
chiều. Muốn thực hiện dừng động cơ cần phải giảm tần số đến vùng làm việc theo
bước.
5. Bàn phím
- Ma trận phím
















Đ
ể thực hiện ma trận bàn phím ta dùng phương pháp quét phím. Quét cột và đọc dữ
liệu tại hàng hoặc ngược lại. Theo hình vẽ thì các cột cách nhau 1 đơn vị, các hàng
cách nhau 4 đơn vi.
Vậy giá trị của bàn phím được tính theo công thức sau
Bp= C+h.4
Trong đó: Bp: Giá trị của phím được nhấn.
C: Cột được quét.
H: Hàng có phím nhấn.
Ví dụ: Khi ta quét cột C0 mà phím 4 được nhấn thì H1 nhận được tín hiệu.
Vậy giá trị nhận được của bàn phím là Bp = 0 + 1.4 = 4.
Khi mạch cần nhiều phím thì ta mới tổ chức ma trận phím để giảm số lượng
cổng sử dụng cho bàn phím.
Chương trình hiển thị bàn phím.
#include <Rc51Regs.inc>
phim equ 30h
ORG 0000H
MAIN:
ACALL IN_HEX
ACALL HT

SJMP MAIN
;
IN_HEX: MOV R3,#50
BACK1: ACALL GET_KEY
1 4
2 3
1 4
2 3
1 4
2 3
C3
1 4
2 3
7
1 4
2 3
P1.3
1
H2
2
C
3
F
1 4
2 3
H0
P1.1
1 4
2 3
5

P1.0
1 4
2 3
1 4
2 3
P1.5
E
P1.4
1 4
2 3
D
1 4
2 3
64
1 4
2 3
98
0
1 4
2 3
C0
H1
1 4
2 3
P1.6
J1
CON8
1
2
3

4
5
6
7
8
C1
P1.7
1 4
2 3
H3
A
C2
1 4
2 3
P1.2
B
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 46
JNB 10,EXP1
DJNZ R3,BACK1
BACK2: MOV R3,#50
BACK3: ACALL GET_KEY
JB 10,BACK2
DjNZ R3,BACK3
SETB 11
MOV PHIM,R6
EXP1: NOP
RET
;

GET_KEY:
MOV A,#0FEH
MOV R2,#0
SCAN_ROW:
MOV P0,A
MOV R4,A ;luu gia tri cua A vao R4
;chuan bi quet cac cot va nhay
JNB P0.4,ROW_0
JNB P0.5,ROW_1
JNB P0.6,ROW_2
JNB P0.7,ROW_3
;khong co phim an thi chuyen den cot tiep theo
MOV A,R4 ;lay lai ma lan truoc tu r4
RL A ;quay trai 1 bit de chuyen den cot ke tiep
INC R2 ;tang so lan quet len 1
CJNE R2,#4,SCAN_ROW ;khong du 4 cot thi quay lai quet
SETB P2.6
SJMP NO_CODE
ROW_0:
MOV A,R2
ADD A,#0
SETB 10
MOV R6,A
SJMP EXIT
ROW_1:
MOV A,R2
ADD A,#4
SETB 10
MOV R6,A
SJMP EXIT

ROW_2:
MOV A,R2
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 47
ADD A,#8
SETB 10
MOV R6,A
SJMP EXIT
ROW_3:
MOV A,R2
ADD A,#12
SETB 10
MOV R6,A
SJMP EXIT
NO_CODE: ;NEU KHONG CO PHIM AN THI XOA BIT 10
CLR 10
EXIT:
RET
HT: MOV B,#10
DIV AB
ADD A,#10H
MOV P2,A
ACALL DELAY
MOV A,B
ADD A,#00
MOV P2,A
ACALL DELAY
RET
DELAY: MOV R0,#200

DJNZ R0,$
RET
END

Khi mạch không cần nhiều phím thì ta có thể dùng phím như sau:







6. Hiện thị
*. Khi giao tiếp với LED 7 đoạn ta có nhiều cách giao tiếp khác nhau.
- Xuất dữ liệu trực tiếp ra cổng: chỉ sử dụng khi có ít led hiển thị.
- Khi có nhiều LED hiển thị thì ta dùng phương pháp quét có sơ đồ
mạch cơ bản như sau:
Vcc
R1
R
1 4
2 3
p1.0
Xưởng điện tử Bài 7:Giám sát và điều khiển
Thực tập công nhân
Trang 48
R4
Q7
led8
c

led4
Q6
R11
R9
d
e
Q2
R2
b
Q4
J2
DATA LED7D
1
2
3
4
5
6
7
8J3
CON8
1
2
3
4
5
6
7
8
R12

0
g
5V
R16
R3
R7
f
0
R14
R18
Q5
R10
Q1
led3
R6
Q8
led2
led5
Q3
VCC_CIRCLE
R1
U2
7447
7
1
2
6
4
5
3

13
12
11
10
9
15
14
168
D0
D1
D2
D3
BI/RBO
RBI
LT
A
B
C
D
E
F
G
VCCGND
led1
a
R13
R15
led6
R5
led7

R8
R17
J1
DIEU KHIEN LED
1
2
3
4
5
6
7
8
VCC_CIRCLE
U1
74LS138
1
2
3
15
14
13
12
11
10
9
7
168
6
4
5

A
B
C
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7
VCCGND
G1
G2A
G2B


III. PHẦN THỰC TẬP CỤ THỂ
- Thực hiện mạch kít vi điều khiển 89C51
- Thực hiện mạch ma trận bàn phím
- Thực hiện mạch hiển thị 6 LED 7 đoạn.
- Viết chương trình nhập dữ liệu từ bàn phím lưu vào vùng đệm.
- Nhận dữ liệu từ vùng đệm xuất ra LED
- Cấp nguồn cho mạch và kiểm tra.
Mạch phải đảm bảo kỹ thuật và hoạt động ổn định.

×