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

Thiết kế CARD ghép nối thiết bị đo với máy tính qua cổng nối tiếp

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 (168.6 KB, 18 trang )

Nguyễn xuân Thành : Đo Lường - Tin Học 1
Nhiệm vụ của bài toán:
Thiết kế CARD ghép nối thiết bị đo với máy tính qua cổng nối tiếp.
Yêu cầu:
• Thiết kế thiết bị đo ngoài có sử dụng vi xử lý có giao diện nối tiếp.
• Viết chương trình chuyển một vùng nhớ qua lại giữa máy tính và thiết bị đo.
I. Tổng quát về việc ghép nối thiết bị đo với máy tính qua cổng nối tiếp:
Việc phối ghép giữa thiết bị đo (TBĐ) và máy tính (MT) là một trong những yêu
cầu cần thiết trong việc đo lường và điều khiển cho một hệ thống làm việc hiện đại.
Sự phối ghép này xẽ tạo ra mét hệ thống đo lường cao cấp. Hệ thống này chứa đựng
3 khâu cơ bản là:
• Khâu thu thập dữ liệu.
• Khâu xử lý.
• Khâu các cơ cấu chấp hành.
∗ Hệ thu thập dữ liệu có nhiệm vụ phối ghép với tín hiệu và biến đổi tín hiệu thu
được từ dạng tương tự sang dạng số để CPU có thể đọc vào và xử lý.
∗ Bé vi xử lý thường là bộ chuyên dụng: 8031, 8051, 8052, 8086, 8088…. .Trong
hệ này thường có một đồng hồ thời gian để phục vụ quá trình điều khiển được rễ
dàng.
∗ Các cơ cấu chấp hành thường là loại số hay tương tự,cơ cấu nhấp hành số
thường là các khoá điện tử dùng để đóng ngắt các mạch cấp cho đối tượng cần
điều khiển, do đó cơ cấu này chỉ cần được cấp tín hiệu logic thích hợp là đủ.
Sự ghép nối thiết bị đo (TBĐ) với máy tính có thể hình dung một cách tổng quát
thông qua sơ đồ sau:
CARD giao diện được gắn trên máy tính, cho phép máy tính có thể truyền đi hoặc
nhận về các số liệu thông qua đường truyền tín hiệu.
Một đầu của CARD giao diện phải tương thích với các quy định về trao đổi thông
tin trong máy tính, còn đầu kia lại phải tương thích với các quy định về trao đổi
thông tin trên đường truyền tín hiệu.
1
Nguyễn xuân Thành : Đo Lường - Tin Học 1


MODUL cơ sở thường được gắn trong TBĐ,đảm nhận nhiệm vụ phối hợp giữa
đường truyền tín hiệu và các bộ phận bên trong của thiết bị, là khâu trung gian cho
phép thiết bị có thể nhận số liệu từ máy tính cũng như gửi số liệu về máy tính. Tuy
nhiên vộ vi xử lý còn có nhiệm vụ xử lý và có thể lưu giữ kết quả .
Đường truyền tín hiệu có thể là song song hoặc nối tiếp,với yêu cầu của bài này thì
đường truyền tín hiệu của ta phải là đường truyền nối tiếp. Do đó ta phải ghép nối
tiếp qua RS-232 là giao diện nối tiếp của máy tính phổ biến nhất hiện nay.
Các máy tính đều có cổng RS-232 cho phép truyền thông tin nối tiếp không đồng
bộ giữa máy tính và thiết bị đo.
Thực tế việc truyền thông tin nối tiếp có hai phương pháp: truyền đồng bộ và
không đồng bộ (dị bộ).
Trong phương pháp truyền đồng bộ, dữ liệu được truyền theo từng mảng với tốc độ
xác định. Mảng dữ liệu trước khi truyền đi sẽ được gắn thêm ở đầu mảng và cuối
mảng các Byte (hoặc một nhóm bit) đánh dấu đặc biệt.
Ta có thể mô tả khuôn dạng truyền đồng bộ như sau:
Trong đó:
SYN: ký tự đồng bộ (16H). TEXT: thân văn bản (DATA).
SOH: ký tự bắt đầu phần mào đầu. EXT: ký tự kết thúc văn bản.
HEADER: phần mào đầu. ETB: ký tự kết thúc khối văn
bản.
STX: ký tự bắt đầu văn bản. BCC: ký tự kiểm tra khối.
Trong cách truyền không đồng bộ, dữ liệu được truyền đi theo từng bit .Ký tự cần
truyền đi được gắn thêm một bit đánh dấu ở đầu để báo bắt đầu ký tù (Start) và 1
hoặc 2 bit đánh dấu ở cuối để báo kết thúc ký tù (Stop). Giữa các ký tự truyền đi có
thể có khoảng cách về thời gian.
Dạng thức của dữ liệu truyền đi theo phương pháp không đồng bộ được thể hiện
như sau:
2
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Tuỳ theo loại mã được sử dụng trong khi truyền (baudot, ASCII, EBCDIC) độ dài

