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

Chế tạo modul giao tiếp một chiều với máy tính qua cổng com, hiển thị lcd

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

Thiết kế và chế tạo modul
giao tiếp một chiều với máy
tính qua cổng COM, hiển thị
LCD
Nội dung:

1, Điều khiển tốc độ và đảo chiều
2,Hiển Thị LCD
3, Sử dụng VĐK 89S52
4, Sử dụng encoder 3pha (ABC)
5, Thiết kế sử dụng Visual Basic

Thời gian thực hiện: Từ ngày:.................Đến ngày....................

Page 1


LỜI NĨI ĐẦU
Trong những thập niên gần đây cơng nghiệp hoá hiện đại hoá ngày càng phát triển
mạnh mẽ. Kỹ thuật điện tử đã có những bước phát triển mạnh đặc biệt là trong kỹ
thuật điều khiển tự động, kỹ thuật vi điều khiển.
Ở nước ta hiện nay, việc lập trình ghép nối máy tính sử dụng vi điều khiển đã và
đang là công cụ được ứng dụng rộng rãi trong lĩnh vực tự động hố. Nó phát triển
nhanh chóng, đã mang lại những thay đổi to lớn trong công nghệ cũng như trong
đời sống hàng ngày. Việc tạo ra công nghệ truyền thông không dây đã tiết kiệm
được rất nhiều về mặt kinh tế vì tốn rất ít dây dẫn, việc lắp đặt cũng trở nên gọn nhẹ
hơn, dễ dàng hơn…
Động cơ một chiều được sử dụng từ lâu trong các hệ truyền động có điều khiển tốc
độ yêu cầu dải điều chỉnh lớn, độ ổn định tốc độ cao và các hệ thường xuyên hoạt
động ở chế độ khởi động, hãm và đảo chiều. Nhờ có đặc tính điều chỉnh tốc độ tốt
nên được sử dụng rất phổ biến trong công nghiệp. Một số ứng dụng quan trọng của


động cơ 1 chiều như truyền động cho xe điện, máy công cụ, máy nâng vận chuyển,
máy cán, máy nghiền....
Từ các vấn đề trên các Thầy/Cô đã đưa ra cho nhóm đồ án chúng em đề tài “Thiết
kế và chế tạo modul giao tiếp một chiều với máy tính qua cổng COM, hiển thị
LCD” . Sau một thời gian tìm hiểu và nghiên cứu, cùng với những lời đóng góp ý
kiến chân thành từ các Thầy/Cô giáo cùng các bạn sinh viên, đặc biệt được sự
hướng dẫn nhiệt tình của thầy Đào Văn Đã nhóm đồ án chúng em đã quyết định
chọn và thực hiện đề tài:
“Thiết kế chế tạo modul giao tiếp động cơ 1 chiêu với máy tính qua cổng COM,
hiển thị LCD “
Tuy nhiên, để có được sản phẩm có tính ổn định cao, đảm bảo về chất lượng là
tương đối khó khăn. Vì thời gian để hồn thành đồ án này cũng có hạn, và tầm hiểu
biết của nhóm thực hiện vẫn cịn hạn chế… nên đề tài khó tránh khỏi những thiếu
sót, những khuyết điểm khơng mong muốn. Nhóm đồ án chúng em rất mong có
được những ý kiến đóng góp quý báu, chân thành của quý thầy cô cùng các bạn sinh
viên để đề tài này được hoàn thiện hơn.

Page 2


LỜI CẢM ƠN
Nhóm thực hiện đề tài xin chân thành bày tỏ lịng
biết ơn đến các Thầy, Cơ Trường Đại Học Sư
Phạm Kỹ Thuật Hưng yên đặc biệt là các Thầy, Cô
trong Khoa Điện - Điện Tử đã truyền lại những
kiến thức và kinh nghiệm quý báu cho nhóm em
thực hiện đề tài trong thời gian qua.

Nhóm thực hiện đề tài xin chân thành cảm ơn
Thầy Đào Văn Đã giảng viên Trường ĐHSP Kỹ

Thuật Hưng đã tận tâm hướng dẫn, cung cấp tài
liệu và tạo điều kiện thuận lợi để nhóm thực hiện
đề tài có thể hồn thành đề tài này.

Nhóm thực hiện đề tài xin chân thành cảm ơn
những người bạn, đã giúp đỡ động viên trong suốt
quá trình học tập và thực hiện đề tài.

Page 3


MỤC LỤC
LỜI NÓI ĐẦU ................................................................................................................................. 4
LỜI CẢM ƠN .................................................................................................................................. 5
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀ I ........................................................................................ 8
1.1 Lý do chọn đề tài. ................................................................................................................... 8


1.1.1 Cơ sở khoa học. .................................................................................................. 8

• 1.1.2. Cơ sở thực tiễn................................................................................................... 8
1.2. Mục tiêu nghiên cứu............................................................................................................. 9
1.3. Mục đích nghiên cứu. ........................................................................................................... 9
1.4. Phương pháp nghiên cứu. ...................................................................................................... 9
1.5. Phương tiện nghiên cứu ....................................................................................................... 9
1.6. Ý nghĩa của đề tài. .............................................................................................................. 10
CHƯƠNG II: CƠ SỞ LÝ THUYẾT ............................................................................................. 11
2.1 Truyền thông nối tiếp với 89S52.......................................................................................... 11



2.1.1 Các cơ sở của truyền thơng nối tiếp. ................................................................ 11



2.1.2 Ghép nối 89S52 tới RS232. ............................................................................. 19

