Giáo trình Hướng dẫn lắp ráp các mạch nạp vi xử ly

MỘT SỐ CÁC ĐẶC TÍNH CỦA AT89C2051 LÀ:

~ 2 Kbytes of Flash ( Có nạp vào hoăc xoá đi 1000 lần)

~ 128 bytes of RAM

~ 15 I/O lines ( 15 đường xuất/ nhập)

~ two16-bit timer/counters ( hai bộ định thì/ đếm 16 bít)

~ five vector, two-level interrupt architecture (có 5 vectơ ngắt-2 mức )

~ full duplex serial port ( có cổng nối tiếp)

~ precision analog comparator

~ on chip oscillator and clock circuitry ( có mạch dao động và tạo xung bên trong chip)

Hãy nhớ rằng: Mức điện áp hoạt động thấp (2,7V 6V , chúng ta thường dùng nó ở 5V)

Tần số dao đông thạch anh tối đa 24Mhz ( thường ta dùng 11.0592Mhz để hạn chế

lỗi đến mức nhỏ nhất trong quá trình nó làm việc)

 

pdf 88 trang kimcuc 6160
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Hướng dẫn lắp ráp các mạch nạp vi xử ly", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Giáo trình Hướng dẫn lắp ráp các mạch nạp vi xử ly

Giáo trình Hướng dẫn lắp ráp các mạch nạp vi xử ly
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 1 - 
MỤC LỤC 
Lời Nói Đầu 
Vấn đề 1: 
KHÁI LƯỢC VỀ HỌ ATMEL AT80C51 
PHẦN 1: HƯỚNG DẪN LẮP RÁP CÁC LOẠI MẠCH NẠP VI XỬ LÝ 
Vấn đề 2: 
 MẠCH NẠP : 
 AT89C51 - QUA CỔNG COM 
Vấn đề 3: 
 MẠCH NẠP : 
 AT89C2051 - QUA CỔNG COM 
Vấn đề 4: 
 MẠCH NẠP: 
 AT89C2051 QUA CỔNG MÁY IN 
PHẦN 2: HƯỚNG DẪN LÀM BO MẠCH IN CHẤT LƯỢNG CAO 
Vấn đề 6: 
 HƯỚNG DẪN THIẾT KẾ MẠCH IN TRÊN MÁY TÍNH 
BẰNG PHẦN MỀM : Eagle 4.01 
Vấn đề 7: 
 PHƯƠNG PHÁP IN BẢN VẼ LÊN BO ĐỒNG 
PHẦN 3: HƯỚNG DẪN SỬ DỤNG CÁC PHẦN MỀM VI XỬ LÝ 
Vấn đề 8: 
MỘT SỐ PHẦN MỀM LẬP TRÌNH / SOẠN THẢO ASSEMBLY 
Vấn đề 9: 
PHẦN MỀM BIÊN DỊCH RA FILE HEX : ASM / TASM 
Vấn đề 10 : 
CÁC PHẦN MỀM MÔ PHỎNG VI XỬ LÝ 
Vấn đề 11 : 
HƯỚNG DẪN SỬ DỤNG Ezdl4.0 CHO CÁC MẠCH NẠP 
PHẦN 4: CÁC MẠCH ĐIỆN VI XỬ LÝ - LÝ THÚ- ĐƠN GIẢN 
 CHO NGƯỜI MỚI BẮT ĐẦU HỌC LẬP TRÌNH CÙNG VI XỬ LÝ 
 Vấn đề 12: 
HÃY LÀM MẠCH ĐÈN CHỚP VỚI 89C51 
 Vấn đề 13: 
 HÃY LÀM BỘ ĐIỀU KHIỂN NHÚNG ĐƠN GIẢN 
 Vấn đề 14: 
 LÀM CÒI HỤ VỚI HAI MỨC ÂM ĐIỆU KHÁC NHAU 
 Vấn đề 15 : 
LÀM ĐỒNG HỒ BÁO GIỜI ĐIỆN TƯ- Lập trình C 
Vấn đề 16 : 
LÀM ĐỒNG HỒ BÁO GIỜI ĐIỆN TỬ- Lập trình bằng ASM 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 2 - 
Vấn đề 17 : 
GIAO TIẾP 89C51 VỚI MA TRẬN PHÍM 4X4 
VÀ HIỂN THỊ TRÊN LED 7 SEG 
VẤN ĐỀ 18: 
 GIAO TIẾP ADC0809 
 LÀM BỘ ĐO ĐIỆN ÁP: 0 à 5V 
LỜI KẾT. 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 3 - 
Lời nói đầu cho lần tái bản 2 
 Bên cạnh việc học lý thuyết ở trường , để các bạn có thể hiểu sâu hơn nữa về vi xử 
lý và khám phá các ứng dụng , các tính năng của nó bằng thực tế , tôi xin hân hạnh giới 
thiệu với các bạn quyển sách này “Hướng dẫn lắp ráp các mạch nạp Vi Xử Lý ” ngõ hầu sẽ 
giúp các bạn tự làm cho riêng mình một mạch nạp , để nạp chương trình mà bạn đã viết vào 
cho con vi xử lý để bạn có thể biết được chương trình mà bạn đã viết ấy - thực tế nó sẽ hoạt 
động như thế nào- đó chính là mục đích mà tôi đã viết quyển sách này cho các bạn. 
 Đây là lần tái bản thứ 2 có nhiều sửa chữa và bổ sung thêm nhiều ứng dụng 89c51 