cho mã ký tự có thể là 5,6,7,8 bit. Có thể có hoặc không có 1 bit Parity để kiểm tra
lỗi khi truyền, có thể chọn 1 hoặc 2 bit Stop nhưng bắt buộc phải có bit Start.
Vậy để truyền đi một ký tù theo phương pháp không đồng bộ, ngoài ký tù mang tin
ta buộc phải truyền thêm Ýt nhất là 2 bit và nhiều nhất là 4 bit phụ để tạo ra khung
cho ký tự đó, vì thể phương pháp này tuy đơn giản nhưng có hiệu suất không cao.
Vì CARD ghép nối là nối tiếp nên ta sẽ ghép nó với cổng nối tiếp RS232 của máy
tính. Việc truyền dữ liệu qua cổng RS232 được tiến hành theo cách nối tiếp, nghĩa
là các bit dữ liệu được gửi nối tiếp nhau trên một đường dẫn. Cổng nối tiếp RS232
không phải là một hệ thống BUS, nã cho phép dễ dàng tạo ra liên kết dưới hình
thức điểm với điểm giữa TBĐ và MT.
RS232 có hai loại là loại 25 chân và loại 9 chân , trong bài này ta sẽ thiết kế CARD
ghép nối với cổng 9 chân.
1 2 3 4 5
6 7 8 9
Chức năng của các chân được mô tả như sau:
Chân Chức năng
1
2
3
4
5
6
7
8
DCD - data carrier detect lối vào
RxD - receive data lối vào
TxD - transmit data lối ra
DTR - data terminal ready lối ra
GND - nối đất
DSR - data set readly lối vào

RTS - request lối ra
CTS - clear to send lối vào
3
Nguyễn xuân Thành : Đo Lường - Tin Học 1
9 RI - ring indicator lối vào
Việc truyền dữ liệu xảy ra ở trên hai đường dẫn. Qua chân cắm ra TxD, MT gửi các
dữ liệu của nó đến TBĐ. Trong khi đó các dữ liệu mà máy tính nhận được , lại đưa
đến chân RxD. Thông qua vi mạch chuyển mức ta sẽ nối nó với bộ vi xử lý . Việc
bắt tay có thể thông qua hai chân số 7 (RTS) và chân số 8 (CTS).
II. Thiết kế CARD ghép nối nối tiếp:
Nhiệm vụ của CARD ghép nối là so sánh các đường dẫn địa chỉ ở máy tính với các
địa chỉ đã được thiết lập xem có thống nhất không và thông báo sự đánh giá ở một
độ điều khiển logic. Chỉ khi có sự thống nhất một cách chính xác mới có thể tiến
hành sự trao đổi thông tin với máy tính.
Trước tiên ta phải có bộ ADC ở đầu vào để biến tín hiệu tương tự từ máy đo thành
tín hiệu số, sau đó các bit dữ liệu phải được đưa vào bộ đệm hai chiều để đưa dữ
liệu đo vào và xuất ra tín hiệu điÒu khiển. Tiếp đó dữ liệu được đưa vào bộ xử lý
và xuất nhập thông qua cổng RS232 đưa vào máy tính.
Bên cạnh đó ta còn phải có bộ nhớ ngoài để lưu giữ kết quả trong quá trình xử lý.
Trên cơ sở đó ta có thể chọn các vi mạch để thiết kế CARD như sau:
1. Bé biÕn đổi ADC:
Ta sẽ chọn bộ biến đổi ADC là bộ ADC 0809. Đây là bộ chuyển đổi tương tự - số 8
bit. Vi mạch này có đầu vào là bộ chọn kênh 8 đường vào, 8 đường vào này sẽ được
đưa ra để nối vào đường dữ liệu từ TBĐ. Việc chọn đường vào nhờ vào ba đường
địa chỉ A,B,C. Điện áp nguồn cung cấp là Ucc=+5V, các đầu ra được ký hiệu từ 2
-1