• 2.1.3 Lập trình truyền thơng nối tiếp cho 89S52. ...................................................... 21
2.2 Vi điều khiển 89S52..........................................................................................24.
2.3 Động cơ 1 chiều..........................................................................................................36
2.3.1 Khái niệm.........................................................................................36
2.3.2 Nguyên tác hoạt động........................................................................36
2.3.3 Điều khiển tốc độ............................................................................36
2.4 Phương pháp điều chế độ rộng xung........................................................................38
2.5 Khối thị LCD............................................................................... .........................................39
CHƯƠNG III: THI CÔNG PHẦN CỨNG VÀ THIẾT KẾ GIAO DIỆN ĐIỀU KHIỂN
TRÊ N MÁ Y TÍNH....................................................................................................41
3.1 Sơ đồ khối của hệ thống.................................................................................... 41
3.2
Thi
cơng
phần
cứng............................................................................................42Error! Bookmark not
defined.


3.2.1
nguồn...................................................................................43Error!
Bookmark not defined.




3.2.2
Khối
xử
tâm.......................................................................44Error!
defined.



3.2.3 Khối điều khiển động cơ………………………………………………..44

Khối


trung
Bookmark not

Page 4




3.2.4
Khối
hiển
thị
LCD..........................................................................46Error! Bookmark not
defined.
3.3 Thiết kế giao diện điều khiển trên máy tính. ....................................................................... 46



3.3.1 Các u cầu của giao diện. ................................................................................ 46



3.3.2 Giới thiệu Visual Basic………………………………………...…….....46

• 3.3.3 Chương trình Visual Basic ............................................................................... 48
3.4 Lưu đồ thuật tốn. ................................................................................................................ 57


3.4.1 Lưu đồ thuật tốn giữa máy tính với vi điều khiển. .......................................... 57

• 3.4.2 Lưu đồ thuật tốn giữa vi điều khiển với máy tính……………………..58
3.5 Chương trình chính của vi điều khiển ..................................................................................... 60

KẾT LUẬN VÀ KIẾN NGHỊ ....................................................................................................... 71
1. Kết quả đạt được. ................................................................................................................... 71
2. Hướng phát triển của đề tài. ................................................................................................... 72

Page 5


CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀ I
1.1 Lý do chọn đề tài.
1.1.1 Cơ sở khoa học.
Với sự phát triển mạnh mẽ của khoa học công nghệ ngày nay, đã đem lại nhiều ứng
dụng và thành quả to lớn phục vụ nhu cầu đời sống thiết thực của con người. Đặc
biệt đối với hai lĩnh vực Máy tính và điện tử đã trở nên quen thuộc và phục vụ phần
lớn cho mọi mặt đời sống của con người. Sự kết hợp giữa hai lĩnh vực này đã mang

lại nhiều ứng dụng thiết thực cho nền kinh tế cũng như đời sống của con người.
1.1.2. Cơ sở thực tiễn.
Động cơ một chiều được sử dụng từ lâu trong các hệ truyền động có điều khiển tốc
độ yêu cầu dải điều chỉnh lớn, độ ổn định tốc độ cao và các hệ thường xuyên hoạt
động ở chế độ khởi động, hãm và đảo chiều. Nhờ có đặc tính điều chỉnh tốc độ tốt
nên được sử dụng rất phổ biến trong công nghiệp. Một số ứng dụng quan trọng của
động cơ 1 chiều như truyền động cho xe điện, máy công cụ, máy nâng vận chuyển,
máy cán, máy nghiền....
Sẽ rất đơn giản và tiện dụng khi ta có thể điều khiển và giám sát thiết bị điện của
một cơng ty hay một xí nghiệp.... Từ ý tưởng đó cùng với những nhu cầu từ thực
tiễn, nhóm đồ án chúng em đã quyết định chọn đề tài:
“Thiết kế chế tạo modul giao tiếp động cơ 1 chiêu với máy tính qua cổng COM,
hiển thị LCD “
Nội dung đề tài như sau :
-

Điều khiển động cơ dựa vào giao diện viết trên máy tính sử dụng

phần mềm Visual Basic 6.0 để thiết kế giao diện

Page 6


-

Tín hiệu điều khiển do người sử dụng tác động từ máy tính sẽ được

chuyển đổi thành tín hiệu số nhị phân thơng qua mạch giao tiếp với máy
tính.
-


Mạch điều khiển sẽ nhận lệnh từ máy tính và điều khiển tốc độ và đảo

chiều động cơ.
-

Hiển thị tốc độ số vòng/phút trên LCD

1.2. Mục tiêu nghiên cứu.
- Thiết kế, chế tạo mô hình điều khiển giám sát động cơ 1 chiều giao tiếp máy tính
qua cổng COM.
- Giao tiếp giữa modul VĐK với máy tính thơng qua chuẩn RS232
- Tính được tốc độ số vịng/phút hiển thị trên LCD.
- Hồn thành sản phẩm với độ chính xác cao, ứng dụng được trong thực tế.
1.3. Mục đích nghiên cứu.
Dựa vào những kiến thức đã học vể điện tử công suất, kỹ thuật giao tiếp máy tính,
kết hợp với các kiến thức về Kỹ thuật điện tử để nghiên cứu về một giải pháp điều
khiển và giám sát các thiết bị điện thông qua các mạch điện tử.
Nhằm ôn lại những kiến thức đã học cũng như nâng cao trình độ chuyên môn để
phục vụ cho công việc sau khi ra trường.
Xây dựng và phát triển các hệ thống điều khiển, hệ thống giám sát và thu thập dữ
liệu qua đường truyền khơng dây lên máy tính.
1.4. Phương pháp nghiên cứu.
Tham khảo các tài liệu hướng dẫn lập trrình visual basic, kỹ thuật đa xử lý
của vi điều khiển, giao tiếp máy tính với các thiết bị qua cổng COM
Tìm hiểu các hoạt động của các IC sử dụng trong đề tài qua datasheet do nhà
sản xuất cung cấp.
Bằng cách vận dụng các kiến thức đạt được trong quá trình học tập, tham khảo tài
liệu. Nhóm thực hiện tiến hành tìm hiểu, thiết kế, thi cơng, và thử nghiệm mơ hình
trong nhiều tình huống và điều kiện khác nhau. Quá trình thực nghiệm giúp nhóm

