Các mã lệnh của chương trình được đọc từ EPROM qua bus dữ liệu và được chốt vào thanh ghi lệnh bên trong AT89C51 để giải mã lệnh.. ä _ Các thanh ghi và các port xuất nhập đã được định v
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUONG DAI HOC SU’ PHAM KY THUAT
THÀNH PHÓ HÒ CHÍ MINH
HGMUIIE
ĐỎ ÁN TÓT NGHIỆP NGÀNH LUẬN VĂN TÓT NGHIỆP
DIEU KHIEN THIET BI BANG NHIET DO
DUNG VI DIEU KHIEN 8951
Trang 2PHẨNA GIỚI THIỆU
Trang 3: TRUONG THI BiCH NGA
THỨ VIỆN TRƯỜNG ĐH§PKT : NGUYEN BUC LINH
NGO BUC THANH
01301076 Lớp: CT200IKĐĐ
Trang 4BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRUONG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HỒ CHÍ MINH
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
NHIỆM VỤ CỦA LUẬN VĂN TỐT NGHIỆP
Ho va ten: NGUYỄN ĐỨC LINH
Lên để tài: ĐIỂU KHIẾN THIẾT BỊ BẰNG NHIỆT DO DUNG VI DIEU
KHIỂN 8951 & AC ICL711
2 Nội dung các phần thuyết minh:
GVHD: Trương thị Bích Ngà Ngày giao nhiệm vụ:
Trang 5- _ BẢN NHẬN XÉT
DO AN TOT NGHIEP CUA GIAO VIEN HUGNG DAN
Giáo viênhướngdẫn : TRƯƠNG THỊ BÍCH NGÀ
Họ và tên sinh viên : NGUYEN DUC LINH
NGÔ ĐỨC THÀNH Lớp : CT 2001 KĐĐ
Tên dé tai; ĐIỀU KHIỂN THIẾT BỊ BẰNG NHIỆT ĐỘ DUNG VI DIEU KHIEN
8951 6 ADC ICL27109
Nhận xét của giáo viên hướng dẫn :
Trang 6
TP Hồ Chí Minh, ngày tháng năm 2003
Giáo viên hướng dẫn
Trang 7- - BẢN NHẬN XÉT
ĐỒ ÁN TỐT NGHIỆP CỦA GIÁO VIÊN PHAN BIEN
Giáo viênhướngdẫn : TRƯƠNG THỊ BÍCH NGÀ
Họ và tên sinh viên : NGUYÊN ĐỨC LINH
NGÔ ĐỨC THÀNH
Lớp : CT 2001 KĐĐ
Tiên để tài : ĐIỀU KHIỂN THIẾT BỊ BẰNG NHIỆT ĐỘ DÙNG VI ĐIỀU KHIỂN
8951 & AIDC ICI.7109,
Nhận xét của giáo viên phần biện :
Trang 8
TP Hồ Chí Minh, ngày tháng năm 2003
Giáo viên phản biện
Trang 9LỜI MỞ ĐẦU
wees
Ngày nay, ngành kỹ thuật điện tử đã phát triển mạnh mẽ và đạt được những thành tựu to lớn Nó không chỉ tạo ra những chuyển biến đáng kinh ngạc trong lĩnh vực điện tử mà còn trở thành một phương tiện mũi nhọn thúc đẩy sự tiến bộ của
nhiều ngành khác Nhất là lĩnh vực điểu khiển tự động ,điện tử, tin học, các hệ
thống vi xử lý đã đem lại cho nhân loại biết bao ứng dụng
: Do mức sống ngày càng nâng cao, con người nẩy sinh ra ý định điều khiển nhiệt độ, bất nó phái phục vụ cho mục đích của mình.Như trong sinh hoạt hằng ngây, ngươi ta nhận ra rằng nhiệt độ lý tưởng cho mội trường sống là 25°C Thế thì
bằng mọi cách phải tạo ra được nhiệt độ 25°C và máy điều hòa nhiệt độ ra đời
Trong nganh cóng nghiệp, điều khiển nhiệt độ là một vấn để rất quan trọng
„như ngành luyện kirn cần phải đạt đến một nhiệt độ nào đó để kim loại nóng chảy,
và cũng cần đạt một nhiệt độ nào đó để ủ kim loại nhằm đạt được tốt các đặc tính
cơ học như độ bên đó dẻo, độ chống gỉ sét, Trong ngành thực phẩm, cần duy trì một nhiệt độ nao đó để nướng bánh, để nấu, để bảo quần,
Từ đó, điều khiến nhiệt độ trở thành một lĩnh vực của điều khiển tự động Và
theo đà phát triển của các học thuyết về điều khiển tự động, kết quả của quá trình điều khiển nhiệt độ ngày càng một tốt hơn
Nắm được tẩm quan trọng của vấn đề trên nhóm thực hiện tiến hành nghiên
cứu và thiết kế một hệ thống đo và điều khiển thiết bị để khống chế nhiệt độ tự
động, với mong muốn là giải quyết những yêu câu trên, và lấy đó làm để tài tốt nghiệp cho mình
Do đó những người thực hiện đã tiến hành thực hiện để tài * ĐIỀU KHIỂN
THIET BỊ BẰNG NHIỆT ĐỘ DÙNG VI ĐIỀU KHIỂN 8951 VA ADC ICL7109 ”
Trang 10Sĩ nhiều phía và nhất là trong thời gian thực hiện để tài,
; nén đễ tai đã được hoàn thành đúng thời gian qui định
Những người thực hiện để tài xin chân thành cẩm tạ đến :
Bộ món Điện — Điện tử cùng tất cả quí thầy cô trong khoa Điện đã giảng dạy những kiến thức chuyên
môn lâm cơ sở để thực hiện tốt luận văn tốt nghiệp và
đã tạo điều kiện thuận lợi cho em hoàn tất khóa học
Đặc biệtCô TRƯƠNG THỊ BÍCH NGÀ- giáo viên hướng dẫn để tài đã nhiệt tình giúp đỡ và cho em những lời chỉ dạy qúi báu, giúp em định hướng tốt trong
khi thực hiện đồ án
Tất cả bạn bè đã giúp đỡ và động viên trong
suốt quá trình làm đồ án tốt nghiệp
Tp H6 Chi Minh, tháng 7 năm 2003
Sinh viên thực hiện
NGUYỄN ĐỨC LINH
NGÔ ĐỨC THÀNH
-ẺẼ‹—=C
Trang 11MỤC LỤC
PHẦN A GIỚI THIỆU
Trang tựa
Nhiệm vụ đồ án
Nhận xét của giáo viên hướng dẫn
Nhận xét của giáo viên phản biện
PHAN B NOI DUNG
Chương! = DAN NHAP
2.2 Đối tượng nghiên cứu
2.3 Phương pháp và phương tiện nghiên cứu
2.4 Thời gian nghiên cứu
Chương3 GIỚI THIỆU VI ĐIỀU KHIỂN
3.1 Vi điểu khiển họ MSC -51
3.2 Giới thiệu cấu trúc phần cứng vi diéu khiển AT89C51
3.2.1 Giới thiệu tổng quát AT89C51
3.2.2 Sơ đồ khối vi diều khiển 3.2.3 Sơ đồ chân và sơ đồ logic 3.2.4 Chức năng và nhiệm vụ của các chân 3.2.5 Tổ chức bộ nhớ của vi điều khiển AT 89C51 3.2.6 Thanh ghi điểu khiển Port nối tiếp
Trang 12Chương 4 GIGI THIEU ADC ICL7109CPL
4.1 So lugevé các phương pháp biến đổi AD
4.1.1 Biến đổi AD dùng bộ biến đổi DA 4.1.2 Biến đổi Flash AD
4.1.3 Bộ biến đổi AD theo hàm dốc dạng lên xuống
4.1.4 Bộ biến đổi AD dùng chuyển đổi áp sang tần số
4.1.5 Bộ biến đổi AD tích phân hai độ dốc
4.2 Giới thiệu cấu trúc ADC ICL 7109CPL
4.2.1 Cấu tạo chân 4.2.2 Mô tá các chân
4.2.3 Quá trình biến đổi AD
6.2.3 Thermistor 6.2.4 ICcảm biến
Chương7 THIẾT KẾ PHẨN CỨNG & PHẨN MỀM
Trang 14LIET KE CAC BANG
Bảng 3.1 Bảng so sánh các IC trong họ MCS-5I
Bảng 3.2 Bảng chức năng của Port 3
Bảng 3.3 Bang tóm tắt vùng nhớ của AT 89C51
Bảng 3.4 Bắng mô tả các bit trạng thái
Bang 3.5 Bang tóm tắt thanh ghi điều khiển Port nối tiếp
Bang 3.6 Bang các Mode hoạt động
Bang 3.7 Bang tom tắt tốc độ Baud
Bang 3.4 Thanb ghi TMOD cia Timer
Bang 3.9 Bang mé ta céc Mode cha Timer
Bang 3.10 Bang mé t4 thanh ghi diéu khién TCON
Trang 15LIỆT KÊ CÁC HÌNH
Hình 3.1 Sơ đồ khối Vi điều khiển AT 89C51`
Hình 3.2 Hình sơ đồ chân vi điều khiển AT 89C51
Hình 3.3 Bộ nhớ ngoài
Hình 3.4 Sơ đồ khối của Port nối tiếp
Hình 3.5 Giản đồ thời gian của Port nối tiếp
Hình 3.6 Thanh ghi Port nối tiếp
Hình 3.7 Mô tả cách nối AT 89C51 với bộ nhớ ngoài
Hình 3.8 Giấn đỗ chu kỳ đọc bộ nhớ chương trình ngoài của AT89C51
Hình 3.9 Truy xuất dữ liệu ngoài
Hình 3.10 Giản dé chu ky đọc bộ nhớ dữ liệu ngoài của AT 89C51
Hình 4.1 Sơ đồ biến đổi AD dùng bộ biến đổi DA
Hình 4.2 Sơ đá biến đối AD dùng bộ biến đổi DA
Hình 4.3 Sơ đó mạch và giải thuật
Hinh 4.4 Sơ đồ biến đối Flash AD
Hình 4.5 Cấu tạo chân ICL7109
Hình 5.I Sơ để n OPO7
Hình 5.2 Sơ đồ chân 74138
Hình 6.1 Sơ đổ khối hệ thống đo lường số
Hình 7.1 Sơ đồ khối của hệ thống
Hình 7.2Khối xử lý trung tâm
Hình7.3 Khối hiển thị
Hình 7.4Khối biến đổi tương tự sang số
Hinh 7.5 Khối cảm biến
Hình 7.6 Khối bàn phím
Hình 7.7 Khối công suất
Hình 7.8 Khối nguồn
Hình 8.1 Sơ đồ nguyên lý
Hình 8.2 Sơ đồ mạch in khối xử lý trung tâm,ADC &cảm biến
Hình 8.3 Sơ đồ mạch in khối hiển thị
Hình 8.4 Sơ đô mạch in khối công suất
Trang 16PHẨNB NỘI DUNG
Trang 17CHƯƠNG1 DẪN NHẬP
Trang 18er en nT
Chương 1 : DẪN NHẬP
1.1 ĐẶT VẤN ĐỀ
Lĩnh vực điện tử-tin học ngày càng phát triển và đã được ứng dụng nhiều vào
trong thực tế để nâng cao năng xuất lao động Với sự ra đời của các bộ vi điều khiến, các vi mạch tích hợp, vi mạch lập trình Nhờ vậy, những người thiết kế”
mạch, người học, đặc biệt là sinh viên chuyên ngành Điện — Điện tử có những thao
tác đơn giản hơn trong quá trình kết nối mạch điện tử
Trong nhiều lĩnh vực sản xuất công nghiệp hiện nay, nhất là ngành công
nghiệp luyện kim, chế biến thực phẫm vấn để đo , điểu khiển thiết bị để khống chế nhiệt đô đác biệt được chú trọng đến vì nó là một yếu tố quyết định chất lượng
sản phẩm Nấm được tâm quan trọng cửa vấn để trên nhóm thực hiện tiến hành nghiên cứu và thiết kế mót hệ thống đo và điều khiển thiết bị để khống chế nhiệt độ
tự động, với mong muốn la giải quyết những yêu cầu trên, và lấy đó làm để tài tốt
nghiệp cho mình
Do đó những người thực hiện đã tiến hành thực ) hiện để tài * ĐIỀU KHIỂN
THIẾT BỊ BẰNG NHIỆT ĐỘ DÙNG VI DIEU KHIEN 8951 VA ADC ICL7109 ”
1.2 TÂM QUAN TRỌNG CỦA ĐỀ TÀI :
Ngày nay, kỹ thuật điện-điện tử đã phát triển khá mạnh mẽ, đã thúc đẩy sự
phát triển nên kinh tế toàn câu làm tiền để cho các lĩnh khác phát triển Đặt biệt là
trong lĩnh vực viễn thông cũng như trong việc điều khiển tự động , chẳng hạn như
việc điều khiển thiết bị bằng nhiệt độ
Hiện nay có rất nhiều hệ thống điểu khiển thiết bị bằng nhiệt độ như dùng vi
mach và vi diéu khiển 8951 kết hợp với ADC 0809( 8bit), cảm biến LM335
Những người thực hiện để tài muốn tăng độ chính xác hơn nữa đối với hệ thống này
này Muốn vậy dùng cẩm biến có sai số thấp kết hợp với ADC có số bit cao, nhưng cảm biến sai số thấp có giá thành cao -> không kinh tế Nên những người thực
_hiện để tài dùng ADC 12bit kết hợp LM335_ Giá thành ré -> phù hợp
Do đó việc thiết kế hệ thống này là một nhu cầu hết sức cần thiết và đây chính là mục tiêu để những người thực hiện thiết kế hệ thống này
Trang 19- Chưa đặt trước được độ trôi nhiệt độ của thiết bị
Do đó mà chúng em chưa viết chương trình cho phần này, do thời gian có hạn
nên chúng em không chuẩn bị đủ kiến thức, nhưng nếu có đủ thời gian chúng cm
hứa sẽ thi công hoàn chỉnh hê thống này
1.4 MỤC DÍCH NGHIÊN CỨU :
“Trén thực tế nhú câu đo và khống chế nhiệt độ cách chính xác là rất cần thiết nó được ứng dụng nhiều trong thưc tế, đây cũng là một đề tài còn khá mới tuy có một
sở anh chị đi trước có nghiên cứu nhưng chưa đi vào chỉ tiết cụ thể, có thể xem dây
là một mô hình có thể đưa vào giảng dạy Cũng như thực tế trên thị trường của chúng ta rất cần mã chita có Đề tài “ ĐIỀU KHIỂN THIẾT BI BANG NHIET DODUNG VI PILL KHIỂN 8951 VÀ ADC ICL7109 * ra đời sẽ đáp ứng được phần nào cho thị trưởng của chúng t4
Trang 20CHƯƠNG2_ CƠ SỞ LÝ LUẬN
Trang 21"“ NHRNEHHNA AE EPPEBMOHHIVEĐEEBD CA TẠI CA RE EEEODREERRRNEPSHTHSPDNVPDHHPNPPĐHVRNWHHNPPTVPSEEVVONHHRVPAVOIPVPIP KP ĐẾN HH ĐỚN TỔN CÀ ĐA AI ỌAODRRBERRDCUOEAQGBAAQugaagya
Chương2: CƠ SỞ LÝ LUẬN
2.1 DẦN Ý NGHIÊN CỨU
e Các phương pháp đo nhiệt độ
e Giới thiệu vi điều khiển 8951 , ADC ICL7109CPL
e Thiết kế mô hình đo- hiển thị và khống chế thiết bi
e Thiết kế board công suất giao tiếp với thiết bị bên ngoài
© Lap tinh phần mềm cho vi điều khiển
2.2 DỐI TUỢNG NGHIÊN CỨU
Nghiên cứu chủ yếu là mồ hình đo nhiệt độ và điều khiển thiết bị bên ngoài
2.3 PHƯƠNG PHÁP NGHIÊN CỨU VÀ PHƯƠNG TIỆN NGHIÊN CỨU
2.3.1 Phương pháp
"Tham khảo ti liệu: ủm hiểu các tài liệu để cập đến biến đổi ADC, van dé đo- hiển thị nhiệt độ , giao tiếp với các thiết bị bên ngoài và các tài liệu về đặc điểm kỹ
của ví điều khiển AT 89C51
Thực nghiệm: viết chương tình thực nghiệm trực tiếp trên vi điều khiển
2.3.2 Phương tiện
Máy tính cá nhần
Card nạp ví điều khiển
Các testboard thực hiện việc thử nghiệm
2.4 THỜI GIAN NGHIÊN CUU
Nhóm nghiên cứu đã thực hiện để tài từ ngày đăng ký, công việc được phân bố
e Tuần 1: Lập để cương tổng quát
e Tuần 2: Thu thập tài liệu
e Tuần 3: Lập để cương chỉ tiết
e Tuần 4, 5, 6, 7: Triển khai để cương và đánh máy
e Tuần 8: Sửa chữa định dạng toàn bộ để tài
e Tuần 9:In ấn
Trang 22CHƯƠNG 3 GIỚITHIỆU VI DIEU KHIEN
Trang 23_SHETERSAREORSOVGHSEVS 42 00030H000A010BSPH SA 514B) 2NVUHHMRS04244408//80/4088/2808P
St hoiitN0A01000001030/4181009000S8.E01928010/205/7H12T01/”E1S LEE EEA,
Chương 3: GIỚI THIỆU VI ĐIỀU KHIỂN
3.1 VI DIEU KHIEN HQ MCS-51
MCS-51™ là họ vi diéu khiển do hang INTEL sản xuất vào đầu những năm 80 và ngày nay đã trở thành một chuẩn trong công nghiệp Bắt đầu từ IC tiêu biểu là 805
đã cho thấy khả năng thích hợp với những ứng dụng mang tính điều khiển Việc xử
lí trên byte và các phép toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội Tập lệnh cung cấp một bản tiện
dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia Nó cung cấp
những hỗ trợ mở rộng on-chip ding cho những biến một bit như là kiểu dữ liệu riêng
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í
Bang 3.1 ang so s4nh cde IC trong họ MCS-51”M ;
TEN LINH | #ONHOCHUONG | BONHG DU LIBU TIMER
3.2 GIỚI THIỆU CẤU TRÚC PHÂN CỨNG VI ĐIỀU KHIỂN AT89C5I :
3.2.1 Giới thiệu tổng quát AT89C51:
Do họ MCS-51TM đã trở thành chuẩn công nghiệp nên có rất nhiều hãng sản xuất ra
nó, điển hình là ATMEL Corporation Hãng này đã kết hợp rất nhiều tính năng dựa trên nền tầng kỹ thuật của mình để tạo ra các vi điều khiển tương thích với MCS-
51M nhưng mạnh mẽ hơn
AT89C51 1a mét vi điều khiển 8 Bit, chế tạo 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 bộ 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 BiL với một PEROM trên một Chip đơn, ATMEL AT89C51 là một vi điểu khiển
Trang 241ä29000 0T SA 1G
mạ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á
cả đối với nhiều ứng dụng vi điều khiển
AT89C5I 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 I/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, 1 mạch dao động tạo xung Clock và bộ dao độ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és (IDLE MODE) sé ditng CPU trong khi vin cho phép RAM, timer/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
AM 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 khi lcset hệ thống
Các đặc điểm của AT#9C5] được tóm tắt như sau:
0 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
o Tan s6 hoat dong ur: OHz dén 24 MHz
3 mức khóa bộ nhớ lập trình
oa 2 bO Timer/counter 16 Bit
128 Byte RAM ndi
4 Port xuất /nhập L/O 8 bịt
Giao tiếp nối tiếp
Trang 25
S000100110/0//000//500.0/0/7720H0001003H4018106000biihihfPHPHMEHIISPRPCNEPTEPREE
3.2.2 Sơ đồ khối IC vi điều khiển AT89C51
INTO INTT
Timer 2 [—— Timer 1
Trang 26£30 ATSOCSI EA/VEE 77 [gy ADT PED " ALE/PROG
2 RDN P37 P27 AIS
Hình 3.2 Sơ dỗ chan Vi diéu khién AT 89C51
3.2.4 Chức năng và nhiệm vụ các chân của AT 89C51
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ỉ
3.2.4.1 Các Port :
* Port 0 : Port0 là port có 2 chức năng ở các chân 32-39 của AT89C51 Trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường 1/0 Đối 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 1 Ja port I/O trên các chân 1-8 Các chân được ký hiệu P.0,
PI.1, P1.2, có thể dùng cho giao tiếp với các thiết bị ngoài nếu cần Port 1 không
có chức năng khác, vì vậy chúng chỉ được dùng cho giao tiếp với các thiết bị bên ngoài
Trang 27CN NA RA ĐA NA ERAREBIEIPRIPRAIIBHUBEIVRDPItRdUH00iAUđUGG03U0M2H80084000/9/4H350.U90M, MUaMS/3U0//44/8HU8ĐIE
a
* Port 2 : Port 2 là port có tác dụng kép trên các chân 21-28 được dùng như các
đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở
rộng
* Port 3: Port 3 1a port c6 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 :
Bảng 3.2 Bảng chức năng của Port 3
BịL |Tên | Chức năng chuyển đổi
P3.0 RXD Ngõ vào đữ liệu nối tiếp
P3 |TXI) | Ngõ xuất dữ liệu nối tiếp
P32] INTO\| Ngõ vao ngất cứng thứ 0
P3.3 | INTI\ | Ngo vao ngất cứng thứ I
p3.4| TO Ngõ vào của TIMI2R/COUNTER thứ 0
P35 | TE Ngõ vào của TIMER/COUNTER thứ 1
P3.6 |WR\_ | Tín hiệu ghi dữ liệu lên bộ nhớ ngoài
P3.7|JRD\ | Tín hiệu đọc bộ nhớ đữ liệu ngoài
3.2.4.2 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
PSEN ở 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 ghi lệnh bên trong
AT89C51 để giải mã lệnh Khi AT89C51 thi hành chương trình trong ROM nội PSEN
sẽ ở mức logic 1
® Ngõ tín hiệu điều khiển ALE (Address Latch Enable) : Khi AT89C51
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 6 chân thứ 30 dùng làm tín hiệu
điểu khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng, với IC
chốt
Tín hiệu ra ở chân ALE là một xung trong khoảng thời gian PortÔ dóng vai uò
là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động
Trang 28
%2/0180A000400/A0/30150 800
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 AT89C51
® Ngõ tín hiệu EA\ (External Aceẻss) : Tín hiệu vào EA\ ở chân 31 thường
được mắc lên mức 1 hoặc mức 0 Nếu ở mức 1, AT8§9C51 thi hành chương trình từ
ROM nội trong khoảng địa chỉ thấp 4k byte Néu ở mức 0, AT89C5I 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
ATSICSI 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
phí bên trong được nap những giá trị thích hợp để khởi động hệ thống Khi cấp điện
@ Chan 40 (Vcc) được nối lên nguồn SV
3.2.5 Tổ chức bộ nhớ của vi điều khién AT89CSI :
Trang 29
Bảng 3.3 Bảng tóm tắt vùng nhớ của 8951
Bit Address
27|26 |25 |24 |23 |22 2120] 8D |not bit address
IF] 18/1D/1C [1B] 1A|19|18] 8C |not dit address
17| 16 |15 [14 [13 112 |11 [10] 8B |not bit address
or|oE|oD|0C |0B |0A |09 |08 | 8A |not bít address
07 [06 |0s |o4 |03 |02 |01|00| 89 |not bịt address
Bank 3 $8 |SF |SE|8D|SC |&B |§A |89 |88
Bộ nhớ trong AT89C51 bao gồm ROM và RAM RAM trong AT89C5I 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 biL, các
bank thanh ghi và các thanh ghi chức năng đặc biệt
Trang 30ä _ 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 ATS9C5I có được phân chia như sau :
Các bank thanh ghi có địa chỉ từ 00H đến 1FH,
- RAM địa chỉ hóa từng bịt có địa chỉ từ 20H đến 2FH
- RAM đa dung tư 30H đến 7EFH
- Các thanh ghi chức náng đặc biệt từ 80H đến FFH
3.2.5.1 RAM đa dụng z
Mặc dù trên hình vẽ cho thấy 80 byte đa dụng chiếm các địa chỉ từ 30H đến
7FH, 32 byte dưới từ 92H đến IFH cũng có thể được dùng với mục đí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ỉ 5FH của RAM
nội vào thanh ghi tích lũy (A), lệnh sau sẽ được dùng :
Trang 31NON NNHENEAEHPNHHHANNHISĐPSEIHIHHIPRRGGHC2MJPSBPIPPSHIĐRMSTUBHE.DIESPGGOHHUHEIH
3.2.5.2 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 ghi 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 bit làm đơn giản phần mềm xuất nhập từng
bịt
128 bịt truy xuất từng bịt này cũng có thể truy xuất hư các byte hoặc như các
bịt phụ thuộc vào lệnh được dùng, Ví dụ để đặt bit 67 ta dùng lệnh sau :
32 byte thấp của bộ nhớ nội được dành cho các bank thanh ghi Bộ lệnh
AT89C51 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 ghi nay 6 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:
MOV A, RS
Đây là lệnh 1 byte dùng địa chi thanh ghi Tuy nhiên yêu cầu trên có thể thi hành bằng lệnh 2 byte dùng dia chi trực tiếp nằm trong byte thứ 2:
MOV A,05H
Các lệnh dùng các thanh ghỉ 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 ghi nên tại một thời điểm chỉ có một bank thanh ghỉ được
truy xuất bởi các thanh ghi từ R0 đến R7 Để chuyển đổi việc truy xuất các bank
thanh ghi ta phải thay đổi cdc bit chon bank trong thanh ghỉ trạng thái Giả sử bank thanh ghi 3 dang đượ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
Trang 32KHẢ AAẢAÝŸÍóÓ oO SEE
LETTE ETE
3.2.5.4 Các thanh ghỉ chức năng đặc biệt :
Các thanh ghi trong một vị điều khiển gồm có : thanh ghi ứch lũy
(Accumulator Register), thanh ghi PC (Program Counter Register), thanh ghi con tré ngan xép (Stack Pointer Register), thanh ghi trang th4i (Status Register), thanh
ghi dia chi (Progarm Address Register), thanh ghi lénh (Instruction Register), c4c thanh ghi thong dung
# Thanh giủ tích lũy (thanh ghỉ A - Accumulator Register) :
"Thanh ghi A là mội 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 phí A, nhưng cân lưu ý rằng hầu hết sau khi thực hiện phép
tính, AL.D thưởng gởi đữ liệu vào thanh ghi A làm dữ liệu trong thanh ghi A trước dó
bị mất
Thanh ghi A thưởng lam trung gian để trao đổi dữ liệu của vi điều khiển với
các thiết bị ngoại vỉ
Với ví điều khiến AT89C51, thanh ghi A có độ dài 8 bit
# Thanh ghỉ PC (Program Counter Register) :
Bộ đếm chương trình PC (Program Counter) là thanh ghi đặc biệt dé chi 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 dữ
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 dữ 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 nhiên trong chương trình có lệnh có khả
năng làm thay đổi nội dung thanh ghi PC
Với vi điều khiển AT89C51, thanh ghi PC có độ dài 16 bit và khi vi điều khiến
dude reset lại, thanh ghi PC sẽ tự động nap cho mình giá trị 00000
® Thanh ghỉ trạng thái chương trình (Program Status Register) :
Thanh ghi trạng thái còn gọi là thanh ghi cd (Flag Register - thanh ghi F) dùng dé
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
l39/9008t9tdotteeteotteetoceoosceeyorin
Trang 33Ợ0RỢAERNEANinttionivfHHSNHSI0010RHIRMHMI3810IPHRMMB.ĐREMM/i,iS08/0/ANI140HIUTHGU ng
Thanh ghi trạng thái chương trình PSW (Program Status Word) ở địa chỉ 020H
chứa các bit trạng thái như bắng tóm tắt sau :
Bảng 3.4 Bảng mô tả các bit trạng thái
PSW.4 RSI D4H Bit 1 chon bank thanh ghi
SW.3 RS0 D3H BiL0 chọn bank thanh ghi
00 = bank 0: địa chỉ 00H - 07H
01 = bank 1; địa chỉ 08H - OFH
| 11 = bank 3: dia chi 18H - IFH
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:
ADD A, #1
Phép cộng nay cé tran nén bitC = 1 và kết quả trong thanh ghi A = 00H
Cờ nhớ có thể xem như là thanh ghi 1 bit cho các lệnh luận lý thi hành trên
biL Ví dụ: lệnh sau sẽ AND bit 25H với cờ nhớ và đặt kết quả trở vào cờ nhớ;
} Các bit chon bank thanh ghi truy xuất : Các bit chọn bank thanh ghi
(RS0 và RS1) 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 ghi R7 (địa chỉ byte IFH) vào
thanh ghi A:
ee Si
Trang 34eh TT có CÓ CÓ EEEPTERLDEELER LEE SEALER AIT
SETB RS1
SETB RSO
MOV A, R7
Khi chương trình được dịch sang mã máy cho AT89C51 thi hành, các địa chỉ
bit được thay thế cho các ký tự RS1 va RSO Vay lệnh SETB RSI sẽ giống như
SETB D4H
° Cờ tràn : Cờ tràn (OV) có tác dụng như sau : OV=1 sau I 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 nay để 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, biL OV có thể được bỏ qua Các
kết quả lớn hơn +127 hoác nhồ hơn -128 thi bit OV=1 Vi du phép cộng sau khi bị
trần và bịt QV được set: 0H + 7PH= 8E
Kết quả la 1 số œ dấu #EH được xem như -116, không phải là kết quả đúng
142 vi vay bit OV=1
¢ Thanh ghi B:
Thanh ghi B ở địa chỉ OFOH dude ding cùng với thanh ghi 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 và B rồi trả
về kết quả 16 bit trong A (byte thấp) và B (byte cao) Lệnh DỊV AB sé chia A cho B tô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 ghi đệm đa dụng Nó được địa chỉ hóa từng bít với các địa chỉ bit từ F0H - F7H
¢ Con tré ngdn xép (Stack Pointer Register thanh ghi SP):
Con trổ ngăn xếp 1a | thanh ghi 8 bit 6 dia chi 81H N6 chifa dia chi của bytc
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 AT89C5L đượ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à 128 byte dau của AT89C51
Để khởi động SP với ngăn xếp cla AT89C51 chỉ có 32 byte vì địa chỉ cao nhất của RAM trên chip là 7FH Sở dĩ giá tri SFH được nạp vào SP vì SP sẽ tăng lên 60H trước khi cất byte dữ liệu đầu tiên
Khi Reset AT89C51, 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 ghi 166 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 trinh cop LACS ác lệnh trở về
Trang 35
my
(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é dit ligu (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 vao RAM ngoai G dia chi 1000H:
MOVX @DPTR,A
Lệnh đầu tiên dùng để nạp 55H vào thanh ghi A Lệnh thứ 2 dùng để nap dia
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 có địa chỉ chứa trong
DPTR (đà 1000H)
@ Cac thanh ghi Timer:
AT89CS51 có chứa 2 bộ định thời/đếm 16 bit được dùng cho việc định thời hoặc
đếm sự kiện Tímer9 ở địa chi 8AH (TLO : byte thấp) và §CH (TH0 : byte cao) Timerl ở địa chỉ SðH (TLI : byte thấp) và 8DH (THỊ : byte cao) Việc khởi động Timer được set bởi Timer Mode (TMOD) ở địa chỉ 89H và thanh ghỉ điều khiển (TCON) ở địa chỉ 58H Chỉ có TCON được địa chỉ hóa từng bit
® Các thanh ghí Port nối tiếp :
AT§9C51 chứa 1 Port nối tiếp dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy nh, modcm hoặc giao tiếp nối tiếp với các IC khác (cá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) 6 địa chỉ 99H sẽ dữ cả 2 dữ liệu truyền và dữ liệu 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 khác nhau
được lập trình qua thanh ghi điều khiển Port nối tiếp (SCON được địa chỉ hóa từng
bit 6 dia chi 98H)
Port nối tiếp của 8951 có thể hoạt động trong các mode riêng biệt trên phạm
vi cho phép của tần số Chức năng chủ yếu của Port nối tiếp là thực hiện sự chuyển đổi song song thành nối tiếp cho dữ liệu ra và sự chuyển đổi nối tiếp thành song
song cho dữ liệu vào,
Phần cứng truy xuất tới Port nối tiếp qua các chân TXD (P3.1) và RXD
Trang 36gill thanh ghỉ chức năng đặc biệt cung cấp cho phần mém truy xual dén Port
nối tiếp là SBUF va SCON Thanh ghi đệm nối tiếp (SBUF) ở địa chỉ 99H có 2 chức
năng: ghi dữ liệu lên thanh ghi SBUF thì dữ liệu đó được truyền đi, nếu hệ thống,
khác gởi dữ liệu đến thì sẽ được lưu vào thanh ghỉ đệm ˆ :
Sơ đồ khối của Port nối tiếp như sau :
Hình 3.4 Sơ dé khối của Port nối tiếp
Thanh ghi diéu khiển Port nối tiếp SCON (98H) là thanh ghi được định vị bit
bao gồm các trạng thái và các bit điểu khiển Các bit điểu khiển set mode ctia Port
nối tiếp, còn các bit trạng thái cho biết sự kết thúc việc thu phat | ki tự Các bit trạng thái có thể được kiểm tra trong phần mềm hoặc có thể lập trình để sinh ra sự ngất cách phù hợp Tân số hoạt động của Port nối tiếp hoặc tốc độ BAUD có thể
được lấy từ dao động trên Chip 8951 hoặc thay đổi Nếu một tốc độ Baud thay đổi
được dùng, thì Timer cung cấp 1 tốc độ aud ghi giờ và phẩi được lập trình một cách thích hợp
3.2.6 Thanh ghi diéu khién port n6i tiép (serial port control register) :
Mode hoạt động của Port nối tiếp 8951 được set bdiviéc ghỉ lên thanh ghi
mode của Port nối tiếp SCON ổ địa chỉ 29H
Bảng tóm tắt thanh ghỉ điều khiển Port nối tiếp SCON như sau :
Bảng 3.5 Bảng tóm tất thanh ghỉ điều khiển Port nối tiếp —
Bit lỆ Địa chỉ Mô tả hoạt động
§CON.7 SM0 9FH Bit 0 cla mode Port nối tiếp
Trang 37
acacia
SCON.6 SMI 9EH Bit 1 cửa mode Port nối tiếp
SCON.S5 SM2 9DH Bit 2 cia mode Port noi tiếp Cho phép sự
truyền của bộ xử lý da kênh ở mode 2 và 3; RI
Sẽ không tích cực nếu bịt thứ 9 đã thu vào là 0 SCON.4 REN 9CH REN=1 sẽ cho thu kí tự
SCON.3 TB8 9BH Phát bit 8 Bit 9 phat trong mode 2 và 3, nó được
set hoặc xóa bởi phần mềm
S§CON.2 RB§ 9AH Thu bit 8, bit 9 thu
SCON.1 TI 99H Cờ ngắt phát Được set khi kết thúc sự truyền kí
tự và được xóa bởi phần mềm
SCON.O RE 9811 Cờ ngắt thu Được set khi kết thúc sự thu và
được xóa bởi phần mềm
3.2.7 Cae mode hoat ding (mode of operation) :
Modc hoạt động
0 0 9 Thanh ghi dịch Cố định (tần số dao động f/12)
1 0 2 UART 9 bit Cố định (tần số dao động f/12 or f/64:
Trước khi dùng Port nối tiếp, SCON phải được gần đúng mode Ví dụ để khởi gán Port nối tiếp MOIDE 1 (SM0/SMI = 0/1), cho phép thu (REN =l), và set cờ ngắt của việc phát sẵn sàng hoạt động (TI = 1), ta dùng lệnh sau : MOV SCON, # 01010010b
Port nối tiếp của 8951 có 4 mode hoạt động tùy thuộc theo 4 trạng thái của
§M0/SMI
Ba trong bốn mode cho phép truyền sự đồng bộ với mỗi kí tự thu hoặc phát sẽ được bố trí bởi-bit Start hoặc bit SI0P
3.2.7.1 Thanh ghi dich 8 bit (MODE 0):
Để đặt Port nối tiếp vào mode 0 thì 2 bit của SCON là SM0/SMI = 0/0 Dữ
thoát ra thông qua RXD và TXD truy xuất ra xung clock đã
dịch 8 bit được phát hoặc thu với trọng số nhỏ nhất trước tiên Tốc độ Baud được cố
định 6 tan số Ms tần số dao động trên Chỉp
Lệnh phát được khởi động bằng bất kỳ lệnh nào mà nó ghỉ dữ liệu vào SBUF
Dữ liêu được dịch ra ngoài trên đưỡng RXD (P3.0) với các xung nhịp đuợc gởi ra
đường TXD (P3.0).Mỗi bịt phát là gi
mỗi chu kỳ máy, tín hiệu clock dua x
á trị rên chân RXD bởi một chu kỳ máy Trong uống thấp S3P1 và quay lại cao trên S6P!
Trang 38
Sự thu được khởi động khi bit cho phép thu REN = 1 và bit ngắt sự thu RI = 0
Nguyên tắc chung là set bit REN ở đầu chương trình để khởi động Port.ndi tiếp, và
sau đó xóa bit RI để bắt đầu hoạt động nhập vào.Khi RI được xóa, các xung clock
được ghỉ ra đường TXD để bắt đầu chu kỳ máy kế tiếp và dữ liệu ngoài được ghi giờ
trong đường RXD
Biểu đồ thời gian của dữ liệu vào Port nối tiếp bởi mode 0 như sau :
| le One maching cycle
xz.LƒLfL†L†L†L†L†L†L
đAU)
Hình 3.5 Giản đổ thời gian của Port nối tiếp ở Mode 0
Một ứng dụng cu thể của thanh ghí dịch là nó tham gia vào khẩ năng xuất dữ
liệu của 8951 Mót íC thanh ghi dịch từ nối tiếp thành song song có thể được nối
đến các đường TXD và RXI của 8951 để cung cấp 8 đường ra
Hình 3.6 Thanh ghi Port nối tiếp
3.2.7.2 Thu phát bất đông bộ 8 bit với tốc độ Baud thay đổi (MODEL) :
Trong mode 1, Port nối tiếp hoạt động như bộ thu phát bất đồng bộ UART 8
bit có tốc độ Baud thay đổi UART là một thiết bị mà nó thu và phát dữ liệu nối
tiếp với mỗi ký tự dữ liệu được đặt trước bằng 1 bit StarL (thấp) và được theo sau
bằng 1 bit Stop (cao), bit parity thỉnh thoảng được lồng vào giữa bit dữ liệu sau cùng
va bit Stop
Hoạt động thiết yếu của UART là bí
tiếp và biến đổi dữ liệu từ nối tiếp sang song song
Trong mode 1, 10 bit được phát trên đường TXD hoặc được thutrén đường
RXD.Những bit đó la : 1 bit start (luén =0 ) ,8 bit data (Isb dau tién), va 1 bit stop
(luôn =1) Để đi vào hoạt động thu, bit Stop được đưa vào RB8 trong SCON
Trong 8951, tốc độ Baud được định bởi tốc độ tràn của Timer 1
én déi dif liéu xuất từ song song sang nối
Trang 39
Việc phát được khởi động bằng cách ghi lên thanh ghi đệm nối tiếp SBUI',
nhưng nó không thực sự bắt đầu cho đến khi sự tràn kế tiếp của bộ đếm chia l6
được cung cấp tốc độ Baud của Port nối tiếp Dữ liệu dịch được xuất ra trên TXD
bắt đầu với biL start theo sau là 8 bit data và sau cùng là bit stop Các cờ phát TI
đượs set ngay tức thời cùng lúc với sự xuất hiện cửa bit Stop trên chân TXD
Sự thu được khởi động bởi sự chuyển đổi từ 1 sang 0 trên đường RXD Bộ đếm
chia 16 được reset lập tức để sắp xếp các sự đếm với sự đưa tới các bit mới được lấy mẫu trong 4 bit của sự đếm
Bộ thu chứa “Sự kiểm ta biL Start sai” Nếu sai thì bộ thu được reset và quay
lại rạng thái Idlc giống như sự phát từ 1 sang 0 kế tiếp
Giả sử bịt Starl hợp kiểm tra hợp lệ và sự thu ký tự tiếp tục, bit Start được nhảy quầng và & bil data dude ghi vao thanh ghi dịch Port nối tiếp
Khi tất cả # hit được ghi giờ vào thanh ghi dịch thì 3 điều sau sẽ xảy ra :
Ý Bịt thứ 9 (bít Suap) được đếm thời gian vào trong RB8 trong SCON
Ý Thanh ghi đém Port nối tiếp SBUF được LOAD vào nó 8 bit data
Ý Cỡ ngắt thu RI duge set
Tuy nhién, điều này thường xấy ra nếu hai điều kiện sau tổn tại :
e RI=Ova
© SM2= 1 va bit Stop của bít thu = 1 hoặc SM2 =0
Sự yêu cầu RI = 0 dam bdo phan mềm đã đọc ký tự trước (và xóa RI) Điều
kiện thứ haiđưa ra phức tạp, nó chỉ ứng dụng trong mode truyén cửa bộ xử lý đa
kênh
3.2.7.3 Sự thu phát bất đông bộ 9 bit có tốc độ Baud cố định (MODE 2) : Khi SMI = 0 và SM0 = I thì Port nối tiếp hoạt động ở mode giống như UART
9 bit có tốc độ Baud cố định Có 11 bit được phát hoc thu : 1 bit Start, 8 bit data, |
bit data thứ 9 được lập trình va 1 bit Stop Trên sự phát, bit thứ 9 được đặt vào TB8
của §CON (có thé bit parity) Trên sự thu, bit thứ 9 được đặt vào bit RB8 cửa
SCON Tốc độ Baud trong mode 2 bung 1/12 hoặc 1/64 tân số dao động trén Chip
3.2.7.4 Sự thu phát bất đông bộ 9 bit có tốc độ Baud thay đổi (MODE 3) :
Khi SM1/SM0 = 1/1 thì Port nối tiếp hoạt động ở mode 3 giống như UART 9
biL có tốc độ Baud thay đổi Mode 3 tương tự mode 2 ngoại trừ tốc độ Baud được lập
5 Timer Sy that céc mode 1, mode 2, mode 3 rất giống
tốc độ Baud (mode 2 cố định, mode 1 va mode 3
6 8 bit data, mode 2 va mode 3 có 9 bit data)
trình và được cung cấp bởi bộ
nhau, những điểm khác nhau ở
thay đổi) và số bit data(mode 1c t K ita
3.2.8 Quá trình khỏi động và truy xuất các thanh ghỉ của port nối tiếp :
3.2.8.1 Cho phép bộ thu (Receive Enable) :
Trang 40
Bit cho phép thu REN trong thanh ghi SCON phải được set bởi phần mềm để
cho phép sự thu các ký tự, Điểu này thường được làm ở đầu chương trình khi các
Port nối tiếp và các Timer được khởi động,
Ta có thể động bằng lệnh : =
SETB REN hoặc MOV CON, # XXXIXXXXB
3.2.8.2 Bit data thi 9 (the9" data bit) :
Bit data thứ 9 được phat tong mode 2 va mode 3 phải được LOAD vào TB8
bởi phần mềm, còn bit data thứ 9 được thu thì đặt trong RB8
Phần mềm có thể (hoặc không) đòi hồi một bit data thứ 9 tham gia vào những
chỉ tiết kỹ thuật của thiết bị nối tiếp với điều kiện màsự truyền data được thành lập
3.2.8.3 Hùt kiếm tra chẵn lễ Parity
Cách tổng quát dung chung bịt data thứ 9 là cộng Bit Parity vào một ký tự
BìL P (Parity) trong uf trang th4i chương trình PSW sẽ được set hoặc xóa với mọi chủ kỳ máy để tianh lập bít Parity chẩn với 8 bít trong thanh ghỉ tích lũy A
Ví dụ nếu sự ưuyền yếu cầu 8 bit data cộng thêm 1 bit Parity chan, thi céc
lệnh sau đáy có thể được dung để phát8 bit vào thanh ghỉ A với Parity chắn dược
Việc dùng bit Parity không bị giới hạn trong mode 2 hoặc mode 3 8 bit data
được phát trong mode l có thể bao gồm 7 bit data, và 1 bit Parity Dé phat | ma
ASCII 7 bit với 1 bit Parity chẳn vào 8 bit, các lệnh sau đây được dùng :
CLR ACC,7 : Xóa bit MSB trong A dam bdo Parity chẩn
MOV C,P : Đưa Parity chẳn vào C
MOV ACC.7,C : Đưa Parity chan vào bit SB của A
MOV SBUF,A : Gởi biLdata cùng bit Parity chan
3.2.8.4 Cờ ngắt :
Cờ ngắt thu RI và
trong sự truyền nối tiếp 8951 C
bởi phần mềm
phát TI trong thanh ghỉ SCON vận hành 1 role quan trong,
ả hai bit đều được set bởi phần cứng nhưng phải xóa