BÁO CÁO BÀI TẬP LỚN MÔN KĨ THUẬT VI XỬ LÝ Tên đề tài ĐỒNG HỒ THỂ THAO CỜ VUA, CỜ TƯỚNG Giáo viên hướng dẫn : Nguyễn Minh Hiếu Lớp : TD17B LỜI NÓI ĐẦU Sự ra đời của các bộ vi xử lí nói chung, các bộ vi điều khiển nói riêng đã tạo ra một bước ngoặt lớn trong việc thiết kế các hệ thống xử lí thông tin, đo lường điều khiển và truyền thông. Kết quả là đã tạo ra được những sản phẩm như máy ảnh số, máy chơi nhạc MP3, đầu đĩa DVD, các bộ biến tần, PLC…ngày càng rẻ hơn, nhỏ gọn hơn, thông minh hơn và tiện dụng hơn. Hơn nữa, kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh vực khác nữa. So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất nhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển. Nên rất tiện dụng và cơ động. Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, chúng em đãchọn đề tài "Thiết kế mạch mạch tạo xung vuông Có nút ấn chọn tầm Hz, KHz, 100 KHz, nút ấn để tăng tần số, nút ấn để giảm tần số. Hiển thị tần số phát ra trên led 7 đoạn Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệm nhữngứng dụng của vi điều khiển trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến. Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót. Vì vậy nhóm rất mong được sự góp ý của thầy cô và các bạn . MỤC LỤC MỤC LỤC 3 CHƯƠNG 1 - TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ HỌ MSC-51 5 1.1. Sơ lược về vi xử lý 5 1.2. Họ MSC-51 5 1.3. Các loại VĐK khác 7 CHƯƠNG 2 - GIỚI THIỆU VỀ AT89S52 7 2.1. Cấu hình AT89C52 7 2.2. Cấu trúc bên trong của vi điều khiển 8051 8 2.3. Khảo sát sơ đồ chân 9 Chân VCC 11 Chân GND 11 Port 0 (P0) 11 Port 1 (P1) 11 Port 2 (P2) 11 Port 3 (P3) 11 Chân RESET (RST) 12 Chân XTAL1 và XTAL2 12 .Chân cho phép bộ nhớ chương trình PSEN 12 Chân ALE (chân cho phép chốt địa chỉ-chân 30) 13 Chân EA 13 2.4. Sơ đồ khối 14 CHƯƠNG 3 – THIẾT KẾ ĐỒNG HỒ THỂ THAO CỜ VUA, CỜ TƯỚNG 15 3.2 Sơ đồ khối 15 3.3 Chức năng các khối 15 3.4 Sơ đồ mạch 16 3.4.1 Khối nút nhấn 16 3.4.2 Khối điểu khiển 16 3.4.3 Khối hiển thị 17 CHƯƠNG 4 : GIỚI THIỆU LINH KIỆN VÀ SƠ ĐỒ GIẢI THUẬT 18 4.1 Vi điều khiển AT89C52 18 Chân VCC 18 Chân GND 19 Port 0 (P0) 19 Port 1 (P1) 19 Port 2 (P2) 19 Port 3 (P3) 19 4.2 Nút nhấn (Button) 20 4.3 Led 7 đoạn 20 4.4 Sơ đồ mạch mô phỏng trên Proteus 21 Nguyên tắc hoạt động 21 4.5 .Sơ đồ giải thuật 22 Code của chương trình 23
Trang 1ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH
KHOA : ĐIỆN – ĐIỆN TỬ VIỄN THÔNG
BÁO CÁO BÀI TẬP LỚN
MÔN KĨ THUẬT VI XỬ LÝ
Tên đề tài
ĐỒNG HỒ THỂ THAO CỜ VUA, CỜ TƯỚNG
Trang 2LỜI NÓI ĐẦU
Sự ra đời của các bộ vi xử lí nói chung, các bộ vi điều khiển nói riêng đã tạo ramột bước ngoặt lớn trong việc thiết kế các hệ thống xử lí thông tin, đo lường điều khiển và truyền thông Kết quả là đã tạo ra được những sản phẩm như máy ảnh số,máy chơi nhạc MP3, đầu đĩa DVD, các bộ biến tần, PLC…ngày càng rẻ hơn, nhỏ gọnhơn, thông minh hơn và tiện dụng hơn
Hơn nữa, kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vàorất nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiềulĩnh vực khác nữa So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rấtnhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển Nên rấttiện dụng và cơ động
Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, chúng emđãchọn đề tài "Thiết kế mạch mạch tạo xung vuông Có nút ấn chọn tầm Hz, KHz,
100 KHz, nút ấn để tăng tần số, nút ấn để giảm tần số Hiển thị tần số phát ra trên led
7 đoạn Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệmnhữngứng dụng của vi điều khiển trong thực tiễn để rồi từ đó tìm tòi, phát triểnnhiều ứng dụng khác trong đời sống hằng ngày cần đến
Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách thamkhảo và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót Vì vậynhóm rất mong được sự góp ý của thầy cô và các bạn
Trang 3MỤC LỤC
MỤC LỤC 3
CHƯƠNG 1 - TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ HỌ MSC-51 5
1.1 Sơ lược về vi xử lý 5
1.2 Họ MSC-51 5
1.3 Các loại VĐK khác 7
CHƯƠNG 2 - GIỚI THIỆU VỀ AT89S52 7
2.1 Cấu hình AT89C52 7
2.2 Cấu trúc bên trong của vi điều khiển 8051 8
2.3 Khảo sát sơ đồ chân 9
Chân VCC 11
Chân GND 11
Port 0 (P0) 11
Port 1 (P1) 11
Port 2 (P2) 11
Port 3 (P3) 11
Chân RESET (RST) 12
Chân XTAL1 và XTAL2 12
.Chân cho phép bộ nhớ chương trình PSEN 12
Chân ALE (chân cho phép chốt địa chỉ-chân 30) 13
Chân EA 13
2.4 Sơ đồ khối 14
CHƯƠNG 3 – THIẾT KẾ ĐỒNG HỒ THỂ THAO CỜ VUA, CỜ TƯỚNG 15
3.2 Sơ đồ khối 15
3.3 Chức năng các khối 15
3.4 Sơ đồ mạch 16
3.4.1 Khối nút nhấn 16
3.4.2 Khối điểu khiển 16
3.4.3 Khối hiển thị 17
CHƯƠNG 4 : GIỚI THIỆU LINH KIỆN VÀ SƠ ĐỒ GIẢI THUẬT 18
4.1 Vi điều khiển AT89C52 18
Chân VCC 18
Trang 4Chân GND 19
Port 0 (P0) 19
Port 1 (P1) 19
Port 2 (P2) 19
Port 3 (P3) 19
4.2 Nút nhấn (Button) 20
4.3 Led 7 đoạn 20
4.4 Sơ đồ mạch mô phỏng trên Proteus 21
Nguyên tắc hoạt động 21
4.5 Sơ đồ giải thuật 22
Code của chương trình 23
Trang 5CHƯƠNG 1 - TỔNG QUAN VỀ VI ĐIỀU KHIỂN VÀ HỌ MSC-51
1.1 Sơ lược về vi xử lý
Trong những thập niên cuối thế kỉ XX, từ sự ra đời của công nghệ bán dẫn, kĩthuật điện tử đã có sự phát triển vượt bậc Các thiết bị điện tử sau đó đã được tíchhợp với mật độ cao và rất cao trong các diện tích nhỏ, nhờ vậy các thiết bị điện tửnhỏ hơn và nhiều chức năng hơn Các thiết bị điện tử ngày càng nhiều chức năngtrong khi giá thành ngày càng rẻ hơn, chính vì vậy điện tử có mặt khắp mọi nơi
Vi xử lý có các khối chức năng cần thiết để lấy dữ liệu, xử lý dữ liệu và xuất dữliệu ra ngoài sau khi đã xử lý Và chức năng chính của Vi xử lý chính là xử lý dữliệu, chẳng hạn như cộng, trừ, nhân, chia, so sánh.v.v Vi xử lý không có khả nănggiao
tiếp trực tiếp với các thiết bị ngoại vi, nó chỉ có khả năng nhận và xử lý dữ liệu màthôi
Để vi xử lý hoạt động cần có chương trình kèm theo, các chương trình này điềukhiển các mạch logic và từ đó vi xử lý xử lý các dữ liệu cần thiết theo yêu cầu.Chương trình là tập hợp các lệnh để xử lý dữ liệu thực hiện từng lệnh được lưu trữtrong bộ nhớ, công việc thực hành lệnh bao gồm: nhận lệnh từ bộ nhớ, giải mã lệnh
và thực hiện lệnh sau khi đã giải mã
Để thực hiện các công việc với các thiết bị cuối cùng, chẳng hạn điều khiểnđộng cơ, hiển thị kí tự trên màn hình đòi hỏi phải kết hợp vi xử lý với các mạchđiện giao tiếp với bên ngoài được gọi là các thiết bị I/O (nhập/xuất) hay còn gọi làcác thiết bị ngoại vi Chẳng hạn như các hệ thống sản xuất tự động trong côngnghiệp, các tổng đài điện thoại, hoặc ở các robot có khả năng hoạt động phức tạpv.v
1.2 Họ MSC-51
Hiện nay có rất nhiều họ Vi điều khiển trên thị trường với nhiều ứng dụng khácnhau, trong đó họ Vi điều khiển họ MCS-51 được sử dụng rất rộng rãi trên thế giới
và ở Việt nam
Vào năm 1980 Intel công bố chíp 8051(80C51), bộ vi điều khiển đầu tiên của
họ vi điều khiển MCS-51 Nó bao gồm 4KB ROM, 128 byte RAM, 32 đường xuất
Trang 6nhập, 1 port nối tiếp và 2 bộ định thời 16 bit Tiếp theo sau đó là sự ra đời của chip8052,8053,8055 với nhiều tính năng được cải tiến
Trang 7Hiện nay Intel không còn cung cấp các loại Vi điều khiển họ MCS-51 nữa,thay vào đó các nhà sản xuất khác như Atmel, Philips/signetics, AMD, Siemens,Matra&Dallas, Semiconductors được cấp phép làm nhà cung cấp thứ hai cho cácchip của họ MSC-51 Chip Vi điều khiển được sử dụng rộng rãi trên thế giới cũngnhư ở Việt Nam hiện nay là Vi điều khiển của hãng Atmel với nhiều chủng loại viđiều khiển khác nhau.
Hãng Atmel có các chip Vi điều khiển có tính năng tương tự như chip Vi điềukhiển MCS-51 của Intel, các mã số chip được thay đổi chút ít khi được Atmel sảnxuất Mã số 80 chuyển thành 89, chẳng hạn 80C52 của Intel khi sản xuất ở Atmel
mã số thành 89C52 (Mã số đầy đủ: AT89C52) với tính năng chương trình tương tựnhư nhau Tương tự 8051, 8053, 8055 có mã số tương đương ở Atmel là 89C51,89C53, 89C55 Vi điều khiển Atmel sau này ngày càng được cải tiến và được bổsung thêm nhiều chức năng tiện lợi hơn cho người dùng
Bảng 1 – Vi điều khiển 89CxxSau khoảng thời gian cải tiến và phát triển, hãng Atmel tung ra thị trường dòng
Vi điều khiển mang số hiệu 89Sxx với nhiều cải tiến và đặc biệt là có thêm khả năngnạp chương trình theo chế độ nối tiếp rất đơn giản và tiện lợi cho người sử dụng
Bảng 2- Vi điều khiển 89Sxx
Trang 8Tất cả các Vi điều khiển trên đều có đặc tính cơ bản giống nhau về phần mềm(các tập lệnh lập trình như nhau), còn phần cứng được bổ sung với chip có mã số ởhai số cuối cao hơn, các Vi điều khiển sau này có nhiều tính năng vượt trội hơn Viđiều khiển thế hệ trước.
Các Vi điều khiển 89Cxx như trong bảng 1 có cấu tạo ROM và RAM như 89Sxxtrong bảng 2, tuy nhiên 89Sxx được bổ sung một số tính năng và có thêm chế độ nạpnối tiếp Các phần thực hành trên phần cứng thực tế, chúng ta sẽ thực hành với Viđiều khiển 89S52 (Mã đầy đủ:AT89S52; AT là viết tắt của nhà sản xuất ATMEL)
vì :
trên bo mạch mà không cần tháo chip vi điều khiển sang mạch khác để nạpchương trình và nhiều tính năng cải tiến khác
1.3 Các loại VĐK khác
điều khiển này được sử dụng chuyên dụng theo chức năng cần điều khiển
CHƯƠNG 2 - GIỚI THIỆU VỀ AT89S52
Vi điều khiển 8051 được Intel cho ra đời vào năm 1980 thuộc vi điều khiển đầutiên của họ MCS-51 Hiện tại rất nhiều nhà sản xuất như Siemens, Advanced MicroDevices, Fusisu và Philips tập trung phát triển các sản phẩm trên cơ sở 8051 Atmel
là hãng đã cho ra đời các chip 89C51, 52, 55 và sau đó cải tiến thêm, hãng cho ra đời89S51, 52, 89S8252…
2.1 Cấu hình AT89C52:
chạy với thạch anh 12MHz
Trang 9 256 Byte Ram nội.
3 Timer/ Counter 16 bit Timer 0,1,2 Timer 2 có các chức năng
Capture/Compare
2.2 Cấu trúc bên trong của vi điều khiển 8051
Phần chính của vi điều khiển 8051 là bộ xử lý trung tâm (CPU: central processingunit) bao gồm:
- Thanh ghi tích lũy A
- Thanh ghi tích lũy phụ B, dùng cho phép nhân chia
- Đơn vị logic học (ALU: Arithmetic Logical Unit)
- Từ trạng thái trương trình (PSW: Program Status Word)
- Bốn băng thanh ghi
Hai bộ định thời 16 bit hoạt động như một bộ đếm
Các cổng (port0, port1, port2, port 3) sử dụng vào mục đích điều khiển
Ở cổng 3 có thêm các đường dẫn điều khiểu dùng để trao đổi với một bộ nhớbên ngoài, hoặc để đầu nối giao diện nối tiếp, cũng như các đường ngắt dẫn bên.Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ, làm việcđộc lập với nhau Trong vi điều khiển 8051 có hai thành phần quan trọng khác đó là
bộ nhớ ngoài và các thanh ghi
Trang 10Bộ nhớ bao gồm: có bộ nhớ RAM và bộ nhớ ROM dùng để lưu trữ dữ liệu và
mã lệnh Các thanh ghi sử dụng để lưu thông tin trong quá trình xử lý Khi CPU làmviệc nó làm thay đổi nội dung của các thanh ghi
2.3 Khảo sát sơ đồ chân
IC 89S52 có 40 chân cho các chức năng khác nhau như: vào ra I/0, đọc , ghi ,địa chỉ, dữ liệu và ngắt Tuy nhiên, vì hầu hết các nhà phát triển chính dụng chípđóng vỏ 40 chân với hai hàng chân DIP, nên chúng ta cùng khảo sát Vi điều khiểnvới 40 chân dạng DIP
Trang 11Hình 1- Sơ đồ chân IC AT89C52
Trang 12Chân VCC
Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển Nguồn điện cấp là+5V±0.5
Chân GND:
Chân số 20 nối GND(hay nối Mass) Khi thiết kế cần sử dụng một mạch ổn áp
để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805
Port 0 (P0)
xuất/nhập Các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí,hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiểnled đơn sáng tắt
còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộnhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.Port 1 (P1)
Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác
Port 2 (P2)
Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận,byte cao do P2 này đảm nhận
Trang 13Bảng 3 – Bản chức năng của các chân Port 3
Chân RESET (RST)
Ngõ vào RST ở chân 9 là ngõ vào Reset dùng để thiết lập trạng thái ban đầu cho
vi điều khiển Hệ thống sẽ được thiết lập lại các giá trị ban đầu nếu ngõ này ở mức 1tối thiểu 2 chu kì máy
Chân XTAL1 và XTAL2
Hai chân này có vị trí chân là 18 và 19 được sử dụng để nhận nguồn xung clock
từ bên ngoài để hoạt động, thường được ghép nối với thạch anh và các tụ để tạonguồn xung clock ổn định
.Chân cho phép bộ nhớ chương trình PSEN
PSEN ( program store enable) tín hiệu được xuất ra ở chân 29 dùng để truy xuất
bộ nhớ chương trình ngoài Chân này thường được nối với chân OE (output enable)của ROM ngoài
Khi vi điều khiển làm việc với bộ nhớ chương trình ngoài, chân này phát ra tínhiệu kích hoạt ở mức thấp và được kích hoạt 2 lần trong một chu kì máy Khi thực thimột chương trình ở ROM nội, chân này được duy trì ở mức logic không tích cực(logic 1)
(Không cần kết nối chân này khi không sử dụng đến)
Trang 14Chân ALE (chân cho phép chốt địa chỉ-chân 30)
Khi Vi điều khiển truy xuất bộ nhớ từ bên ngoài, port 0 vừa có chức năng làbus địa chỉ, vừa có chức năng là bus dữ liệu do đó phải tách các đường dữ liệu và địachỉ Tín hiệu ở chân ALE dùng làm tín hiệu điều khiển để giải đa hợp các đường địachỉ và các đường dữ liệu khi kết nối chúng với IC chốt
Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động đưa vào Vi điềukhiển, như vậy có thể dùng tín hiệu ở ngõ ra ALE làm xung clock cung cấp cho cácphần khác của hệ thống
Ghi chú: khi không sử dụng có thể bỏ trống chân này
Trang 152.4 Sơ đồ khối
Hình 2 – Sơ đồ khối của IC AT89C52
Trang 16CHƯƠNG 3 – THIẾT KẾ ĐỒNG HỒ THỂ THAO CỜ VUA, CỜ TƯỚNG
3.1 Yêu cầu bài toán
Có 2 nút ấn cho 2 đấu thủ
Có 2 nút ấn chỉnh thời gian (phút) cho mỗi kỳ thủ
Nếu thời gian của kỳ thủ nào hết trước thì chớp đèn báo hiệu (thua)
Thời gian hiển thị trên 8 led 7 đoạn (phút và giây)
3.2 Sơ đồ khối
Hình 3: Sơ đồ khối
3.3 Chức năng các khối
Trang 173.4.2 Khối điểu khiển
Hình 5 – Khối điều khiển
Khối vi điều khiển AT89C52 Dùng để điều chỉnh mọi hoạt động của hệ thống
Trang 183.4.3 Khối hiển thị
Hình 6 – khối hiển thị
Trang 19CHƯƠNG 4 : GIỚI THIỆU LINH KIỆN VÀ SƠ ĐỒ GIẢI THUẬT
Hình 7 : Sơ đồ chân của vi điều khiển AT89C52
Chân VCC
Chân số 40 là VCC cấp điện áp nguồn cho Vi điều khiển Nguồn điện cấp là+5V±0.5
Trang 20Chân GND:
Chân số 20 nối GND(hay nối Mass) Khi thiết kế cần sử dụng một mạch ổn áp
để bảo vệ cho Vi điều khiển, cách đơn giản là sử dụng IC ổn áp 7805
Port 0 (P0)
xuất/nhập Các chân này được dùng để nhận tín hiệu từ bên ngoài vào để xử lí,hoặc dùng để xuất tín hiệu ra bên ngoài, chẳng hạn xuất tín hiệu để điều khiểnled đơn sáng tắt
còn làm nhiệm vụ lấy dữ liệu từ ROM hoặc RAM ngoại (nếu có kết nối với bộnhớ ngoài), đồng thời Port 0 còn được dùng để định địa chỉ của bộ nhớ ngoài.Port 1 (P1)
Port P1 gồm 8 chân (từ chân 1 đến chân 8), chỉ có chức năng làm các đường xuất/nhập, không có chức năng khác
Port 2 (P2)
Port 2 gồm 8 chân (từ chân 21 đến chân 28) có hai chức năng:
lượng lớn, cần 2 byte để định địa chỉ của bộ nhớ, byte thấp do P0 đảm nhận,byte cao do P2 này đảm nhận
Trang 21Bảng 3 – Bản chức năng của các chân Port 3
RST (Reset):
Đưa lên mức cao ( trong ít nhất 2 chu kì máy), hệ thống sẽ khởi động lại
XTAL1 và XTAL2:
Chu kì máy (TM) =1/ (fosc/12)=12/fosc
Nếu tần số thạch anh là 12MHz thì chu kì máy bằng 1μss
Nút nhấn hoặc nút đơn giản là một cơ chế chuyển đổi đơn giản để điều khiển một
số khía cạnh của máy móc hoặc quy trình Các nút thường được làm từ vật liệu cứng, thường là nhựa hoặc kim loại
Trang 224.4 Sơ đồ mạch mô phỏng trên Proteus
Hình 7 – Sơ đồ mạch mô phỏng trên Proteus
Nguyên tắc hoạt động
Trang 23Khi mở nguồn mạch sẽ ở chế độ chờ để chúng ta cài đặt giờ Sau khi cài đặt giờ xong bằng nút nhấn 40 thì ta x=sẽ bật nút 41 lên để bắt đầu đếm Trong khi đếm nếu cờ thủ nhấn nút thì chương trình sẽ nhảy đếm lại từ đầu Nếu cờ thủ nào không kịp thời gian thì khi hết giờ đèn thuộc cờ thủ đó sẽ nháyđèn báo hiệu đã thua.
Trang 24Code của chương trình
org 00h
CPL P3.7
CPL P3.4
MOV DPTR,#MALED
MOV R5,#1 ;GIÁ TRI PHUT BAN DAU
CJNE R0,#0,MYMOV A,R0 ADD A,R5
JZ EXITDEC R5ACALL RESETSETGIO: ;HÀM CÀI DAT THOI GIAN
acall giay
acall gio
Trang 25jb p3.3,EXIT ;NEU GIA TRI CHAN 3.3 BANG 1 THUC HIEN THOAT NEUBANG 0 THUC HIEN CAU LENH TIEP THEO
MOV r2,#10LAP2:
MOV r3,#250HIENTHI:
MOV A,R0MOV B,#10DIV ABMOVC A,@A+DPTRMOV P0, A
SETB P3.0CLR P3.1 CLR P3.0
Trang 26maled:
MOV A,BMOVC A,@A+DPTRMOV P0, A
SETB P3.1CLR P3.0 CLR P3.1JNB P3.6,DEMGIO1JNB P3.5,DEMGIO2DJNZ r3,HIENTHI DJNZ r2,LAP2 DJNZ R1,LAP1 RET
MOV A,R5MOV B,#10DIV ABMOVC A,@A+DPTRMOV P2, A
MOV A,BMOVC A,@A+DPTRMOV P1, A
RET
db 0c0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HRET
Trang 27CPL P3.4ACALL delay
Trang 28ACALL MA1
END