thực hiện tự hồn thiện và bổ sung dần các kiến thức mới. Đặc biệt là tìm được
hướng nghiên cứu thích hợp nhất để hồn chỉnh và tối ưu đề tài.

Page 7


1.5. Phương tiện nghiên cứu
- Giáo trình liên quan đến đề tài.
- Máy vi tính.
- Các linh kiện điện tử để thi công mạch điện: Bộ xử lý trung tâm (Vi điều khiển
89C51/89C52), động cơ 1 chiều, Cổng truyền thông giám sát thiết bị (chuẩn truyền
thông nối tiếp RS232 và IC Max 232).
- Các phần mềm hỗ trợ như : eagle 5.6, Visual Basic 6.0, Proteus 7.4, HM-TR,
driver USB to COM.
1.6. Ý nghĩa của đề tài.
Trong thực tế có rất nhiều các loại truyền thông không dây được sự dụng
rộng rãi, song nhóm đồ án chúng em thiết kế ra mô hình điều khiển giám sát động
cơ này giúp người sử dụng dễ dàng điều khiển quan sát được tốc độ, chiều quay của
động cơ trực tiếp trên máy vi tính với giao diện của Visua Basic, khơng cồng kềnh,
khơng tốn dây dợ, nút bấm, công tắc mà lại an toàn cho người sử dụng khi làm việc
trong các nhà máy xínghiệp.

Page 8


CHƯƠNG II: CƠ SỞ LÝ THUYẾT
2.1 Truyền thông nối tiếp với 89S52.
Máy tính truyền dữ liệu theo hai phương pháp: Song song và nối tiếp. Truyền dữ
liệu song song thường cần 8 hoặc nhiều đường dây dẫn để truyền dữ liệu đến một
thiết bị chỉ cách xa vài mét. Ví dụ của truyền dữ liệu song song là các máy in và các

ổ cứng. Phương pháp này cho phép truyền dữ liệu với tốc độ cao với nhiều dây dẫn
để truyền dữ liệu đồng thời, nhưng khoảng cách truyền bị hạn chế. Để truyền dữ
liệu đi xa thì cần sử dụng phương pháp truyền nối tiếp. Phương pháp này truyền dữ
liệu theo từng bit một.
2.1.1

Các cơ sở của truyền thông nối tiếp.

Khi bộ vi xử lý truyền thông với thế giới bên ngồi thì nó cấp dữ liệu dưới dạng
từng byte (8 bít) một. Trong một số trường hợp chẳng hạn như máy in thì thông tin
được lấy từ bus dữ liệu 8 bít của máy tính và gửi tới bus dữ liệu 8 bit của máy in.
Phương pháp này chỉ thực hiện được khi đường cáp không quá dài vì nếu cáp dài
q sẽ làm suy giảm thậm chí làm méo tín hiệu. Ngồi ra, đường dữ liệu 8 bít giá
thành cao. Vì những lý do đó, trong trường hợp hai hệ thống cách xa nhau hàng
trăm đến hang triệu kilomet thì người ta sử dụng truyền thông nối tiếp. Hình 2.1 là
sơ đồ truyền nối tiếp so với sơ đồ truyền song song.

Truyền nối tiếp
Máy phát

Máy thu

Truyền song song
Máy phát D0

Máy thu

D7
Page 9



Hình 2.1: Truyền dữ liệu song song và nối tiếp.
Thực tế là trong truyền thông nối tiếp là một đường dữ liệu duy nhất được dùng
thay cho một đường dữ liệu 8 bít của truyền thơng song song làm cho nó khơng chỉ
rẻ hơn rất nhiều mà nó cịn mở ra khả năng để hai máy tính ở cách xa nhau có thể
truyền thơng qua đường thoại.
Đối với truyền thơng nối tiếp thì để làm được các byte dữ liệu phải được chuyển đổi
thành các bít nối tiếp sử dụng thanh ghi giao dịch vào - song song - ra - nối tiếp. Sau
đó nó có thể được truyền qua một đường dữ liệu đơn. Điều này cũng có nghĩa là ở
đầu thu cũng phải có một thanh ghi vào - nối tiếp - ra - song song để nhận dữ liệu
nối tiếp và sau đó gói chúng thành từng byte một. Tất nhiên, nếu dữ liệu được
truyền qua đường thoại thì nó phải được chuyển đổi từ các số 0 và 1 sang âm thanh
ở dạng sóng hình sin. Việc chuyển đổi này thực thi bởi một thiết bị có tên gọi là
Modem là chữ viết tắt của “Modulator/ demodulator” (điều chế/ giải điều chế).
Khi cự ly truyền ngắn thì tín hiệu số có thể được truyền như nói ở trên, một dây dẫn
đơn giản và không cần điều chế. Đây là cách các máy bàn PC và IBM truyền dữ
liệu đến bo mạch mẹ. Tuy nhiên, để truyền dữ liệu đi xa dùng các đường truyền
chẳng hạn như đường thoại thì việc truyền thơng dữ liệu nối tiếp yêu cầu một
modem để điều chế (chuyển các số 0 và 1 về tín hiệu âm thanh) và sau đó giải điều
chế (chuyển tín hiệu âm thanh về các số 0 và 1).

Bộ phát

