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

thiết kế mạch quang báo giao tiếp máy tính

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 (692.31 KB, 104 trang )

GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:




















Ngày tháng năm
Giáo viên hướng dẫn
SVTH: LÊ THANH HTIỆN
1
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN:





















Ngày tháng năm
Giáo viên phản biện
SVTH: LÊ THANH HTIỆN
2
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
LỜI CẢM ƠN
Trong thời gian làm luận văn em gặp rất nhiều khó
khăn cũng như thuận lợi, nhưng với sự hướng dẫn tận tình
của thầy Hồ Văn Cừu em đã hoàn thành những nội dung mà
đề tài đưa ra. Em xin chân thành cảm ơn thầy Hồ Văn Cừu đã
tận tình hướng dẫn em. Và em cũng xin cảm ơn đến quý thầy
cô đã giảng dạy cho em trong 4 năm qua.


TP.Hồ Chi Minh
Ngày 10 tháng 1 năm 2008
SVTH: LÊ THANH HTIỆN
3
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
MỤC LỤC
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2

LỜI CẢM ƠN 3
MỤC LỤC 4
LỜI GIỚI THIỆU 6
Chương 2.Giới thiệu tổng quan 7
1.1.Giới thiệu chung 7
1.2.Giới thiệu đề tài 7
Chương 3.Tổng quan về giao tiếp máy tính và vi mạch 89C51 8
2.1.Tổng quan về giao tiếp máy tính 8
2.1.1.Phần cứng 8
2.1.2.Phần mềm 10
2.2.Vi mạch 89C51 15
2.2.1.Cấu trúc vi mạch 89C51 và chức năng của các chân 16
2.2.2.Cấu trúc bus 20
2.2.3.Bộ nhớ chương trình – Bộ nhớ ROM 20
SVTH: LÊ THANH HTIỆN
4
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
2.2.4.Bộ nhớ dữ liệu-Bộ nhớ RAM 21
2.2.5.Các thanh ghi chức năng đặc biệt (SFR) 24
2.2.6.Bộ nhớ ngoài (external memory) 31
2.2.7.Hoạt động RESET 34
2.2.8.Họat động định thời 36
2.2.9.Họat động ngắt 40
2.2.10.Họat động port nối tiếp 43
2.3.Sơ lược về bộ nhớ 54
2.3.1.Khái niệm 54
2.3.2.Phân loại bộ nhớ: một số bộ nhớ thông dụng 54
2.4.Giới thiệu chương trình Assambler 55
Chương 4.Thiết kế modun quang báo 60
3.1.Các IC được dùng trong mạch 60

3.2.Sơ đồ khối và Hoạt động các khối 66
3.21 Mater: 66
3.22 Slave: 66
3.3.Thiết kế và thi công 67
3.3.1.Giới thiệu 67
3.3.2.Thiết kế 68
Chương 5.Thực nghiệm 77
4.1.Kết quả 77
4.2.Hướng phát triển 77
TÀI LIỆU THAM KHẢO: 77
PHỤ LỤC 78
SVTH: LÊ THANH HTIỆN
5
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Chương 1.
LỜI GIỚI THIỆU
Ngày nay với sự phát triển của xã hội cùng với sự phát triển của khoa học kỹ thuật
cho nên nhu cầu về thông tin trở nên hết sức cần thiết trong cuộc sống cũng như trong
họat động sản xuất kinh doanh. Để đáp ứng nhu cầu đó quang báo là một lựa chọn đầu
tiên, vì nó rất dễ bắt mắt chung ta với nhiều màu sắc. Quang báo có thể hiển thị đuợc cả
văn bản lẫn hình ảnh, vì vậy nó rất tiện lợi cho quảng cáo và thông báo những thông tin
ngắn gọn.
SVTH: LÊ THANH HTIỆN
6
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Chương 2. Giới thiệu tổng quan.
1.1. Giới thiệu chung.
Khoa học kỹ thuật (KHKT) là một phần của văn minh con người. Sự phát triển của
KHKT đã đưa con người tiến lên một thời kì mới. Thời kì của lao động trí óc thay cho lao
động chân tay. Ngày nay KHKT phát triển như vũ bão, mà đặc biệt là ngành điện tử. Tuy