khá lý thú và hữu ích cho anh em trong các kỳ làm đồ án và Luận văn . 
 Các bạn có thể tìm thấy ở đây các loại mạch nạp cho vi xử lý ( đúng ra phải gọi là 
vi điều khiển ) rất đơn giản , dễ láp ráp , linh kiện dễ tìm kiếm , cho nên xác suất thành 
công rất cao nên ai ai cũng có thể tự làm lấy cho riêng mình một mạch nạp để phục vụ cho 
việc học , nghiên cứu và nhất là để làm các đồ án , luận văn liên quan đến vi xử lý ! 
Ngoài ra tôi còn bổ sung thêm phần hướng dẫn làm bo mạch in chất lượng rất cao 
để các bạn tự làm ở nhà , tiết kiệm rất nhiều chi phí rất thích hợp cho sinh viên nhưng chất 
lượng như đã nói là rất cao . Đồng thời tôi cũng có hướng dẫn cho bạn cáh sử dụng các 
phần mềm về vi xử lý phục vụ cho việc lập trình để bạn không phải mất nhiều thời gian tìm 
kiếm-và sử dụng các phần mềm này ! 
Sau cùng là các ví dụ cụ thể sẽ giúp bạn bước đầu làm quen cùng vi xử lý , các ứng 
dụng này dành riêng cho người mới bắt đầu học lập trinh vi xử lý và các ví dụ nâng cao 
được bổ sung cho các bạn đã từng làm việc với 8051 ! Nếu các bạn nào đã thành thạo rồi 
thì xin hãy đọc quyển 2 “ Hướng dẫn giao tiếp vi xử lý với máy tính” ở đấy bạn sẽ biết cách 
giao tiếp qua lại giữa chúng . đồng thời tôi cũng có nhiều ví dụ thiết thực như “ Máy đo 
nhiệt độ bằng Led , máy đo nhiệt độ giao tiếp máy tính , bảng đèn chữ chạy đơn giản , 
bảng đèn chữ chạy giao tiếp máy tính , đo điện áp qua máy tính “ và một số mạch điện ứng 
dụng vi xử lý khác sẽ làm cho bạn cãm thấy thích thú hơn khi học về vi xử lý 
 Cuối cùng tôi xin chân thành cảm ơn các bạn đang học cùng tôi đã động viên kích 
lệ tinh thần , cùng có lời tri ơn sâu sắc đến các thầy trong trường đã giúp đở cho tôi rất 
nhiều để quyển sách này hoàn thành . 
 Dù đã có nhiều cố gắng thức đêm, dậy sớm song việc thiếu xót sẽ là điều không thể 
tránh khỏi , cho nên sự góp ý từ phía các bạn độc giả cũng như những lời góp ý của quý 
thầy cô sẽ là niềm vinh hạnh cho tôi , tôi xin lắng nghe , sửa chữa để lần sau có dịp thì 
quyển sách này sẽ hoản thiện hơn , ngõ hầu sẽ giúp ích cho các bạn trong việc học tập cùng 
việc nghiên cứu đạt được nhiều lợi lạc ! 
Nhân đây tôi xin hân hạnh mời bạn đón đọc tập 2:” Hướng dẫn giao tiếp vi xử lý với máy 
tính ” bằng Visual Basic mà tôi sắp viết xong ! 
 Một lần nữa tôi xin cảm ơn các bạn đã đọc quyển sách này ! 
 Lê Duy Phi 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 4 - 
Vấn đề 1: 
KHÁI LƯỢC VỀ AT89C51 & AT89C2051 
I . MÔ TẢ CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN 8951. 
1/ Giới thiệu họ MCS51: 
MCS51 là một họ IC vi điều khiển (Microcontroller ) do hãng Intel sản xuất. Các IC tiêu biểu cho họ 
MCS51 là 8051 và 8031. Đặc biệt, vi điều khiển 8951 được sản xuất gần đây mang các đa ëc điểm sau: 
§ 4 Kbytes EEPROM. 
§ 128 bytes RAM. 
§ 4 ports I/O (Input/Output). 
§ 2 bộ định thời (timer) 16 bits. 
§ Giao tiếp nối tiếp. 
§ 64 Kbytes không gian bộ nhớ chương trình mở rộng. 
§ 64 Kbytes không gian bộ nhớ dữ liệu mở rộng. 
§ Một bộ xử lí luận lí (thao tác trên các bit đơn). 
§ 210 bits được địa chỉ hóa. 
§ Bộ nhân chia 4 ms. 
Tước khi đi vào lắp ráp bo mạch , tôi xin các bạn 
dành ít thời gian xem qua sơ đồ chân và một số các 
đặc điểm cũng như một số các đặt tính của đối 
tượng mà ta sẽ làm việc rất nhiều với nó đó là con 
vi điều khiển AT89C51 và AT89C2051. 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 5 - 
2. HỆ THỐNG GIAO TIẾP PORT: 
a/ Port 0:Port 0 là một port hai chức năng trên các chân 32 – 39. 
Hãy nhớ rằng : Trên các chân này chưa có điện trở kéo dương , do đó khi cần chúng ta phải nhớ 
đến đặc điểm này. 
b/ Port 1: Port 1 là một port I/O trên các chân 1 – 8. 
c/ Port 2: Port 2 là một port công dụng kép trên các chân 21 – 28 . 
 d/ Port 3: Port 3 là một port công dụng kép trên các chân 10 – 17. Các chân của port này có nhiều chức 
