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

Ứng dụng họ vi điều khiển 8051 ghép nối với 04 LED 7 thanh để hiển thị số lần ấn phím và tác động của cảm biến hồng ngoại.

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 (727.67 KB, 26 trang )

z

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN


ĐỒ ÁN MÔN HỌC
KỸ THUẬT VI SỬ LÝ
Giáo viên hướng dẫn : Đỗ Duy Phú
Sinh viên thực hiện : Nhóm X
1. Trần Thanh Bình
2. Nguyễn Hoàng Dũng
3. Hoàng Ngọc Lâm
4. Hồ Thị Hiền
5. Quản Thị Trang


Lời Nói Đầu

Ngày nay, các vi điều khiển đã thâm nhập vào mọi lĩnh vực vủa đời sống
từ dân sự, quân sự đến an ninh quốc phòng, có mặt trong hầu hết các ứng
dụng hàng ngày từ những thiết bị nhỏ như điện thoại di động, máy nhắn tin,
trò chơi điện tử, các thiết bị gia dụng (máy giặt, điều hòa, tủ lạnh….) đến
những thiết bị lớn như ôtô, tàu thủy, xe lửa, máy bay, hệ thống mạng điện
thoại, các bộ điều khiển tự động trong nhà máy, các bộ điều chỉnh trong nhà
máy điện hạt nhân, trong các hệ thống điều khiển ánh sáng…
Với một loạt các ứng dụng thú vị trên, ở đây chúng em xin giới thiệu
một ứng dụng nhỏ dùng vi điều khiển 8051 (cụ thể là vi điều khiển
89C51RD2) để thiết kế đồng hồ điện tử hiển thị bằng led 7 đoạn điều khiển
bằng máy tinh.
Được sự giúp đỡ và chỉ bảo tận tình của thầy giáo Đỗ Duy Phú và các


bạn trong lớp, nhóm chúng em đã hoàn thành đồ án môn học này. Tuy nhiên
do thời gian và trình độ còn hạn chế, còn thiếu kinh nghiệm thực tế nên
không tránh khỏi những sai sót. Chúng em rất mong nhận được những ý kiến
và đóng góp của các thầy cô và các bạn để chúng em có thể hoàn thiện thiết
kế hơn nữa...

Xin chân thành cảm ơn !


ĐỀ TÀI
Ứng dụng họ vi điều khiển 8051 ghép nối với 04 LED 7 thanh để hiển
thị số lần ấn phím và tác động của cảm biến hồng ngoại.
+ Một vi điều khiển họ 8051
+ Ghép nối 4 LED 7 thanh
+ Ghép nối với 4 nút bấm
+ Ghép nối với 2 cảm biến hồng ngoại.
Hoạt động: Nút bấm 1 2 3 4 dùng để đếm, cảm biến hồng ngoại 1 để đảo
chiều đếm, cảm biến hồng ngoại 2 để reset đếm. Khi tác động vào các nút 1 2
3 4 thì số đếm tăng dần từ 0000 đến 9999. Đang đếm mà tác động cảm biến
1, khi tác động 4 nút ấn thì sẽ đếm lùi từ giá trị số đếm lúc trước khi tác động
cảm biến về 0000. Nếu giá trị số đếm đang là 0000 thì không đếm lùi được.
Cảm biến hồng ngoại 2 sẽ reset số đếm về 0000.
Từ yêu cầu công nghệ trên ta suy ra mục đích và yêu cầu cầu đề tài trên:
• Số đếm phải chính xác
• Bộ phận hiển thị phải rõ ràng, dễ quan sát.
• Mạch điện không quá phức tạp, bảo đảm được an toàn, dễ sử
dụng.
• Chi phí thực hiện hợp lý.



CHƯƠNG I: GIỚI THIỆU CÁC LINH KIỆN ĐIỆN TỬ