ra đời sau nhưng hiện nay điện tử là ngành phát triển mạnh nhất của KHKT. Việc phát
hiện ra các chất bán dẫn đã góp phần rất lớn vào việc thu nhỏ kích thước của linh kiện rất
nhiều. Cộng với sự ra đời của IC đã giúp cho các sản phẩm điện tử trở nên nhỏ gọn hơn.
Nói đến điện tử ta không thể không nhắc đến vi điều khiển (VĐK). Đúng vậy,
ngày nay dù bất cứ nơi đâu ở trong nhà hay ngoài đường ta đều có thể bắt gặp các sản
phẩm ứng dụng VĐK rất nhiều. Từ đơn giản như cái remote điều khiển ti vi, máy lạnh,
đầu hát đĩa,…đến cái phức tạp hơn như điều khiển các tín hiệu đèn giao thông, các bảng
đèn thông báo có những dòng chữ, hình ảnh chạy qua, rơi từ trên xuống, hay trồi từ dưới
lên. Và phức tạp hơn nữa là điều khiển các dây chuyền sản xuất qua hệ thống máy tính.
1.2. Giới thiệu đề tài.
Xã hội phát triển dẫn theo đó là nhu cầu về trao đổi thông tin. Thông tin rất cần
thiết với con người trong cuộc sống cũng như trong sản xuất kinh doanh. Để đáp ứng nhu
cầu trên, quang báo là hình thức cung cấp thông tin hữu ích không thể thiếu trong cuộc
sống hàng ngày. Ở nước ngoài việc dùng quang báo để quảng cáo hay hiện những thông
báo, tin tức đã có rất lâu. Thế nhưng tại Việt Nam thì nó mới phổ biến rộng rãi trong
nhưng năm gần đây. Quang báo gồm nhiều ma trận LED có thể là:5x7, 5x8, 8x8, 8x12
hoặc 8x14 để ghép lại với nhau, một ma trận hoặc hai ma trận cùng biểu diễn một kí tự.
Bên cạnh đó, sự ra đời của máy vi tính, chúng có những tính năng ưu việt như khả
năng xử lý dữ liệu nhanh chóng, độ tin cậy cao, lưu trữ thông tin lớn và quan trọng hơn cả
SVTH: LÊ THANH HTIỆN
7
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
là máy tính có thể kết hợp với nhiều thiết bị ngoại vi tùy theo mục đích ứng dụng cụ thể.
Việc trao đổi và điều khiển trở nên đơn giản hơn nhờ vào phầm mềm điều khiển. Nhờ
tính năng đa dạng và mềm dẻo đó mà việc thiết kế quang báo giao tiếp máy tính trở nên ít
phức tạp hơn. Để thực hiện một bảng quang báo lớn thì phải cần nhiều thời gian. Nhưng ở
đây do thời gian ngắn và kiến thức còn hạn chế nên em chỉ thực hiện một modun nhỏ để
hiểu hơn về quang báo. Từ những kiến thức cơ bản đó ta có thể mở rộng ra với modul lớn
hơn, kinh tế hơn. Có nhiều cách để làm một mạch quang báo như: dùng IC rời, dùng vi xử
lý, dùng VĐK,…ở đây em chọn cách dùng VĐK có giao tiếp máy tính qua cổng nối tiếp

để điều khiển.
Chương 3. Tổng quan về giao tiếp máy tính và vi mạch 89C51.
2.1. Tổng quan về giao tiếp máy tính.
2.1.1. Phần cứng.
Giao tiếp giữa máy tính và thiết bị ngoại vi có thể dùng :
Cổng máy in LPT_cổng song song.
Cổng COM_cổng nối tiếp.
Cổng USB_Univeral Serial Bus.
2.1.1.1. Cổng nối tiếp.
Cổng nối tiếp RS-232C là giao diện phổ biến rộng rãi nhất. Người dùng máy tính
PC còn gọi các cổng này là COM1, COM2. Giống như cổng máy in, cổng nối tiếp RS-
232C cũng được sử dụng một cách rất thuận tiện cho mục đích đo lường và điều khiển.
Cổng RS-232C sử dụng điện áp -12V là mức logic [1] và +12V làm mức logic [0].
Hình 2.1: Cổng COM 1, COM 2
SVTH: LÊ THANH HTIỆN
8
DB- 25
1 13
1 5
6 9
DB-9
14 25
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Theo chuẩn RS-232C, đầu nối phần cứng có 25 chân, có hình chữ “D” nên gọi là
chân cắm D-shell hay DB-25. Nhưng không phải tất cả đều sử dụng đầu nối DB-25 mà
còn có DB-9 chân.
Đầu nối Chức năng Tên Hướng
DB-25 DB-9
1 Đất GND
2 3 Truyền dữ liệu TxD Xuất

3 2 Nhận dữ liệu RxD Nhập
4 7 Yêu cầu gởi RTS Xuất
5 8 Xóa việc gởi CTS Nhập
6 6 Dữ liệu sẵn sàng DSR Nhập
7 5 Nối đất vỏ máy GND
8 1 Dò sóng mang DCD
20 4 Terminal sẵn sàng DTR Xuất
22 9 Bộ chỉ thị vòng RI Nhập
2.1.1.2. Cổng USB.
Chuẩn USB bắt đầu từ những năm 90 của thế kỹ trước khi ngành công nghiệp máy
tính hợp sức phát triển một công nghệ mới, nhanh và đơn giản hơn để kết nối thiết bị
ngoại vi với máy tính. Kỹ thuật USB đã mở đường cho sự ra đời những thế hệ thiết bị
ngoại vi mới, có thể kết nối với máy tính hiệu quả hơn. Hiện nay công nghệ USB cũng đã
nhanh chóng xâm nhập vào lĩnh vực lưu trữ di động với bộ nhớ hàng Gigabyte.
Chân 1: Vcc (màu đỏ).
Chân 2: D
-
(màu trắng).
Chân 3: D
+
(màu xanh lục).
Chân 4: GND (màu đen).
SVTH: LÊ THANH HTIỆN
9
4 3 2 1
4 3
1 2
(a)
(b)
Hình 2.2: Cổng USB (a). dạng B, (b). dạng