Bộ thu

Bộ phát

Bộ thu

Bộ thu


Bộ phát

Bộ phát

Bộ thu

Bộ thu

Bộ phát

Bán đơn cơng

Song cơng

Hình 2.2: Các chế độ thu phát dữ liệu
Truyền thông dữ liệu nối tiếp sử dụng hai phương pháp đồng bộ và dị bộ. Phương
pháp đồng bộ truyền một khối dữ liệu (các ký tự) tại cùng thời điểm trong khi đó
Page 10


truyền dị bộ chỉ truyền từng byte một. Có thể viết phần mềm để sử dụng một trong
hai phương pháp này, những chương trình có thể rất dài và buồn tẻ. Vì lý do này mà
nhiều nhà sản xuất đã cho ra thị trường nhiều loại IC chuyên dụng phục vụ cho
truyền thông dữ liệu nối tiếp. Những IC này phục vụ như các bộ thu - phát dị bộ
tổng hợp VART (Universal Asynchronous Receiver Transmitter) và các bộ thu phát đồng - dị bộ tổng hợp UBART (Universal Asynchronous Receiver
Transmitter). Bộ vi điều khiển 89S52 có cài sẵn một UART.


Truyền dữ liệu bán song công và song công.


Nếu trong q trình truyền dữ liệu, dữ liệu có thể được vừa phát và vừa được thu thì
gọi là truyền song công. Trái với truyền đơn công (như ở các máy in chẳng hạn)
máy tính chỉ phát dữ liệu. Truyền song cơng có thể có hai loại là bán song cơng và
song cơng hồn tồn phụ thuộc vào truyền dữ liệu có thể xảy ra đồng thời khơng?
Nếu dữ liệu được truyền theo một đường tại một thời điểm thì được gọi là truyền
bán song cơng. Nếu dữ liệu có thể đi theo cả hai đường cùng một lúc thì gọi là song
cơng tồn phần.
Tất nhiên, truyền song cơng địi hỏi hai đường dữ liệu (ngồi đường âm của tín
hiệu), một để phát và một để thu dữ liệu cùng một lúc.


Truyền thông nối tiếp không đồng bộ và định khung dữ liệu.

Dữ liệu đi vào ở đầu thu của đường dữ liệu trong truyền dữ liệu nói tiếp tồn là các
số 0 và 1, nó thật là khó làm cho dữ liệu ấy có nghĩa là nếu bên phát và bên thu
không cùng thống nhất về một tệp các luật, một thủ tục, về cách dữ liệu được đóng
gói, bao nhiêu bít tạo nên một ký tự và khi nào dữ liệu bắt đầu và khi nào kết thúc
dữ liệu...
➢ Bit khởi động và bit dừng.
Truyền tin nối tiếp không đồng bộ được sử dụng rộng rãi trong truyền kí tự, còn
truyền dữ liệu định hướng khối sử dụng phương pháp đồng bộ. Ở phương pháp
không đồng bộ, mỗi ký tự được bố trí vào giữa bít khởi động (start) và bít dừng
(stop). Người ta gọi cashc thức này là định khung. Như vậy đối với truyền tin không
đồng bộ, để định khung dữ liệu kí tự được nén giữa bit khởi động và bit. Bít khởi
động ln chỉ có một bít, cịn bít dừng có thể có 1 hoặc 2 bít. Bít khởi động ln có
giá trị 0 (mức thấp); cịn bit dừng thì có giá trị 1(cao). Ví dụ xem hình 2.3 trong đó
Page 11



ký tự “A” của mã ASCII (8 bít nhị phân là 0100 0001) đóng gói khung giữa một bít
bắt đầu và một bít dừng. Lưu ý rằng bít thấp nhất LSB được gửi ra đầu tiên.

Gửi đi cuối cùng

Bit
Khoảng
trống Stop

Gửi đi đầu tiên

Chiều dữ liệu

Bit

0

1

0

0

0

0

0

Start


1 khung

Hình 2.3: Định khung ký tự “A” ( mã ASCII - 41H)
Ở hình 2.3 khi khơng truyền thì tín hiệu là 1, gọi là dấu (mark). Tín hiệu 0 được gọi
là khoảng trống (space). Lưu ý là 1 trình tự truyền bắt đầu với bit khởi động, tiếp
theo là bit D0, bít thấp nhất LSB, sau các bít cịn lại cho đến bít D7, bít cao nhất
MSB và cuối cùng là bít dừng stop để báo kết thúc ký tự “A”.
Trong truyền thông nối tiếp dị bộ thì các chíp IC ngoại vi và các modem có thể
được lập trình cho dữ liệu với kích thước theo 7 bít hoặc 8 bít. Đây là chưa kể các
bít dừng stop có thể là 1 hoặc 2 bít. Trong khi các hệ ASCII cũ hơn (trước đây) thì
các ký tự là 7 bít thì ngay nay do việc mở rộng các ký tự ASCII nên dữ liệu nhìn
chung là 8 bít. Trong các hệ cũ hơn do tốc độ chậm của các thiết bị thu thì phải sử
dụng hai bít dừng để đảm bảo thời gian tổ chức truyền byte kế tiếp. Tuy nhiên,
trong các máy tính PC hiện tại chỉ sử dụng 1 bít stop như là chuẩn.
Giả sử rằng chúng ta đang truyền một tệp văn bản các ký tự ASCII sử dụng 1 bít
stop thì ta có tổng cộng là 10 bít cho mỗi ký tự gồm: 8 bít cho ký tự ASCII chuẩn và
1 bít start cùng 1 bít stop. Do vậy, đối với mỗi ký tự 8 bít thì cần thêm 2 bí vị chi là
mất 25% tổng phí.
Ở một số hệ thống để nhằm tăng khả năng bảo toàn của dữ liệu thì người ta còn
thêm vào khung dữ liệu một bít bật (hay cịn gọi là bit lẻ). Bit bật có thể là chẵn
hoặc lẻ. Nếu là bít lẻ là số bít của dữ liệu bao gồm cả bít chẵn lẻ sẽ là một số lẻ các
sô 1. Tương tự như vậy đối với trường hợp bít chẵn thì số bít của dữ liệu bao gồm
Page 12