1.1. TỔNG QUAN VỀ HỌ 8051
Họ vi điều khiển 8051 (còn gọi là C51) là một trong những họ vi điều
khiển thông dụng nhất. Đây là các bộ vi điều khiển 8 bít được sản xuất theo
công nghệ CMOS. Một số loại vi điều khiển thuộc họ 8051 thông dụng nhất:
AT89C2051, AT89C4051, AT89C51, AT89S52 89C51RD2…
• Vi điều khiển (VĐK) là một hệ vi xử lý được tổ chức như một chip. IC
VĐK 89C51RD2 tương thích với họ MCS51 có những đặc điểm sau :
- Có 40 chân
- 8 KB EPROM bên trong
- Dải tần số hoạt động từ 0Mhz đến 24 Mhz
- Có 4 port xuất nhập (I/O) 8 bit
- Có 128 byte RAM
- 2 bộ định thời 16 bit
- Mạch giao tiếp nối tiếp
- 64 KB vùng nhớ dữ liệu ngoại.
- 64 KB vùng nhớ mã ngoài
- Bộ xử lý bit thao tác trên các bit riêng
- 4 μs cho hoạt động nhân hoặc chia
- 210 vị trí nhớ định địa chỉ, mỗi vị trí một bit
- Có các thanh ghi chức năng, cơ chế điều khiển ngắt
- Các bộ thời gian dung trong lĩnh vực chia tần số và tạp thời gian thực
• Sơ đồ chân 89C51


• Cấu trúc bên trong của 89C51


89C51 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ỉ.
1. GND ( chân 20) : chân nối đất 0V.
2. Port 0 là port có 2 chức năng ở các chân 32 – 39 của 8951. 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..
3. 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.
4. 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.
5. 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 8951 như ở bảng sau:
Bit
P 3.0
P 3.1
P 3.2
P 3.3
P 3.4
P 3.5
P 3.6
P 3.7

Tên


Chức năng chuyển đổi

RxD
TxD
INT0
INT1
TO
T1
WR
RD

Ngõ vào dữ liệu nối tiếp
Ngõ xuất dữ liệu nối tiếp
Ngõ vào ngắt cứng thứ 0
Ngõ vào ngắt cứng thứ 1
Ngõ vào của TIMER/COUNTER thứ 0
Ngõ vào của TIMER/COUNTER thứ 1
Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
Tín hiệu đọc bộ nhớ dữ liệu ngoài

6. 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 8951 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 8951 đểgiải mã lệnh. Khi 8951 thi hành chương trình trong ROM nội
PSEN sẽ ở mức logic 1.
7. ALE ( Address latch enable ) : Khi 8951 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 8951.
8. EA ( External access) : 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, 8951 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, 8951 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 8951.
9. RST ( Reset ) : Ngõ vào RST ở chân 9 là ngõ vào Reset của 8951. 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.
10. X1, X2 : Bộ dao động được tích hợp bên trong 8951, khi sử dụng 8951
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 8951 là 12Mhz.
11.Vcc : chân nguồn nối lên 5V .
b. Tổ chức bộ nhớ
Bộ nhớ bên trong chip bao gồm ROM, RAM và EPROM. RAM trên
chip bao gồm vùng RAM đa chức năng, vùng RAM với từng bit được định


địa chỉ, các dây thanh ghi (bank) và các thanh ghi chức năng đặc biệt.
• Có 2 đặc tính đáng lưu ý:
+ Các thanh ghi và các port I/O được định địa chỉ theo kiểu ánh xạ bộ nhớ và
được truy xuất như một vị trí nhớ trong bộ nhớ.

+ Vùng track thường chú trong RAM trên chip thay vì ở trong RAM ngoài
như đối với các bộ vi xử lý.
Vùng RAM đa mục đích :
Có 80 byte, địa chỉ từ 30H đến 7FH. Bất cứ vị trí nào trong vùng RAM ta
đều có thể truy xuất tự do bằng cách sử dụng định địa chỉ trực tiếp hoặc gián
tiếp.
Vùng RAM đại chỉ:
Chip 8951 chứa 210 vị trí định địa chỉ đó có 128byte chứa trong các byte ở
địa chỉ 20H đến 2FH (16bytex8=128bits), phần còn lại chứa trong các thanh
ghi chức năng đặc biệt.
- Công dụng:
+ Truy xuất các bit riêng rẽ thông qua các phần mềm
+ Các port có thể định địa chỉ từng bit, làm đơn giản việc giao tiếp băng
phần mền với các thiết bị xuất nhập đơn bit.
Các thanh ghi chức năng đặc biệt (SFR):
Không phải tất cả 128 địa chỉ từ 80H đến FFH đều được định nghĩa mà chit