A
Bảng 2.1
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
2.1.1.3. Cổng LPT.
Cổng máy in LPT có 17 đường dẫn (12 ra, 5 vào), các đường dữ liệu D0-D7 là
những đường dẫn một chiều ra. Các đường tín hiệu vào ra có chốt.
Chân 1: Strobe, khi máy tính đưa tín hiệu này ra thì báo cho máy in đọc dữ liệu
vào để in.
Chân 2-9:data.
Chân 10: ACK, báo cho máy in biết là dữ liệu đã nhận được và yêu cầu máy gởi
dữ liệu tiếp theo.
Chân 11: Busy, báo cho máy tính biết máy in bận, tác động mức 1.
Chân 12: PE, báo hết giấy.
Chân 13: AF, tác động mức 0, máy tự động dịch một dòng sau khi in.
Chân 15: Error, tác động mức 0, báo lỗi.
Chân 16:INIT, tác động mức 0, đặt lại máy in.
Chân 17: SLCTIN, tác động mức 0, báo máy in đưa dữ liệu vào.
Chân 18-25: GND.
2.1.2. Phần mềm.
2.1.1. Giao tiếp dùng dòng điện vòng 20 mA.
Dòng điện vòng đầu tiên được dùng để truyền tín hiệu nhị phân bất đồng bộ giữa máy
tính và máy viễn ấn (teleprinter, TTY). Trong cách truyền này, mức 1 được biểu thị bởi
dòng
SVTH: LÊ THANH HTIỆN
10
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Hình 2.3
điện vòng 20 mA và mức 0 bởi dòng điện 0 mA. Như vậy thông tin được truyền đi chính
là sự tắt mở của dòng điện. Hệ thống là một vòng kín gồm một nguồn dòng tạo ra dòng
điện không đổi 20 mA, bộ phận đóng ngắt (current switch) được đặt ở máy phát và bộ

phận dò ra dòng điện này (current detect) ở máy thu. Khi hệ thống không có tín hiệu để
truyền, người ta giám sát sự liên tục của hệ thống nhờ sự hiện hữu của dòng điện 20 mA
này. Đây chính là lý do tại sao trong các hệ thống sau này người ta đưa bit 1 lên đường
truyền khi hệ thống nghỉ. Hình 2.3 là một hệ thống dùng dòng điện vòng với đóng ngắt là
các relay. Ở phần phát, giả sử dữ liệu đến từ ngã TxD của UART là bit 1, transistor dẫn
làm đóng relay phát, dòng điện 20 mA chạy qua phần thu và đóng relay thu, đưa ngã ra
lên cao (sau khi qua cổng đảo), tín hiệu này được truyền đến UART trên đường RxD. Nếu
tín hiệu phát là bit 0 trên đường TxD, do không có dòng điện chạy qua, các relay phát và
thu đều hở , ta được bit 0 trên đường RxD.
Điều kiện hoạt động hữu hiệu của hệ thống dùng dòng điện vòng là phải có một sự
cách ly tốt giữa dòng điện vòng và mạch thu. Ngoài ra để bảo đảm giá trị của nguồn dòng
không bị ảnh hưởng bởi đường dây, trở kháng ra của máy phát phải rất lớn so với trở
kháng đường dây. Do đó ghép nối quang là một phương tiện cách ly rất tốt. Sự tắt mở của
dòng điện được biến thành sự tắt mở của chùm tia sáng được dò ra bởi transistor quang.
Hình 2.4 mô tả một hệ thống dùng dòng điện vòng ghép nối quang.
SVTH: LÊ THANH HTIỆN
11
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Hình 2.4
Ở phần phát, giả sử dữ liệu đến từ ngã TxD của UART là bit 1, các transistor dẫn,
dòng điện 20 mA chạy qua phần thu làm led phát sáng, transistor ghép quang dẫn đưa ngã
ra lên cao (sau khi qua cổng đảo), tín hiệu này được truyền đến UART trên đường RxD.
Nếu tín hiệu phát là bit 0 trên đường TxD, do không có dòng điện chạy qua, led không
phát sáng, transistor ghép quang ngưng ta được bit 0 trên đường RxD. Hệ thống dùng
dòng điện vòng chỉ sử dụng cho khoảng cách nhỏ hơn 500m. Để truyền khoảng cách xa
hơn 500m, người ta dùng modem.