(MSB) đến 2
-8
(LSB). Sơ đồ chân của vi mạch ADC 0809 được mô tả như sau:

4
Nguyễn xuân Thành : Đo Lường - Tin Học 1
IN-0
26
msb2-1
21
2-2
20
IN-1
27
2-3
19
2-4
18
IN-2
28
2-5
8
2-6
15
IN-3
1
2-7
14
lsb2-8
17
IN-4
2
EOC
7

IN-5
3
ADD-A
25
IN-6
4
ADD-B
24
ADD-C
23
IN-7
5
ALE
22
ref(-)
16
ENABLE
9
START
6
ref(+)
12
CLOCK
10
ADC0809
Nhịp clock của ADC0809 là : 640KHz.
Thời gian chuyển đổi là : 100µs.
Ba chân A,B,C được tổ hợp dùng chọn đầu vào analog IN như bảng sau :
8 chân D0 và D7 tổ hợp 256 giá trị đầu ra ứng 0 - 5 V
( ta lấy Vref+ = Vcc = 5 VDC & Vref- = GND = 0 )

5
Nguyễn xuân Thành : Đo Lường - Tin Học 1
2. Bộ đệm BUS hai chiều:
Ta chọn bộ đệm BUS hai chiều là vi mạch 74HC245. Sơ đồ chân của vi mạch này
được biểu diễn như sau:
A0
2
A1
3
A2
4
A3
5
A4
6
A5
7
A6
8
A7
9
B0
18
B1
17
B2
16
B3
15
B4

14
B5
13
B6
12
B7
11
E
19
DIR
1
74HC245
8 đầu từ A0 đến A7 là đầu vào dữ liệu đo và là đầu ra tín hiệu điều khiển, do đó nó
sẽ được nối vào 8 bit ra của bộ ADC 0809.
6
Nguyễn xuân Thành : Đo Lường - Tin Học 1
8 đầu từ B0 đến B7 là các đầu ra dữ liệu và là đầu vào của tín hiệu điều khiển từ
máy tính nên nó sẽ được nối với bộ xuất và nhập dữ liệu.
Vi mạch 74HC245 chứa 8 bộ đệm với các lối ra 3 trạng thái để trao đổi thông tin
giữa các đường dẫn BUS dữ liệu hai chiều. Chiều sẽ được xác định từ mức logic ở
lối vào DIR: khi DIR = 0 thì dữ liệu sẽ được chuyển theo chiều từ B sang A tức là
lúc đó tín hiệu sẽ đi từ CARD ra, khi DIR = 1 thì dữ liệu đi theo chiều từ A sang B
nghĩa là dữ liệu từ TBĐ sẽ được đưa vào.
3. Bộ xử lý và nhập xuất dữ liệu:
Để thực hiện được yêu cầu của đề bài đưa ra, bé vi xử lý được chọn ở đây sẽ là bộ
vi xử lý chuyên dụng 8051.
Dạng cấu trúc của bộ vi xử lý đã được đơn giản hoá có thể mô tả như sau:
Đơn vị xử lý trung tâm nhận trực tiếp xung nhịp từ bộ tạo dao động được lắp thêm
vào, linh kiện phụ trợ có thể là một khung dao động bằng vật liệu gốm hoặc một
cộng hưởng bằng thạch anh. Ngoài ra , còn có khả năng đưa một tín hiệu giữ nhịp

từ bên ngoài vào.
Chương trình đang chạy có thể cho dừng lại nhờ một khối logic ngắt ở bên trong.
Các nguồn ngắt có thể là: các biến cố ở bên ngoài, sự tràn bộ đếm hoặc cũng có thể
là giao diện nối tiếp.
Bé vi xử lý 8051 có một bộ nhớ chương trình bên trong với dung lượng 4/8 Kbyte.
Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ , làm việc
độc lập với nhau. Bằng cách đấu nối các bộ đệm thích hợp, ta có thể hình thành một
cổng nối tiếp RS232 đơn giản. Tốc độ truyền qua cổng nối tiếp có thể đặt được
trong một vùng rộng và được Ên định bằng một bộ định thời gian.
7
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Chuyển sang sơ đồ sắp xếp chân của bộ vi xử lý 8051 ta có được mô tả như sau:
EA/VP
31
X1
19
X2
18
RESET
9
RD
17
WR
16
INT0
12
INT1
13
T0
14