cả bít chẵn - lẻ sẽ là một số chẵn của các số 1. Ví dụ, ký tự “A” của mã ASCII ở
dạng nhị phân là 0100 0001, có bít 0 là bít chẵn. Các chíp UART đều cho phép việc
lập trình bít chẵn - lẻ về chẵn, lẻ hoặc không phân biệt chẵn lẻ.



Tốc độ truyền dữ liệu.

Tốc độ truyền tin nối tiếp được tính bằng bit/giây bps(bit Per Second). Một thuật
ngữ khác cũng thường được sử dụng làm. Tuy nhiên, các tốc baud và bps là hồn
tồn khơng giống nhau. Điều này là do tốc baud là thuật ngữ của modem và được
định nghĩa như là sô lần thay đổi của tín hiệu trong một giây. Trong các modem có
những trường hợp khi một sự thay đổi của tín hiệu thì nó truyền vài bít dữ liệu.
Nhưng đối với một dây dẫn thì tốc độ baud và bps là như nhau nên trong cuốn sách
này chúng ta có thể dùng thay đổi các thuật ngữ này cho nhau.
Tốc độ truyền dữ liệu của một hệ máy tính đã cho phụ thuộc vào các cổng truyền
thông kết nối vào trong hệ thống đo. Ví dụ, các máy tính PC/XT trước đây của IBM
có thể truyền dữ liệu với tốc độ 100 đến 9600 bps. Tuy nhiên, trong những năm gần
đây thì các máy tính PC dựa trên Pentium truyền dữ liệu với tốc độ lên tới 56kbps.
Cần phải nói thêm rằng trong truyền thông dữ liệu nối tiếp dị bộ thì tốc độ baud
nhìn chung là bị giới hạn ở 100.000 bps.


Chuẩn giao tiếp nối tiếp RS232

- Khái quát chung
Để đảm bảo sự tương thích giữa các thiết bị truyền dữ liệu nối tiếp do các hãng khác
nhau sản xuất, năm 1960 Hiệp hội Công Nghiệp Điện tử EIA đã xây dựng một
chuẩn giao diện được gọi là RS232. Năm 1963, chuẩn này được cải tiến gọi là
RS232A, RS232B, RS232C vào những năm 1965 và 1969. Ngày nay, RS232 là
chuẩn giao diện I/O được sử dụng rộng rãi nhất. Tuy nhiên, do chuẩn này ra đời đã
khá lâu, trước khi cọ họ vi mạch điện tử TTL, vì vậy các mức điện áp vào/ra khơng
tương thích với TTL. Ở RS232, mức 1 tương ứng từ -3V đến -25V, còn mức 0
tương ứng từ +3V đến +25V, khoảng từ -3V đến +3V khơng xác định. Do đó, để
nối RS232 với máy tính đều qua bộ biến đổi điện áp như MAX232 để chuyển mức

Logic TTL sang mức điện áp của RS232 và ngược lại. Nhìn chung, ác chip IC
MAX232 được dùng để điều khiển đường truyền.
- Bố tríchân của RS232.
Page 13


Bảng 2.3 cung cấp sơ đồ chân của cáp RSE232 và các tên gọi của chúng thường
được gọi là đầu nối DB - 25. Trong ký hiệu thì đầu nối cắm vào (đầu đực) gọi là DB
- 25p và đầu nối cái được gọi là DB - 25s.
Bảng 2.1: Bố trí chân DB 25(đầu đực) của RS232
1

Đất cách ly (Protective Cround)

2

Dữ liệu được truyền TxD(Transmitted data)

3

Dữ liệu được phân RxD(Received data)

4

Yêu cầu gửi RTS (Request To Send)

5

Xoá để gửi CIS (Clear To Send)


6

Dữ liệu sẵn sàng DSR (Data Set Ready)

7

Đất của tín hiệu GND (Signal Cround)

8

Tách tín hiệu mạng dữ liệu DCD (Data Carrier Detect)

9/10 Nhận để kiểm tra dữ liệu (Received for data testing)
11

Chưa dùng

12

Tách tín hiệu mạng dữ liệu thứ cấp (Secondary data carrier detect)

13

Xoá để nhận dữ liệu thứ cấp (Secondary Clear to Send)

14

Dữ liệu được truyền thứ cấp (Secondary Transmit Signal Element Timing)

15


Truyền phân chia thời gian phần tử tín hiệu (Transmit Signal Element
Timing)

16

Dữ liệu được nhận thứ cấp (Secondary Received data)

17

Nhận phân chia thời gian phần tử tín hiệu (Receiveo Signal Element Timing)

18

Chưa dùng

19

Yêu cầu để nhận thứ cấp (Secondary Request to Send)

20

Đầu dữ liệu sẵn sàng (Data Terminal Ready)

21

Phát hiện chất lượng tín hiệu (Signal Qualyty Detector)

22


Báo chng (Ring Indicator)

23

Chọn tốc độ tín hiệu dữ liệu (Data Signal Rate Select)

24

Truyền phân chia thời gian tín hiệu (Transmit Signal Element Timing)

25

Chưa dùng

Page 14


1

13

14

25