2.1.2. Chuẩn RS-232.
Chuẩn giao tiếp RS-232 của EIA được phát hành lần đầu tiên vào năm 1962, đến
năm 1969 ra đời thế hệ thứ 3 là chuẩn RS-232C, hiện thời cũng còn được dùng rộng rãi

và năm 1987 RS-232D xuất hiện. RS-232D có thể xem là cải tiến của RS-232C.
Chuẩn RS-232C dùng với tốc độ truyền dữ liệu là 20 Kbps với khoảng cách truyền
lớn nhất gần 15 m. Đây là một dạng giao tiếp dạng TTL và bộ kích đường dây không cân
bằng. Việc truyền dữ liệu qua cổng RS-232C được tiến hành theo cách nối tiếp, nghĩa là
các bit dữ liệu được gởi đi nối tiếp nhau trên một đường dẫn. Chuẩn RS-232C sử dụng
điện áp -12V là mức logic [1] và +12V làm mức logic [0].
Các khái niệm về chuẩn RS-232:
Chu kỳ truyền dữ liệu: tốc độ truyền dữ liệu được tính bằng bit/giây, nhưng để
phân biệt với cách truyền đồng bộ, người ta sử dụng đơn vị baud (tương ứng với bit/giây).
SVTH: LÊ THANH HTIỆN
12
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Trạng thái đánh dấu: là khỏang thời gian không có dữ liệu truyền, trong suốt thời
gian này thiết bị phát sẽ giữ đường truyền ở mức cao.
Bit bắt đầu: một bit thấp cho biết việc truyền dữ liệu sẽ bắt đầu.
Các bit ký tự: gồm 5,6,7 hay 8 bit mã hóa ký tự được truyền.
Bit chẵn lẻ: là một bit tùy chọn (có thể có hay không) được phát đi sau các bit ký
tự dùng để kiểm tra các lỗi truyền dữ liệu. Trong chế độ kiểm tra bit chẵn , thiết bị phát sẽ
bật lên 1 hoặc xóa về 0, bit chẵn để tính tổng các bit 1 của ký tự đựơc truyền và bit chẵn
lẻ là một số chẵn, còn trong chế độ kiểm tra lẻ bit kiểm tra phải là một số lẻ. Bit kết
thúc:một hay nhiều bit cao được chèn vào đường truyền để báo việc kết thúc một ký tự.

2.1.3. Chuẩn USB.
Khi một máy chủ được cấp nguồn, nó truy vấn tất cả thiết bị được kết nối vào
đường truyền và gán mỗi thiết bị một địa chỉ. Quá trình này được gọi là liệt kê những
thiết bị được kết nối vào đường truyền. Máy chủ cũng tìm ra từ mỗi thiết bị cách truyền
dữ liệu nào mà nó cần để hoạt động:
Ngắt - Một thiết bị như chuột hoặc bàn phím, gửi một lượng nhỏ dữ liệu, sẽ chọn
chế độ ngắt.
Hàng loạt - Một thiết bị như một chiếc máy in, nhận dữ liệu trong một gói lớn, sử

dụng chế độ truyền hàng loạt. Một khối dữ liệu được gửi đến máy in (một khối 64 byte)
và được kiểm tra để chắc chắn nó chính xác.
Đẳng thời - Một thiết bị truyền dữ liệu theo chuỗi (lấy ví dụ như loa) sử dụng chế
độ đẳng thời. Những dòng dữ liệu giữa thiết bị và máy trong thời gian thực, và không có
sự sửa lỗi ở đây.
Máy chủ có thể gửi lệnh hay truy vấn tham số với điều khiển những gói tin.
Khi những thiết bị được liệt kê, máy chủ sẽ giữ sự kiểm tra đối với tổng băng
thông mà tất cả những thiết bị đẳng thời và ngắt yêu cầu. Chúng có thể tiêu hao tới 90
phần trăm của 480 Mbps băng thông cho phép. Sau khi 90 phần trăm được sử dụng, máy
SVTH: LÊ THANH HTIỆN
13
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
chủ sẽ từ chối mọi truy cập của những thiết bị đẳng thời và ngắt khác. Điều khiển gói tin
và gói tin cho truyền tải hàng loạt sử dụng mọi băng thông còn lại (ít nhất 10 phần trăm).
USB chia băng thông cho phép thành những khung, và máy chủ điều khiển những
khung đó. Khung chứa 1.500 byte, và một khung mới bắt đầu mỗi mili giây. Thông qua
một khung, những thiết bị đẳng thời và ngắt có được một vị trí do đó chúng được đảm bảo
băng thông mà chúng cần. Truyền tải hàng loạt và điều khiển truyền tải sử dụng phần còn
lại.
USB có những đặc trưng sau đây:
Máy tính hoạt động như một host.
Có tới 127 thiết bị có thể kết nối vào máy tính, hoặc là trực tiếp hoặc bằng
những hub USB.
Những sợi cáp USB riêng lẻ có thể dài tới 5 mét; với những hub, có thể kéo dài
tới 30 mét (6 sợi cáp) tính từ máy chủ.
Với USB 2.0, đường truyền đạt tối đa lượng dữ liệu 480 Mbps.
Cáp USB gồm hai sợi nguồn (+5V và nối đất) và một cặp gồm hai sợi dây xoắn
để mang dữ liệu.
Trên sợi nguồn, máy tính có thể cấp nguồn lên tới 500mA với 5V.
Những thiết bị nguồn thấp (như chuột) có thể lấy nguồn trực tiếp từ đường