năng, các công dụng chuyển đổi có liên hệ với các đa ëc tính đặc biệt của 8951 như ở bảng sau: 
Bit Tên Chức năng chuyển đổi 
P3.0 
P3.1 
P3.2 
P3.3 
P3.4 
P3.5 
P3.6 
P3.7 
RXD 
TXD 
INT0\ 
INT1\ 
T0 
T1 
WR\ 
RD\ 
Dữ liệu nhận cho port nối tiếp 
Dữ liệu phát cho port nối tiếp 
Ngắt 0 bên ngoài 
Ngắt 1 bên ngoài 
Ngõ vào của Timer/counter 0 
Ngõ vào của Timer/counter 1 
Xung ghi bộ nhớ dữ liệu ngoài 
Xung đọc bộ nhớ dữ liệu ngoài 
3 - CÁC TÍN HIỆU ĐIỀU KHIỂN: 
Chip AT8951 có các tín hiệu điều khiển cần phải lưu ý sau: 
A- Chân EA\ (External Access): 
Tín hiệu vào EA\ trên chân 31 thường được mắc lên mức cao (+5v) hoặc mức thấp 
(GND). 
Nếu ở mức cao, 8951 thi hành chương trình từ ROM nội trong khoảng địa chỉ thấp (4K hoặc 
tối đa 8k đối với AT89C52). 
Nếu ở mức thấp, chương trình được thi hành từ bộ nhớ ngoài mở rộng (Tối đa đến 64K ). 
Ngoài ra Người ta còn dùng EA\ làm chân cấp điện áp 12V khi lập trình cho EEPROM trong 
8051. 
B- CHÂN PSEN\ (PROGRAM STORE ENABLE): 
 PSEN\ là tín hiệu ra trên chân 29. Nó là tín hiệu điều khiển cho phép bộ nhớ chương trình mở rộng, 
PSEN\ thường được nối đến chân OE (Output Enable) của một EPROM hoa ëc ROM để cho phép đọc các 
byte ma õ lệnh. 
 Hãy nhớ rằng :Bình thường chân PSEN\ sẽ được tha õ trống (No Connect). Chỉ khi nào chân EA\ ở mức 
thấp thì lúc đó: 
PSEN\ sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình 
được đọc từ EPROM qua bus dư õ liệu và được chốt vào thanh ghi lệnh của 8951 để giải mã 
lệnh. 
PSEN\ sẽ ở mức thụ động (mức cao) nếu thi hành chương trình trong ROM nội 
(8951) 
C- CÁC CHÂN NGUỒN: 
 AT8951 hoạt động với nguồn đơn +5V. Vcc được nối vào chân 40 và Vss (GND) được nối vào chân 20. 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 6 - 
 II. MÔ TẢ CẤU TRÚC PHẦN CỨNG CỦA VI ĐIỀU KHIỂN AT89C2051 . 
 AT89C2051 là một vi điều khiển thu gọn chỉ có 20 chân , với đầy đủ các tính năng cnhư AT89C51 
.Duy chỉ khác một điểm cần lưu ý đó là Flash ROM của nó chỉ có 2K mà thôi và một vài Port không được hỗ 
trợ đủ , do đó tuỳ theo mục đích màta se õ cần đến nó. 
Hình : Sơ đồ chân AT89C2051 
MỘT SỐ CÁC ĐẶC TÍNH CỦA AT89C2051 LÀ: 
~ 2 Kbytes of Flash ( Có nạp vào hoăc xoá đi 1000 lần) 
~ 128 bytes of RAM 
~ 15 I/O lines ( 15 đường xuất/ nhập) 
~ two16-bit timer/counters ( hai bộ định thì/ đếm 16 bít) 
~ five vector, two-level interrupt architecture (có 5 vectơ ngắt-2 mức ) 
~ full duplex serial port ( có cổng nối tiếp) 
~ precision analog comparator 
~ on chip oscillator and clock circuitry ( có mạch dao động và tạo xung bên trong chip) 
Hãy nhớ rằng: Mức điện áp hoạt động thấp (2,7Và 6V , chúng ta thường dùng nó ở 5V) 
Tần số dao đông thạch anh tối đa 24Mhz ( thường ta dùng 11.0592Mhz để hạn chế 
lỗi đến mức nhỏ nhất trong quá trình nó làm việc) 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 7 - 
Vấn đề 2: 
I- ĐÔI LỜI GIỚI THIỆU : 
 Nếu bạn muốn vừa học Vi Xử Lý đồng thời cu õng muốn khám phá nó qua các 
ứng dụng cụ thể, qua các dự án thưc tế để phát triển 89C51, 89c52với ngôn ngữ 
lập trình Asemmbly thì “ Mạch Nạp AT89C51 ‘ chính là câu trả lời . Nó rất rẻ và 
mọi người đều có thể tự làm được cho riêng mình một nạp . 
Mạch nạp này không như õng chỉ nạp được cho AT89c51(4k) mà còn nạp được 
cho cả 89c52(8k) và 89c55( 20k )ø . 
Sau khi bạn lập trình với Asemmbly hoặc C xong ,rồi bạn hãy dịch nó ra file 
HEX ( nếu bạn chưa biết cách dịch thì bạn hãy xem mục hướng dẫn các phần mềm 
Vi Xử Lý ở đằng sau) sau đó bạn hãy nạp nó vào cho con Chip bằng cách dùng 
“Mạch Nạp AT89C51”. 
II- PHẦN CỨNG : SƠ ĐỒ VÀ BO MẠCH IN 
 1 ). HÌNH ẢNH MẠCH NẠP HOÀN CHỈNH : 