21 địa chỉ được định nghĩa.
Các thanh ghi chức năng đặc biệt bao gồm:
+ Từ trạng thái chương trình PSW: có địa chỉ là D0H


+ Thanh ghi B: Có địa chỉ F0H được dùng chung với thanh chứa A trong
các

phép toán nhân và chia.

+ Con trỏ Stack (SP): là thanh ghi 8bit ở địa chỉ 81H, nó chứa địa chỉ của dữ
liệu hiện đang ở đỉnh của stack


+ Con trỏ dữ liệu DPTR: Dùng để truy xuất bộ nhớ chương trình ngoài hoặc
bộ nhớ dữ liệu ngoài. DPTR là thanh ghi 16bit có địa chỉ 82H (bytethấp) và
83H (bytecao).

+ Các thanh ghi port :
Port 0 : đại chỉ 80H
Port 1 : địa chỉ 90H
Port 2: địa chỉ A0H
Port 3: địa chi B0H
+ Các thanh ghi định thời: 89C51có 2 bộ định thời/đếm dùng để định khoảng
thời gian hoặc đếm các sự kiện.
- Bộ định thời 0: địa chỉ 8AH (TL0) và 8CH (TH0)
- Bộ định thời 1: địa chỉ 8bH (TL1) và 8DH (TH1)
Hoạt động của bộ định thời được thiết lập bởi thanh ghi chế độ định thời
TMOD ở địa chỉ 89H và thanh ghi điều khiển bộ định thời TCON ở địa chỉ
88H (chỉ cóTCON được định địa chỉ từng bit).
+ Các thanh ghi của port nối tiếp: 89C51 có 1 port nối tiếp để truyền
thông với các thiết bị như các thiết bị đầu cuối hoặc model...
+ Các thanh nghi ngắt: có 1 cấu trúc ngắt với 2 mức ưu tiên và 5 nguyên
nhân ngắt. Các ngắt bị vô hiệu hóa sau khi reset hệ thống và được phép bằng
cách vào thanh ghi IE ở địa chỉ A8H. Mức ưu tiên ngắt được thiết lập bởi


thanh ghi IP ở địa chỉ B8H.
+Thanh ghi điều khiển nguồn: PCON có địa chỉ 87H

c. Tập lệnh của 89C51
* Các kiểu định địa chỉ: Trong tập lệnh có 8 chế độ đánh địa chỉ
- Thanh ghi đại chỉ
- Địa chỉ trực tiếp

- Địa chỉ gián tiếp
- Địa chỉ tức thời
- Địa chỉ tuyệt đối
- Địa chỉ tương đối
- Địa chỉ dài
- Địa chỉ tham chiếu
* Các nhóm lệnh của 89C51
+ Nhóm lệnh số học
+ Nhóm lệnh logic
+ Nhóm lệnh di chuyển dữ liệu
+ Nhóm lệnh xử lý bit
+ Nhóm lệnh rẽ nhánh

1.2. CẤU TRÚC IC MAX 232


Bộ vi điều khiển AT89s52 có khả năng giao tiếp với thiết bị ngoài qua cổng
nối tiếp. Vấn đề trở ngại duy nhất khi giao tiếp với máy tính là mức logic ở
bộ vi điều khiển và ở cổng COM khác nhau cụ thể như sau:
Đối tượng

Mức logic

Mức điện áp tương ứng

Cổng COM

1

-12 V đến -3V


0

+3V đến +12V

(Mức RS232)
Vi Điều khiển
(Mức TTL)

1
0

+5V
0V