truyền. Những thiết bị nguồn cao (như máy in) có nguồn riêng và dùng rất ít nguồn từ
đường truyền. Hub có thể có nguồn cấp điện riêng để cấp điện cho những thiết bị kết nối
vào hub.
Những thiết bị USB thì chuyển đổi nóng, nghĩa là bạn có thể cắm chúng vào
đường truyền và tháo chúng ra mọi lúc.
USB 2.0
Chuẩn USB phiên bản 2.0 được đưa ra vào tháng tư năm 2000 và xem như bản
nâng cấp cho USB 1.1. USB 2.0 (USB tốc độ cao) mở rộng băng thông cho ứng dụng đa
truyền thông và lưu trữ với tốc độ nhanh hơn 40 lần so với USB 1.1. USB 2.0 có đầy đủ
SVTH: LÊ THANH HTIỆN
14
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
khả năng tương thích lùi với những thiết bị USB ban đầu và cũng hoạt động tốt với những
sợi cáp và cổng kết nối dành cho cổng USB ban đầu.
Hỗ trợ ba chế độ tốc độ (1.5, 1.2 và 480 mega bit trên giây), USB 2.0 hỗ trợ những
thiết bị băng thông nhỏ như bàn phím và chuột, cũng như thiết bị băng thông lớn như
Webcam với độ phân giải cao, máy quét, máy in và những hệ thống lưu trữ lớn. Tốc độ
truyền tải của USB2.0 cũng tạo điều kiện cho sự phát triển của thế hệ PC kế tiếp và những
ứng dụng. USB 2.0 còn làm tăng năng suất của ứng dụng và cho phép người dùng có thể
thực thi nhiều ứng dụng PC trong một lúc hay nhiều thiết bị ngoại vi đồng thời.
2.2. Vi mạch 89C51.
Hiện nay có rất nhiều họ VĐK trên thị trường với nhiều ứng dụng khác nhau như
MCS-51, AVR, PIC,… trong đó họ VĐK MCS-51 được sử dụng rất rộng rãi trên thế giới
và ở Việt nam.
MCS-51là họ VĐK do Intel sản xuất các IC tiêu biểu cho họ là: 8031, 8051, 8951,
… Những đặc điểm chính và nguyên tắc họat động của các bộ VĐK này khác nhau không
nhiều. Khi đã sử dụng thành thạo một loại thì ta có thể nhanh chóng sử dụng những loại
còn lại. Vì vậy để có thể sử dụng thành thạo chúng, ta cần nắm vững về cấu tạo cũng như
nguyên lý họat động của chúng. Đại diện tiêu biểu nhất cho họ MSC-51, có thể kể đến
89C51.

Các đặc điểm chung của vi mạch 89C51 là:
Có 4 Kbyte bộ nhớ FLASH ROM bên trong để lưu chương trình. Nhờ vậy vi mạch có
khả năng nạp xoá chương trình bằng điện đến 10000 lần.
128 byte RAM nội bên.4 port I/O (xuất/nhập) 8 bit.
Có khả năng giao tiếp truyền dữ liệu nối tiếp.
Có thể mở rộng không gian nhớ chương trình ngoài 64KB (bộ nhớ ROM ngoại): khi
chương trình do người lập trình viết ra có dung lượng lớn hơn dung lượng bộ nhớ ROM
nội, để lưu được chương trình này cần bộ nhớ ROM lớn hơn, cách giải quyết là kết nối
SVTH: LÊ THANH HTIỆN
15
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
98C51 với bộ nhớ ROM từ bên ngoài (hay còn gọi là ROM ngoại). Dung lượng bộ nhớ
ROM ngoại lớn nhất mà VĐK có thể kết nối là 64KB.
Có thể mở rộng không gian nhớ dữ liệu ngoài 64KB (bộ nhớ RAM ngoại).
Bộ xử lý bit ( thao tác trên các bit riêng rẽ) 210 bit có thể truy xuất đến từng bit.
2.2.1. Cấu trúc vi mạch 89C51 và chức năng của các chân.
Hình 2.5: sơ đồ chân họ VĐK 89C51.
SVTH: LÊ THANH HTIỆN
16
RxDTxD
P0 P1 P2 P3
Địa chỉ/Dữ liệu
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
SVTH: LÊ THANH HTIỆN
17
Port 1 driver
Port 3 driver
Port 0 driver Port 2 driver
Latch
port 1