Hình 1 
MẠCH NẠP : 
AT89C51 - QUA CỔNG COM 
Hãy làm riêng cho bạn một nạp chương trình- để nạp file 
HEX cho các vi điều khiển 89C51 , 89C52 , 89C53 và 
89C55 .Ở đây có sẵn bo mạch in , sơ đồ và cả phần mềm 
cùng hướng dẫn hết sức dễ dàng để làm và sử dụng nó. 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 8 - 
2) SƠ ĐỒ MẠCH NẠP AT89C51 : 
Hình 2: Đây chính là sơ đồ của Mạch Nạp AT89C51 . 
TRÊN SƠ ĐỒ BẠN HÃY LƯU Ý HAI ĐIỂM SAU : 
· Kí hiệu IC ghi 89C51 EZ52.HEX gọi là con Chip chính ( ChipMaster) 
· Kí hiệu IC ghi 40 -PIN ZIF 89c51/ 89c52/ 89c55 đây là Socket hay là chân để 
cắm IC ( còn gọi là đế cắm IC 40 Chân) , hay gọi là con chip phụ ( Chip 
Slave) 
Đây là hình dáng thật cu ûa Socket ( đế để gắn IC vào) tuy nhiên đây la ø cái 
Soket 20 chân thôi ,còn loại 40 cũng giống y hệt như vậy nhưng nó da øi và to hơn 
thôi. 
Hãy nhớ rằng : 
Đầu tiên bạn cần phải nạp file EZ52.HEX vào cho con ChipMaster . Nhưng khổ 
nổi là lấy đâu ra mạch nạp để nạp file EZ52.Hex này cho con Chip Master ?? Bạn đừng 
lo , bạn có thể mua con Chip Master –đã nạp sẵn này tại quày photo B1 tại trường đại học 
Bách Khoa , hoặc bạn cũng có thể mua đỉa mềm 1,4Mb tôi có chép sẵn file EZ52.HEX 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 9 - 
trong đó luôn rồi , bạn có thể đem ra các tiệm điện ở chợ Điện Tử Nhật Tảo , ở đó họ có 
sẵn máy nạp họ sẽ nạp cho bạn .với giá cho mỗi lần nạp là 2.000đ 
Và tôi cũng xin nói thêm là con Chip Master cũng là một con AT89C51. Còn cái 
Socket là nơi để bạn đặt con Chip 89C51 Slave - mà bạn cần nạp bất kỳ file .HEX nào đó 
vào cho no .ù 
3) NGUỒN ĐIỆN CẤP CHO MẠCH NẠP: 
Hãy lưu ý :Tại chân Vpp của Mạch nạp có hai mức điện áp khác nhau là 5V và 
12V được điều khiển bởi chân P3.3 (chính là đầu ra của LM317).Bình thường thì đầu ra của 
LM317 chỉ có 5V thôi, nhưng khi bắt đầu nạp chương trình thì đầu ra của nó lên tới 12V. 
Tôi đã lắp ráp , kiểm tra và sử dụng –mạch này rất nhiều nhưng chưa hề thấy sự cố nào 
quá nghiêmtrọng cả. 
4) BO MẠCH IN 
Hiện nay trên chợ Điện Tử Nhật Tạo bán rất nhiều loại Bo mạch nạp này , và hiện 
đã trở nên quá quen thuộc , quen thuộc đến nỗi bạn chỉ cần nói bán cho bạn “Mạch in –của 
mạch nạp Vi Xử Lý” thì người sẽ đưa cho bạn ngay một bản mạch như sau với giá chỉ có 
10.000 đ mà thôi : 
Hình 3 
Đây là một loại mạch nạp đang phổ biến , rất được nhiều người sử dụng và đang 
thịnh hành trên Chợ Nhật Tảo . Hình này là “Mạch In Hướng Da ãn Lắp Ráp Linh Kiện “ 
lên bản mạch đồng. 
Và tôi cũng đã chép luôn file chứa các mạch in ở hình2 trong đỉa mềm với dung 
lượng 36,4kb để bạn có thể xem qua để có thể tự làm lấy bo mạch cho mình. 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 10 - 
Và sau đây là bo mạch đồng của nó , bạn có thể cắt hình sau để tự làm cho mình 
một mạch đồng rất đẹp , giống y như thế theo sự hướng dẫn ở phần 2 của quyển sách này. 
Và đây là những gì mà bạn có thể thấy sau khi bạn đã lắp ráp hoàn chỉnh 
Đây là Mạch đồng của mạch nạp vi xử lý đang thịnh hành 
trên chợ Nhật Tảo hiện nay .Giá một mạch chỉ có 10.000 đ 
(Bạn có thể cắt hình này ra để làm mạch đồng hoặc mua 
riêng ở quày Photo B1 / dh.BK) 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 11 - 
Hãy nhớ rằng : MAX 232 có thể được thay thế bằng 2 con transistor hết sức đơn 
giiản . Khi đó bo mạch cu ûa bạn sẽ nhỏ gọn hơn, đồng thời bạn cũng 
có thể tiết kiệm một khoa ûng tiền rất đáng kể . 
Sơ đồ thay thế như sau: 
Một kiểu khác: 
Asghar Charmin ở Aán Độ đả cải tiến lại chỉ dùng một Transi ... T 
BANGMALED: 
DB 11000000B ;SO 0 
DB 11001111B ;SO 1 
DB 01100100B ;SO 2 
DB 01000110B ;SO 3 
DB 01001011B ;SO 4 
DB 01010010B ;SO 5 
DB 01010000B ;SO 6 
DB 11000111B ;SO 7 
DB 01000000B ;SO 8 
DB 01000010B ;SO 9 
DB 01000001B ;CHU A 
DB 01011000B ;CHU B 
DB 11110000B ;CHU C 
DB 01001100B ;CHU D 
DB 00110000B ;CHU E 
DB 00110001B ;CHU F 
END 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 77 - 
VẤN ĐỀ 18: 
 GIAO TIẾP ADC0809 
 LÀM BỘ ĐO ĐIỆN ÁP: 0 à 5V 