Hình 2.4: Ổ cắm RS232 DB – 25
Vì khơng phải tất cả mọi chân đều được sử dụng trong cáp của máy tính PC, nên
IBM đưa ra phiên bản của chuẩn vào/ra nối tiếp chỉ sử dụng có 9 chân gọi là DB - 9
như trình bày ở bảng 2.2 và hình 2.5
Bảng 2.2: Các tín hiệu của các chân đầu nối DB - 9 trên máy tính IBM PC.

Số chân

Mơ tả

1

Da ta carrier detect (DCD)

Tránh tín hiệu mạng dữ liệu

2

Received data (RxD)

Dữ liệu được nhận

3

Transmitted data (TxD)

Dữ liệu được gửi

4

Data terminal ready (DTR)

Đầu dữ liệu sẵn sàng

5


Signal ground (GND)

Đất của tín hiệu

6

Data set ready (DSR)

Dữ liệu sẵn sàng

7

Request to send (RTS)

Yêu cầu gửi

8

Clear to send (CTS)

Xoá để gửi

9

Ring indicator (RL)

Báo chuông

Page 15



1

5

6

9

Hình 2.5: Sơ đồ đầu nối DB - 9 của RS232.


Phân loại truyền dữ liệu.

Người ta phân biệt thiết bị truyền thông dữ liệu DTE (Data Terminal Equipment)
hoặc thiết bị truyền thông dữ liệu DCE (Data Communication Equipment). DTE
chủ yếu là các máy tính và các thiết bị đầu cuối gửi và nhận dữ liệu, còn DCE là
thiết bị truyền thông chẳng hạn như các modem chịu trách nhiệm về truyền dữ liệu.
Lưu ý rằng tất cả mọi định nghĩa về chức năng các chân RS232 trong các bảng 2.1
và 2.2 đều xuất phát từ gốc độ của DTE
Kết nối đơn giản nhất với một PC và bộ VĐK yêu cầu tối thiểu những chân sau:
TxD, RxD và đất, như trình bày ở hình 2.6. Để ý rằng trên hình này thì các chân
TxD và RxD được đổi cho nhau.

DTE

DTE

TxD


TxD

RxD

RxD

Mass
Page 16


Hình 2.6: Nối kết khơng modem.

2.1.2 Ghép nối 89S52 tới RS232.
Như đã nói ở phần 2.1.1, chuẩn RS232 khơng tương thích với mức lơ-gíc TTL, do
vậy nó u cầu một bộ điều khiển đường truyền chẳng hạn như chíp MAX232 để
chuyển đổi các mức điện áp RS232 về các mức TTL và ngược lại. Nội dung chính
của phần này là bàn về nối ghép 89S52 với các đầu nối RS232 thơng qua chíp
MAX232.
➢ Các chân RxD và TxD trong 89S52.
89S52 có hai chân được dùng chuyên cho truyền và nhận dữ liệu nối tiếp. Hai chân
này được gọi là TxD và RxD và là một phần của cổng P3 (đó là P3.0 và P3.1). chân
11 của 89S52 là P3.1 được gán cho TxD và chân 10 (P3.0) được dùng cho RxD.
Các chân này tương thích với mức lo-gic TTL. Do vậy chúng đòi hỏi một bộ điều
khiển đường truyền để chúng tương thích với RS232. Một bộ điều khiển như vậy là
chíp MAX232.

➢ Bộ điều khiển đường truyền MAX232.
Vì RS232 khơng tương thích với các bộ vi xử lý và vi điều khiển hiện nay nên ta
cần một bộ điều khiển đường truyền (bộ chuyển đổi điện áp) để chuyển đổi các tín
hiệu RS232 về các mức điện áp TTL sẽ được chấp nhận bởi các chân TxD và RxD

của 89S52. Một ví dụ của một bộ chuyển đổi như vậy là chíp MAX232 từ hàng
Maxim địa chỉ Website của hãng www.maxim-ic.com. Bộ MAX232 chuyển đổi từ
các mức điện áp RS232 sẽ về mức điện áp TTL và ngược lại. Một điểm mạnh của
chíp MAX232 là nó dùng điện áp nguồng +5v cùng với điện áp nguồn của 89S52.
Hay nóic cách khác với nguồn điện áp nuối +5 chúng ta mà có thể ni 89S52 và
MAX232 mà khơng phải dùng hai nguồn nuôi khác nhau như phổ biến trong các hệ
thống trước đây.
Page 17


Bộ điều khiển MAX232 có hai bộ điều khiển thường để nhận và truyền dữ liệu. Các
bộ điều khiển đường được dùng cho TxD được gọi là T1 và T2. Trong nhiều ứng
dụng thì chỉ có một cặp được dùng. Ví dụ T1 và R1 được dùng với nhau đối với
TxD và RxD của 89S52, còn cặp R2 và T2 thì chưa dùng đến. Để ý rằng trong
MAX232 bộ điều khiển T1 có gán T1in và T1out trên các chân số 11 và 1 tương
ứng. Chân T1in là ở phía TTL và được nối tới chân RxD của bộ vi điều khiển, cịn
T1out là ở phía RS232 được nối tới chân RxD của đầu nối DB của RS232. Bộ điều
khiển đường R1 cũng có gán R1in và R1out trên các chân số 13 và 12 tương ứng.
Chân R1in (chân số 13) là ở phía RS232 được nối tới chân TxD của đầu nối DB của
RS232 và chân R1out (chân số 12) là ở phía TTL mà nó được nối tới chân RxD của
bộ vi điều khiển.

Vc
c 16

+
C
+
1
C

11
2
2
12
12
0
9
TTL
side

T1-

2
6
T1-

IIN
R1-

OUT
R1-

OUT
T2-

IIN
T2-

IIN


OUT