Latch
port 1
Latch
port 1
Latch
port 1
Thanh ghi địa
chỉ chương trình
Bộ đệm
PC
INCREMENT
ER
Bộ đếm
chương trình
Con trỏ dữ
liệu
Con trỏ
ngăn xếp
Thanh
ghi B
RAM
FLASH
ACC
TMP 1
TMP 2
PSW
Ngắt, port nối tiếp,
bộ timer
Bộ giao động
Thanh ghi

định địa chỉ
Bộ ghi
lệnh
Tính toán
và điều
khiển
ALU
P3.0÷P3.7
P2.0÷P2.7
P0.0÷P0.7
P1.0÷P1.7
PSEN
ALE/PROG
EA/Vpp
RST
=
=
Hình 2.6 : sơ đồ khối bên trong 89C51
Vcc

GND
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Ta có thể tóm tắt chức năng họat động từng chân của vi mạch 89C51 như sau:
Port 0 (P0.0,P0.1,P0.2,…,P0.7) từ chân 32 đến chân 39 được dùng với 2 chức
năng: vừa làm byte thấp cho bus địa chỉ, vừa làm bus dữ liệu khi dùng bộ nhớ ngoài và
port I/O khi không dùng bộ nhớ ngoài.
Port 1 (P1.0,P1.1,…,P1.7) từ chân 1 đến chân 8 dùng làm port I/O để giao tiếp bên
ngoài.
Port 2 (P2.0,P2.1,…,P2.7) từ chân 21 đến chân 28 vừa được dùng làm byte cao
của bus địa chỉ, vừa làm port I/O.

Port 3 (P3.0,P3.1,…,P3.7) từ chân 10 đến chân 17 được dùng với 2 mục đích, có
thể làm port I/O và cũng có thể dùng với chức năng riêng của từng chân:
P3.0 (RxD) :ngõ vào nhận dữ liệu từ port nối tiếp.
P3.1 (TxD) :ngõ ra phát dữ liệu từ port nối tiếp.
P3.2 (INT0) :ngõ vào ngắt ngoài 0.
P3.3 (INT1) :ngõ vào ngắt ngoài 1.
P3.4 (T0) :ngõ vào timer/counter 0.
P3.5 (T1) :ngõ vào timer/counter 1.
P3.6 (WR) :ngõ điều khiển ghi dữ liệu lên bộ nhớ ngoài.
P3.7 (RD) :ngõ điều khiển đọc dữ liệu từ bộ nhớ ngoài.
SVTH: LÊ THANH HTIỆN
18
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Hình 2.7: Sơ đồ chân port bên trong 89C51
Chân 9 (RST): là chân để Reset cho 89C51. Bình thường chân này ở mức thấp khi
ta đưa lên mức cao (tối thiểu 2 chu kỳ máy) thì những thanh ghi nội của 89C51 được
LOAD những giá trị thích hợp để khởi động lại hệ thống.
Chân 18, 19 (XTAL1, XTAL2): được nối với bộ dao động thạch anh từ 0 đến
nhỏ hơn 32MHz để tạo dao động cho chip.
Hình 2.8: cách tạo bộ dao động cho 89C51.
Chân 20: nối đất.
SVTH: LÊ THANH HTIỆN
19
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Chân 29 (PSEN): là tín hiệu điều khiển cho phép chọn bộ nhớ chương trình mở
rộng và được nối chung với chân OE (Output Enable) của EPROM ngoài để cho phép đọc
các byte mã lệnh. PSEN ở 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 dữ liệu và được chốt vào thanh ghi lệnh của
89C51 để giải mã lệnh. Nếu thi hành lệnh trong ROM nội thì PSEN ở mức cao.
Chân 30 (ALE): 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

của các vi xử lí 8085, 8086, 8088. 89C51 dùng ALE để giải kênh các bus địa chỉ và dữ
liệu khi P0 được dùng trong chế độ chuyển đổi vừa là bus dữ liệu vừa là byte thấp của bus
địa chỉ. ALE là tín hiệu để chốt byte thấp địa chỉ vào thanh ghi bên ngoài trong nửa đầu
chu kỳ bộ nhớ, sau đó P0 sẽ xuất dũ liệu trong nửa sau của chu kỳ. Các xung ALE có tốc
độ bằng 1/6 lần tần số dao động trên chip. Có thể làm phần xung nhịp cho các phần khác
của hệ thống. Nếu xung nhịp trên 89C51 là 12MHz thì ALE có tần số 2MHz. 89C51 sử
dụng chân này làm ngõ vào xung lập trình cho EPROM trong chip.
Chân 31 (EA):Chân EA dùng để xác định chương trình thực hiện được lấy từ
ROM nội hay ROM ngoại. Khi EA nối với logic [1] (+5V) thì 89C51 thực hiện chương
trình lấy từ bộ nhớ nội, khi EA nối với logic [0] (0V) thì 89C51 thực hiện chương trình
lấy từ bộ nhớ ngoại.
Chân 40 (Vcc):là chân nguồn (+5V).
2.2.2. Cấu trúc bus.
Cấu trúc bus địa chỉ của vi mạch 89C51 gồm 16 đường tín hiệu(thường gọi là bus
địa chỉ 16 bit). Với số lượng bit như trên không gian nhớ của chip được mở rộng tối đa là
2
16
= 65536, tương đương 64KB.
Bus dữ liệu của vi mạch 89C51 gồm 8 đường tín hiệu (thường gọi là bus dữ liệu 8
bit). Với độ rộng của bus dữ liệu như vậy, các chip 89C51 có thể xử lý các tóan hạng 8 bit
trong một chu kỳ lệnh.
2.2.3. Bộ nhớ chương trình – Bộ nhớ ROM.
SVTH: LÊ THANH HTIỆN
20
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
Bộ nhớ ROM dùng để lưu chương trình do người viết chương trình viết ra.
Chương trình là tập hợp các câu lệnh thể hiện các thuật toán để giải quyết các công việc
cụ thể, chương trình do người thiết kế viết trên máy vi tính, sau đó được đưa vào lưu
trong ROM của vi mạch, khi hoạt động, 89C51 truy xuất từng câu lệnh trong ROM để
thực hiện chương trình. ROM còn dùng để chứa số liệu các bảng, các tham số hệ thống,