· Sơ đồ mạch các bạn có thể vào website sau để download : 
www.microduyphi.com 
;P1+P2 XUAT LED 7 DOAN 
;P0 CHON NGO VAO VA DIEU KHIEN QUA TRINH BIEN DOI ADC 
;P3 NHAN DATA 
ORG 00H 
MOV TMOD,#01H 
MAIN: 
ACALL CONGVAO 
BATDAU: 
 ACALL START 
 ACALL LAYDATA 
 ACALL HIENTHI 
 LJMP BATDAU 
;*********************** 
CONGVAO: 
CLR P0.0 
CLR P0.1 
CLR P0.2 
RET 
;============================================================== 
;QUA TRINH BIEN DOI BAT DAU KHI CO CANH XUONG O TREN CHAN START 
START: 
SETB P0.4 
NOP 
NOP 
NOP 
CLR P0.4 
;DOI 100US DE QUA TRINH BIEN DOI XONG 
CALL DELAY120US 
RET 
;============================================================== 
LAYDATA: 
 MOV A,P3 
 RET 
;============================================================== 
HIENTHI: 
 MOV B,#51 
 DIV AB 
 ;MAXIMUM A=5 
 ;LUU HANG TRAM 
 MOV R2,A 
 MOV A,B 
 ;CHIA TIEP 
 MOV B,#10 
 DIV AB 
 ;LUU CHUC 
 MOV R3,A 
 ;LUU TRAM 
 MOV R4,B 
 ;A=SE GIU GIA TRI HANG TRAM 
 ;B SE GIU GIA TRI HANG CHUC 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 78 - 
 ;R2=GIU GIA TRI HANG DON VI 
 ;========================== 
 XUAT_TRAM: 
 MOV DPTR,#BANG 
 MOV A,R2 
 MOVC A,@A+DPTR 
 ;DAU CHAM 
 ANL A,#10111111B 
 MOV P2,A 
 MOV P1,#01111111B 
 CALL DELAY 
 ;-------------------------- 
 XUAT_CHUC: 
 MOV DPTR,#BANG 
 MOV A,R3 
 MOVC A,@A+DPTR 
 MOV P2,A 
 MOV P1,#10111111B 
 CALL DELAY 
 XUAT_DONVI: 
 MOV DPTR,#BANG 
 MOV A,R4 
 MOVC A,@A+DPTR 
 MOV P2,A 
 MOV P1,#11011111B 
 CALL DELAY 
RET 
;******************************************************************* 
DELAY120US: 
 MOV TH0,#HIGH(-120) 
 MOV TL0,#LOW(-120) 
 SETB TR0 
 JNB TF0,$ 
 CLR TR0 
 CLR TF0 
 RET 
;************************************************************ 
DELAY: 
 MOV TH0,#HIGH(-5000) 
 MOV TL0,#LOW(-5000) 
 SETB TR0 
 JNB TF0,$ 
 CLR TR0 
 CLR TF0 
 RET 
;************************************************************* 
BANG: 
DB 11000000B ;SỐ 0 
DB 11001111B ;SỐ 1 
DB 01100100B ;SỐ 2 
DB 01000110B ;SỐ 3 
DB 01001011B ;SỐ 4 
DB 01010010B ;SỐ 5 
DB 01010000B ;SỐ 6 
DB 11000111B ;SỐ 7 
DB 01000000B ;SỐ 8 
DB 01000010B ;SỐ 9 
END 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 79 - 
VẤN ĐỀ 19: 
 ỨNG DỤNG 89C51 LÀM 
 MẠCH BÁO GIỜ VÀ NHIỆT ĐỘ 
 (DÙNG CẢM BIẾN LM35+ ADC0809) 