Khắc phục vấn đề này, người ta sử dụng vi mạch MAX 232 để chuyển
đổi mức điện áp giữa 2 chuẩn. Vi mạch này có chứa hai bộ chuyển đổi mức
logic từ TTL sang RS232 và ngược lại. Hình 6 là mạch giao tiếp giữa vi điều
khiển với máy tính qua cổng RS232C sử dụng vi mạch đổi mức MAX232.

Hình 1.4: Truyền thông qua cổng nối tiếp
Như vậy thực chất của việc truyền thông qua cổng nối tiếp thực chất là
việc truyền mã ASCII của ký tự.Để gửi cho máy tính các kí tự từ ‘0’ đến ‘9’
ta phải truyền mã ASCII của chúng lần lượt từ 0x30 đến 0x39.
Để kiểm tra xem máy tính có nhận được các kí tự mà vi điều khiển
truyền tới chưa, ta phải cho máy tính thi hành. Chương trình nhận số liệu qua


cổng nối tiếp chương trình này có thể viết bằng ngôn ngữ lập trình Basic,
Pascal, C, C++...Trong Windows có cung cấp sẵn cho chúng ta một công cụ

truyền tin qua cổng nối tiếp là Hyper Terminal.
a. Truyền thông nối tiếp với 8051

Truyền dữ liệu nối tiếp đồng bộ, không đồng bộ
Ø Đóng khung dữ liệu trong truyền thông không đồng bộ
Ø Chuẩn giao diện RS232
Ø Nối ghép 8051 với chuẩn RS232
Ø Các bước lập trình truyền thông nối tiếp cho 8051
·

Cài đặt khung truyền

·

Cài đặt tốc độ baud

Các cơ sở của truyền thông nối tiếp
Trong truyền thông nối tiếp, một đường dữ liệu duy nhất được dùng
thay cho nhiều đường dữ liệu của truyền thông song song không chỉ giúp
giảm giá thành, giúp hệ thống đơn giản hơn nhiều mà nó còn mở ra khả năng
để hai máy tính ở cách xa nhau có truyền thông qua đường thoại.
Truyền thông dữ liệu nối tiếp sử dụng hai phương pháp là đồng
bộ và không đồng bộ (dị bộ):
Ø Trong truyền đồng bộ: thì bộ truyền và bộ thu được đồng bộ hóa qua một
đường tín hiệu đồng hồ bên ngoài. Khái niệm “đồng bộ” để chỉ sự “báo
trước” trong quá trình truyền. Lấy ví dụ: thiết bị 1 (tb1) kết nối với với thiết
bị 2 (tb2) bởi 2 đường, một đường dữ liệu và 1 đường xung nhịp. Cứ mỗi lần
tb1 muốn truyền 1 bit dữ liệu, tb1 điều khiển đường xung nhịp chuyển từ
mức thấp lên mức cao báo cho tb2 sẵn sàng nhận một bit. Bằng cách “báo
trước” này tất cả các bit dữ liệu có thể truyền/nhận dễ dàng với ít “rủi ro”