T1
15
P10
1
P11
2
P12
3
P13
4
P14
5
P15
6
P16
7
P17
8
P00
39
P01
38
P02
37
P03
36
P04
35
P05
34

P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
PSEN
29
ALE/P
30
TXD
11
RXD
10
8051
Chức năng các chân của bộ vi xử lý 8051 được mô tả như sau:

Chân Ký hiệu Chức năng
1
đến
8
P1.0
đến
P1.7
Mô tả 8 bit của cổng giả hai hướng tự do sử dụng
9 RESET Đây là lối vào RESET, hoạt động ở mức cao
10
11
12
13
14
15
P3.0(RXD)
P3.1(TXD)
P3.2(TNTO
)
P3.3(TNT1)
P3.4(T0)
Tín hiệu dạng TTL từ RS232 sẽ được đưa vào chân này nhờ
một vi mạch chuyển mức
Tín hiệu ở lối vào dạng TTL sẽ được dẫn đến chân này
Hai chân 12,13 có thể dùng kết nối với một bộ nhớ ROM để
tạo bộ nhớ ngoài
Tín hiệu dạng CMOS từ RS232 sẽ được đưa vào chân này
nhờ một vi mạch chuyển mức
Tín hiệu ở lối vào dạng CMOS sẽ được dẫn đến chân này
8

Nguyễn xuân Thành : Đo Lường - Tin Học 1
16
17
P3.5(T1)
P3.6(WR)
P3.7(RD)
Hai chân 16,17 đảm nhiệm chức năng ghi đọc
18
19
20
XTAL2
XTAL1
Vss
Lối ra của bộ dao động thạch anh
Lối vào của bộ dao động thạch anh
Chân nối đất
21
đến
28
P2.0
đến
P2.7
Đây là cổng giả hai hướng, có thể sử dụng để làm đường dẫn
địa chỉ
29
30
31
/PSEN
ALE
/EA

Chân này sẽ xuất ra các xung đọc dùng cho bộ nhớ chương
trình bên ngoài
Chân này sẽ xuất ra các xung điều khiển để lưu trữ trung gian
các địa chỉ
Chân này quyết định xem bé vi xử lý có làm việc với bộ nhớ
ngoài hay không.
32
đến
39
P0.7
đến
P0.0
Cổng hai hướng cực máng hở P0 hoặc BUS dữ liệu hai hướng
dùng cho ROM,RAM và thiết bị ngoại vi ngoài (trong bài ta
sẽ nối nó với BUS dữ liệu của TBĐ).
40 Vdd Nguồn nuôi dương 5V
Khi làm việc với bộ nhớ chương trình ngoài, chân /EA sẽ được nối với nguồn +5V.
lúc này cổng P0 dùng để truyền nửa dưới của các địa chỉ nhớ được sử dụng giống
như dùng cho các dữ liệu 8 bit. Sau đó qua cổng P2 sẽ diễn ra quá trình xuất ra nửa
trên của các địa chỉ 8 bit. Cổng P1 và P3 có chứa mỗi cổng một cổng vào ra 8 bit,
có thể sử dụng được cho những mục đích điều khiển khác nhau. ậ cổng P3 có thêm
các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngoài, để đấu nối
giao diện nối tiếp cũng như các đường dẫn ngắt bên ngoài.
Mạch dao động ta sẽ thiết kế là bộ cộng hưởng bằng thạch anh phát ra tần số
11,0592 MHz và hai tụ điện cỡ 33pF để bằng tốc độ truyền chuẩn của cổng nối tiếp
là 9600 baud.
Bộ xử lý 8051 quản lý các địa chỉ tách rời nhau dùng cho bộ nhớ RAM bên trong
bằng 128 Byte cho bộ nhớ chương trình và cho một bộ nhớ dữ liệu ở bên ngoài.
Cùng địa chỉ đó có thể xuất hiện đồng thời ba lần. Trong phần trên của vùng nhớ
địa chỉ RAM bên trong có đặt vô số các thanh ghi chức năng đặc biệt để qua đó có