* Sơ đồ mạch các bạn có thể vào website sau để download : 
www.microduyphi.com 
;************************************************************************* 
; DESIGN & PROGRAM BY : LE DUY PHI ; 
; THIS IS A PROJECT WHICH I DESIGN FOR MY FREIND"DIEN DAN SINH VIEN" ; 
; COMPLETED :15-01-2005 ; 
;************************************************************************* 
;CHU Y: O DAY MINH DUNG SENSOR LM35 
; 89C51 + ADC0809 + LED 7SEG - ANOD COMM 
; 
; PLEASE DO NOT QUESTION ME ABOUT WHAT YOU HAVE SEEN HERE 
; EVERYTHING IS VERY VISIBLE ,SO YOU TRY TO READ IT IF YOU DO'NOT 
UNDERSTAND 
;------------------------------------------------------------------------ 
;R0 : DEM 10S HTHI GIO- 3 S HIEN THI TEMPRATURE 
;R1 
;R2 : BIEN DEM 0--100 1S 
;R3 
;R4 
;R5 : BIEN CAP NHAT TEM VALUE AFTER 100 TIMES 
;R6 
;R7 : DELAY 
;----------------------------- 
;12H--13H--14H--15H--16H--17H 
;CH DCH CP DVP CG DVG 
;----------------------------- 
;20H-------21H--22H--23H---24H 
; HUNDER 2 7 * C 
;----------------------------- 
;--CO CHO BIET BAO GIO HOAC NHIET DO 
;FL_HOR_TEM =0 : BAO GIO 
;FL_HOR_TEM =1 : BAO NHIET DO 
;----------------------------------- 
FL_HOR_TEM BIT 24H.0 
;----------------------------------- 
ORG 0000H 
SJMP MAIN 
;-------------NGAT DO TIMER 
ORG 0BH 
LJMP NGAT_TIMER0 
;-------------VAO PRO MAIN 
MAIN: 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 80 - 
MOV SP,#30H ; NHAP DIA CHI BAT DAU CHUONG TRINH 
;KHOI DONG SAU KHI BAT NGUON "TURN ON POWER" 
;------------------------------------------------------ 
; vung Ram luu tru: hh:mm:ss 
;------------------------------------------------------ 
MOV 12H,#00H 
MOV 13H,#00H 
MOV 14H,#00H 
MOV 15H,#00H 
MOV 16H,#00H 
MOV 17H,#00H 
;------------------------------------------------------ 
; vung Ram luu tru Temprature :27*C 
;------------------------------------------------------ 
MOV 20h,#00h 
MOV 21h,#00h 
MOV 22h,#00h 
MOV 23h,#00h 
;------------------------------------------------------ 
; THIET LAP MAC DINH FL_HOR_TEM=0 LA HIEN THI GIO 
;------------------------------------------------------ 
CLR FL_HOR_TEM ;FL_HOR_TEM=0 
;--------LAY TEM LAN DAU TIEN------------------------- 
CALL CON_ADC 
MOV R5,#0 
MOV IE,#10000010B ;KHOI TAO NGAT CHO PHEP 
;--- INT1_T0_INT0 
MOV TMOD,#11H 
MOV TL0,#LOW(-9216) ;XTAL11.0592 =>Tclk = 12/11.0592 = 1,08507uS 
MOV TH0,#HIGH(-9216) ; 9216x(100lan)x[Thoigianmay(12/11.0592)]=1s OK!chinh xac 
99.99% 
SETB TR0 
LAP: 
CALL HIEN_THI 
CALL TEST_PHIM 
CALL KIEM_TRA1S 
SJMP LAP 
;********************************************** 
HIEN_THI: 
JNB FL_HOR_TEM,HIEN_THI_GIO ;IF FL_HOR_TEM=0 THEN "HIEN THI GIO" 
LJMP HIEN_THI_TEM ;ELSE FL_HOR_TEM=1 THEN "HIEN THI NHIET DO" 
HIEN_THI_GIO: 
;----HIEN THI DATA LEN CAC LED----------- 
MOV DPTR,#BANG_MA_LED 
;LED1 
MOV P0,#11111110B 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 81 - 
MOV A,17H 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh; Chong nhieu 
;LED2 
MOV P0,#11111101B 
MOV A,16H 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ; Chong Nhieu 
;LED3 
MOV P0,#11111011B 
MOV A,15H 
MOVC A,@A+DPTR 
ANL A,#10111111B 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ;Chong Nhieu 
;LED4 
MOV P0,#11110111B 
MOV A,14H 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ;Chong Nhieu 
;LED5 
MOV P0,#11101111B 
MOV A,13H 
MOVC A,@A+DPTR 
ANL A,#10111111B 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ;Chong Nhieu 
;LED6 
MOV P0,#11011111B 
MOV A,12H 
;KIEM TRA -DE TAT MO LED CH 
CJNE A,#0,MOLED_CH ; Neu CH khac 0 thi Nhay den MOLED_CH 
; Neu CH la 0 thi tat led CH 
MOV P2,#0ffh ; Xoa Led CH khi no la so:"0" 
LCALL DELAY1 
MOV P2,#0ffh ;Chong Nhieu 
LJMP THOAT_HIENTHI 
;---- MOLED_CH-------- 
MOLED_CH: 
MOVC A,@A+DPTR 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 82 - 
MOV P2,A 
LCALL DELAY1 
MOV P2,#0FFH ;Chong Nhieu 
LJMP THOAT_HIENTHI 
;============================================================= 
HIEN_THI_TEM: 
;-------------------------HIEN THI NHIET DO---------------------------------- 
;---BEFOR DISPLAY VALUE TEMPRATURE WE MUST CONVECTER ANALOG TO 
DISGITAL------ 
INC R5 
PUSH ACC 
MOV A,R5 
CJNE A,#100,CHUA_CAP_NHAT 
;----CAP NHAT LAI TEM VALUE------ 
CALL CON_ADC 
MOV R5,#0 
CHUA_CAP_NHAT: 
POP ACC 
;-------------------------------- 
; ghcbaFed 
; : 10000000B 
; : 11110000B ;CHU C 
; : 01100011B ;SO 0 NHO 
MOV P0,#11111110B 
MOV P2,#11110000B ;CHU C 
LCALL DELAY1 
mov p2,#0ffh; Chong nhieu 
LCALL DELAY1 
MOV P0,#11111101B 
MOV P2,#01100011B ;SO 0 NHO 
LCALL DELAY1 
mov p2,#0ffh; Chong nhieu 
LCALL DELAY1 
;--------HIENTHI GIA TRIN TEM----------- 
MOV P0,#11111011B 
MOV A,22H 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ; Chong Nhieu 
LCALL DELAY1 
MOV P0,#11110111B 
MOV A,21H 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 83 - 
mov p2,#0ffh ;Chong Nhieu 
LCALL DELAY1 
MOV P0,#11101111B 
MOV A,20H 
CJNE A,#00,HIENTHI_TEM_100 
LJMP THOAT_HIENTHI 
HIENTHI_TEM_100: 
MOVC A,@A+DPTR 
MOV P2,A 
LCALL DELAY1 
mov p2,#0ffh ;Chong Nhieu 
LCALL DELAY1 
THOAT_HIENTHI: 
RET 
;**************************************************** 
KIEM_TRA1S: 
;-----KIEM TRA XEM DU 1s CHUA ?------------- 
CJNE R2,#100,KET_THUC 
MOV R2,#00H 
;------------------------PROCESS TEMPRATURE------------------------------------------------- 
INC R0 
CJNE R0,#10,R0_BY_13 ; IF R010 THEN JUMPER TO TEST IT BY 13 ? 
SETB FL_HOR_TEM ; ELSE R0=10 THEN SET FLAG=1 FOR HTHI TEMPRATURE 
LJMP CONT_UPDATE_NO_HT ; TIEP TUC CAP NHAT NHUNG KHONG HIEN THI 
GIA TRI GIO 
R0_BY_13: 
CJNE R0,#13,CONT_UPDATE_NO_HT ; IF R0=13 THAT MEAN IS "TEMPRATURE 
DISPLAY IN 3S" 
CLR FL_HOR_TEM ; AFTER 3S IT WILL RE_DISPLAY VALUE OF HOUR 
; SO WE MUST RESET VALUE OF FLAG = 0 
MOV R0,#0 
;--------------------------------------------------------------------------------------- 
CONT_UPDATE_NO_HT: 
INC 17H 
MOV A,17H 
CJNE A,#10,KET_THUC 
MOV 17H,#00 
INC 16H 
MOV A,16H 
CJNE A,#6,KET_THUC 
MOV 16H,#00 
INC 15H 
MOV A,15H 
CJNE A,#10,KET_THUC 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 84 - 
MOV 15H,#00 
INC 14H 
MOV A,14H 
CJNE A,#6,KET_THUC 
MOV 14H,#00 
INC 13H 
MOV A,13H 
CJNE A,#03,TANG_DVH_LEN_10 
;--NEU LA 3 THI KTRA TIEP---- 
MOV A,12H 
CJNE A,#01,KET_THUC ; DUNG DVH LA 3 VA CH KHONG LA 1 THI NHAY TOI CP 
DE CP=0 
MOV 12H,#00H 
MOV 13H,#01H 
LJMP KET_THUC 
;----TANG DVH LEN 10 KHI NO KHONG PHAI LA S0 3---------- 
TANG_DVH_LEN_10: 
CJNE A,#10,KET_THUC 
MOV 13H,#00 
INC 12H 
KET_THUC: 
RET 
;*************************************************************** 
;----- DELAY---------- 
DELAY1: 
MOV R7,#10H 
DJNZ R7,$ 
RET 
;*************************************************************** 
;CHUONG TRINH CON NGAT TIMER0 
NGAT_TIMER0: 
INC R2 ;tre 1us 
MOV TL0,#LOW(-9216) ;XTAL11.0592 =>Tclk = 12/11.0592 = 1,08507uS 
MOV TH0,#HIGH(-9216) ; 9216x(100lan)x[Thoigianmay(12/11.0592)]=1s OK!chinh xac 
99.99% 
SETB TR0 
RETI 
;******************************************************* 
; 
TEST_PHIM: 
JB P3.3,PHIM2 
CALL NGAT_PHUT 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 85 - 
LJMP THOAT_PHIM1 
;******************************************************* 
PHIM2: 
JB P3.2,THOAT_TEST_PHIM 
CALL NGAT_GIO 
LJMP THOAT_PHIM2 
;-------------------------------------- 
THOAT_PHIM1: 
TT_KT1: 
JNB P3.3,HIEN_THI_T1 
LJMP THOAT_TEST_PHIM 
HIEN_THI_T1: 
CALL HIEN_THI 
LJMP TT_KT1 
THOAT_PHIM2: 
TT_KT2: 
JNB P3.2,HIEN_THI_T2 
LJMP THOAT_TEST_PHIM 
HIEN_THI_T2: 
CALL HIEN_THI 
LJMP TT_KT2 
THOAT_TEST_PHIM: 
RET 
;*************************************************************** 
;CHUONG TRINH CON NGAT INTO 
NGAT_PHUT: 
;---CAM BAO NHIET 
CLR FL_HOR_TEM 
MOV R0,#0 
INC 15H 
MOV A,15H 
CJNE A,#10,THOAT1 
MOV 15H,#0H 
INC 14H 
MOV A,14H 
CJNE A,#6,THOAT1 
MOV 14H,#0H 
THOAT1: 
RET 
;CHUONG TRINH CON NGAT INT1 
NGAT_GIO: 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 86 - 
CLR FL_HOR_TEM 
;---CAM BAO NHIET 
CLR FL_HOR_TEM 
MOV R0,#0 
INC 13H 
MOV A,13H 
CJNE A,#03,NGAT_11 
MOV A,12H 
CJNE A,#1,THOAT2 
MOV 12H,#0H 
MOV 13H,#1 
LJMP THOAT2 
NGAT_11: 
CJNE A,#10,THOAT2 
MOV 13H,#0 
MOV 12H,#1 
SJMP THOAT2 
THOAT2: 
RET 
;********************************************* 
CON_ADC: 
;*********************** 
CHON_NGO_VAO: 
CLR P3.4 
CLR P3.5 
CLR P3.6 
BATDAU_ADC: 
ACALL START 
ACALL LAYDATA 
ACALL CHUYEN_DOI 
RET 
;============================================================== 
;QUA TRINH BIEN DOI BAT DAU KHI CO CANH XUONG O TREN CHAN START 
START: 
SETB P3.7 
NOP 
NOP 
NOP 
CLR P3.7 
;DOI 100US DE QUA TRINH BIEN DOI XONG 
CALL DELAY120US 
RET 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 87 - 
;============================================================== 
LAYDATA: 
MOV A,P1 
RET 
;============================================================== 
CHUYEN_DOI: 
MOV B,#51 
DIV AB 
; ------LUU HANG TRAM------- 
MOV 20H,A 
MOV A,B 
;CHIA TIEP 
MOV B,#10 
DIV AB 
;-------LUU CHUC------------- 
MOV 21H,A 
;-------LUU TRAM-------------- 
MOV 22H,B 
; 
;20H = SE GIU GIA TRI HANG TRAM 
;21H = SE GIU GIA TRI HANG CHUC 
;22H = GIU GIA TRI HANG DON VI 
;========================== 
RET 
;******************************************************************* 
DELAY120US: 
MOV TH1,#HIGH(-120) 
MOV TL1,#LOW(-120) 
SETB TR1 
JNB TF1,$ 
CLR TR1 
CLR TF1 
RET 
;********************************************* 
BANG_MA_LED: 
DB 11000000B;0 
DB 11001111B 
DB 01100100B 
DB 01000110B 
DB 01001011B 
DB 01010010B 
DB 01010000B 
DB 11000111B 
DB 01000000B 
DB 01000010B;9 
END 
 www.microduyphi.com duyphi@yahoo.com - Tel:0909.371.471 Tái bản lần thứ 2
 - 88 - 