trong quá trình truyền. Tuy nhiên, cách truyền này đòi hỏi ít nhất 2 đường
truyền (dữ liệu và clock) cho 1 quá trình truyền hoặc nhận.
Ø Khác với cách truyền đồng bộ, truyền thông không đồng bộ chỉ cần một
đường truyền cho một quá trình. “Khung dữ liệu” đã được chuẩn hóa bởi các
thiết bị nên không cần đường xung nhịp báo trước dữ liệu đến. Ví dụ: 2 thiết
bị đang giao tiếp với nhau theo phương pháp này, chúng đã được thỏa thuận
với nhau rằng cứ 1ms thì sẽ có 1 bit dữ liệu truyền đến, như thế thiết bị nhận
chỉ cần kiểm tra và đọc đường truyền mỗi mili-giây để đọc các bit dữ liệu và
sau đó kết hợp chúng lại thành dữ liệu có ý nghĩa. Truyền thông nối tiếp
không đồng bộ vì thế hiệu quả hơn truyền thông đồng bộ (không cần nhiều
đường truyền). Tuy nhiên, để quá trình truyền thành công thì việc tuân thủ
các tiêu chuẩn truyền là hết sức quan trọng.
Trong 8051 có một bộ truyền dữ liệu không đồng bộ (UART
- Universal Asynchronous serial Reveiver and Transmitter). Trước tiên chúng
ta sẽ tìm hiểu các khái niệm quan trọng trong phương pháp truyền thông nối
tiếp không đồng bộ:
Baud rate (tốc độ Baud)
Để việc truyền và nhận không đồng bộ xảy ra thành công thì các thiết bị tham
gia phải “thống nhất” với nhau về khoảng thời gian dành cho 1 bit truyền,
hay nói cách khác tốc độ truyền phải được cài đặt như nhau trước, tốc độ này
gọi là tốc độ Baud. Theo định nghĩa, tốc độ baud là số bit truyền trong 1
giây. Nếu tốc độ baud được đặt là 19200 thì thời gian dành cho 1 bit truyền là
1/19200 ~ 52.083us.
Frame (khung truyền)
Dữ liệu đi vào ở đầu thu của đường dữ liệu trong truyền dữ liệu nối
tiếp là một dãy các số 0 và 1, và rất khó để hiểu được ý nghĩa của các dữ liệu
ấy 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 bit tạo nên một ký tự và khi



nào dữ liệu bắt đầu và kết thúc. Bên cạnh tốc độ baud, khung truyền là một
yếu tố quan trọng tạo nên sự thành công khi truyền và nhận.
Khung truyền bao gồm các quy định về số bit trong mỗi lần truyền,
các bit “báo” như bit Start và bit Stop, các bit kiểm tra như Parity, ngoài ra
số lượng các bit trong một data cũng được quy định bởi khung truyền. Hình
2 là một ví dụ của một khung truyền của UART (truyền thông nối tiếp không
đồng bộ): khung truyền này được bắt đầu bằng 01 start bit, tiếp theo là
08 bit data, sau đó là 01 bit parity dùng kiểm tra dữ liệu và cuối cùng là
02 bits stop. Công việc này được gọi là đóng gói dữ liệu. Chúng ta sẽ đi vào
tìm hiểu các thành phần có trong một khung truyền:
Ø Start bit
Start là bit đầu tiên được truyền trong một frame truyền, bit này có
chức năng báo cho thiết bị nhận biết rằng có một gói dữ liệu sắp được truyền
tới. Start là bit bắt buộcphải có trong khung truyền, và nó là một bit thấp
(0).
Ø Data (dữ liệu)
Data hay dữ liệu cần truyền là thông tin chính mà chúng ta cần gởi và nhận.
Data không nhất thiết phải là gói 8 bit, với 8051 ta có thể quy định số lượng
bit của data là 08 hoặc 09 bit. Trong truyền thông nối tiếp UART, bit có trọng
số nhỏ nhất (LSB - Least Significant Bit, bit bên phải) của data sẽ được
truyền trước và cuối cùng là bit có trọng số lớn nhất (MSB - Most Significant
Bit, bit bên trái).
Ø Parity bit
Parity là bit dùng để kiểm tra dữ liệu truyền có đúng không (một cách
tương đối). Có 2 loại parity là parity chẵn (even parity) và parity lẻ (odd
parity). Parity chẵn nghĩa là số lượng số “1” trong dữ liệu bao gồm bit parity