thể trao đổi với các bộ phận ngoại vi ở bên trong của bộ xử lý.
Khi hoạt động với bộ nhớ bên ngoài, các cổng 0, 2 và đôi khi cả cổng 3 đều được
sắp xếp dùng cho việc định địa chỉ và truyền dữ liệu. Một bộ nhớ RAM ngoài sử
dụng cùng BUS địa chỉ và BUS dữ liệu giống như bộ nhớ chương trình ở ngoài,
9
Nguyễn xuân Thành : Đo Lường - Tin Học 1
nhưng chúng được trao đổi với các đường điều khiển /WR và /RD, trong khi bộ nhớ
chương trình ở ngoài được kích hoạt bằng /PSEN.
4. Bộ nhớ chương trình
Thông thường thì tất cả các chương trình được nạp vào hệ phát triển sẽ mất đi sau
khi tắt nguồn nuôi. Hiện tượng này không phù hợp với ý muốn của ta nếu như là
muốn giữ một chương trình để dùng cố định cho một ứng dụng nào đó. Một khả
năng đạt được mục đích này là nạp một chương trình đã được viết ra vào một
EPROM , chẳng hạn như loại EPROM 2K*8.
Bên cạnh đó, muốn có bộ nhớ trung gian khi tính toán hay xử lý tín hiệu , để không
bị mất dữ liệu khi nhập vào ta có thể dùng bộ nhí RAM, chẳng hạn như loại 6116
2K*8.
Khi sử dụng với bộ nhớ ngoài ta có thể mô tả sơ đồ nguyên tắc cấu trúc của nó như
sau:
Vì bé vi xử lý có một BUS địa chỉ hoạt động theo kiểu dồn kênh nên mỗi lần truy
nhập, nên bộ nhớ chương trình bên ngoài phải chuyển các địa chỉ A0 đến A7 vào
một bộ nhớ trung gian. Khi các địa chỉ đã được sắp xếp, lệnh 8 bit có thể được đọc
qua BUS địa chỉ và BUS dữ liệu.
Như vậy ta chọn bộ nhớ ngoài gồm EPROM 2764 và bộ RAM 6116.
a. Xét bé nhớ EPROM 2764:
Sơ đồ chân của EPROM 2764 được bố trí như sau:
A0
10
A1
9

A2
8
A3
7
A4
6
A5
5
A6
4
A7
3
A8
25
A9
24
A10
21
A11
23
A12
2
CE
20
OE
22
PGM
27
VPP
1

D0
11
D1
12
D2
13
D3
15
D4
16
D5
17
D6
18
D7
19
2764
10
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Bộ nhớ này có thể xoá được bằng tia cực tím và lập trình được bằng điện với 8192
từ được chia thành nhóm 8 bit. Đây là bộ nhớ EPROM được sử dụng vào loại nhiều
nhất trong họ 27xx. Một cửa sổ trong suốt cho phép truyền qua tia cực tÝm để xoá
đi nội dung của EPROM. Sau đó chip có thể được viết lại như mới. Các lối vào
Vpp và /PGM dùng để xác lập chế độ ghi. Khi các chân này được nối với nguồn
5V. Các địa chỉ được dẫn tới các chân A0 đến A12, còn BUS dữ liệu đến các chân
O0 đến
O7. Để cho phép dữ liệu được đưa ra,ta nối chân /OE với đất. Vì ta dùng bộ xử lý
8051 nên chân /CE của EPROM 2764 sẽ được nối với chân PSEN của 8051.
b. Xét bé nhớ RAM 6116:
Sơ đồ chân của vi mạch này được bố trí như sau:

A0
8
A1
7
A2
6
A3
5
A4
4
A5
3
A6
2
A7
1
A8
23
A9
22
A10
19
E
18
G
20
W
21
D0
9