các số liệu cố định của hệ thống. Trong quá trình hoạt động nội dung ROM là cố định,
không thể thay đổi, nội dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương
trình (do các mạch điện riêng biệt thực hiện). Bộ nhớ ROM được định địa chỉ theo từng
byte, các byte được đánh địa chỉ theo số hex-số thập lục phân, bắt đầu từ địa chỉ 0000H.
Khi viết chương trình cần chú ý đến địa chỉ lớn nhất trên ROM, chương trình được lưu sẽ
bị mất khi địa chỉ lưu vượt qua vùng này. Ví dụ: AT89C51 có 4KB bộ nhớ ROM nội, địa
chỉ lớn nhất là 0FFFH, nếu chương trình viết ra có dung lượng lớn hơn 4KB các byte
trong các địa chỉ lớn hơn 0FFFH sẽ bị mất. Ngoài ra vi mạch còn có khả năng mở rộng
bộ nhớ ROM với việc giao tiếp với bộ nhớ ROM bên ngoài lên đến 64KB (địa chỉ từ
0000H đến FFFFH).
2.2.4. Bộ nhớ dữ liệu-Bộ nhớ RAM.
Bộ nhớ RAM dùng làm môi trường xử lý thông tin, lưu trữ các kết quả trung gian
và kết quả cuối cùng của các phép toán, xử lí thông tin. Nó cũng dùng để tổ chức các
vùng đệm dữ liệu, trong các thao tác thu phát, chuyển đổi dữ liệu.
RAM nội trong vi mach 89C51 được tổ chức như sau (bảng 2.2):
Các vị trí trên RAM được định địa chỉ theo từng Byte bằng các số thập lục
phân (số Hex) .
Các bank thanh ghi có địa chỉ 00H÷1FH.
210 vị trí được định địa chỉ bit.
Các vị trí RAM bình thường.
Các thanh ghi có chức năng đặc biệt có địa chỉ từ 80H÷0FFH.
SVTH: LÊ THANH HTIỆN
21
Đia chỉ
byte
Địa chỉ
bit
Địa chỉ
bit
Đia chỉ

byte
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính

SVTH: LÊ THANH HTIỆN
22
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
2.2.4.1. Ram đa dụng.
Mặc dù trên bảng cho thấy vùng RAM đa dụng chiếm vị trí từ 30H÷7FH, nhưng
32 byte dưới 00H÷1FH cũng có thể dùng với mục đích tương tự.
Mọi địa chỉ trong vùng RAM đa dụng đều có thể truy xuất một cách tự do, dùng
kiểu địa chỉ trực tiếp hay gián tiếp.
2.2.4.2. RAM có thể truy xuất từng bit.
SVTH: LÊ THANH HTIỆN
7F
RAM đa dụng
FF
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
D0 D7 D6 D5 D4 D3 D2 D1 D0 PSW
30 B8 - - - BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P.3
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF AC AB AA A9 A8 IE
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40 99 Không được địa chỉ hóa bit SBUF
27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON
26 37 36 35 34 33 32 31 30

25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D Không được địa chỉ hóa bit TH1
22 17 16 15 14 13 12 11 10 8C Không được địa chỉ hóa bit TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B Không được địa chỉ hóa bit TL1
20 07 06 05 04 03 02 01 00 8A Không được địa chỉ hóa bit TL0
1F Bank 3 89 Không được địa chỉ hóa bit TMOD
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
17 Bank 2 87 Không được địa chỉ hóa bit PCON
10
0F Bank 1 83 Không được địa chỉ hóa bit DPH
08 82 Không được địa chỉ hóa bit DPL
07 Bank thanh ghi 0 81 Không được địa chỉ hóa bit SP
00 (mặc định cho R0 –R7) 80 87 86 85 84 83 82 81 80 P0
23
Địa chỉ
bit
Địa chỉ
bit
Đia chỉ
byte
80 byte
RAM
RAM
Các thanh ghi chức năng đặc biệt
Bảng 2.2: Cấu trúc RAM bên trong 89C51
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
89C51 chứa 210 bit được địa chỉ hóa, trong đó 128 bit có chứa các byte có chứa
địa chỉ từ 20H÷2FH và các bit còn lại chứa trong nhóm thanh ghi có chức năng đặc biệt.
Khả năng truy xuất từng bit bằng phần mềm là các đặc tính mạnh của vi mạch