R2-

R2-

OUT

IIN

15

C
3
C
4+
14
13 +

8051
11
P3.1

10

Max23
5 2 5
2
4 2
3

2

TxD
DB 9

7
8

P3.0

Rs232
side

RxD

Hình 2.7: Sơ đồ bên trong và sơ đồ nối ghép của MAX232 với 89S52 theo modem
rỗng.
2.1.3 Lập trình truyền thông nối tiếp cho 89S52.
Trong phần này chúng ta sẽ nghiên cứu về các thanh ghi truyền thông nối tiếp của

89S52 và cách lập trình chúng để truyền và nhận dữ liệu nối tiếp. Vì các máy tính
IBM và PC tương thích được sử dụng rất rộng rãi để truyền thông với các hệ dựa
trên 89S52, do vậy ta chủ yếu tập trung vào truyền thông nối tiếp của 89S52 với
cổng COM của PC. Để cho phép truyền dữ liệu giữa máy tính PC và hệ thống
89S52 mà khơng có bất kỳ lỗi nào thì chúng ta phải biết chắc rằng tốc độ baud của
hệ 89S52 phải phù hợp với tốc độ baud của cổng COM máy tính PC được cho trong
Page 18


bảng 2.3. Chúng ta có thể kiểm tra các tốc độ baud này bằng cách vào chương trình

Windows Terminal và bấm chuột lên tuỳ chọn Communication Settings. Chương
trình Terminal.exe của Window 3.1 cũng làm việc tốt trên Windows95 và
Window98. Trong Window95 và cao hơn ta có thể sử dụng chức năng
Hyperterrminal. Hàm Hyperterminal hỗ trợ các tốc độ Baud cao hơn nhiều so với
các tốc độ cho trong bảng sau:

100

150

300

600

1200

2400

4800

9600

...

Bảng 1: Các tốc độ Baud của máy tính PC486 và Pentium cho trong BIOS.
➢ Tốc độ baud trong 89S52.
89S52 truyền và nhận dữ liệu nối tiếp theo nhiều tốc độ khác nhau. Tốc độ truyền
của nó có thể lập trình được. Điều này thực hiện nhờ sự trợ giúp của bộ định thời
Timer1.
Trước khi ta đi vào bàn cách làm điều đó như thế nào thì ta sẽ xét quan hệ giữa tần

số thạch anh và tốc độ baud trong 89S52.
Như ta đã nói ở chương trước đây thì 89S52 chia sóo thạch anh cho 12 để lấy tần số
chu trình máy. Trong trường hợp XTAL = 11.0592MHz thì tần số chu trình là
921.6kHz (11.0592MHz : 12 = 921.6kHz). Mạch điện UART truyền thông nối tiếp
của 89S52 lại chia tần số chu trình máy cho 32 một lần nữa trước khi nó được dùng
bởi bộ định thời gian Timer1 để tạo ra tốc độ baud. Do vậy, 921.6kHz : 32 =
28.800Hz. Đây là số ta sẽ dùng trong cả phần này để tìm giá trị của Timer1 để đặt
tốc độ baud. Muốn Timer1 đặt tốc độ baud thì nó phải được lập trình về chế độ làm
việc mode2, đó là chế độ thanh ghi 8 bít tự động nạp lại. Để có tốc độ baud tương
thích với PC ta phải nạp TH1 theo các giá trị cho trong bảng 2.3.
Bảng 2.4: Giá trị thanh ghi TH1 của Timer1 với các tốc độ baud khác nhau.
Tốc độ baud

TH1 (thập phân)

TH1 (số Hex)

9600

-

3

FD

4800

-

6


FA

2400

-

12

F4

1200

-

24

F8
Page 19


Lập trình 89S52 để truyền dữ liệu nối tiếp.
* Thanh ghi SBUF.
Là thanh ghi 8 bit được dùng cho truyền thông nối tiếp của 89S52. Để byte dữ liệu
được truyền qua đường TxD thì cần đặt dữ liệu trong thanh ghi SBUF. Tương tự
SBUF lưu 1 byte dữ liệu khi nó được nhận qua đường RxD của 89S52. SBUF có
thể được mọi thanh ghi của 89S52 truy cập. Khi byte dữ liệu được ghi vào thanh ghi
SBUF thì byte sẽ được định khung với bit START và STOP, được truyền nối tiếp
qua chân TxD. Tương tự như vậy khi các bit được nhận nối tiếp từ RxD thì 89S52
mở khung, tức loại trừ các bit START và STOP để lấy ra 1 byte từ dữ liệu nhận

được và đặt vào thanh ghi SBUF.
* Thanh ghi điều khiển nối tiếp SCON.
SM0

SM1

SM2 REN

TB8

RB8

T1

R1

Bảng 2: Thanh ghi SCON
-

SM0 (SCON.7): Số xác định chế độ làm việc cổng nối tiếp.

-

SM1 (SCON.6): Số xác định chế độ làm việc cổng nối tiếp.

-

SM2 (SCON.5): Dùng cho truyền thông giữa các bộ vi xử lý (SM2 =

0).

-

REN (SCON.4): Bật/xóa bằng phần mềm để cho phép/khơng cho

phép thu
-

TB8 (SCON.3): Không được sử dụng rộng rãi.

-

RB8 (SCON.2): Không được sử dụng rộn rãi.

-

T1(SCON.1): Cờ ngắt truyền. Đặt bằng phần cứng khi bắt đầu bit

STOP ở mode 1. Xóa bằng phần mềm.
R1 (SCON.0): Cờ ngắt thu. Đặt bằng phần cứng khi bắt đầu bit STOP ở mode 1.
Xóa bằng phần mềm.
Ghi chú: Các bit TM2, TB8 và RB8 đặt về 0.
* Trình tự truyền dữ liệu nối tiếp trong 89S52.
Page 20