luôn là số chẵn. Ngược lại tổng số lượng các số “1” trong parity lẻ luôn là số
lẻ.
Ví dụ: nếu dữ liệu của bạn là 10111011 nhị phân, có tất cả 6 số “1”
trong dữ liệu này, nếu quy định parity chẵn được dùng, bit parity sẽ mang giá
trị 0 để đảm bảo tổng các số “1” là số chẵn (6 số 1). Nếu parity lẻ được yêu
cầu thì giá trị của parity bit là 1. Sau khi truyền chuỗi dữ liệu kèm theo cả bit
parity trên, bên nhận thu được và kiểm tra lại tổng số số “1” (bao gồm cả bit
parity), nếu vi phạm quy định parity đã đặt trước thì ta khẳng định là dữ liệu
nhận được là sai, còn nếu không vi phạm thì cũng không khẳng định được
điều gì (mang tính tương đối). Hình 2 mô tả một ví dụ với parity chẵn được
sử dụng.
Parity bit không phải là bit bắt buộc và vì thế chúng ta có thể loại
bit này khỏi khung truyền.
Ø Stop bits
Stop bits là 01 hoặc nhiều bit báo cho thiết bị nhận rằng một gói dữ
liệu đã được gởi xong. Sau khi nhận được stop bits, thiết bị nhận sẽ tiến hành
kiểm tra khung truyền để đảm bảo tính chính xác của dữ liệu. Stop bits là
các bit bắt buộc xuất hiện trong khung truyền, trong 8051 có thể là 01 hoặc
02 bit, và chúng là các bit cao (1). Trong ví dụ ở hình 2: có 2 stop bits được
dùng cho khung truyền.


Hình 2: Một khung truyền trong truyền thông nối tiếp không đồng bộ

b. Các chân RxD và TxD trong 8051
Trong 8051 có hai chân được dùng 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, là một phần của cổng P3 (đó là
P3.0-chân 10 và P3.1-chân 11). Các chân này hoạt động với mức logic
TTL (mức logic cao “1” được gán cho Vccvà mức logic thấp được gán
cho 0v).

Vì các máy tính được sử dụng rất rộng rãi để truyền thông với các hệ
thống vi điều khiển, do vậy ta chủ yếu tập trung vào truyền thông nối tiếp của
8051 với cổng COM – RS232 của PC.
Chuẩn giao diện RS232
Để cho phép tương thích giữa các thiết bị truyền thông dữ liệu được sản xuất
bởi các hãng khác nhau thì một chuẩn giao diện được gọi là RS232 đã được
thiết lập bởi hiệp hội công nghiệp điện tử EIA vào năm 19960. Năm 1963 nó
được sửa chỉnh và được gọi là RS232A và vào các năm 1965 và 1969 thì
được đổi thành RS232B và RS232C. ở đây chúng ta đơn giản chỉ hiểu là
RS232. Ngày nay RS232 là chuẩn giao diện I/O vào - ra nối tiếp được sử
dụng rộng rãi nhất. Chuẩn này được sử dụng trong máy tính PC và hàng loạt
các thiết bị khác nhau.
Ø Các chân của cổng RS232
Hình 3 là sơ đồ chân của cáp RS232 và chúng thường được gọi là đầu
nối DB - 25. Trong lý 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.


Hình 3: Đầu nối DB - 25 của RS232.
Vì không phải tất cả mọi chân của cổng RS232 đề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 1 và hình 4.

Hình 4: Đầu nối DB - 9 của RS232.

Số chân

Mô tả

1


Data 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 (RI)

Báo chuông

Bảng 1: Các tín hiệu của các chân đầu nối DB - 9 trên máy tính.
c. Nối ghép 8051 tới RS232
Chuẩn RS232 được thiết lập trước họ logic TTL rất lâu do vậy điện áp đầu
vào và đầu ra của nó không tương thích với mức TTL. Trong RS232 thì
mức logic 1 được biểu diển từ điện áp - 3v đến -25v trong khi đó mức 0 thì
ứng với điện áp + 3v đến +25v làm cho điện áp - 3v đến + 3v là