D1
10
D2
11
D3
13
D4
14
D5
15
D6
16
D7
17
6116
Trong quá trình chạy thử bộ nhớ RAM đóng vai trò như là bộ nhớ chương trình,
được trao đổi thông qua đường dẫn /PSEN.
Khi sử dụng với bộ vi xử lý 8051 ta nối chân /PSEN và chân /RD của 8051 với
chân /G của 6116, chân /WR của 8051 sẽ được nối với chân /W của 6116.
Tuy nhiên trong quá trình truền dữ liệu từ bộ nhớ chương trình vào bộ vi xử lý 8051
ta còn phải sử dụng bộ chốt.
Bộ chốt được chọn là vi mạch chốt thông dụng74LS373.
Sơ đồ chân của bộ chốt 74LS373 được sắp xếp như sau:
11
Nguyễn xuân Thành : Đo Lường - Tin Học 1
D0
3
Q0
2
D1

4
Q1
5
D2
7
Q2
6
D3
8
Q3
9
D4
13
Q4
12
D5
14
Q5
15
D6
17
Q6
16
D7
18
Q7
19
OE
1
LE

11
74LS373
Như vậy các đường dữ liệu D0 đến D7 của 74LS373 sẽ được nối vào các cổng P0
của 8051, còn các chân Q0 đến Q7 sẽ được nối với đường địa chỉ của bộ nhớ
chương trình.
Chân /OE của 74LS373 được nối xuống đất.
Chân chốt LE sẽ được nối với tín hiệu chốt đi ra từ bộ vi xử lý 8051 là ALE.
Ngoài ra ta còn phải dùng thêm vi mạch MAX232 để thích ứng tín hiệu ở mức
+12V hay –12V trên giao diện RS232 của máy tính.
Sơ đồ chân của vi mạch MAX232 được mô tả như sau:
C1+
1
C1-
3
C2+
4
C2-
5
Vs+
2
Vs-
6
VCC
16
GND
15
T1IN
11
T1OUT
14

T2IN
10
T2OUT
7
R1OUT
12
R1IN
13
R2OUT
9
R2IN
8
MAX232
Chân RxD của 8051 sẽ được nối với chân R1out của MAX232.
Chân TxD của 8051 sẽ được nối với chân T1in của MAX232.
Chân R1in của MAX232 sẽ được nối với chân số 3 của RS232 .
Chân T1out của MAX232 sẽ được nối với chân số 2 của RS232.
12
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Nguồn nuôi cho CARD sẽ được lấy từ một nguồn ổn áp được thiết kế bằng IC
7805.
Sơ đồ nguyên lý của mạch tạo nguồn ổn áp như sau:
Trên cơ sở đó ta có sơ đồ nguyên lý của CARD như sau:
13
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Sau đây ta xét cụ thể một số linh kiện và nguyên lý của CARD.
14
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Đầu tiên tín hiệu được đưa vào bộ biến đổi ADC0809, việc chọn 1 trong 7 đầu vào
nhờ ba chân A,B,C lấy địa chỉ từ BUS địa chỉ thông qua vi mạch 74LS373. Dữ liệu

này được đưa vào bộ vi xử lý 8051 thông qua đệm BUS hai chiều 74LS245. Dữ
liệu này được xếp lên BUS chung dùng cho dữ liệu và địa chỉ để truyền vào bộ nhí
trung gian dùng cho địa chỉ bằng sườn dốc xuống của xung tín hiệu ALE.
Tiếp theo là sự kích hoạt của đường dẫn /RD, điều khiển quá trình đọc bộ nhớ
ngoài. Ngay trước khi đường dẫn /RD trở về mức HIGH , bé vi xử lý đón nhận các
dữ liệu đang được xếp ở BUS.
Khi truy nhập dữ liệu 8 bit, nội dung của cổng P2 không thay đổi . Giống như khi
viết, các địa chỉ truy nhập được xuất ra qua BUS chung dùng cho dữ liệu và địa chỉ.
Việc sắp xếp các địa chỉ thấp A0 đến A7 diễn ra giống như ở quá trình truy nhập để
đọc. Tiếp theo , các dữ liệu cần viết được xuất ra cổng P0. Mét xung LOW được
dẫn tới đường dẫn /WR, thông thường thì khi xuất hiện sườn dốc lên ở đường dẫn
tín hiệu này thì khối ngoại vi được đấu vào BUS dữ liệu sẽ đón nhận các thông tin
được sắp xếp trên BUS dữ liệu.
Sau khi dữ liệu được xử lý song nó sẽ được đữ vào MT thông qua việc điều khiển
bằng một phần mềm được lập trình theo yêu cầu. Khi nhận được tín hiệu điều khiển
8051 đưa tín hiệu ra qua đường dẫn TxD, thông qua vi mạch chuyển mức MAX232
dữ liệu này được đưa đến RS232, thông qua chương trình điều khiển khi MT không
bận thì nó sẽ tiếp nhận dữ liệu này.
Việc bắt tay giữa MT và bộ vi xử lý thông qua hai đường T0 và T1 của 8051.
Trong sơ đồ nguyên lý trên , mạch RESET bao gồm ba linh kiện là hai tô C và điện
trở R, đặt bộ vi xử lý sau khi được cấp điện vào một trạng thái ban đầu xác định. Vì
bên ngoài bộ vi xử lý có nối một tụ điện bằng 10µF từ chân RESET lên nguồn +5V
thì khi cấp điện co nguồn nuôi, trước hết tụ điện được nạp và chân RESET sẽ được
đặt lên mức cao, sau đó tụ sẽ phóng điện và chân RESET dần dần giảm xuống mức
thấp.
Mạch dao động được thiết lập bằng một bộ thạch anh với tần số 11,0592 MHz.