89C51 xử lí chung. Các bit có thể được đặt, xóa, AND, OR,…với một lệnh đơn. 89C51
xử lý đòi hỏi một chuỗi lệnh đọc-sửa-ghi để đạt được mục đích tương tự. Ngoài ra các
port cũng có thể truy xuất từng bit.
128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hay như các bit
tùy theo lệnh được dùng.
2.2.4.3. Các bank thanh ghi.
32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi. Bộ lệnh 89C51 hổ
trợ 8 thanh ghi là R0,R1,…,R7 và theo mặc định sau khi reset hệ thống, các thanh ghi này
có địa chỉ từ 00H÷07H.
Các lệnh dùng cho thanh ghi sẽ ngắn hơn và nhanh hơn các lệnh có chức năng
tương ứng dùng kiểu địa chỉ trực tiếp. Các dữ liệu dùng thường xuyên nên dùng các thanh
ghi này.
Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một thanh ghi được truy xuất,
để chuyển đổi việc truy xuất giữa các bank thanh ghi ta phải thay đổi các bit chọn trong
bank thanh ghi trạng thái.
2.2.5. Các thanh ghi chức năng đặc biệt (SFR).
2.2.5.1. Thanh ghi trạng thái chương trình (PSW-Program status Word).
Bit Ký hiệu Địa chỉ Mô tả bit
PSW.7 CY D7H Cờ nhớ
PSW.6 AC D6H Cờ nhớ phụ
PSW.5 F0 D5H Cờ 0
PSW.4 RS1 D4H Chọn dãy thanh ghi (bit 1)
PSW.3 RS0 D3H Chọn dãy thanh ghi (bit 0)
SVTH: LÊ THANH HTIỆN
24
GVHD: TS HỒ VĂN CỪU Thiết kế mạch quang báo giao tiếp máy tính
00 = bank 0 : địa chỉ từ 00H đến 07H
01 = bank 1 : địa chỉ từ 08H đến 0FH
10 = bank 2 : địa chỉ từ 10H đến 17H
11 = bank 3 : địa chỉ từ 18H đến 1FH

PSW.2 OV D2H Cờ tràn
PSW.1 - D1H Dự trữ
PSW.0 P D0H Cờ kiểm tra chẵn lẻ
Bảng 2.3: Thanh ghi PSW
Cờ nhớ CY ( carry flag ) có hai công dụng: công dụng truyền thống trong các
phép toán số học là được set bằng 1 nếu có số nhớ từ phép cộng bit 7 hoặc có số mượn
mang đến bit 7. Ví dụ thanh chứa A có nội dung là FFH, lệnh:
ADD A,#1
Sẽ làm cho thanh chứa A có nội dung là 00H còn cờ CY trong thanh ghi PSW được set
bằng 1. Cờ nhớ CY còn là thanh chứa logic được dùng như một thanh ghi 1 bit đối với
các lệnh logic thao tác trên các bit. Lấy thí dụ lệnh sau đây sẽ AND bit 25H với cờ nhớ
CY và đặt kết quả trở về cờ nhớ:
ANL C,25H ;AND bit ở địa chỉ 25H với cờ nhớ
Cờ nhớ phụ: khi cộng các giá trị BCD, cờ nhớ phụ AC (auxiliary carry flag) được
set bằng 1 nếu có một số nhớ được tạo ra từ bit 3 chuyển sang bit 4 hoặc kết quả trong
đề_cát thấp nằm trong tầm từ 0AH ÷0FH. Nếu các giá trị được cộng là giá trị BCD, lệnh
cộng phải được tiếp theo bởi lệnh DA A (hiệu chỉnh thập phân thanh chứa A) để đưa các
kết quả lớn hơn 9 về giá trị đúng.
Cờ 0: đây là cờ có nhiều mục đích dành cho các ứng dụng của người lập trình.
Các bit chọn bank thanh ghi: các bit chọn dãy thanh ghi RS0, RS1 dùng để xác
định dãy thanh ghi tích cự. Các bit này được xóa sau khi có thao tác reset hệ thống và đổi
mức logic bởi phần mềm khi cần. Thí dụ sau cho phép dãy thanh ghi 3 (bank 3) tích cực,
sau đó di chuyển nội dung R7 (địa chỉ byte 1FH) vào thanh chứa A:
SETB RS1
SVTH: LÊ THANH HTIỆN
25

×