Nắm được những yêu cầu đó cùng với việc ứng dụng của VXL vào ngành tự động hóa và để góp phần tạo nền tảng ban đầu cho việc học tập, tìm hiểu kỹ thuật vi xử lý, cách thức truyền dữ liệu
Trang 1L ờ i cả m ơ n
Cuốn luận văn này được hoàn thành tốt đẹp theo đúng thời gian quy định của nhà trường cũng như của khoa.Việc đạt được kết quả như trên không chỉ là
sự nỗ lực của em mà còn sự giúp đỡ, chỉ bảo của thầy hướng dẫn, của quý thầy
cô và các bạn sinh viên.
Em xin chân thành cám ơn !:
Sự dạy dỗ, chỉ bảo và góp ý của quý thầy cô trong khoa.
Đặc biệt là sự giúp đỡ và chỉ bảo tân tình của Thầy giáo Huỳnh Văn
Kiểm người trực tiếp hướng dẫn chúng em trong quá trình làm luận văn.
Xin cám các bạn sinh viên trong khoa đã giúp đỡ chúng tôi rất nhiều mặt: như phương tiện, sách vở, ý kiến …
HCM, ngày 01 tháng 07 năm 2009.
Sinh viên thực hiện:
- Phan Cảnh Danh.
- Nguyễn Nguyên Hà.
Trang 2NHẬN XÉT CỦA GIÁO VIỆN H ƯỚNG DẪN
HCM, ngày tháng năm 2009
Trang 3NHẬN XÉT CỦA GIÁO VIỆN PHẢN BIỆN
HCM, ngày tháng năm 2009
Giáo viên phản biện
Trang 4MỤC LỤC
L ờ i cả m ơ n n 1
NHẬN XÉT CỦA GIÁO VIỆN HƯỚNG DẪN 2
NHẬN XÉT CỦA GIÁO VIỆN PHẢN BIỆN 3
L ờ i m ở đầ u 7 u CHƯƠNG 1: DẪN NHẬP 8
1.1.ĐẶT VẤN ĐỀ: 8
1.2 MỤC ĐÍCH NGHIÊN CỨU: 8
1.3 Ý NGHĨA THỰC TIỂN: 8
CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU KHIỂN 9
2.1.GIỚI THIỆU : 9
2.2.LỊCH SỬ PHÁT TRIỂN CỦA C ÁC BỘ VI ĐIỀU KHIỂN : 9
2.3.KHẢO SÁT BỘ VI ĐIỀU KHIỂN 8051 V À 8031: 10
2.3.1.Cấu trúc bên trong 8051 / 8031 .11
2.3.2 Cấu trúc bên ngoài và chức năng các chân của 8051 .12
2.4.TỔ CHỨC BỘ NHỚ 8051: 15
2.5.CÁC THANH GHI Đ ẶC BIỆT: 18
2.6 BỘ NHỚ NGOÀI: 22
2.7 CÁC NHÓM LỆNH CỦA 8051/8053: 25
2.7.1.Nhóm lệnh xử lý số học 26
2.7.2.Nhóm lệnh luận lý 27
2.7.3.Nhóm lệnh chuyển dữ liệu 28
2.7.4.Nhóm lệnh chuyền điều khiển .29
CHƯƠNG 3: TÌM HIỂU GIAO TIẾP MÁY TÍNH 30
3.1 CÁC PHƯƠNG PHÁP GIAO TI ẾP: 30
3.1.1.Giao Tiếp Với Máy Tính Thông Qua Slot Card 30
3.1.2.Giao Tiếp Qua Serial Port (Port COM) 30
3.1.3.Giao Tiếp Qua Cổng PRINT (Cổng Máy In) 31
3.2 GIAO TIẾP QUA CỔNG NỐI TIẾP: 31
3.2.1 Cấu tạo cồng nối tiếp 31
Trang 54.1.2.2 Các kiểu mẫu truyền nhận trong RS485 47
4.2 BỘ CHUYỂN ĐỔI ADC0809: 50
4.2.1 sơ đồ chân .50
4.2.2 chức năng các chân 50
4.2.3.Các đặc điểm củaADC 0809 50
4.2.4 Nguyên lý hoạt động 51
4.3 MÀN HÌNH LCD: 53
4.3.1.Sơ đồ chân của LCD để kết nối với vi điều khiển .53
4.3.2.Một số tính năng của LCD .54
4.3.3 Ghép nối LCD với VĐK họ MSC -51 54
4.3.4.Bảng mã code của LCD 55
CHƯƠNG 5:TÌM HIỂU LẬP TRÌNH VISUABASIC 56
5.1.LẬP TRÌNH VỚI VISUAL BASIC: 56
5.2 CÁC ĐặC TÍNH CỦA MSCOMM: 58
5.2.1 Đặc tính Settings 58
5.2.2 Đặc tính CommPort 58
5.2.3 Đặc tính PortOpen 58
5.2.4.Đặc tính Input 59
5.2.5 Đặc tính Output 59
CHƯƠNG 6:THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 63
6.1 MÔ TẢ HỆ THỐNG: 63
6.1.1 Sơ đồ khối hệ thống 63
6.1.2 Mô tả .64
6.2 MÔ TẢ SƠ ĐỒ CHI TIẾT: 64
6.2.1 Mạch nguồn .64
6.2.2 Mạch chuyển đổi RS_232 sang RS_485 65
6.2.2.1.Sơ đồ chi tiết 65
6.2.2.2 Nguyên lý ho ạt động 65
6.2.3 khối VXL1 68
6.2.4 khối VXL 2 69
6.3 LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH: 77
6.3.1.khối điều khiển cửa 77
6.3.1.1 lưu đồ giải thuật 77
6.3.1.2 Chương trình: 79
6.3.2 Khối Điều Khiển Thiết Bị 87
6.3.2.1.lưu đồ giải thuật 87
6.3.2.2 Chương trình VXL 92
6.4 GIAO DIỆN VÀ CHƯƠNG TRÌNH VB: 104
6.4.1 Giao diện VB 104
6.4.2 Chương trình VB 106
6.5 KẾT QUẢ THỰC HIỆN: 125
Trang 66.5.1.Phần cứng .125
6.5.2 Giao diện trên máy tính .125
KẾT LUẬN 127
TÀI LIỆU THAM KHẢO 127
Trang 7L ờ i m ở đầ u
Kỹ thuật vi xử lí với tốc độ phát triển nhanh đã và đang mang đến những thay đổi to lớn trong khoa học và công nghệ cũng như trong đời sống hàng ngày Ngày nay, các thiết bị máy móc ngày càng trở nên thông minh hơn, các công việc được thực hiện với hiệu quả cao hơn, đó cũng là nhờ vi xử lý, vi điều khiển.
Kỹ thuật vi xử lý, vi điều khiển là kỹ thuật của tương lai, là chìa khóa đi
vào công nghệ hiện đại Đối với sinh viên chuyên ngành Điện_Điện Tử, đây là
một lĩnh vực mới, hứa hẹn và mở ra nhiều triển vọng.
Những kiến thức năng lực đạt được trong quá trình học tập ở trường sẽ được đánh giá qua đợt bảo vệ luận văn cuối khóa Vì vậy chúng em cố gắng tận dụng tất cả những kiến thức đã học ở trường cùng với sự tìm tồi nghiên cứu, để
có thể hoàn thành tốt luận văn này Những sản phẫm những kết quả đạt được ngày hôm nay tuy không có gì lớn lao Nhưng đó là những thành quả của những năm học tập Là thành công đầu tiên của chúng em trước khi ra trường
Trong quá trình thực hiện đề tài này, mặc dù chúng em đã rất cố gắng, xong chắc chắn không tránh khỏi những thiếu sót Rất mong nhận sự góp ý, phê bình, chỉ dẫn của quí thầy cô và bạn đọc.
HCM, ngày 01 tháng 07 năm 2009 Sinh viên thực hiện:
- Phan Cảnh Danh.
- Nguyễn Nguyên Hà.
Trang 8CHƯƠNG 1: DẪN NHẬP
1.1.ĐẶT VẤN ĐỀ:
Cùng với sự phát triển của công nghệ , con người luôn tìm tòi và phát minh racái mới không ngừng góp phần nâng cao năng suất lao động trong đó việc tăng cường
và tạo ra những tiện nghi cho đời sống sinh hoạt hằng ngày là không thể thiếu
Điều khiển, quản lý các thiết bị trong một ngôi nh à, khu dân cư hay nhà máy , xí
nghiệp ngày càng trở nên quang trọng Nắm được những yêu cầu đó cùng với việc
ứng dụng của VXL vào ngành tự động hóa và để góp phần tạo nền tảng ban đầu cho
việc học tập, tìm hiểu kỹ thuật vi xử lý, cách thức truyền dữ liệu giữa máy tính với vi
xử lý và các thiết bị ngoại vi chúng em xin đề nghị thực hiện đề tài: “HỆ THỐNG
ĐIỀU KHIỂN NGÔI NH À THÔNG MINH”.
Hệ thống điều kiển các thiết bị trong một ngôi nh à gồm: cửa, quạt, đèn, máy
bơm sương, còi báo động bằng cách thu thu thập dữ liệu từ các cảm biến: nhiệt độ, độ
ẩm, cường độ sáng máy tính các tác dụng quan sát, quản lý sự thay đổi các thông số
cảm biến, các thiết bị, c ài đặt và thu thập cơ sở dữ liệu
Đề tài là điều kiện để chúng em thực hành và kiểm tra lại những kiến thức đăđược học, ứng dụng thực tế các mạch điện tử trong cuộc sống, bổ sung những kiến thức
bổ ích hổ trợ tốt cho việc học tập và ứng dụng trong đời sống thực tế
1.2 MỤC ĐÍCH NGHIÊN CỨU:
Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học
để đủ điều kiện ra trường
Cụ thể khi nghiên cứu thực hiện đề tài là chúng em muốn phát huy những thànhquả ứng dụng của vi điều khiển nhằm tạo ra những sản phẩm, những thiết bị tiên tiếnhơn, và đạt hiệu quả sản xuất cao hơn
Mặc khác tập luận văn này cũng có thể làm tài liệu tham khảo cho những sinhviên khóa sau Giúp họ hiểu rõ hơn về những ứng dụng của vi điều khiển
Ngòai ra quá trình nghiên cứu thực hiện đề tài là một cơ hội để chúng em tự
kiểm tra lại những kiến thức đã được học ở trường, đồng thời phát huy tính sáng tạo,
khả năng giải quyết một vấn đề theo yêu cầu đặt ra Và đây cũng là dịp để chúng em tự
khẳng định mình trước khi ra trường để tham gia vào các hoạt động sản xuất của xãhội
1.3 Ý NGHĨA THỰC TIỂN:
Trang 9CHƯƠNG 2: GIỚI THIỆU CHUNG VỀ BỘ VI ĐIỀU
KHIỂN
2.1.GIỚI THIỆU :
Bộ vi điều khiển viết tắt l à Micro-controller, là mạch tích hợp trên một chip cóthể lập trình được, dùng để điều khiển hoạt động của một hệ thống Theo các tập lệnhcủa người lập trình, bộ vi điều khiển tiến h ành đọc, lưu trữ thông tin, xử lý thông tin,
đo thời gian và tiến hành đóng mở một cơ cấu nào đó
Trong các thiết bị điện và điện tử dân dụng, các bộ vi điều khiển, điều khiển hoạt
động của TV, máy giặt, đầu đọc laser, điện thọai, l ò vi-ba…Trong hệ thống sản xuất tựđộng, bộ vi điều khiển đ ược sử dụng trong Robot, dây chuyền tự động Các hệ thốngcàng “thông minh” thì vai trò c ủa hệ vi điều khiển càng quan trọng
2.2.LỊCH SỬ PHÁT TRIỂN CỦA C ÁC BỘ VI ĐIỀU KHIỂN :
Bộ vi điều khiển thực ra, l à một loại vi xử lí trong tập hợp các bộ vi xử lý nóichung Bộ vi điều khiển được phát triển từ bộ vi xử lí, từ những năm 70 do sự pháttriển và hoàn thiện về công nghệ vi điện tử dựa trên kỹ thuật MOS (Metal-Oxide-Semiconductor) , mức độ tích hợp của các linh kiện bán dẫn trong một chip ng ày càngcao
Năm 1971 xuất hiện bộ vi xử lí 4 bit loại TMS1000 do công ty texas Instruments
vừa là nơi phát minh vừa là nhà sản xuất Nhìn tổng thể thì bộ vi xử lí chỉ có chứa tr ênmột chip những chức năng cần thiết để xử lí ch ương trình theo một trình tự, còn tất cả
bộ phận phụ trợ khác cần thiết nh ư : bộ nhớ dữ liệu , bộ nhớ ch ương trình , bộ chuển
đổi AID, khối điều khiển, khố i hiển thị, điều khiển máy in, hối đồng hồ v à lịch là
những linh kiện nằm ở b ên ngoài được nối vào bộ vi xử lí
Mãi đến năm 1976 công ty INTEL (Interlligen -Elictronics) Mới cho ra đời bộ vi
điều khiển đơn chip đầu tiên trên thế giới với tên gọi 8048 Bên cạnh bộ xử lí trung tâm
8048 còn chứa bộ nhớ dữ liệu, bộ nhớ ch ương trình, bộ đếm và phát thời gian các cổngvào và ra Digital trên một chip
Các công ty khác cũng lần lược cho ra đời các bộ vi điều khiển 8bit t ương tự như
8048 và hình thành họ vi điều khiển MCS-48 (Microcontroller-sustem-48)
Trang 10Đến năm 1980 công ty INTEL cho ra đời thế hệ thứ hai của bộ vi điều khiển đ ơn
chip với tên gọi 8051 Và sau đó hàng loạt các vi điều khiển c ùng loại với 8051 ra đời
và hình thành họ vi điều khiển MCS-51
Đến nay họ vi điều khiển 8 bit MCS51 đ ã có đến 250 thành viên và hầu hết các
công ty hàng dẫn hàng đầu thế giới chế tạo Đứng đầu l à công ty INTEL và rất nhiều
công ty khác như : AMD, SIEMENS, PHILIPS, DALLAS, OKI …
Ngoài ra còn có các công ty khác c ũng có những họ vi điều khiển riêng như:
2.3.KHẢO SÁT BỘ VI ĐIỀU KHIỂN 8051 V À 8031:
IC vi điều khiển 8051/8031 thuộc họ MCS51 có các đặt điểm sau :
- 4kbyte ROM (được lập trình bởi nhà sản xuất chỉ có ở 8051)
- 210 bit được địa chỉ hóa
Trang 112.3.1.Cấu trúc bên trong 8051 / 8031.
Phần chính của vi điều khiển 8051 / 8031 là bộ xử lí trung tâm (CPU: centralprocessing unit ) bao gồm :
- Thanh ghi tích lũy A
- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học (ALU : Arithmetic Logical Unit )
- Từ trạng thái chương trình (PSW : Prorgam Status Word)
- Bốn băng thanh ghi
EA\ RST PSEN ALE
Các thanh Ghi khác
128 byte Ram
Rom 4K-8051 OK-8031
Timer1 Timer2
Điều khiển
Ngắt
Điều khiển bus
CPU
Port nốiTiếp
Các port I\O
Tạo dao
Động
Trang 12Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển 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 định thờihoặc cũng có thể là giao diện nối tiếp
Hai bộ định thời 16 bit hoạt động như một bộ đếm
Các cổng (port0, port1, port2, port3 ) Sử dụng vào mục đích điều khiển
Ở cổng 3 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, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên ngoài
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àmviệc độc lập với nhau Tốc độ truyền qu ổng nối tiếp có thể đặt trong vảy rộng và
Các thanh ghi sử dụng để lưu trữ thông tin trong quá trình xử lí Khi CPU làm
việc nó làm thay đổi nội dung củ ác thanh ghi
2.3.2 Cấu trúc bên ngoài và chức năng các chân của 8051.
Trang 13hình 1.1: sơ đồ chân của 8051
a.port0 : là port có 2 chức năng ở trên chân từ 32 đến 39 trong các thiết kế cỡ
nhỏ
( không dùng bộ nhớ mở rộng ) có hai chức năng như các đường IO Đối với các thiết
kế cỡ lớn ( với bộ nhớ mở rộng ) nó được kết hợp kênh giữ a các bus )
b.port1 : port1 là một port I/O 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 các thiết bị ngoài nếu cần Port1 không có chức năng
khác, vì vậy chúng ta chỉ được dùng trong giao tiếp với các thiết bị ngoài
c.port2 : port2 là một port công 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 kế dùng bộ nhớ
mở rộng
d.Port3 : port3 là một port công 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ín đặcbiệt của 8051 / 8031 như ở bảng sau :
Bảng 1.1 : Chức năng của các chân trên port3
e.PSEN (Program Store Enable ) : 8051 / 8031 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 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 bytes mã lệnh
Trang 14PSEN sẽ ở mức thấp trong thời gian lấy 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 8051 để giải mã lệnh Khi
thi hành chương trình trong ROM nội (8051) PSEN sẽ ở mức thụ động (mức cao)
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, 8086, 8051 dùng ALE một cách tương tựcho làm việc giải các kênh các bus địa chỉ và dữ liệu khi port 0 được dùng trong chế
độ chuyển đổi của nó : vừa là bus dữ liệu vừa là búyt thấp của địa chỉ, 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 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ể đượcdùng là nguồn xung nhịp cho các hệ thống Nếu xung trên 8051 là 12MHz thì ALE có
tần số 2MHz Chỉ ngoại trừ khi thi hành lệnh MOVX, một xung ALE sẽ bị mất Chân
này cũng được làm ngõ vào cho xung lập trình cho EPROM trong 8051
g.EA (External Access) : Tín hiệu vào EA trên chân 31 thường được mắc lên
mức cao (+5V) hoặc mức thấp (GND) Nếu ở mức cao, 8051 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 Khi dùng 8031, EA luôn được nối mức thấp vì không có bộ
nhớ chương trình trên chip Nếu EA được nối mức thấp bộ nhớ bên trong chương trình
8051 sẽ bị cấm và chương trình thi hành từ EPROM 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 8051
h.SRT (Reset) :Ngõ vào RST trên chân 9 là ngõ reset của 8051 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 8051 đượctải những giá trị thích hợp để khởi động hệ thống
i.Các ngõ vào bộ dao động trên chip :
Như đã thấy trong các hình trên , 8051 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 Các tụ giữa cũng cần thiết như đã vẽ Tần số
thạch anh thông thường là 12MHz
j.Các chân nguồn : 8051 vận hành với nguồn đơn +5V Vcc được nối vào
Trang 152.4.TỔ CHỨC BỘ NHỚ 8051 :
8051 / 8031 có bộ nhớ theo cấu trúc Harvard : có những vùng cho bộ nhớ riêng biệt
cho chương trình dữ liệu Như đã nói ở trên, cả chương trình và dữ liệu có thể ở bên
trong 8051, dù vậy chúng có thể được mơ rộng bằng các thành phần ngoài lên đến tối
đa 64 Kbytes bộ nhớ chương trình và 64 Kbytes bộ nhớ dữ liệu
Bộ nhớ bên trong bao gồm ROM (8051) và RAM trên chip, RAM trên chip bao g ồmnhiều phần : phần lưu trữ đa dụng, phần lưu trữ địa chỉ hóa từng bit, các bank thanhghi và các thanh ghi chức năng đặc biệt
trìnhFF
truy xuất trực tiếp như các địa chỉ bộ nhớ khác
- Ngăn xếp bân trong RAM nội nhỏ h ơn so với RAM ngoài như trong các bộ vi
xử lí khác
Như ta đã thấy trên hình sau, RAM bên 8051/ 8031 được phân chia giữa các bank
thanh ghi (00H – 1FH), RAM địa chỉ hóa từng bit (20H – 2FH), RAM đa dụng (30H –7FH) và các thanh ghi ch ức năng đặc biệt (80H – FFH)
a RAM đa dụng.
Trang 16Địa chỉ byte Địa chỉ bit
302F2E2D2C2B2A292827262524232221201F1817100F
Trang 17Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng
cách đánh địa chỉ trực tiếp hoặc gián tiếp Ví dụ, để đọc nội dung ở địa chỉ 5FH của
RAM nội vào thanh ghi tích lũy lệnh sau sẽ được dùng :
MOV A, 5FH
Lệnh này di chuyển một búyt dữ liệu dùng cách đánh địa chỉ trực tiếp để xác định
“địa chỉ nguồn” (5FH) Đích nhận dữ liệu đ ược ngầm xác định trong m ã lệnh là thanh
ghi tích lũy A
RAM bên trong cũng có thể được truy xuất dùng cách đánh địa chỉ gián tiếp qua
RO hay R1 Ví dụ, sau khi thi hành cùng nhiệm vụ như lệnh đơn ở trên :
MOV R0, #5FH
MOV A, @R0
Lệnh đầu dùng đị hỉ tức thời để di chuyển giá trị 5FH v ào thanh ghi R0 và lệnhthứ hai dùng địa trực tiếp để di chuyển dữ liệu “đ ược trỏ bởi R0” vào thanh ghi tíchlũy
b.RAM địa chỉ hóa từng bit :
8051 / 8031 chứa 210 bit
được địa chỉ hóa, trong đó 128 bit l à ở các địa chỉ byte 20H đến 2FH, v à phần
còn lại trong các thanh ghi chức năng đặc biệt
Y tưởng truy xuất từng bit ri êng rẽ bằng mềm là một đặc tín tiện lợi của vi điều
khiển nói chung Các bit có thể đ ược đặt, xóa, AND,OR …với một lệnh đ ơn Đa số cácchi xử lí đòi hỏi một chuổi lệnh đọc – sữa – ghi để đạt được hiệu quả tương tự Hơnnữa, các port I/0 cũng đ ược địa chỉ từng bit làm đợn giản phần mềm xuất nhập từng bit
Có 128 bit được địa chỉ hóa đa dụng ở các byte 20H đến 2FH Các địa chỉ n àyđược truy xuất như các byte hoặc các bit phụ thuộc v ào lệnh được dùng ví dụ, để đặt
bit 67H, ta dùng lệnh sau :
SETB 67H
Chú ý rằng “địa chỉ bit 67H” là bit có trọng số lớn nhất (MSB) ở “địa chỉ byte
2CH” lệnh trên sẽ không tác động đến các bit khác của địa chỉ n ày
c.Các bank thanh ghi :
32 byte thấp nhất của bộ nhớ nội l à dành cho các bank thanh ghi B ộ lệnh của
8051 / 8031 hổ trợ 8 thanh ghi (RO đến R7) và theo mặc định (sau khi Reset hệ thống)
Trang 18các thanh ghi này ở các địa chỉ 00H-07H Lệnh sau đây sẽ đọc nội dung ở địa chỉ 05Hvào thanh ghi tích lũy.
MOV A,R5
Đây là lệnh một byte dùng địa chỉ thanh ghi Tất nhi ên, thao tác tương tự có thểđược thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ hai:
MOV A,05H
Các lệnh dùng các thanh ghi R0 đ ến R7 thì sẽ ngắn hơn và nhanh hơn các l ệnh
tương ứng nhưng dùng địa chỉ trực tiếp Các giá trị dữ liệu đ ược dùng thường xuyên
nên dùng một trong các thanh ghi này
Bank thanh ghi tích cực có thể chuyển đổi bằng cách thay đổi các bit chọn bankthanh ghi trong từ trạng thái chương trình (PSW) Giả sử rằng bank thanh ghi 3 đ ượctích cực, lệnh sau sẽ ghi nội dung của thanh ghi tích lũy v ào địa chỉ 18H:
MOV R0,A
Yù tưởng dùng “các bank thanh ghi” cho phép “chuy ển hướng” chương trình
nhanh và hiệu qủa (từng phần riêng rẽ của phần mềm sẽ có một bộ thanh ghi ri êngkhông phụ thuộc vào các phần khác)
2.5.CÁC THANH GHI ĐẶC BIỆT:
Các thanh ghi nội của 8051/8031 được truy xuất ngầm định bởi bộ lệnh Ví dụlệnh “INC A” sẽ tăng nội dung của thanh ghi tích lũy A l ên 1 Tác động này đượcngầm định trong mã lệnh
Các thanh ghi trong 8051/8031 đư ợc định dạng như một phần của RAM trên
chip Vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi trực tiếp, sẽ không cólợi khi đặt chúng vào trong RAM trên chip) Đó là l ý do để 8051/0831 có nhiều thanhghi Cũng như R0 đến R7, có 21 thanh ghi chức năng đặc biệt (SFR: Special FuntionRgister) ở vùng trên của RAM nội, từ địa chỉ 80H đến FFH Chú ý rằng hầu hết 128
địa chỉ từ 80H đến FFH không đ ược định nghĩa Chỉ có 21 địa chỉ SFR l à được định
Trang 19Cờ nhớ
Cờ nhớ phụ
Cờ 0Bit 1 chọn bank thanh ghiBit chọn bank thanh ghi
00=bank 0; địa chỉ 00H-07H01=bank 1: địa chỉ 08H-0FH10=bank 2:địa chỉ 10H-17H11=bank 3:địa chỉ 18H-1FH
ADD A,#1
Sẽ trả về thanh ghi tích lũy kết qủa 00H v à set cờ nhớ trong PSW
Cờ nhớ cũng có thể xem nh ư một thanh ghi 1 bit cho các lệnh luận lý thi hànhtrên bit Ví dụ, lệnh sẽ AND bit 25H với cờ nhớ v à đặt kết qủa trở vào cờ nhớ:
ANL C,25H
thấp trong khoảng 0AH đến 0FH Nếu các giá trị cộng đ ược là số BCD, thì sau lệnh cộng cần
có DA A( hiệu chỉnh thập phân thanh ghi tích lũy) để mang kết qủa lớn h ơn 9 trở về tâm từ
09
*Cờ 0 (F0)là một bit cờ đa dụng dành các ứng dụng của người dùng
Các bit chọn bank thanh ghi
Trang 20Các bit chọn bank thanh ghi (RSO và RS1) xá c điňnh bank thanh ghi đ ược tích cực.
Chúng được xóa sau khi reset hệ thống và được thay đôŇi bằng phần mềm nếu cần Ví
dụ, ba lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của thanh ghi R7
(điňa chỉ byte IFH) đęěn thanh ghi tích lũy:
SETB RS1
SETB RSO
MOV A,R7
Khi chương trình được hợp dịch các điňa chỉ bit đúng được thay thế cho các ký
hiệu “RS1” và “RS0” Vậy lệnh SETB RS1 sẽ giống như lệnh SETB 0D4H
*Cờ tràn (OV) được set một lệnh cộng hoặc trừ nếu có một phép toán bị tràn Khicác số có dấu được cộng hoặc trừ với nhau, phần mềm có thể kiểm tra bit này đęŇ xác
điňnh xem kết qủa của nó có nằm trong tầm xác điňnh không Khi các số không dấuđược cộng, bit OV có thể được bỏ qua Các kết qủa lớn hơn +127 hoặc nhỏ hơn –128
sẽ set bit OV
Con trỏ ngăn xếp (SP) là một thanh ghi 8 bit ở điňa chỉ 81H Nó chứa điňa chỉ
của byte dữ liệu hiện hành trên điŇnh của ngăn xếp Các lệnh trên ngăn xếp bao gồm
các thao tác cất dữ liệu vào ngăn xếp và lấy dữ liệu ra khỏi ngăn xếp Lệnh cất dữ liệu
vào ngăn xếp sẽ làm tăng SP trước khi ghi dữ liệu, và lệnh lấy dữ liệu ra khỏi ngăn xếp
sẽ dọc dữ liệu và làm giảm SP Ngăn xếp của 8051/8031 được giữ trong RAM nội vàđược giới hạn các điňa chỉ có thể truy xuất bằng điňa chỉ gián tiếp chúng là 128 byte
Trang 21ngăn đầu tiên đến cất dữ liệu có địa chỉ 08H Nếu phần mềm ứng dụng không khởi
động lại SP , bank thanh ghi 1 (có thể cả 2 và 3) sẽ không dùng được vì vùng RAM này
đă được dùng làm ngăn xếp
Ngăn xếp được truy xuất trực tiếp bằng các lệnh PUSH và POP đến lưu giữ tạm
thời và lấy lại dữ liệu hoặc được truy xuất ngầm bằng các lệnh gọi chương trình con(ACALL, LACALL) và các lệnh trở về (RET,RETI) đến cất và lấy lại bộ đệm chương
trình
d Con trỏ dữ liệu:
Con trỏ dữ liệu (DPTR) được dùng đến truy xuất bộ nhớ ngoài là một thanh ghi
16 bit ở điňa chỉ 82H(DPL: byte thấp) và 83H (DPH:byte cao) Ba lệnh sau sẽ ghi 55Hvào RAM ngoài ở điňa chỉ 1000H:
dữ liệu Lệnh thứ ba dùng điňa chỉ gián tiếp đến di chuyển dữ liệu trong A (55H)
đếnRAM ngoài ở địa chỉ được chứa trong DPTR (1000H)
e Các thanh ghi port xuất nhập:
Các port của 8051/8031 bao gồm Port 0 ở địa chỉ 80H, Port 1 ở địa chỉ 90 H,Port 2 ở điňa chỉ A0H và Port 3 ở điňa chỉ B0H Tất cả các Port đều được địa chỉ hóatừng bit Điều đó cung cấp một khả năng giao tiếp thuận lợi
f Các thanh ghi timer :
8051/8031 chứa 2 bộ định thời đến 16 bit được dùng trong việc định thời hoặc đếm sựkiện Timer 0 ở địachỉ 8AH (TL0:byte thấp) và 8CH (TH0:byte cao).Timer 1 ở điňa chỉ8BH (TL1:byte thấp) và 8DH (TH1: byte cao) việc vận hành timer được set bởi thanhghi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer (TCON) ở địa
chỉ 88H Chỉ có TCON được địa chỉ hóa từng bit
g Các thanh ghi port nối tiếp:
8051/8031 chức một port nối tiếp trên chip dành cho vi ệc trao đổn thông tin vớicác thiết bị nối tiếp như máy tính, modem hoặc cho việc giao tiếp với các IC khác cógiao tiếp nối tiếp (có bộ chuyển đổi A/D, các thanh ghi dịch ) Một thanh ghi gọi là bộ
đếm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H ssẽ giữ cả hai giữ liệu truyền và nhận Khi
truyền dữ liệu thì ghi lên SBUf, khi nhận dữ liệu thì đọc SBUF Các mode vận hành
Trang 22khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp (SCON) (được điňa chỉhóa từng bit) ở địa chỉ 98H.
h Các thanh ghi ngắt:
8051/8031 có cấu trúc 5 nguồn ngắt, 2 mức ưu tiên Các ngắt bị cấm sau khireset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ng ắt (IE) ở địa
chỉ 8AH Cả hai thanh ghi được điňa chỉ hóa từng bit
i Các thanh ghi điều khiển công suất:
Thanh ghi điều khiển công suất (PCON) ở địa chỉ 87H chứa nhiều bit điều khiển
8051/8031 có khả năng mở rộng bộ nhớ đến 64K bộ nhớ chương trình và 64K
bộ nhớ dữ liệu bên ngoài Do đó có thể dùng thêm ROM và RAM n ếu cần
Khi dùng bộ nhớ ngoài, port 0 không còn là một port I/O thuần túy nữa Nó được hợpkênh giữa bus điạ chỉ (A0-A7) và bus dữ liệu (D0-D7) với tín hiệu ALE đến chốt bytethấp của điạ chỉ khi bắt đâĚu mỗi chu kỳ bộ nhớ Port 2 thông thường được dùng chobyte cao của bus địa chỉ
Trong nửa đầu của mỗi chu kỳ bộ nhớ, byte thấp của địa chỉ được cấp trong port
0 và được chốt bằng xung ALE Một IC chốt 74HC373 (hoặc tương đương) sẽ giữ byte
địa chỉ thấp trong phần còn lại của chu kỳ bộ nhớ Trong nửa sau của chu kỳ bộ nhớ
port 0 được dùng như bus dữ liệu và được đoňc hoặc ghi tùy theo lệnh
a Truy xuất bộ nhớ chương trình ngoài:
Bộ nhớ chương trình ngoài là mộ IC ROM được phép bởi tín hiệu PSEn H ìnhsau mô tả cách nối một EPROM v ào 8051/8031:
Trang 23Hình 1.3: Giao tiếp giữa 8051/8031 và EPROM
Một chu kỳ máy của 8051/8031 có 12 chu kỳ xung nhịp Nếu bộ dao động tr ên
chip được lái bởi một thạch anh 12MHz th ì chu kỳ máy kéo dài 1s Trong một chu kỳmáy sẽ có 2 xung ALE và 2 byte được đọc từ bộ nhớ chương trình
(nếu lệnh hiện hành là một byte thì byte thứ hai sẽ được loại bỏ) Giản đồ thờigian của một lần lấy lệnh được vẽ ở hình sau:
Hình 1.4: Giản đồ thời gian đọc bộ nhớ ch ương trình ngoài.
Trang 24b Truy xuất bộ nhớ dữ liệu ngoài:
Hình 1.5: Giao tiếp giữa 8051/8031 và RAM
Bộ nhớ dữ liệu ngoài là một bộ nhớ RAM được cho phép ghi/đọc bằng các tínhệu WR và RD (các chân P3.6 và P3.7 thay đ ổi chức năng) chỉ có một cách truy xuất
bộ nhớ dữ liệu ngoài là với lệnh MOVX dùng con trỏ dữ liệu (DPTR) 16 bit hoặc R0
và R1 xem như thanh ghi đ ịa chỉ
Kết nối bus địa chỉ và bus dữ liệu giữa RAM và 8051/8031 cũng giống EPROM
và do đó cũng có thể lên đến 64 byte bộ nhớ RAM Ngo ài ra, chân RD của 8051/8031được nối tới chân cho phép xuất (OE) của RAM và chân WR được nối tới chân ghi
RD WR
74HC373
O D
G
Trang 25Hình 1.6: Giản đồ thời gian của lệnh MOVX
Giản đồ thời gian cho lệnh ghi (MOVX @DPTR, A) cũng t ương tự chỉ khác
đường WR sẽ thay vào đường RD và dữ liệu được xuất ra trên port 0 (RD vẫn giữ mức
cao)
* Lệnh reset.
8051/8031 được reset bằng cách giữ chân RST ở mức cao ít nhất trong 2 chu kỳ
máy và trả nó về múc thấp RST có thể đ ược kích khi cấp điện dùng một mạch R-C
Hình 1.7: Mạch reset hệ thống.
Quan trọng nhất trong các thanh ghi tr ên là thanh ghi đếm chương trình, nó
được đặt lại 0000H Khi RST trở lại mức thấp, việc thi h ành chương trình luôn bắt đầu
ở địa chỉ đầu tiên trong bộ nhớ trong chương trình: địa chỉ 0000H Nội dung của RAM
trên chip không bị thay đổi bởi lệnh reset
Các chi tiết thiết lập lệnh:
Data : 8 bit địa chỉ vùng dữ liệu bên trong Nó có thể là vùng RAM dữ liệu
trong (0-127) hoặc các thanh ghi chức năng đặc biệt
+5V
+5V
100
8,2K 10UF
Trang 26@Ri : 8 bit vùng RAM dữ liệu trong (0-125) được đánh giá địa chỉ giá n tiếp
qua thanh ghi R0 hoặc R1
có điều kiện
ghi chức năng đặc biệt
2.7.1.Nhóm lệnh xử lý số học.
ADD A,Rn (1byte, 1 chu k ỳ máy) : cộng nội dung thanh ghi Rn vào thanh ghi A
khai báo trong Ri vào thanh ghi A
nhớ
Trang 27DEC @Ri (1,1): Giảm gián tiếp nội dung v ùng RAM xuống 1.
2.7.2.Nhóm lệnh luận lý.
RAM
Trang 28CLR C (1,1): Xóa cờ nhớ.
2.7.3.Nhóm lệnh chuyển dữ liệu.
MOV A,data (2,1): Chuyển dữ liệu trực tiếp v ào thanh ghi A
MOV DPTR,#datá6 (3,2): Chuy ển một hằng 16 bit vào thanh ghi con trỏ dữ liệu
MOV A,@A+DPTR (1,2): Chuy ển byte bộ nhớ chương trình có địa chỉ là
Trang 29MOVX @Ri,A (1,2): Chuyển nội dung A ra dữ liệu ngo ài (8 bit địa chỉ).
MOVX @DPTR,A (1,2): Chuy ển nội dung A ra dữ liệu b ên ngoài (16 bit địa chỉ)
XCHD A,@R (1,1) : Trao đổi giữa nibble thấp (LSN) của thanh ghi A và LSN của dữ
liệu gián tiếp
2.7.4.Nhóm lệnh chuyền điều khiển.
CJNE Rn,#data,rel (3,2): So sánh dữ liệu tức thời với nội dung thanh ghi Rn v à nhảy
nếu không bằng
CJNE @Ri,#data,rel (3,2): So sánh d ữ liệu tức thời với dữ liệu gián tiếp v à nhảy nếukhông bằng
Trang 30CHƯƠNG 3: TÌM HIỂU GIAO TIẾP MÁY TÍNH
3.1 CÁC PHƯƠNG PHÁP GIAO TI ẾP:
3.1.1.Giao Tiếp Với Máy Tính Thông Qua Slot Card.
Bên trong máy tính, ngoài những khe cắm dùng cho card vào - ra, card màn
hình, vẫn còn những rănh cắm để trống Để giao tiếp với máy tính, ta có thể thiết kế
card mở rộng để gắn vào khe cắm mở rộng này Ở máy tính PC/XT rănh cắm chỉ có 1
loại với độ rộng 8 bit và tuân theo tiêu chu ẩn ISA (Industry Standard Archite cture).Rănh cắm theo tiêu chuẩn IS có 62 đường tín hiệu, qua các đường tín hiệu này máytính có thể giao tiếp dễ dàng với thiết bị bên ngoài thông qua card m ở rộng
Trên rănh cắm mở rộng, ngoài 20 đường địa chỉ, 8 đường dữ liệu, còn có một sốđường điều khiển như:Ġ,Ġ, IOW, AEN, CLK, Do đó card giao tiếp với máy tính quaslot card đơn giản, số bit có thể tăng dễ dàng, giảm được nhiều linh kiện, tốc độ truyền
dữ liệu nhanh (truyền song song) Tuy nh iên, do khe cắm nằm bên trong máy tính nênkhi muốn gắn card giao tiếp vào thì phải mở nắp ra, điều này gây bất tiện cho người sử
dụng
3.1.2.Giao Tiếp Qua Serial Port (Port COM)
IBM PC cung cấp 2 cổng nối tiếp: COM1 và COM2 Các cổng này giao tiếptheo tiêu chuẩn RS232 Chúng có thể được nối với một Modem để dùng cho mạng điện
thoại, hay nối trực tiếp với một máy tính khác Dữ liệu được truyền qua cổng này theo
cách nối tiếp, nghĩa là dữ liệu được gởi đi nối tiếp nhau trên 1 đường dây Do các dữliệu được truyền đi từng bit một nên tốc độ truyền chậm, các tốc độ truyền có thể là
300, 600, 1200, 2400, 4800bps, 9600bps, chiều dài dữ liệu có thể là 5, 6, 7 hoặc 8 bit
và kết hợp với các bit Start, Stop, Parity tạo thành một khung (frame) Ngoài ra cổngnày còn có các đięĚu khięŇn thu (Receive), phát (Trans), kięŇm tra Cách giao tiếpnày cho phép khoảng cách truyền dữ liệu xa, tuy nhiên tốc độ truyền rất chậm tốc độ
Trang 313.1.3.Giao Tiếp Qua Cổng PRINT (Cổng Máy In).
IBM PC cho phép sử dụng đến 3 cổng song song có tên là LP1, LP2 và LP3.Kiểu giao tiếp song song được dùng để truyền dữ liệu giữa máy tính và máy in Khácvới cách giao tiếp qua Port Com, ở cách giao tiếp này dữ liệu được truyền song songcùng một lúc 8 bit Vì thế nó có thể đạt tốc độ cao.Connector của Port này có 25 chânbao gồm 8 chân dữ liệu và các đường tín hiệu bắt tay (Handshaking ).Tất cả các đườngData và tín hiệu điều khiển đều ở mức logic hoàn toàn tương thích với mức TTL Hơnnữa, người lập trình có thể điều khiển cho phép hoặc không cho phép các tín h iệuInterrupt tại ngỏ vào nên việc giao tiếp đơn giản và dễ dàng Tuy nhiên, giao tiếp vớimức logic TTL nên khoảng cách truyền bị hạn chế so với cách truyền qua Port Com,
đồng thời cáp truyền cũng phức tạp hơn Đó là nhược điểm của cách giao tiếp này
3.2 GIAO TIẾP QUA CỔNG NỐI TIẾP:
3.2.1 Cấu tạo cồng nối tiếp.
Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi,
có các ưu điểm sau:
Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment)
và DCE (Data Communication Equipment).DCE là các thiết bị trung gian nhưMODEM còn DTE là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính,PLC, vi điều khiển, …Việc trao đổi tín hiệu thông thường qua 2 chân RxD(nhận) và TxD (truyền).Các tín hiệu còn lại có chức
năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tínhiệu bắt tay (handshake) Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là
có thể kiểm soát đường truyền
Associations).Chuẩn RS232 quy định mức logic 1 ứng với điện áp từ 3V đến
Trang 32-25V(mark),mức logic 0 ứng với điện áp từ 3V đến 25V (space) và có khả năngcung cấp dòng từ 10 mA đến 20 mA Ngoài ra, tất cả các ngõ ra đều có đặc tínhchống chập mạch.
Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưngnếu cáp truyền đủ ngắn có thể lên đến 115.200 bps
Các phương thức nối giữa DTE và DCE:
- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng
- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗithời điểm chỉ được truyền theo 1 hướng
- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng
Định dạng của khung truyền dữ liệu theo chuẩn RS-232 như sau:
Trang 33*Đặc tính kỹ thuật của chuẩn RS-232 như sau:
Chiều dài cable cực
đại
15mTốc độ dữ liệu cực đại 20 Kbps
Trang 34D25 D9 Tín
hiệu
Hướng truyền
Mô tả
thờitruyền đi từ DTE
thờitruyền từ DCE để truyền dữ liệu
truyền từ DCE để truyền dữ liệu
nhận
từ DCE lỗi
Trang 353.2.2 Truyền thông giữa hai nút.
Các sơ đồ khi kết nối dùng cổng nối tiếp:
Hình 2.1 – Kết nối đơn giản trong truyền thông nối tiếpKhi thực hiện kết nối như trên, quá trình truyền phải bảo đảm tốc độ ở đầuphát và thu giống nhau Khi có dữ liệu đến DTE, dữ liệu này sẽ được đưa vào bộ đệm
và tạo ngắt
Ngoài ra, khi thực hiện kết nối giữa hai DTE, ta còn dùng sơ đồ sau:
Hình 2.2 – Kết nối trong truyền thông nối tiếp dùng tín hiệu bắt tay
Khi DTE1 cần truyền dữ liệu thì cho DTR tích cực tác động lên DSR củaDTE2 cho biết sẵn sàng nhận dữ liệu và cho biết đã nhận được sóng mang của
MODEM (ảo) Sau đó, DTE1 tích cực chân RTS để tác động đến chân CTS củaDTE2 cho biết DTE1 có thể nhận dữ liệu Khi thực hiện kết nối giữa DTE và DCE,
do tốc độ truyền khác nhau nên phải thực hiện điều khiển lưu lượng Quá trinh điềukhiển này có thể thực hiện bằng phần mềm hay phần cứng Quá trình điều khiển bằngphần mềm thực hiện bằng hai ký tự Xon và Xoff Ký tự Xon được DCE gởi đi khirảnh (có thể nhận dữ liệu) Nếu DCE bận thì sẽ gởi ký tự Xoff Quá trình điều khiển
Trang 36bằng phần cứng dùng hai chân RTS và CTS Nếu DTE muốn truyền dữ liệu thì sẽgởi RTS để yêu cầu truyền, DCE nếu có khả năng nhận dữ liệu (đang rảnh) thì gởi lạiCTS.
3.2.3 Truy xuất trực tiếp thông qua cổng.
Các cổng nối tiếp trong máy tính được đánh số là COM1, COM2, COM3,COM4 với các địa chỉ như sau:
Tên Địa chỉ Ngắt Vị trí chứa địa
0
ngắt)
MODEM)
Các thanh ghi này có thể truy xuất trực tiếp kết hợp với địa chỉ cổng (ví dụ như thanhghi cho phép ngắt của COM1 có địa chỉ là BACOM1 + 1 = 3F9h
Trang 37* IER (Interrupt Enable Register):
IER cho phép hay cấm các nguyên nhân ngắt khác nhau (1: cho phép, 0: cầm ngắt)
* MCR (Modem Control Register):
Trang 38* MSR (Modem Status Register):
* LSR (Line Status Register):
tự và bị xoá khi có 1 ký tự chuyển đến từ THR
THRE: Transmitter Holding Register Empty (=1 khi có 1 ký tự đã chuyển từTHR – TSR và bị xoá khi CPU đưa ký tự tới THR)
BI: Break Interrupt (=1 khicó sự gián đoạn khi truyền, nghĩa là tồn tại mứclogic 0
trong khoảng thời gian dài hơn khoảng thời gian truyền 1 byte và bị xoá khi CPU
đọc LSR) FE: Frame Error (=1 khi có lỗi khung truyền và bị xoá khi CPU đọc
LSR)
PE: Parity Error (=1 khi có lỗi parity và bị xoá khi CPU đọc LSR)
OE: Overrun Error (=1 khi có lỗi thu đè, nghĩa là CPU không đọc kịp dữ liệulàm cho quá trình ghi chồng lên RBR xảy ra và bị xoá khi CPU đọc LSR)
RxDR: Receiver Data Ready (=1 khi đã nhận 1 ký tự và đưa vào RBR và bịxoá khi
Trang 39UART dùng dao động thạch anh với tần số 1.8432 MHz đưa qua bộ chia 16 thành tần
số 115,200 Hz Khi đó, tuỳ theo giá trị trong BRDL và BRDH, ta sẽ có tốc độ mongmuốn
Ví dụ như đường truyền có tốc độ truyền 2,400 bps có giá trị chia 115,200 / 2,400 =48d = 0030h BRDL = 30h, BRDH = 00h
Một số giá trị thông dụng xác định tốc độ truyền cho như sau:
Trang 40CHƯƠNG 4: CHUẨN GIAO TIẾP VÀ CÁC LINH KIỆN