III. Các chương trình phần mềm điều khiển:
Việc lập trình cho bé vi xử lý 8051 cần đến một phần lớn thời gian để lập trình cho
những thanh ghi rieeng biệt, do đó trước khi lập trình các phần mềm để điều khiển

ta xét qua chức năng của các thanh ghi đặc biệt của bộ vi xử lý 8051 :
Ý nghĩa Tên gọi Địa chỉ
Port 0 latch P0 80h
Stack pointer SP 81h
Data pointer DPTR 82h ,83h
Data pointer LOW DPL 82h
Data pointer HIGH DPH 83h
Power control PCON 87h
Timer counter control TCON 88h
15
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Timer counter mode control TMOD 89h
Timer counter 0 LOW byte TL0 8Ah
Timer counter 1 LOW byte TL1 8Bh
Timer counter 0 HIGH byte TH0 8Ch
Timer counter 1 HIGH byte TH1 8Dh
Port 1 latch P1 90h
Serial port control SCON 98h
Serial data control SBUF 99h
Port 2 latch P2 A0h
Interrup enable IE A8h
Port 3 latch P3 B0h
Interrup parity control IP B8h
Program status word PSW D0h
Accumulator Acc or A E0h
B register B F0h
1. Chương trình chuyển vùng dữ liệu từ TBĐ vào CARD:
Khi truyền dữ liệu từ TBĐ vào CARD thì mỗi BYTE nhận được đều chuyển tới
cổng P1, tiếp theo là một xung đồng bộ (Strobe) ngắn hạn tới P3.4(đường truyền
T0). Sau đó chương trình đọc trạng thái cổng P1 và gửi truyền trở lại BYTE đọc

được qua giao diện nối tiếp. Khi truyền , tất cả các đường dẫn lối vào cần phải được
đặt lên mức cao và do vậy được chuyển sang mạch trạng thái cao.
Trên cơ sở đó ta có chương trình chuyển dữ liệu từ TBĐ vào CARD như sau:
#include<8051.h>
.org 0000h
mov SP,#60h ; dat con tro ngan xep
INIT: clr TR1 ; lam ngung TIMER1
mov TH1,#0FAh ; nap dia chi cho cac thanh ghi dac biet
mov TL1,#0FAh
anl TMOD,#0Fh
orl TMOD,#20h
setb TR1 ; TR1=1:khoi dong TIMER1
mov SCON,#50h
setb TI
orl PCON,#80h
NEXT: acall NHAN
mov P1,A ; dua du lieu ra cong P1
anl P3,#0EFh ; xung STROBE o cong P3
mov A,P1 ; xet trang thai cong
acall TRUYEN
sjmp NEXT
NHAN jnb RI,NHAN
mov A,SBUF
clr RI ; RI=0:san sang nhan
ret
TRUYEN jnb TI,TRUYEN
clr TI ; TI=0:san sang truyen
mov SBUF,A
ret
.end