Khi lập trình 89S52 để truyền các byte ký tự nối tiếp thì cần phải thực hiện các
bước sau đây:
1.

Nạp thanh ghi TMOD giá trị 204 báo rằng sử dụng Timer1 ở chế độ 2


để thiết lập chế độ baud.
2.

Nạp thanh ghi TH1 các giá trị cho trong bảng 10.4 để thiết lập chế độ

baud truyền dữ liệu nối tiếp (với giả thiết tần số XTAL = 11.0592MHz).
3.

Nạp thanh ghi SCON giá trị 50H báo chế độ nối tiếp 1 để đóng khung

8 bít dữ liệu, 1 bít Start và 1 bít Stop.
4.

Bật TR1 = 1để khởi động Timer1.

5.

Xố bít TI bằng lệnh “CLR TI”

6.

Byte ký tự cần phải truyền được ghi vào SBUF.

7.

Bít cờ TI được hiển thị bằng lệnh “JNB TI, xx” để báo ký tự đã được

truyền hoàn tất chưa.
8.


Để truyền ký tự tiếp theo quay trở về bước 5.

➢ Lập trình 89S52 nhận dữ liệu nối tiếp.
Trong lập trình của 89S52 để nhận các byte ký tự nối tiếp thì phải thực hiện các
bước sau đây.
1. Nạp giá trị 20H vào thanh ghi TMOD để báo sử dụng bộ Timer1, chế độ 2 (8
bítm, tự động nạp lại) để thiết lập tốc độ baud.
2. Nạp TH1 các giá trị cho trong bảng 10.4 để tạo ra tốc độ baud với giả thiết
XTAL = 10.0592MHz.
3. Nạp giá trị 50H vào thanh ghi SCON để báo sử dụng chế độ truyền nối tiếp 1
là dữ liệu được đóng gói bởi 8 bít dữ liệu, 1 bít Start và 1 bít Stop.
4. Bật TR1 = 1 để khởi động Timer1.
5. Xố cờ ngắt RI bằng lệnh “CLR RI”
6. Bít cờ RI được hiển thị bằng lệnh “JNB RI, xx” để xem toàn bộ ký tự đã
được nhận chưa.
7. Khi RI được thiết lập thì trong SBUF đã có 1 byte. Các nội dung của nó được
cất lưu vào một nơi an toàn.
8. Để nhận một ký tự tiếp theo quay trở về bước 5.

Page 21


2.2 Vi điều khiển 89S52.
2.2.1. Tổng quan về 89S52
AT89S52 là họ IC vi điều khiển do hãng Intel sản xuất. Các sản phẩm AT89S52
thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các phép toán số
học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu
nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học
8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hỗ trợ mở rộng trên chip

dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản lý và
kiểm tra bit trực tiếp trong hệ thống điều khiển.
AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa
và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3 TIMER/COUNTER
16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1
mạch dao động tạo xung Clock và bộ dao động ON-CHIP.
Các đặc điểm của chip AT89S52 được tóm tắt như sau:


8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ

ghi/xố


Tần số hoạt động từ: 0Hz đến 24 MHz



3 mức khóa bộ nhớ lập trình



3 bộ Timer/counter 16 Bit



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ã ngồi



64 KB vùng nhớ dữ liệu ngoại.



4 s cho hoạt động nhân hoặc chia
Page 22


Sơ đồ khối của AT89S52

Page 23


2.2.2. Mô tả chân 89S52
1. Sơ đồ chân 89S52
Mặc dù các thành viên của họ
8051(ví dụ 8751, 89S52, 89C51,
DS5000) đều có các kiểu đóng vỏ


chân DIP (Dual In-Line Pakage),
dạng vỏ dẹt vng QPF (Quad Flat
Pakage) và dạng chip khơng có chân

AT89S52

khác nhau, chẳng hạn như hai hàng

đỡ LCC (Leadless Chip Carrier) thì
chúng đều có 40 chân cho các chức
năng khác nhau như vào ra I/O, đọc
RD , ghi WR , địa chỉ, dữ liệu và

ngắt. Cần phải lưu ý một số hãng
cung cấp một phiên bản 8051 có 20
chân với số cổng vào ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên vì hầu
hết các nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta
chỉ tập trung mô tả phiên bản này.
2. Chức năng của các chân 89S52
Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng, 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 thiết kế 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: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao
tiếp với thiết bị bên ngoài nếu cần.
Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng
kép 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.

Page 24



Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép.
Các chân của port này có nhiều chức năng, có cơng dụng chuyển đổi có liên hệ đến
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

P3.0

RXD

Ngõ vào dữ liệu nối tiếp.

P3.1

TXD

Ngõ xuất dữ liệu nối tiếp.

P3.2

INT0

Ngõ vào ngắt cứng thứ 0.

P3.3


INT1

Ngõ vào ngắt cứng thứ 1.

P3.4

T0

Ngõ vào TIMER/ COUNTER thứ 0.

P3.5

T1

Ngõ vào của TIMER/ COUNTER thứ 1.

P3.6

WR

Tín hiệu ghi dữ liệu lên bộ nhớ ngồi.

P3.7

RD

Tín hiệu đọc bộ nhớ dữ liệu ngồi.

PSEN (Program store enable):

PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình
mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte
mã lệnh.
PSEN ở mức thấp trong thời gian 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, đượ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 ở
mức cao.
ALE (Address Latch Enable):
Khi 89S52 truy xuất bộ nhớ bên ngồi, Port 0 có chức năng là bus địa chỉ và
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 ở 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.

Page 25


×