không xác định. Vì lý do này để kết nối một chuẩn RS232 bất kỳ đến
một hệ vi điều khiển 8051 thì ta phải sử dụng các bộ biến đổi điện áp
(nhưMAX232) để chuyển đổi các mức điện áp 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 8051 và ngược lại.
Các IC MAX232 nhìn chung được coi như các bộ điều khiển đường truyền.
Một điểm mạnh của IC MAX232 là nó dùng điện áp nguồn +5v cùng
với điện áp nguồn của 8051. Hay nói cách khác ta có thể nuôi 8051 và
MAX232 với cùng một nguồn +5v, mà không phải dùng hai nguồn nuôi khác
nhau.
IC MAX232 có hai bộ điều khiển đường truyền để nhận và truyền dữ
liệu như trình bày trên hình 5. Các bộ điều khiển được dùng cho
chân TxD được gọi là T1 và T2, cho chân RxD gọi là R1 và R2. Trong nhiều
ứng dụng thì chỉ có 1 cặp được dùng. Ví dụ: ở hình dưới ta chỉ dùng
đến T2 và R2 được dùng làm 1 cặp đối với TxD và RxD của 8051, còn cặp
R1 và T1 thì không cần đến.
Để ý rằng trong IC MAX232, T1 có gán T1in (chân 11) và T1out (chân 14):
· Chân T1in là ở phía TTL và được nối tới chân RxD của bộ vi điều khiển.


· Chân T1out là



phía RS232 được

nối

tới

chân RxD của


đầu

nối DB củaRS232.
Bộ điều khiển R1 cũng có gán R1in (chân 13) và R1out (chân 12):
· Chân R1in (chân số 13) là ở phía RS232 được nối tới chân TxD ở đầu
nốiDB của RS232.
· Chân R1out (chân số 12) là ở phía TTL được nối tới chân RxD của bộ vi
điều

khiển.

Tương tự cho T2 và R2. Xem hình 5:

Hình 5: Sơ đồ bên trong của MAX232 và Sơ đồ nối ghép 8051 -Max232 cổng COM DB-9.
Bộ MAX232 đòi hỏi 4 tụ hóa giá trị từ 1 đến 22mF. giá trị phổ biến
nhất cho các tụ này là 22mF.


d. Lập trình 8051 để truyền dữ liệu nối tiếp
Để lập trình 8051 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ị 20H: 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ị phù hợp để thiết lập chế độ baud truyền


dữ liệu nối tiếp.
3.

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

bit dữ liệu, 1 bit Start và 1 bit Stop.
4.

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

5.

Xoá bit cờ truyền dữ liệu: TI=0.

6.

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

7.

Bit cờ truyền TI được kiểm tra bằng một vòng lặp để đợi đến lúc dữ

liệu ược truyền xong (cờ TI=1).
8.

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

1.3. SƠ LƯỢC VỀ LED 7 THANH
a. Tổng quát



LED 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình số 8
và có thêm 1 led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên
phải của led 7 đoạn.