16
Nguyễn xuân Thành : Đo Lường - Tin Học 1
2. Chương trình chuyển dữ liệu qua lại giữa bộ nhớ chương trình và bộ vi xử lý
8051:
Việc truyền một chương trình từ bộ vi xử lý vào bộ nhớ chương trình tiến hành qua
đường truyền dữ liệu và đường truyền địa chỉ. Bộ vi xử lý đưa ra tín hiệu đọc cũng
như tín hiệu ghi để kích hoạt cho bộ nhớ chương trình. Trong quá trình nhập và
xuất tín hiệu từ bộ nhớ chương trình cần có một khoảng thời gian nhỉ cỡ một vài
mili giây cho đến khi cả hai bên đều sẵn sàng và ta có thể sử dụng chương trình sau
đây để chuyển dữ liệu qua lại giữa bộ vi xử lý và bộ nhớ chương trình ngoài.
#include<8051.h>
.org 0000h
mov SP,60h ; dat con tro ngan xep
INIT: clr TR1 ; lam ngung TIMER1
mov TH1,#0FAh ; nap cac thanh ghi dac biet
mov TL1,#0FAh
anl TMOD,#0Fh
orl TMOD,#20h
setb TR1
mov SCON,#50h
orl PCON,#80h
mov DPTR,#0000h ; dia chi 0
NEXT: acall NHAN ; nhan byte chuong trinh
movx @DPTR,A ; viet vao RAM
inc DPTR ; dia chi tiep theo
sjmp NEXT
NHAN jnb RI,NHAN
mov A,SBUF
clr RI ; RI=0:san sang nhan
ret

.end
3. Chương trình chuyển dữ liệu qua lại giữa CARD và MT PC:
Khi tiến hành chuyển dữ liệu từ CARD vào MT và ngược lại, thì máy tính PC được
ghép nối với CARD cần phải chuyển đổi cấu hình phù hợp. Muốn thế ta phải sử
dụng các đường truyền bắt tay của giao diện nối tiếp.Trong quá trình chuyền thì
MT phải ở trạng thái không bận thì nó mới nhận dữ liệu vào, còn CARD xử lý cũng
phải không bận thì mới nhận tín hiệu điều khiển từ MT.
Cuối cùng ta có chương trình chuyển dữ liệu qua lại giữa CARD và MT như sau:
#include<8051.h>
.org 0000h
mov SP,60h
INIT: mov SCON,#01010000b ; khoi dong cong noi tiep che do 8 BIT
mov TMOD,#00100001b ; chay TIMER1 o che do noi tiep 8 BIT
clr TR1 ; tam thoi ngung TIMER1
mov TH1,#0FAh ; ghi cac thanh ghi dac biet
mov TL1,#0FAh
17
Nguyễn xuân Thành : Đo Lường - Tin Học 1
anl TMOD,#0Fh
orl TMOD,#20h
setb TR1 ; khoi dong lai TIMER1
mov SCON,#50h ; INIT RS232
orl PCON,#80h
set TI
NEXT: acall NHAN
cjne A,#01,READ ; nhay den READ neu A<>1
WRITE: mov DPTR,#0101h
acall NHAN ; de nap dia chi thanh ghi
movx @DPTR,A
acall NHAN ; de nap noi dung thanh ghi

lcall XUAT
sjmp NEXT
READ: mov DPTR,#0201h
acall NHAN ; dia chi thanh ghi
movx @DPTR,A
lcall NHAP
acall TRUYEN
sjmp NEXT
NHAN jnb RI,NHAN
mov A,SBUF
clr RI ; RI=0:san sang nhan
ret
TRUYEN jnb TI,TRUYEN
clr TI ; TI=0:san sang truyen
mov SBUF,A
ret
XUAT mov 0FFh,A ; dia chi duoc viet vao
ret
NHAP mov A,0FFh ; dia chi cho thanh ghi tong
ret
.end
18
Nguyễn xuân Thành : Đo Lường - Tin Học 1
Tài liệu tham khảo.
1. Bài giảng Interface.
2. Kỹ thuật vi xử lý .
3. Kỹ thuật ghép nối máy vi tính.
4. Đo lường điều khiển bằng máy tính.
5. Vi xử lý trong đo lường điều khiển.
6. Programming and customizing the 8051 microcontroller.

7. Applied PC interfacing, graphics and interrupts.
19

×