Nhận xét của người hướng dẫn Nhận xét của người phẩn biện Chương M : Các lý thuyết liên quan 2.1 Các phương án thực hiện và điều khiển mạch quang báo 2.2 Sơ lược về giao tiếp máy tính .
Trang 1THÀNH PHÓ HÒ CHÍ MINH
HGMUIIE
ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP
NGHIÊN CỨU CẢI TIỀN VÀ THỊ CÔNG MẠCH
QUANG BAO GIAO TIEP MAY TINH
GVHD: NGO VAN THUYEN
SVTH: NGUYEN HỮU CHÂN THÀNH
Trang 2KHOA ĐIỆN - ĐIỆN TỬ
GVHD : NGÔ VĂN THUYÊN
SVTH : NGUYÊN HỮU CHÂN THÀNH
LỚP :N99KÐĐ
MSSV :99221629
Tp Hồ Chí Minh 22/ 02/ 2003
Trang 3PIÂN Á
MO DAU
Trang 4Các hình vẽ đủ minh họa cho các mục
S.Ngay giao nhiém vu : 23 -12 - 2002
6.Ngày hoàn thành nhiệm vụ : 22 - 2 - 2003
Thông qua bộ môn Ngày thá ng năm 2003
ii
Trang 8các Thảy Cô giáo trong nhà trường,
nhất là quý thầy cô trong khoa Điện — Điện Tử
trường đại học Sư Phạm Kỹ Thuật
Xin bày tỏ lòng biết ơn sâu sắc Thầy
NGÔ VĂN THUYÊN, người đã nhiệt tình hướng dẫn, tạo mọi điều kiện thuận lợi
để tác giả hoàn thành quyển đồ án này
Xin cảm ơn tất cả các bạn đã góp ý
giúp đỡ tác giả trong lúc thực hiện đồ
án Xin chân thành cảm ơn !
Trang 9eke
Do sự phát triển của xã hội và khoa học kỹ thuật , nên nhu cdu vé thông tin trở nên thiết yếu đối với con người trong cuộc sống cũng như trong
hoạt động 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,
Để người xem không chán nản khi phải nhớ những ký tự đã mất , yêu
cầu bảng quang báo cần phải lớn , mặt khác ký tự tiếng Việt khi thể hiện rất
cần độ phân giải cao để chữ được đẹp
Kỹ thuật điều khiển bảng quang báo có kích thước lớn rất phức tạp ,
nếu phương pháp quét khong thích hợp sẽ làm ảnh bị rung , mờ , có thể
không nhìn thấy được
Tập đồ án này đưa ra một phương pháp quét thích hợp để điều khiển các bằng quang báo có kích thước rất lớn Để kiểm chứng trên thực tế
người viết thi công một bảng quang báo có kích thước tương đối lớn 40 x 16
Trong thực tế các mạch quang báo ở nhà sách , nơi công cộng có
độ linh hoạt cao , dé dang sử dụng , việc nhập chữ Việt đơn giản Để đáp ứng được các tiêu chuẩn trên mạch quang báo cần được giao tiếp với máy
tính
Mô hình thi công đáp ứng được các tiêu chuẩn trong thực tế, nội dung hiển thị ra bảng LED được nhập vào máy tính theo chuẩn VNI thông
dụng , nội dung , màu sắc , kiểu chạy thay đổi dé dàng đạt được độ linh
hoạt cao , bằng quang báo được điều khiển trực tiếp bằng máy tính làm cho việc sử dụng được đơn giản và dé dàng
Mặt dù đã dành nhiều thời gian để thực hiện đề tài nhưng do kiến
thức và tay nghề có hạn nên không tránh khỏi thiếu sót, người viết rất mong
sự góp ý của quý thầy cô và bạn bè để đổ án được hoàn hảo hơn
Sinh viên thực hiện
Nguyễn Hữu Chân Thành
vi
Trang 10PHẪN A : MỞ ĐẦU
Nhiệm vụ đồ án
Nhận xét của người hướng dẫn
Nhận xét của người phẩn biện
Chương M : Các lý thuyết liên quan
2.1 Các phương án thực hiện và điều khiển mạch quang báo
2.2 Sơ lược về giao tiếp máy tính
2.3 Sơ lược về vi điều khiển họ MCS ~ 5
2.4 Sơ lược các IC sử dụng trong mạch
3.2.2 Khối nguốn cung cấp
3.2.3 Khối giao tiếp
3.2.4 Khối xử lý dữ hiệu và nhớ
3.2.5 Khối điều khiển ma trận
3.2.6 Khối công suất
Trang 11
4.2 Giải thuật KT điều khiển bảng quang báo
4.3 Giải thuật dòng chữ chạy từ phải sang trái
4.4 Giải thuật đòng chữ chạy từ trái sang phả:
4.5 Giải thuật đòng chữ chạy từ trên xuống dưới
4.6 Giải thuật đồng chữ chạy từ dưới lên trên
Trang 12Hình 2.5 :Sơ đô khối và sơ đổ chân vi điều khiển 8951
Hình 2.6 : Sơ đô khối của Port nối tiếp
Hình 2.7 : Giản đồ thời gian của Port nối tiếp ở Mode 0
Hình 2.8 : Thanh ghi Pơrt nối tiép
Hình 2.9 : Hình mô tả cách nối AT #89C51 với bộ nhớ ngoài
Hình 2.10 : Giản đổ chu ky duc bộ nhớ chương trình ngoài
của ATB9CSI
Hình 2.11 : Truy xuất dữ liệu ngo
Hình 2.12 : Giản đổ chu kỳ đọc bộ nhớ dữ liệu ngoài cla AT89C51
Hình 2.13 : Sơ đổ khối của 8255A
Hình 2.14 : Sơ đổ chân và so dé Logic của 825A „
Hình 2.15 :Cấu trúc từ điểu khiển của 8255A
Hình 2.16 : Sơ đồ chân và sơ dé logic của MAX 232
Hình 2.17 : Mạch chốt cơ bản dùng FF D
Hình 2.18 : Sơ đỗ chân và bảng sự thật của IC 74273
Hình 2.19 : Sơ đồ chân và bảng su that cba IC 74138
Hình 3.1 : Sơ đồ khối mạch quang báo giao tiếp máy tính
Hình 3.2 : Sơ đồ khối bộ nguồn cung cấp
Hình 3.3 : Sơ đồ bộ nguồn 5V DC
Hình 3.4 : Sơ đồ bộ nguồn 5V DC cấp cho LED
Hình 3.5 : Nguồn cung cấp cho mạch quang bá:
Hình 3.6 : Sơ đồ khối mach giao tiếp
Hình 3.7 : Khối giao tiếp máy tính
Hình 3.8 : Sơ đồ khối xử lý dữ liệu và nhớ
Hình 3.9 : Bản đồ phân bố vùng nhớ SRAM 6116 và 8255A
Hình 3.10 : Sơ đồ kết nối với SRAM 6116
Hình 3.11 : Sơ đồ kết nối với PPI 8255
Hình 3.12 : Khối xử lý dữ liệu và nhớ
Hình 3.13 : Sơ đồ khối điều khiển ma trận
Hình 3.14 : Sơ đồ kết nối đường data của 8255A với 14273
Trang 13
Hình 3.17 : Sơ đồ kết nối 8255A với 74138 và 74139
Hình 3.18 : Khối điều khiển ma trận
Khối công suất
Sơ đỗ chỉ tiết khối công suất
Hình 3.21 : Sơ đồ kết nối ma tran LED
Bảng 2.2 :Địa chỉ cơ bản của cổng COM
Bảng 2.3 :Bảng chức năng chân cống COM
Bảng 2.4: Bảng chức năng của Port 3
Bảng 2.7 : Bảng mô tả các Mode hoạt động 30
Bang 2.8 : Bắng tóm tắt thanh ghi điều khiển Port nối tiếp 30
Bang 2.9 :Bang tóm tắt các thanh ghi của Timer 39
Bảng 2.10 : Bang thanh ghỉ TMOD của Timer -S- 40 Bảng 2.11 :Bắng mô tả các Mode của Timer 40
Bang 2.12 : Bảng mô tả thanh ghi điều khển TCON 41
Trang 14PHAN
NOIDUNG
Trang 15CHƯƠNG I : TỔNG QUAN
1.1 Đặt vấn đề:
Ngành điện tử đã và đang phục vụ đắc lực trong các hoạt động của
con người Một trong những ứng dụng phổ biến , rất cần thiết trong đời sống
hằng ngày là mạch quang báo
Trong quảng cáo tại các pa-nô, hay trên các nhà hàng , khách sạn ,
nhà sách , mạch quang báo gây ấn tượng mạnh tăng sự chú ý cho khách hàng và tăng thêm sự rực rỡ trong trang trí nội thất Các thiết bị quang báo độc đáo sẽ gầy cho khách hàng ấn tượng khó quên Quang báo là một trong những cách thức hướng dẫn , truyên đạt thông tin vừa là một phân
trang hoàng cho sinh hoạt con người , vừa làm tăng thu hút của khách hàng
$® Một bằng quang báo có kích thước nhỏ sẽ 8ây khó chịu cho người xem do phải nhớ những nội dung đã khéng còn hiển thị trên bảng LED khi đọc các nội dung dài Điều này làm cho mạch quang báo phản tác dụng ,
không tạo được ấn tượng cho người xem , giảm thu hút của khách hàngvào
sản phẩm
* Để thực hiện một bảng quang báo có kích thước lớn ta không thể
sit dung nguyên lý quét thông thường là chọn cột tuân tự rồi đưa dữ liệu ra
ma trận , do số cột của ma trận LED quá lớn nên thời gian sáng của LED
quá nhỏ không đủ thời gian lưu ảnh trên võng mạc mắt người , dẫn đến ảnh
bị rung và không sáng rõ gây ra sự khó chịu cho người xem
** Chính vì thế trong suốt quá trình học tập người viết đặc biệt quan
tâm tìm hiểu phương pháp điều khiển một ma trận quang báo có kích thước
lớn Để khắc phục nhược điểm trên nhằm gia tăng thời gian sáng cho LED, người viết đã thay đổi cách ghép nối các ma trận nhỏ , các cột của các ma trận nhỏ sẽ được nối chung với nhau , các hàng để riêng , nên dù ma trận tăng kích thước thì số cột vẫn cố định
Khi quét ta chọn cột thứ nhất của các ma trận nhỏ , xuất dữ liệu ra
led của một ma trận nhỏ và chốt lại , sau đó đưa dữ liệu ra ma trận khác , cứ
thế cho đến khi hết các ma trận nhỏ , ta sẽ chọn cột tiếp theo cho đến cột cuối cùng để hoàn thành một ảnh Nhờ có mạch chốt nên thời gian sáng của LED tăng lên đáng kể đáp ứng đủ thời gian lưu ảnh của mắt người
Trang 16Qua quá trình tự tìm hiểu , nghiên cứu cùng với sự tư vấn của giáo
viên hướng dẫn người viết quyết dịnh chọn để tài “ Tìm biểu và thì công
mạch quang báo giao tiếp máy tính ” làm đổ án tốt nghiệp ra trường
Ưu nhược điểm của mạch quang báo thỉ công :
° Uudiém:
- _ Phương pháp điểu khiển ma trận mới , có thể điều khiển các ma trận
có kích thước rất lớn
- DQ phân giải của ma trận LED cao nên hiển thị tiếng Việt rõ rang
- Do 6 giao tiếp với máy tính nên việc nhập nội dung hiển thị tiếng
Việt rất dễ đàng theo quy cách gõ VNI
- Sử dụng đơn giản , dễ dàng thay đổi nội dung biển thị nên có tính
thực tiễn cao,
«Nhược điển:
-_ Chương ưình giao tiếp và điều khiển phức tạp
- T6n nhiéu linh kiện
1.2 Mục tiều nhiêm vu:
" Nhằm kiểm chứng trên thực tế phương pháp mới „ người viết thực
hiện một ma trận quang báo 40 x l6, đây là ma trận có kích
thước tương đối lớn , độ phân giải cao
"Để tạo được sự linh hoạt , dễ dàng nhập tiếng Việt , sử dụng mạch quang báo dể đàng người viết thực hiện giao tiếp mạch quang báo với máy tính , đây cũng là hướng đi chung của các thiết
bị mới
13 Cấu trúc đổ án;
Đồ án được thực hiện gồm năm chương :
> Chương I: Tổng quan
Chương này nêu bật lên tẩm quan trọng của mạch quang báo trong,
đời sống con người , các phương án điểu khiển đã có „ đưa ra phương án điều khiển mới Cuối chương trình bày mục tiêu nhiệm vụ và cấu trúc của
đồ án
> Chương II : Các lý thuyết liên quan
Trang 17Chủ yếu trình bày các lý thuyết iên quan như nêu lên cấu tạo của ma
trận LED, các phương án thực hiện và điều khiển ma trận quang báo Giới
thiệu sơ lược các phương thức giao tiếp máy tính , ưu khuyết điểm của từng loại , cấu tạo và các thanh ghi họ vi điểu khiển MCS-51 Cuối chương tập
trung nói rõ các IC sử dụng trong mạch quang báo
> Chương III : Thiết kế phần cứng
Chương này tập trung thiết kế phẩn cứng mạch điện thi công , đưa ra
sơ đổ khối của mạch quang báo , sơ đổ nguyên lý và tính toán thiết kế chỉ
tiết cho từng khối nhỏ „
> Chương IV : Xây dựng phần mềm
Chương nà y trình bà y rõ ràng các lưu đỗ giải thuật giao tiếp máy tính
„ chương tình điều khiển chính , các chương trình con thực hiện các kiểu chữ
cha y trên mạch quang báo,
> Chương kết luận
Trong chương này ngưỡi viết tóm tất quá trình thực hiện , và để nghị hướng phát triển cho đồ án ,
Trang 18CHƯƠNG II : CÁC LÝ THUYẾT
LIÊN QUAN
2.1 Các phương án thực hiện và điều khiển mạch quang báo :
2.1.1 Giới thiệu ma tran LED:
Do để tài là mạch quang báo nên ta phải dùng bảng đèn để hiển thị
(bing đèn sử dụng ở đáy là ma trận LED) Có hai cách để có được một ma
trận LIED : ráp các LED rỡi lại với nhau hoặc mua các ma trận LED đã được tích hợp sẩn vào trong một vỏ
Khi ráp các LED rời lại thành ma trận thì giá thành tuy có rẻ nhưng,
lại không được thẩm mỹ cho lắm: độ sáng không đổng đều khi nhìn ở các
góc nhìn khác nhau, độ sáng giữa các LED cũng không giống nhau; và không đạt được các tiêu chuẩn tối ưu về kỹ thuật : mạch điện phức tạp vì có
quá nhiều chân đưa ra ngoài
Khi sử dụng ma trận LED được tích hợp sẵn thì ta sẽ khấc phục được
tất cả các khuyết điểm về thẩm mỹ cũng như kỹ thuật của ma trận dùng LED rời: độ sáng đổng đều cho tất cả các LED (điểu này chỉ có tính chất tương đối nhưng ta cũng khó có thể phân biệt được sự khác nhau này bằng mắt thường), các LED sáng đều như nhau ở mọi góc nhìn, đạt các tiêu chuẩn
yêu câu về kỹ thuật: do được tích hợp vào trong cùng một vỏ nên các đường
mạch bên trong LED được vẽ với độ chính xác cao, số lượng chân đưa ra
ngoài ít hơn nhiều so với ma trận dùng LED rời Và một điều nữa rất quan
trọng là khi cân hiển thị hai màu trên bảng đèn (như yêu cầu của để tài này)
thì ta khó có thể thực hiện được đối với LED rời nhưng với ma trận LED tích hợp thì lại có sẵn trên thị trường, giá lại không cao
Ngoài ra, để hiển thị các bảng đèn lớn thì ta có thể đùng các bóng
đèn tim nung rấp lại thành ma trận Tuy nhiên, do điểu kiện kính tế và thời gian có hạn nên để tài này chỉ dừng lại ở mức hiển thị các bảng đèn cỡ nhỏ
'Với những ưu điểm vượt trội như trên thì ma trận LED tích hợp được ding dé thay thế cho ma trận LED rời ở để tài này là điều hiển nhiên
Trang 19Để việc sử dụng ma trận LED được tối ưu thì trước tiên ta phải biết được kết cấu bên trong (cách thức các LED nối lại với nhau) và sơ đổ chân của nó Do để tài sử dụng ma trận LED hai màu nên ở đây chỉ giới thiệu về loại ma trận LED này Sau đây là sơ đổ chân và cách kết nối bên trong của
nó
inh 2.1: Ma trận Led 2 màu thực tế
Hai hình ảnh thực tế của ma trận LED nhìn từ trên xuống Trong thực
tế thì ma trận LED có hai loại như trên (có thứ tự các chân đảo nhau tuy nhìn cấu tạo bền ngoài giống hệt nhau) nên trước khi ráp vào mạch thi can
dùng VOM kiểm tra trước Các khớp nối ở bốn cạnh cho phép ghép nối nhiều ma trận lại với nhau, và chỉ có những ma trận có cùng thứ tự chân thì
mới hoạt động ổn định được khi ráp chung vào mạch Hình dưới là sơ đổ
chân của ma trận LED 5x4 hai màu xanh-đỏ :
Hình 2.2 : Cấu tạo ma trận Led 2 màu 5x 4
Rown : Anode của hàng LED đỏ thứ n
Trang 20CmD : Cathode của cột LED đỏ thứ m
CkX : Cathode của cột LED xanh thứ k
2.1.2 Các phương án thực hiện một mạch quang báo :
Có nhiễu cách để làm một mạch quang báo : dùng IC rời, dùng EPROM, dùng vi xử lý hoặc dùng máy vi tính để điều khiển mạch
*_ Nếu dùng IC rời thì ta sử dụng các IC giải đa hợp (Demultiplexer) kết hợp với các Diode để làm thành mạch ROM (kiểu ROM này được gọi là Made Home), Chương trình cho loại ROM này được tạo ra bằng cách sắp Xếp vị trí các Diode trong ma trận, mỗi khi cẩn thay đổi chương trình thì phải thay đổi lại vị trí các Diode này (thay đổi về phân cứng) Dung lượng
bộ nhớ kiểu này thay đối theo kích thước mạch, kích thước càng lớn thì dung
lượng càng lớn (vì khi táng dung lượng thì phải thêm IC giải đa hợp, thêm
các Diode nén kích thước của mạch tăng lén) Nếu muốn đủ bộ nhớ để chạy
một mạch quang báo bình thương thì kích thước mạch phải rất lớn nên giá thành sẽ lên cao, độ phức tạp táng lén Do đó, dạng ROM này thường không
đáp ứng được yêu cầu của mạch quang báo
"Khí thay các IC rời ở trên bằng EPROM thì kích thước mạch và giá
thành sẽ giảm đáng kể Kích thước của EPROM hầu như không tăng theo dung lượng bộ nhớ của nó Ngoài ra, khi muốn thay đổi chương trình hiển thị thì ta chỉ việc viết chương trình mới (thay đổi vể phần mêm) nạp vào
EPROM hoặc thay EPROM cũ bằng một EPROM mới có chứa chương trình
cần thay đổi Việc thay đổi chương trình kiểu này thực hiện đơn giản hơn rất
nhiều so với cách dùng IC rời ở trên Tuy nhiên phương án này gây bất lợi cho người sử đụng , vì phần lớn người sử dụng không biết gì về điện tử , nên không thể thay thế được EPROM trong mạch Trong những môi trường đòi
hỏi phải thay đổi nội dung dòng thông báo liên tục , phương án này cho thấy
nhiều bất cập
* Khi vi xử lý tham gia vào thì mạch quang báo sẽ có được nhiều
chức năng hơn, tiện lợi hơn nhưng cũng đắt tiền hơn Với kit vì xử ly diéu khiển quang báo ta có thể thay đổi chương trình hiển thị một cách dễ đàng bằng cách nhập chương trình mới vào RAM ( thay đổi chương trình ngay
trên kit, không cẩn phải tháo IC nhớ ra đem nap chương trình như EPROM )
Do vi xử lý có nhiều chức năng nên việc đổi màu cho bảng đèn cũng được thực hiện một cách dễ dàng Tuy nhiên, khi sử dụng vi xử lý để làm mạch
quang báo thì giá thành của mạch lại tăng lên nhiều so với khi sử dụng EPROM vì kít vi xử lý cẩn phải có EPROM lưn chương trình điều khiển cho
Trang 21vi xử lý, các IC ngoại vi (giao tiếp bàn phím, hiển thị, ), các RAM để nhớ
chương trình, các phím nhập dữ liệu (do có phím nên kích thước mạch tăng lên nhiều) Ngoài ra, đo vi xử lý phải gởi dữ liệu ra IC ngoại vi (thường là
8255A) rồi mới điểu khiển việc hiển thị trên bảng đèn nên khi cẩn hiển thị
hình ảnh thì cách dùng vi xử lý sẽ phức tạp hơn nhiễu so với khí dùng EPROM (như đã giải thích ở trên)
*" Ngoài ra, mạch quang báo còn có thể được điều khiển trực tiếp
bằng máy vi tính kết hợp với KỊT vi xử lý diéu khién ma tran LED Với phương pháp này mạch quang báo sẽ hiển thị đa dạng , kể cả hình ảnh lẫn mầu sắc theo ý muốn của người sử dụng Để đơn giản quá trình sử dụng
đòi hỏi sự phức tạp , khó khán cả về phẩn cứng lẫn phần mềm điều khiển %
tuy nhiên với phương hướng phát triển hiện nay thì phương án này thường
> Phương pháp một : Điểu khiển các ma trận có kích thước nhỏ
© Doi vdi các ma trận nhỏ hàng của các ma trận được nối chung lại, cột để riêng , khi điều khiển thì chọn lần lượt từng cột rồi xuất dữ
liệu ký tự hay hình ảnh ra hàng , do hiện tượng lưu ảnh ở mắt người nên với
tốc độ chọn cột và xuất dữ liệu ra hằng cao , người xem cảm thấy hình ảnh
và ký tự liên tục không bị chớp tắt
© Phương pháp này thường sử dụng các IC 74138 , 74154 #
74164 để chọn cột , và sử dụng các IC chốt 74373 + 74573 để chốt dữ liệu
màu , chốt hàng khi số hàng lớn hơn tám ,
© Nhược điểm : do thời gian LED tắt rất lớn hơn so với thời
gian LED sáng nên làm cho người xem cảm thấy khó chịu vì hình ảnh bị
chớp giật liên tục do tốc độ quét không đủ thời gian lưu ảnh của mắt „cần
tăng điện áp cấp cho LED lên cao Điều này dể gây nguy hiểm , nếu vì một
lý đo nào đó mạch tạo xung chọn cột bị mất , tất cả LED ở cột đó sẽ bị cháy
„ nguy hiểm hơn nữa nếu tẩn số xung chọn cột giảm thì cả ma trận LED sẽ
bi hong
© Ưuđiểm: khi điểu khiển các ma trận nhỏ phương pháp này
là để dàng điều khiển và kinh tế nhất
Trang 22> Phương pháp hai : Điều khiển các ma trận có kích thước lớn
© Dé khắc phục nhược điểm trên cẩn cải tiến cách ghép ma
trận và phương pháp quét Các ma trận nhỏ được nối chung các cột lại , hàng của mỗi ma trận để riêng, với cách ghép này dù ma trận rất lớn nhưng vẩn có số cột cố định của các ma trận nhỏ Khi quét chọn cột thứ nhất , xuất lần lượt dữ liệu ra mỗi ma trận nhỏ và chốt lại khi xuất sang ma trận kế , sau
đó xóa tất cả các hàng để chống lem rồi chọn cột tiếp theo Nhờ có mạch chốt nên thời gian sáng của các LED được tăng lên đáng kể , áp cấp cho
LED không quá cao như phương pháp trên ,
® _ Phương pháp này thường sử dụng các IC 74138, 74154 ,
74164 để chọn cột , và sử dụng các IC chốt 74373 , 74573 › 74273 để chốt
dữ liệu cho hàng của mỗi ma trận
© _ Nhược điểm ; Về phương diện kỹ thuật phương pháp này tốt hơn , nhưng nếu sử dụng để điều khiển ma trận có kích thước nhỏ là không kinh tế vì số lượng IC sử dụng trơng mạch nhiều hơn , bộ nguồn sẽ nóng hơn đo nhiều LED sáng cùng một lúc
© Uu diém : Thỏa mãn yêu cầu hiển thị cho các ma trận có
kích thước lớn , áp cấp cho LED không cao , thời gian sáng của LED tăng
lên đáp ứng được thời gian lưu ảnh của mắt người
2.2 Sơ lược về giao tiếp máy tính :
2.2.1 Giao tiếp 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 Có thể thiết kế card mở
rộng gắn vào khe cắm mở rộng này để giao tiếp với máy tính Ở các máy
tính PC thì thường có các rãnh cắm theo tuân theo các tiêu chuẩn như: ISA (Industry Standard Architecture) 8 bit hoc 16 bịt, ngoài ra còn có rãnh cắm theo tiêu chuẩn PCI (Peripheral Component Interconnection) 32 bit hoic 64
bit, qua các đường tín hiệu này máy tí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 các
đường địa chỉ và đường dữ liệu, còn có một số đường điểu khiển như:
RESET, IOR, IOW, AEN, CLK,
" Ưu điểm : Card giao tiếp với máy tính qua Slot 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 đữ liệu nhanh (truyền song song)
Trang 23" Nhược điểm : Tuy nhiên, do khe cắm nằm bên trong máy tính nên khi 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 Hơn nữa nếu mạch có một sai sót nhỏ sẽ gây
nguy hiểm cho mainboard và sẽ không được bảo hành nếu máy còn
mới
2.2.2 Giao tiếp qua Printer Port :
Đây là cách giao tiếp được dùng để truyền dữ liệu giữa máy tính và
má y in Khác với cách giao tiếp qua cổng COM, ở đây cách giao tiếp này dữ
liệu được truyén song song cùng một lúc 8 bit vì thế nó có thể truyền ở tốc
độ cao Đầu nối (Connector) của Port này gồm có 25 chân bao gôm 8 đường
dữ liệu và các đưỡng bất tay (handshaking) T&t cd các đường đữ liệu và tín
hiệu điều khiển đều ở mức logic có thể hoàn toàn tương thích với mức TTL
Hơn nữ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 ứn hiệu tạo ngất (Inlerrupt) từ ngõ vào nên việc giao tiếp đơn giản và
Các máy tính ra đời từ năm 1995 trở lại đây đều có trang bị giao tiếp
theo chuẩn IEEE (Institude Electronic And Electronic Engineering) Chuẩn
này ra đời vào năm 1994 qui định một chuẩn giao tiếp mới giữa máy tính cá nhân với các thiết bị ngoại vi Chuẩn giao tiếp mới này tương thích được với chuẩn giao tiếp song song cơ bản nhưng có trốc độ nhanh hơn 50 — 100 lần
so với giao tiếp cũ
Chuẩn IEEE 1484 qui định 5 chế độ truyền đữ liệu tùy theo hướng
truyền :
" Chỉ truyển ra: chế độ tương thích với chuẩn giao tiếp song
song cơ bản hay chuẩn “Centronic”
= Chi truyền vào:
10
Trang 24* Ché d6 Nipple: truyền song song 4 bit dùng các đường tín hiệu
trạng thái,
* _ Chế độ byte: truyền song song 8 bít qua đường dữ liệu, chuẩn
&iao tiếp song song của chế độ này được gọi là cổng 2 chiều
" Truyển2chiểu:
Cổng song song cải tiến EPP (Enhanced Parallel Port) được các thiết
bị khác máy in sử dụng ( ổ đĩa CD, ổ đĩa cứng, bộ điều khiển mạng
Cổng song song 2 chiểu dùng chế độ tương thích, chế độ Nipple và chế độ Byte chỉ dùng phần mềm để truyền dữ liệu, Chương trình điều khiển cổng song song có trách nhiệm kiểm tra tín hiệu bắt tay (Handshacking, ví
dụ như busy), và trao tín biệu điểu khiển thích hợp cho thiết bị ngoại vi (ví
du như Sưobe), và truyền byte dữ liệu Quá trình này cẩn nhiều phân mềm
va giới hạn tốc độ truyền dữ liệu trơng khoảng 50n đến 100 Kbyte trong Is
Chế độ EPP, ECP được cài đặt trong moi vi mach Supper LO hiện đại Hai chế độ này dùng phẩn cứng trợ giúp một phẩn truyền dữ liệu ra cổng EPP chương trình chỉ cẩn gọi lệnh OUT, phan cứng đảm nhận nhiệm
vụ điều khiển các tín hiệu bắt tay
Việc giao tiếp giữa vi điều khiển với máy tính được thực hiện qua chân cắm 25 chân ở phía sau máy tính Qua cổng này đữ liệu được truyền di song song, nên đôi khí còn được gọi là cổng ghép nối song song
“Ưu điểm : Giao tiếp qua cổng máy in có tốc độ truyền dữ liệu nhanh (truyền song song) , giao thức đơn giản
" Nhược điểm : Chi phí đường truyền cao và không thể truyền với
khoảng cách xa
Trang 25
CHÂN |KÝ HIỆU TVAORA MÔ TẢ
15 ERROR Léi vao Error (L6i)
16 INIT Lối ra 0: Đặt lại máy in
Trang 262.2.3 Giao tiếp qua Com Port :
Khác với cổng máy in, cổng COM là cổng truyền dữ liện nối tiếp Nó thường được dùng để giao tiếp với các thiết bị ngoại vì có tốc độ xử lý chậm, cổng này giao tiếp theo chuẩn RS 232
Dữ liệu được truyền dưới dạng nối tiếp từng bít một Tốc độ truyền
bit do người lập trình quyết định( thường là 1200bps, 2400pbs, 4800bps, 9600bps ) chiéu dài bit dữ liệu có thể là 5, 6, 7, 8 bit kèm theo 1, 3/2, 2
Stop bit, va 1 bit Start tao thanh 1 khung gọi là Frame Cổng này gồm các đường phát, đường thu, các đường bắt tay và đường mass chung, Vi giao tiếp
với chuẩn RS 232 nên có khoảng cách truyền xa hơn so với cổng máy in
nhưng nó có tốc đó truyền chậm
Ở phía sau các máy tính PC điều có hai cổng nối tiếp với tên gọi là
COMI và COM2 dưới dạng chân cắm 9 chân hoặc 25 chân, Hình dưới chỉ ra
sự sấp xếp chân của các chán cấm này Trên thực tế việc truyền đữ liệu
được tiến hành trên đường dẫn truyền TXD và đường dẫn nhận RXD Ngoài
ra cổng nối tiếp còn có hai lối ra và bốn lối vào khác nữa, chúng được gọi là những đường bắt tay đóng vai trò điểu khiển dong đữ liệu nối tiếp Các
đường dẫn này có thể được đát hoặc được đọc trực tiếp nhờ những lệnh đơn
giản Trong các đường dẫn này thì hai đường DTR và RTS cẩn được chú ý
tới vì chúng thường được sử dụng như những đường dẫn phụ để chuyển đổi
chế độ làm việc của các họ vi xử lý
Địa chỉ cơ bản của cổng nối tiếp của máy tính PC có thể tóm tắt trong
bảng các địa chỉ sau :
COM I (cổng nối tiếp thứ nhất ) Địa chỉ cơ bản = 3F8(Hex)
COM 2 (cổng nối tiếp thứ hai ) Địa chỉ cơ bản = 2F8(Hex) COM 3 (cổng nối tiếp thứ ba ) Địa chỉ cơ bản = 3E8(Hex) COM 4 (cổng nối tiếp thứ tư ) Địa chỉ cơ bản = 2E8(Hex)
Bang 2.2 :Địa chỉ cơ bản của cổng OOM
Cũng như ở cổng máy in, các đường dẫn tín hiệu riêng biệt cũng cho
phép trao đổi qua các địa chỉ trong máy tính PC Trong trường hợp này,
người ta thường sử dụng những vi mạch có mức độ tích hợp cao để có thể
hợp nhất nhiều chức năng trên một chip Ở máy PC thường có một bộ phát
/nhận không đồng bộ vạn năng (gọi tắt là UART: Universal Asnchronous Receiver/Transmitter) để điểu khiển sự trao đổi thông tin giữa máy tính và
Trang 27các thiết bị ngoại vi Phổ biến nhất là vì mạch 8250 của hãng NSC hoặc các
thế hệ tiếp theo
Thông thường với các yêu cầu ứng dụng tốc độ thấp người ta giao tiếp qua ngõ nối tiếp, nó giao tiếp theo tiêu chuẩn RS232C và dùng để giao tiếp giữa máy tính với Modem hoặc Mouse Ngoài cũng có thể đùng giao tiếp printer hay plotter nhưng không thông dụng lắm bởi tốc độ truyền qúa
chậm Đối với máy AT cho ta hai ngõ giao tiếp COM | va COM 2 Trong
Để giao tiếp nối tiếp với 2 ngõ COM này Bus hệ thống của CPU
(Dau Bus và Address Bus ) hãng IBM sử dụng hai Chip lập trình của Intel là
8250 UART (Universal Asnchronous Receiver Transmitter ) Địa chỉ theo bộ nhớ của hai chip này là 0040:0020 cho UERT của ngõ COM I và 0040:0002 cho UART của ngõ COM 2 (Địa chỉ logic do hệ điểu hành qui định) và địa chỉ theo Port để truy xuất khí sử dụng là 3F8-3FF cho COM 1 va 2F8-2FF cho COM 2
Thông thường thì các cổng nối tiếp thứ nhất với tên COMI có dang chân cắm 9 chân được dùng để cắm chuột, còn cổng thứ hai có đạng chân cắm 25 chân dùng cho các mục đích ghép nối khác
Một số ưu nhược điểm :
"Ưu điểm : Chi phí đường truyền thấp , có thể truyền với khoảng cách
xa,
"_ Nhược điểm : Giao tiếp qua cổng nối tiếp có giao thức phức tạp hơn
giao tiếp song song, tốc độ thấp Các chân và đường dẫn được mô tả như sau :
14
Trang 28
CHÂN © |CHÂN 7ˆ Ízý mpU” [vàoA ˆ | wôTA `
(Loại 9 chân) | (Logi 25 chan) sec [on te bi lở
4 20 DTR Léira | DataTerminalReady
5 7 GND Nối đất
Bang 2.3 :Bảng chức năng chan céng COM
2.3 Sơ lược về vi điều khiển ho MCS - 51:
2.3.1 Giới thiệu :
MCS-51 là họ IC vi điểu khiển do hãng Intel sản xuất Các IC tiêu biểu cho họ là 8951 và 8031 Các sản phẩm MCS-51 thích hợp cho những, ứng dụng điểu khiển Việc xử lý trên Byte va các 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 đữ 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 gdm 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 điều khiển và những hệ thống logic
đồi hỏi xử lý luận lý
8951 là một vi diéu khiển 8 Bit, ché tao theo công nghệ CMOS chất
lượng cao, công suất thấp với 4 KB PEROM (Flash Programmable and erasable read only memory) Thiết bị này được chế tạo bằng cách sử dụng
Trang 29bộ nhớ không bốc hơi mật độ cao của ATMEL và tương thích với chuẩn công nghiệp MCS-5I về tập lệnh và các chân ra PEROM ON-CHIP cho phép bộ nhớ lập trình được lập trình trong hệ thống hoặc bởi một lập trình viên bình thường Bằng cách kết hợp một CPU 8 Bit với một PEROM trên
một Chip đơn, ATMEL AT89C5I là một vì điểu khiển mnạnh (có công suất lớn) mà nó cung cấp một sự linh động cao và giải pháp về giá cd đối với nhiều ứng dụng vi điều khiển
AT82C5l cung cấp những đặc tính chuẩn như sau : 4 KB bộ nhớ chỉ
đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường L/O,
2 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, | mach dao động tạo xung Clock và bộ đao động ON-CHIP Thêm vào đó, AT89C51 được thiết kế với logic tĩnh cho hoạt
động đến mức không tắn số và hỗ trợ hai phẩn mềm có thể lựa chọn những
chế độ tiết kiệm cóng suất, chế độ chờ (IDLE MODE) sẽ dừng CPU trong
khi vẫn cho phép RAM, Urner/counter, port nối tiếp và hệ thống ngắt tiếp tục hoạt động Chế độ giảm cóng suất sẽ lưu nội dung RAM nhưng sẽ treo
bộ dao động làm mất khả náng hoạt động của tất cả những chức năng khác cho đến khí Reset hệ thống
Các đặc điểm của 8951 được tóm tắt như sau:
a 4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xóa
œ_ Tần số hoạt động từ : 0Hz đến 24 MHz
ä 3 mức khóa bộ nhớ lập trình
Q 26 Timer/counter 16 Bit
a 128 Byte RAM ni
a_ 4Port xuất /nhập I/O 8 bít,
a Giao tiếp nối tiếp
Trang 30a_ 210 vị trí nhớ có thể định vị bit
a 4s cho hoạt động nhân hoặc chia
2.3.2 Sơ đổ khối và sơ đổ chân vi điểu khiển AT895
PLO B2 B d POS Ty XTAL p04 b¢—p AD4 P05 |lẾ—*ˆ AD5
ĐẠU pt 9 G ATROCSI xaweya ALES FA ep Dns (eh an
Tl ——~ P35 P25+—> a3
TWER1 }¢—
WWTERRUPT One 1221 + THER kẹp INPUTS
Trang 312.3.3 Chức năng và nhiệm vụ các chân của AT8951 :
AT89C51 có tất cả 40 chân có chức năng như các đường xuất nhập
Trong đó có 32 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 bus dữ liệu và bus địa chỉ
= Cac Port:
* Port 0 : Port 0 là port có 2 chức năng ở các chân 32-39 của AT89C5I
“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
dung VO, DO với các 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: Port I la port /O wén các chân 1-8 Các chân được ký hiệu
P10, PLA, P].2, có thể dùng cho giao tiếp với các thiết bị ngoài nếu cẩn Port l 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
* Port 2 : Port 2 là port o6 tac dung 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
* Port 3: 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 AT89C51 như ở bảng sau :
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 | INTI\ | Ngõ vào ngắt cứng thứ 1
P3.4 | T0 Ngõ vào của TIMER/COUNTER thứ 0 P3.5 | TI Ngõ vào của TIMER/COUNTER thứ I
P3.6 | WR\_ | Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7 | RD\_ | Tín hiệu đọc bộ nhớ dữ liệu ngoài
Bảng 2.4 : Bảng chức năng của Port 3
Trang 32
“Các ngõ tín hiệu điều khiển :
® Ngõ tín hiệu 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 và thường được nối đến chân OE\ (Ouput Enable) của Eprom cho phép đọc các byte
mã lệnh
PSIN ở mức thấp trong thời gian AT89C51 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 phí lệnh bên trong AT#9C5I để giải mã lệnh Khi AT89C5I thi hành chương trình trong ROM nội PSI:N sẽ ở mức logic 1
® Ngõ tín hiệu điểu khiển ALE (Address Latch Enable) : Khi AIW9CSI truy xuất bộ nhớ 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âu 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 ở chan 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,
AT89C5I
® Ngõ tín hiéu EA\ (External Access) : Tín hiéu vao EA\ 6 chan 31
thường được mắc lên mức 1 hoặc mức 0 Nếu ở mite 1, AT89C51 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp 4k byte Nến ở mức 0,
AT89C51 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 AT89C51
® Ngõ tín hiệu RST (Reset) : Ngõ vào RST ở chân 9 là ngõ vào Reset
của AT89C51 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 phải tự động Reset
19
Trang 33@ Các ngõ bộ dao động XI, X2 : Bộ tạo dao động được tích hợp bên
trong AT89C5I Tẩn số tụ thạch anh thường sử dụng cho AT89C51 là 12
MH¿
@ Chan 40 (Vcc) được nối lên nguồn 5V
* Tổ chức bộ nhớ của vi điều khiển AT89C5I :
Bộ nhớ trong AT89C5I bao gổm ROM và RAM RAM trong,
AT89CS1 bao gồm nhiều thành 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 thanh ghi và các thanh ghí chức năng đặc biệt
AT89C51 có bộ nhớ theo cấu trúc Havard: có những vùng bộ nhớ
riêng biệt cho chương trình dữ liệu Chương trình và dữ liệu có thể chứa bên
trong AT89C51 nhưng AT89C5I vẫn có thể kết nối với 64k byte bộ nhớ
chương trình và 64k byte bộ nhớ dữ liệu
® Hai đặc tính cần chú ý là :
ä Các thanh ghi và các port xuất nhập đã được định vị trí (xác định)
trong bộ nhớ và có thể truy xuất trực tiếp giống như các địa chỉ bộ nhớ khác
a Ngăn xếp bên trong RAM nội nhỏ hơn so với RAM ngoại như trong các bộ MCU khác
$ RAM bên trong AT89C5I có được phân chia như sau :
- Các bank thanh ghi có địa chỉ từ 00H đến IFH
~ RAM địa chỉ hóa từng bịt có địa chỉ từ 20H đến 2FH
Trang 34đích tương tự (mặc dì các địa chỉ này đã có mục đích khác)
Mọi địa chỉ trong vùng RAM đa dụng đều có thể được truy xuất tự do dùng kiểu địa chỉ trực tiếp hoặc gián tiếp Ví dụ để đọc nội dung ở địa chỉ
ŠSEH của RAM nội vào thanh ghỉ tích lũy (A), lệnh sau sẽ được dùng :
MOV A,5H
RAM bén trong cũng có thể được truy xuất dùng cách địa chỉ gián
tip qua RO hay RI Vi dy bai lệnh sau sẽ thi hành cùng nhiệm vụ như lệnh
chỉ chứa trong R0 vào thanh ghi tích lũy
RAM có thể truy xuất từng bít :
AT89C5I chứa 210 bit được địa chỉ hóa, trong đó 128 bit chứa ở các byte có địa chỉ từ 20H đến 2FH và các bit còn lại chứa trong nhóm thanh ghỉ
có chức năng đặc biệt
Ý tưởng truy xuất từng bit bằng phần mềm là một đặc tính mạnh của
MCU nói chung Các bit có thể được đặt, xóa, AND, OR, với 1 lệnh đơn
Đa số các MCU 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 được từng bịt làm
đơn giản phân mềm xuất nhập từng bit
128 bit truy xuất từng bit này cũng có thể truy xuất như các byte hoặc
như các bit phụ thuộc vào lệnh được dùng
a
Trang 35BANG TOM TAT CAC VUNG NHG 8951
Byte Address Bit Address Byte Address Bit Address
27 |26 |25 |24 23 22 21 20 8D mo bit address THI
22 [T716 [15 |14 |13 ]12 |11)10, #B jnotbit address TLL
21 |0E|0E|0D |OC|0B|0A |09Ì08 8A, |notbitaddress TLO
20 |07|06 |05 |04 03 |02 [01 [00] 89 [nce bit address TMOD
IE | Bank3 38 |RF]SE|SD|SC [gp [8a ]89]88| TCON
17 | Bank2
oF | Bank 1 82 |not bit address DPL
08 81 [not bit address SP
00 | forRO~R7 Special Function Register
RAM
Bảng 2.5 : Bảng tóm tắt vùng nhớ của 8951
" Các bank thanh ghi :
32 byte thấp của bộ nhớ nội được dành cho các bank thanh chì Bộ
lệnh AT89C5I hổ trợ 8 thanh ghi có tên là R0 đến R7 và theo mặc định sau khi reset hệ thống, các thanh ghỉ này ở các địa chỉ 00H-07H Lệnh sau đây
sẽ đọc nội dung của ô nhớ có địa chỉ 05H vào thanh ghi A:
Trang 36MOV A, RS
Đây là lệnh 1 byte dùng địa chỉ thanh ghi Tuy nhiên yêu cẩu trên có
thể thi hành bằng lệnh 2 byte dùng địa chỉ trực tiếp nằm trong byte thứ 2:
MOV A,05H
Các lệnh dùng các thanh ghi R0 đến R7 sẽ ngắn hơn và nhanh hơn so
với 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
được dùng thường xuyên nên dùng một trong các thanh ghi này
Do có 4 bank thanh ghỉ nên tại một thời điểm chỉ có một bank thanh
ghi được truy xuất bởi các thanh ghi từ RO đến R7 Để chuyển đổi việc truy
xuất các bank thanh ghi ta phải thay đổi các bit chọn bank trong thanh ghi trang thái, Giả sử bank thanh ghỉ 3 đang được truy xuất, lệnh sau đây sẽ di chuyển nội dung của thanh ghí A vào ô nhớ RAM có địa chỉ 18H
MOV RO, A
* Cac thanh ghi chifc nang dac biết :
Các thanh ghi trong một vi điểu khiển gổm có : thanh ghi tích lũy
(Accumulator Register), thanh ghi PC (Program Counter Register), thanh ghi
con trỏ ngăn xếp (Stack Pointer Register), thanh ghi trang th4i (Status
Register), thanh ghi dia chi (Progarm Address Register), thanh ghi lệnh (Instruction Register), các thanh ghi thông dụng
® Thanh ghi tich ly (thanh ghi A - Accumulator Register) :
Thanh ghi A là một thanh ghi quan trọng của vi điểu khiển có chức năng lưu trữ dữ liệu khi tính toán Hầu hết các phép toán số học và phép
toán logic đều xảy ra giữa ALU và thanh ghỉ A, nhưng cẩn lưu ý rằng hầu
hết sau khi thực hiện phép tính, ALU thường gởi dữ liệu vào thanh ghi A
làm đữ liệu trong thanh ghi A trước đó bị mất
Thanh ghi A thường làm trung gian để trao đổi đữ liệu của vi điểu khiển với các thiết bị ngoại vi
Với vi điều khiển AT89C51, thanh ghỉ A có độ dài 8 bịt
23
Trang 37@ Thanh ghi PC (Program Counter Register) :
Bộ đếm chương trinh PC (Program Counter) la thanh ghi đặc biệt để
chỉ cho CPU thứ tự lệnh hay dữ liệu tiếp theo cân thực hiện Các thanh ghỉ khác chứa các đữ liệu và địa chỉ
Thanh ghi PC sẽ chứa địa chỉ của các lệnh đang thực hiện của một chương trình, Chính vì vậy, trước khi vi điểu khiển thực hiện một chương trình thì thanh ghi PC phải được nạp một đữ liệu, đó chính là địa chỉ đầu tiên
của chương trình Trong quá trình thực hiện chương trình, vi điểu khiển tự động tăng nội dung thanh ghí PC để chuẩn bị đón các lệnh tiếp theo, tuy
" trong chương trình có lệnh có khả năng làm thay đổi nội dung thanh
gu PC,
Với vi điều khiển AT#951, thanh ghi PC có độ dài I6 bit và khi vỉ
điểu khiển được reset lại, thanh ghi PC sẽ tự động nạp cho mình giá trị
0000),
Thanh ghi trang thái chương trình (Program Status Register) :
Thanh ghi trạng thái còn gọi là thanh ghỉ cờ (Flag Register - thanh ghi F) dùng để lưu trữ kết quả của một số lệnh kiểm tra Việc lưu trữ kết quả của các lệnh kiểm tra giúp cho người lập trình có khả năng điều khiển chương trình theo
các nhánh khác nhau
Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa
chỉ 0D0H chứa các bit trạng thái như bằng tóm tắt sau :
24
Trang 3800H
PSW.4 | RSI D4H _ | Bit I chọn bank thanh ghỉ
PSW.3 | RS0 D3/1 | BiL0 chọn bank thanh ghi
00 = bank 0: địa chỉ 00H - 07H
01 = bank 1: địa chỉ 08H - 0FH
10 = bank 2: địa chỉ 10H - IFH
1I= bank 3: địa chỉ 18H - IFH
PSW.2 |OV D2H | Catan
PSW.I |- DIH |Dựưữ
PSW.0 DOH | C8 parity chin lẻ
® Cờ nhớ : Cờ nhớ Carry có tác dụng kép Thông thường nó được
dùng cho các lệnh toán học: C=I nếu phép toán cộng có tràn hoặc phép
toán trừ có mượn và ngược lại C=0 nếu phép toán cộng không tràn và phép
toán trừ không có mượn Ví dụ: nếu thanh ghi tích lũy A có giá trị FFH thì lệnh sau:
Bing 2.6 : Bảng mô tả các bit trạng thái
Trang 39ANL C, 25H
$ Cờ nhớ phụ : Khi cộng các số BCD, cờ nhớ phụ AC = I nếu kết quả
4 bit thấp trong khoảng OAH đến OFH Ngược lại AC = 0
$ Cờ 0 : Cờ 0 (F0) à 1 bit cờ đa dụng đành cho các ứng dụng của
người dùng
$ Các bit chọn bank thanh ghi truy xuất : Các bit chọn bank thanh ghỉ
(RS0 và RSI) xác định bank thanh ghi được truy xuất 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ụ 3 lệnh sau cho phép bank thanh ghi 3 và di chuyển nội dung của bank thanh ghỉ R7
(địa chi byte IPI) vào thánh ghi A:
$ Cờ tràn : Cờ tràn (OV) có tác dụng như sau : OV=1 sau L lệnh cộng
hoặc trừ nếu có một phép toàn bị tràn Khi cá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 định xem kết quả có
nằm trong tẩm xác định không Khi các số không dấu được cộng, bỉt OV có
thể được bỏ qua Các kết quả lớn hơn +127 hoặc nhỏ hơn -128 thì bìt OV=I
Ví dụ phép cộng sau khi bị tràn và bit OV được set: OFH + 7FH= 8E
Kết quả là 1 số có dấu 8EH được xem như -116, không phải là kết
quả đúng 142 vì vậy bit OV=l,
® Thanh ghi B :
Thanh ghỉ B ở địa chỉ 0F0H được dùng cùng với thanh ghỉ tích lũy A cho
| các phép toán nhân và chia Lệnh MUL AB sẽ nhân các giá trị không dấu 8 bit
| trong A va B rồi trả về kết quả 16 bit trong A (byte thấp) và B (byte cao) Lệnh
| DIV AB sé chia A cho B rồi trả về kết quả nguyên trong A và phần dư trong B
Thanh ghỉ cũng có thể được xem như thanh ghỉ đệm đa dụng Nó được địa chỉ
26
Trang 40hóa từng bịt với các địa chỉ bit từ F0H - F7H
® Con trỏ ngăn xếp (Stack Pointer Register - thanh ghi SP):
Con trỏ ngăn xếp là 1 thanh ghi 8 bit ở địa chỉ 81H Nó chứa địa chỉ
của byte dữ liệu hiện hành trên đỉnh của ngăn xếp Các lệnh trên ngăn xếp
bao gồm các lệnh 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ẽ làm giảm SP, Ngăn xếp của AT89C51 được
giữ trong RAM nội và giới hạn các địa chỉ có thể truy xuất bằng địa chỉ gián tiếp, chúng là I2 byte đâu của AT89C5I
Để khởi động SP với ngán xếp của AT89C5I chỉ có 32 byte vì địa chỉ cao nhất của RAM trên chip la 7FH SO đĩ giá trị SFH được nạp vào SP vì SP
sẽ tăng lên 60H trước khi cat byte dữ liệu đầu tiên
Khi Reset AT89CS1, SP sẽ mang giá trị mặc định là 07H và dữ liệu
đầu tiên sẽ được cất vào ô nhớ ngăn xếp có địa chỉ 08H Nếu phần mềm
ứng dụng không khởi động SP mót giá trị mới thì bank thanh ghỉ 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 để lưu trữ tạm thời và lấy lại dữ liệu, hoặc truy xuất ngầm bằng lệnh gọi chương trình
con (ACALL, LCALL) và các lệnh trở về (RET, RETI) để lưu trữ giá trị của
bộ đếm chương trình khi bắt đâu thực hiện chương trình con và lấy lại khi kết thúc chương trình con
® Con trỏ dữ liệu (Data Pointer — DPTR) :
Con trỏ dữ liệu (DPTR) được dùng để truy xuất bộ nhớ ngoài là một
thanh ghi 16 bit ở địa chỉ 82H (DPL: byte thấp) và 83H (DPH:byte cao) Ba
lệnh sau sẽ ghi 55H vào RAM ngoài ở địa chỉ 1000H:
Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A Lệnh thứ 2 dùng để
nạp địa chỉ của ô nhớ cẩn lưu giá trị 55H vào con trẻ dữ liệu DPTR Lệnh
thứ 3 sẽ di chuyển nội dung thanh ghi A (là 55H) vào ô nhớ RAM bên ngoài
27