8 led đơn trên led7 đoạn có Anode(cực +) hoặc cathode(cực -) được nối
chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch
điện. Tám cực còn lại trên mỗi led đơn được đưa thanh 8 chân riêng, cũng
được đưa ra ngoài để kế+”
t nối với mạch điện. Nếu led 7 đoạn cps Anode(cực +) chung, đầu chung này
được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái sáng tắt
của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0. Nếu
led 7 đoạn có Cathode( cực-) chung, đầu chung này được nối xuống
Ground( hay mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt
của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.


Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo
dòng qua mỗi led đơn trong khoảng 10 mA - 20 mA để bảo vệ led. Nếu kết
nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận
tín hiệu điều khiển.
Sơ đồ vị trí các led :
Các điện trở 330 Ω là các điện trở bên ngoài được kết nối để giới hạn dòng
điện qua led nếu led 7 đoạn được nối với nguồn 5V. Chân nhận tín hiệu a
điều khiển led a sáng tắt, ngõ vào b để điều khiển led b. Tương tự với các
chân và các led còn lại.
b. Kết nối với vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể dùng
1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7 đoạn

nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt của
từng led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường
được gọi là “mã hiển thị led 7 đoạn”. Có hai kiểu mã hiển thị led 7 đoạn: mã
dành cho led 7 đoạn có Anode( cực +) chung và mã dành cho led 7 đoạn có
Cathode( cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị
trí b và c sáng, nếu dùng led 7 đoạn có Anode chung thì phải đặt vào 2 chân b
và c điện áp là 0V ( mức 0) các chân còn lại được đặt điện áp là 5V( mức 1),
nếu sử dụng led 7 đoạn có cathode chung thì điện áp (hay mức logic) hoàn
toàn ngược lại, tức là phải đặt vào chân b và c điện áp là 5V( mức 1).


Bảng mã hiển thị led 7 đoạn:
- Phần cứng được kết nối với 1 Port bất kì của vi điều khiển, để thuận tiện
cho việc xử lý về sau phần cứng nên được kết nối như sau: Px.0 nối với chân
a, Px.1 nối với chân b , lần lượt theo thứ tự cho đến Px.7 nối với chân h.
- Dữ liệu xuất các dạng nhị phân như sau: hanalgco
- Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung ( các led
đơn sáng ở mức 0):

Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung ( các led
đơn sáng ở mức 1):


1.4 sơ lược về cảm biến hồng ngoại
Cuộc sống của chúng ta tồn tại trong cùng lúc với nhiều thực thể vật lý,
những thứ chúng ta nhận biết được như là các vận động cơ học, tác
dụng của nhiệt (nhận biết qua lớp da), của ánh sáng(nhận biết qua mắt), của
âm thanh (nhận biết qua tai), của mùi (nhận biết qua mũi), của vị (nhận
biết qua lưỡi), và nhất là của điện. Hiện nay, điện tử học là một công cụ phục
vụ con người nhiều nhất, chúng ta có radio, cassette, TV, máy ghi hình, máy

tính....Ưu điểm của các thiết bị điện là xử lý các vấn đề rất nhanh, nhưng các
thiết bị điện thì lại chỉ làm việc với tín hiệu thuộc điện, mà chung quanh
chúng ta không phải chỉ có các hiện tượng thuộc điện mà song song còn rất
nhiều hiện tượng phi điện khác đang tồn tại, từ đó người ta nghĩ đến
các SENSOR. Sensor là các cảm biến, nó dùng để chuyển đổi các tín hiệu
không thuộc điện ra dạng tín hiệu điện và đưa vào các dạng mạch điện để xử
lý. Ngày nay có rất nhiều, rất nhiều loại SENSOR. Trong lần này, chúng ta sẽ
tìm hiểu loại sensor dùng phát hiện các vật thể nóng có chuyển động ngang,
quen gọi là PIR moton detector.

PIR là gì?

Nó là chữ viết tắt của Passive InfraRed sensor (PIR sensor), tức là bộ
cảm biến thụ động dùng nguồn kích thích là tia hồng ngoại. Tia hồng ngoại


(IR) chính là các tia nhiệt phát ra từ các vật thể nóng. Trong các cơ thể sống,
trong chúng ta luôn có thân nhiệt (thông thường là ở 37 độ C), và từ cơ thể
chúng ta sẽ luôn phát ra các tia nhiệt, hay còn gọi là các tia hồng ngoại,
người ta sẽ dùng một tế bào điện để chuyển đổi tia nhiệt ra dạng tín hiệu điện
và nhờ đó mà có thể làm ra cảm biến phát hiện các vật thể nóng đang chuyển
động. Cảm biến này gọi là thụ động vì nó không dùng nguồn nhiệt tự phát
(làm nguồn tích cực, hay chủ động) mà chỉ phụ thuộc vào các nguồn tha
nhiệt, đó là thân nhiệt của các thực thể khác, như con người con vật...

Trước hết, chúng ta tìm hiểu cấu trúc của một cảm biến PIR (Bạn
xem hình).

Trên đây là đầu dò PIR, loại bên trong gắn 2 cảm biến tia nhiệt, nó có 3
chân ra, một chân nối masse, một chân nối với nguồn volt DC, mức áp làm

việc có thể từ 3 đến 15V. Góc dò lớn. Để tăng độ nhậy cho đầu dò, Bạn dùng
kính Fresnel, nó được thiết kế cho loại đầu có 2 cảm biến, góc dò lớn, có tác
dụng ngăn tia tử ngoại.

Hình vẽ cho thấy cách dùng đầu dò PIR để phát hiện người hay con
vật di chuyển ngang.


×