Lời kết : 
Quyển sách cuối cùng đã hoàn thành đúng vào lúc các bạn đang học về vi xử lý . Như vậy sau 
gần hơn một tháng biên sạan-kể từ lúc khởi thảo , trong thời gian ngắn ấy , tập sách chỉ chú trọng phần 
nhiều vào mặt thực hành , không đề cặp quá sâu vào lý thuyết . 
Mục đích mà tôi viết quyển sách này không mong gì hơn là nó sẽ góp phần phục vụ cho các bạn 
trong việc học vi xử lý đạt được nhiều lợi ích và đam mê hơn bởi sự kết hợp hài hoà giữa lý thuyết và thực 
hành ! 
Trong quá trình tự lắp ráp , nếu các bạn gặp sự cố thì hãy liên hệ với chúng tôi, bằng kinh 
nghiệm đã từng lắp ráp loại này tôi nghĩ sẽ có những lời phúc đáp rất thiết thực , ngõ hầu sẽ đemlại niềm 
vui cho các bạn , địa chỉ liên hệ : duyphi@yahoo.com 
Các bạn cũng có thể xem nội dung của quyển sách này , cùng các tài liệu khác không những về vi 
xử lý , mà còn nhiều môn khác như điện tử , kỹ thuật số , điện công nghiệp , điện tử cơ bản .tại địa chỉ 
website sau của tôi : 
 www.microduyphi.com 
 Dĩ nhiên đây là lần đầu tôi làm công việc này , nên sai xótvà nhiều khyếm khuyết là điều sẽ có 
thể xảy ra , tôi xin trân trọng lắng nghe sự đóng góp ý kiến của các bạn cùng của các sư huynh và của 
thầy co trên tinh thần góp ý , sửa chữa để ngày một cùng nhau hoàn thiện hơn ! Trên tinh thần ấy tôi xin 
vô cùng cám ơn quý vị , và tôi sẽ cố gắng hơn nữa để sớm giớ thiệu với bạn đọc tập 2: 
“Hướng dẫn giao tiếp vi xử lý với máy tính bằng Visual Basic” 
 Cuối cùng tôi xin có lời tri ơn sâu sắc đến các bạn trong trường , các sư huynh cùng quý thầy cô 
đã có lời động viên , có lời góp ý trong suốt thời gian tôi viết quyển sách này . 
 Một lần nữa tôi xin chân thành cám ơn các bạn đã đọc quyển sàch này ! 
 Xin chúc các bạn luôn vui vẻ và gặt hái được nhiều thành công từ quyển sách nhỏ này! 
 Thực hiện: 
Lê Duy Phi 
10-05-2005 - Nha Trang 

File đính kèm:

  • pdfgiao_trinh_huong_dan_lap_rap_cac_mach_nap_vi_xu_ly.pdf