ĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂNĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂN
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ ĐIỆN TỬ-THÔNG TIN ĐỒ ÁN II THIẾT KẾ MẠNCH GIÁM SÁT VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG VI ĐIỀU KHIỂN Giảng viên hướng dẫn: TS Vũ Xuân Hùng Sinh viên thực : Trần Thế Hải _K22E Vũ Văn Hà _K22E Vũ Ngọc Hải _K22E Vũ Minh Hiến _K22E Đồ án II LỜI NÓI ĐẦU Ngày ngành kỹ thuật điện tử có vai trò quan trọng sống người Các hệ thống điện tử ngày đa dạng thay công việc hàng ngày người từ công việc đơn giản đến phức tạp điều khiển tín hiệu đèn giao thơng, biển quảng cáo, đo tốc độ động hay đồng hồ số Các hệ thống thiết kế theo hệ thống tương tự, hệ thống số dùng vi điều khiển Tuy nhiên hệ thống điện tử thông minh người ta thường sử dụng vi điều khiển hệ thống tương tự hay hệ thống sốbởi số ưu điểm vượt trội mà vi điều khiển mang lại là: độ tin cậy cao, giá thành thấp, dễ dàng thiết kế, lắp đặt vận hành Để làm điều phải có kiến thức vi điều khiển, hiểu cấu trúc chức Đồ án II LỜI CẢM ƠN Qua đồ án này, nhóm em xin cảm ơn đến Thầy TS Vũ Xuân Hùng giúp đỡ cho chúng em suốt q trình hồn thành đồ án Giúp chúng em hiểu rõ mạch Arduino, cách thiết kế mạch, chạy code hay biết nhiều ứng dụng hay mạch Arduino Ngồi ra, nhờ hướng dẫn nên chúng em hoàn thành báo cáo , hiểu số q trình làm cơng đoạn thiết kế, mô phỏng, sơ đồ nguyên lý hoạt động tính chất cụ thể linh kiện Qua giúp chúng em tiến có bước đầu hiểu mạch điện tử Thông qua đồ án, chúng em tích lũy học kinh nghiệm thực tế có cho việc học tập công việc chúng em sau Bên cạnh cịn có nhiều mặt hạn chế lần đầu tiếp xúc với linh kiện điện tử thực tế kỹ yếu nên dẫn đến sản phẩm cịn nhiều khuyết điểm, mơng cô thông cảm bỏ qua cho chúng em Một lần nhóm chúng em xin chân thành cảm đến thầy TS Vũ Xuân Hùng giúp đỡ nhóm em hoàn thành đồ án Đồ án II MỤC LỤC MỤC LỤC .3 DANH MỤC HÌNH LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI .7 1.1 Đặt vấn đề 1.2 Khảo sát vấn đề: 1.3 Các vấn đề cần giải toán : .8 1.4 Giải pháp: .8 1.5 Mục đích đề tài .8 1.6 Nguyên lý đo nhiệt độ 1.7 Bố cục đồ án CHƯƠNG II: HỌ VI ĐIỀU KHIỂN 8051 11 2.1 Sơ lược vi xử lý vi điều khiển 11 2.1.1 Bộ vi điều khiển vi xử lý đa .11 2.1.2 Ưu nhược điểm vi điều khiển 12 2.2 Cấu trúc chíp vi điều khiển 8051 13 2.2.1 Sơ đồ khối vi điều khiển chức 13 2.2.2 Tổ chức nhớ 8051 .20 2.2.3 Các đặc trưng bật họ 8051 24 2.2.4 Các chân 8051 25 2.2.5 Các ghi họ 8051 29 CHƯƠNG III: CẢM BIẾN NHIỆT LM35 – BỘ BIẾN ĐỔI TƯƠNG TỰ SANG SỐ ADC 0804 .36 A CẢM BIẾN NHIỆT LM35 .36 3.1 Cấu tạo LM35 36 3.2 Dải nhiệt độ thay đổi trở kháng theo nhiệt độ LM35 37 3.3 Các cảm biến nhiệt họ LM35 38 B BỘ BIẾN ĐỔI TƯƠNG TỰ - SỐ ADC0804 40 3.4: Sơ đồ chân ADC0804 40 Đồ án II 3.5: Phân chia thời gian cho q trình chuyển đổi tín hiệu .43 3.6: Ghép nối LM35 với ADC0804 47 3.7: Một số linh kiện hỗ trợ việc thiết kế điều khiển mạch khác 48 3.7.1 Công tác điện tử C1815 48 3.7.2 IRF 540 49 3.7.3 Led 49 3.7.4 Quạt tản nhiệt .50 CHƯƠNG IV: KHẢO SÁT, THIẾT KẾ BÀI TOÁN 51 4.1 Nhiệm vụ thiết kế 51 4.2 Chức khối 51 4.3 Sơ đồ khối 52 4.4 Sơ đồ thuật toán 53 4.5 Phần mềm mô 54 4.5.1: Giới thiệu phần mềm Proteus 54 4.5.2 Các thành phần chương trình 55 4.5.3 Sơ đồ nguyên lý 57 4.5.4 Hình ảnh mơ mạch chạy .58 4.6 Phần mềm lập trình Code lập trình 59 4.6.1 Ngơn ngữ lập trình C 59 4.6.2 Chương trình đo và điều khiển nhiệt đợ của thiết bị 61 4.7 Mạch chạy 67 KẾT LUẬN 68 TÀI LIỆU THAM KHẢO .69 Đồ án II DANH MỤC HÌNH Hình 2.1: Hệ vi xử lý đa 11 Hình 2.2: Chíp vi điều khiển 12 Hình 2.3: Sơ đồ khối vi xử lý 8051 13 Hình 2.4: Nguồn xung clock 19 Hình 2.5: Cấu trúc nhớ 8051 21 Hình 2.6: Bộ nhớ chương trình 8051 .22 Hình 2.7: Bộ nhớ liệu RAM 8501 24 Hình 2.8: Hình ảnh sơ đồ chân 8051 25 Hình 2.9: Mạch tạo dao động dùng cổng lô-gic .28 Hình 2.10: Bảng lựa chọn ghi 29 Hình 2.11: Bảng chọn chế độ định thời 30 Hình 3.1: Sơ đồ chân LM35 36 Hình 3.2: Hình ảnh thật LM35 37 Hình 3.3: Trở kháng cảm biến nhiệt theo nhiệt độ .38 Hình 3.4: Hướng dẫn chọn loạt cảm biến nhiệt họ LM35 .38 Hình 3.5: Sơ đồ khối cảm biến nhiệt độ 39 Hình 3.6: Sơ đồ chân ADC0804 .40 Hình 3.7: Sơ đồ kết nối ADC 0804 chế độ chạy tự .42 Bảng 3.8: Điện áp Vref/2 liên hệ với dải Vin .42 Hình 3.9: Phân chia thời gian đọc ghi ADC0804 .44 Hình 3.10: Sơ đồ mạch biến đổi ADC 47 Hình 3.11: Sơ đồ thời gian hoạt động ADC0804 47 Hình 3.12: Sơ đồ hoạt động chân ngắt 48 Hình 3.13: Công tác điện tử C1815 .48 Hình 3.14: IRF 540 .49 Hình 3.15: Led Anot chung 49 Đồ án II LỜI MỞ ĐẦU Ngày với phát triển nghành vi điện tử, kỹ thuật số hệ thống điều khiển dần tự động hóa Với kỹ thuật tiên tiến vi xử lý, vi mạch số, vi điều khiển… tích hợp vào bên chip nên ứng dụng vào lĩnh vực điều khiển, hệ thống điều khiển khí thơ sơ, với tốc độ xử lý chậm chạp xác thay hệ thống điều khiển tự động với lệnh chương trình thiết lập trước Trong xã hội nhìn chung tai nạn cháy, nổ thường xảy nhà máy, xí nghiệp, trung tâm tai nạn gây thiệt hại lớn người cải Vì để đảm tính mạng cho người cải vật chất khu vực dễ xảy cháy cần phải có thiết bị đo nhiệt độ mơi trường, thiết bị có chức đo nhiệt độ mơi trường, đồng thời có khả báo động điều khiển hệ thống chữa cháy nhiệt độ môi trường đạt đến ngưỡng nhiệt độ ấn định trước Với tích lũy tích lũy mơn học vi điều khiển, Em nhận thấy rằng: Ứng dụng vi điều khiển 8051 vào việc đo khống chế nhiệt độ tự động phương pháp tối ưu nhất, nhằm hạn chế tới mức thấp thiệt hại người nhà máy, xí nghiệp, chung cư, chợ,… Đồng thời chấp thuận môn Kĩ Thuật Máy Tính giáo hướng dẫn cho phép, em tiến hành thực sự dụng vi điều khiển 8051 để xây dựng mạch đo và điều khiển nhiệt độ của thiết bị Đồ án II CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề Cùng với phát triển khoa học công nghệ, thiết bị điện tử đã, tiếp tục ứng dụng ngày rộng rãi mang lại hiệu hầu hết lĩnh vực khoa học kỹ thuật đời sống xã hội Việc gia cơng, xử lý tín hiệu điện tử đại dựa sở nguyên lý số Vì thiết bị làm việc dựa sở nguyên lý số có ưu điểm hẳn so với thiết bị làm việc dưạ sở nguyên lý tương tự, đặc biệt kỹ thuật tính tốn Sự phát triển mạnh mẽ công nghệ điện tử cho đời nhiều vi mạch số cỡ lớn với giá thành rẻ khả lập trình cao mang lại thay đổi lớn ngành điện tử Mạch số mức độ khác thâm nhập lĩnh vực điện tử thông dụng chuyên nghiệp cách nhanh chóng Các trường kỹ thuật nơi mạch số thâm nhập mạnh mẽ học sinh, sinh viên ưa chuộng lợi ích tính khả thi Vì hiểu biết sâu sắc kỹ thuật số thiếu sinh viên ngành điện tử Nhu cầu hiểu biết kỹ thuật số không riêng người theo chuyên ngành điện tử mà cán kỹ thuật khác có sử dụng thiết bị điện tử 1.2 Khảo sát vấn đề: Trong nhiều lĩnh vực sản xuất công nghiệp đời sống nay, vấn đề an toàn cháy nổ đặt lên hàng đầu, thiết bị hoạt động liên tục nhiều có thiết bị hoạt động nhiều ngày liền mà khơng tắt nên bị nóng, độ bền giảm Khi nhiệt độ tăng cao cịn gây cháy nổ ảnh hưởng đến sản xuất, gây thiệt hại lớn kinh tế Nhận thức tầm quan trọng vấn đề nên em tiến hành nghiên cứu “Sự dụng vi điều khiển 8051 để xây dựng mạch đo và điều khiển nhiệt độ của thiết bị ”, với mong muốn giải yêu cầu lấy làm đồ án tốt nghiệp cho Đồ án II 1.3 Các vấn đề cần giải toán : Bài toán thiết kế mạch hiển thị nhiệt độ điều khiển quạt tản nhiệt cho thiết bị điện tử đặt yêu cầu sau: - Cảm biến nhiệt độ thiết bị cần tản nhiệt, nhiệt độ tăng cao quạt tăng tốc độ quay để tản nhiệt cho thiết bị, nhiệt độ giảm quạt giảm tốc độ quay - Hiển thị nhiệt độ báo xác - Xây dựng mạch chạy 1.4 Giải pháp: Giải pháp đưa để đáp ứng yêu cầu toán: - Sử dụng vi điều khiển 89C51 - Sử dụng cảm biến nhiệt LM35 - Sử dụng chip ADC0804 chuyển đổi từ liệu tương tự sang liệu số - Xây dựng chương trình mơ hoạt động mạch - Xây dựng mạch chạy thị nhiệt độ, tản nhiệt cho thiết bị 1.5 Mục đích đề tài Sự cần thiết, quan trọng tính khả thi lợi ích mạch số lý để em chọn thực đồ án “Sự dụng vi điều khiển 8051 để xây dựng mạch đo và điều khiển nhiệt độ của thiết bị” nhằm ứng dụng kiến thức học vào thực tế Sử dụng IC cảm biến nhiệt (LM35) kết hợp với vi xử lý ADC0804 đưa liệu nhị phân vào vi điều khiển 89C51 , 89C51 có nhiệm vụ điều khiển việc chuyển đổi ADC0804 hiển thị liệu lên LED (nhiệt độ thiết bị điện tử), nhiệt độ tăng cao, 89C51 thực chương trình tăng tốc độ quay cho quạt 89C51 nhận ngắt thực chương trình ngắt thiết bị Mục đích yêu cầu đề tài sau: Mạch hiển thị nhiệt độ cách xác Khi nhiệt độ tăng cao quạt tản nhiệt quay nhanh để tản nhiệt cho thiết bị Thực tắt thiết bị nhiệt độ không nằm mức cho phép Đồ án II 1.6 Nguyên lý đo nhiệt độ IC đo nhiệt mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệu điện dạng dịng điện hay điện áp Dựa vào đặc tính nhạy cảm bán dẫn với nhiệt độ, tạo điện áp dòng điện tỉ lệ thuận với nhiệt độ tuyệt đối Vỡ để đo giá trị nhiệt độ thỡ ta cần đo tín hiệu điện áp ta biết giá trị nhiệt độ cần đo Sự tác động nhiệt độ tạo điện tích tự lỗ trống chất bán dẫn Bằng đốt núng chất bỏn dẫn IC đo nhiệt tạo phá vỡ phân tử, bứt electron thành dạng tự di chuyển qua vùng cấu trúc mạng tinh thể tạo xuất lỗ trống Làm cho tỷ lệ điện tử tự lỗ trống tăng lên theo qui luật hàm mũ với nhiệt độ Đầu tiên LM35 cảm biến nhiệt độ, nhận tín hiệu nhiệt độ để chuyển tín hiệu nhiệt độ thành đại lượng điện áp hay dịng điện Cứ tăng giảm oC điện áp tới đầu LM35 tăng giảm 10mV Dòng điện đưa vào chân VCC IN+ ( chân số 6) ADC 0804 để ADC chuyển tín hiệu từ dạng tín hiệu tương tự sang dạng tín hiệu số Để chuyển đổi nhiệt độ hoạt động cách xác cần đưa điện áp điện mẫu Vref/2 vào chân số ADC Sau chuyển đổi tín hiệu từ dạng tương tự sang tín hiệu dạng số ta đưa vào IC AT89C51 để IC bắt đầu xử lý, đo đạc, phân tích, tính tốn, lưu trữ đưa hiển thị Led 1.7 Bố cục đồ án Chương 1: Tổng quan đề tài: Đặt vấn đề đồ án, khảo sát vấn đề đó,sau đưa cách giải giải pháp cho đồ án Chương : Họ vi điều khiển 8051: Sơ lược vi xử lý vi điều khiển, ưu nhược điểm vi điều khiển, cấu trúc họ vi diều khiển 8051, tổ chức nhớ, đưa đặc điểm bật họ vi diều khiển này, cách sử dụng chân 8051… 10 Đồ án II Bật/ Tắt chế độ mô thời gian thực Bật tắt chế độ dây sơ đồ nguyên lý Tìm kiếm linh kiện Chỉnh sửa thuộc tính chung Các cơng cụ quản lý trang làm việc Xuất danh sách linh kiện Kiểm tra lỗi mạch điện (ERC) Liên thông ARES để vẽ mạch in * Thanh công cụ Component – Thêm linh kiện vào vẽ Junction Dot – Thêm điểm nối nơi giao đường dây Wire Lable – Gán tên cho đường dây Text Script – Thêm Text vào vẽ Bus – Vẽ đường Bus Sub Circuit – Mạch phụ Instant Edit Mode – Chỉnh sửa nhanh thuộc tính linh kiện Inter – Sheet Terminal – Nối đầu cực Divice Pin – Vẽ chân linh kiện Simulation Graph – Vẽ đồ thị mô Tapr Recorder – Băng ghi Gennerator – Các máy phát tín hiệu Voltage Probe – Đầu dò điện áp Current Probe – Đầu đò dòng điện Virtual Instruments – Các thiết bị ảo 58 Đồ án II Các công cụ vẽ 2D * Các nút mô * Vùng hiển thị Hiện thị khái quát vùng làm việc hành, khung màu xanh dương biểu cho vẽ, khung xanh biểu cho phần vẽ thị vùng làm việc Khi ta chọn linh kiện, kí hiệu nguyên lý hiển thị lên vùng * Vùng làm việc Đây nơi thực toàn thao tác đẻ hoàn thành vẽ 4.5.3 Sơ đồ nguyên lý 59 Đồ án II 4.5.4 Hình ảnh mơ mạch chạy 60 Đồ án II 61 Đồ án II 4.6 Phần mềm lập trình Code lập trình Với họ điều khiển 8051 dùng phần mềm lập trình KeilC có hỗ trợ với họ 8051 thích hợp cho việc lập trình Ta làm trình ngơn ngữ C Assemberly Trong mạch đo nhiệt độ cho em sử dụng ngôn ngữ C Code chương trình 4.6.1 Ngơn ngữ lập trình C * Giới thiệu ngơn ngữ lập trình C Ngơn ngữ lập trình C ngơn ngữ mệnh lệnh phát triển từ đầu thập niên 1970 Ken Thompson Dennis Ritchie để dùng hệ điều hành UNIX Từ dó, ngơn ngữ lan rộng nhiều hệ điều hành khác trở thành ngôn ngữ phổ dụng C ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần với phần cứng giống với ngơn ngữ Assembler hầu hết ngôn ngữ bậc cao Hơn thế, C đơi đánh “có khả di động”, cho thấy khác quan trọng với ngơn ngữ bậc thấp Assembler, việc mã C dịch thi hành hầu hết máy tính, hẳn ngơn ngữ Assembler chạy số máy tính đặc biệt Vì lý C xem ngơn ngữ bậc trung Các chức C: Một ngôn ngữ cốt lõi đơn giản, với chức quan trọng chẳng hạn hàm hay việc xử lý tập tin cung cấp thư viện thủ tục Tập trung mẫu hình lập trình thủ tục, với phương tiện lập trình theo kiểu cấu trúc Một hệ thống kiểu đơn giản nhằm loại bỏ nhiều phép tốn khơng có ý nghĩa thực dụng Dùng ngơn ngữ tiền xử lý, tức câu lệnh tiền xử lý C, cho nhiệm vụ định nghĩa macro hàm chứa nhiều tập tin mã nguồn (bằng cách dùng câu lệnh tiền xử lý dạng #include chẳng hạn) 62 Đồ án II Mức thấp ngôn ngữ cho phép dùng tới nhớ máy tính qua việc sử dụng kiểu liệu pointer Số lượng từ khóa nhỏ gọn Các tham số đưa vào hàm giá trị, không địa Hàm trỏ cho phép hình thành tảng ban đầu cho tính đóng tính đa hình Hỗ trợ ghi hay kiểu liệu kết hợp người dùng từ khóa định nghĩa struct cho phép liệu liên hệ tập hợp lại điều chỉnh tồn * Từ khóa Asm Const Else For Interrupt Return Sizeof Void Break Continue Enum Goto Long Short Switch Volatile Case Default Extern Huge Near Static Typedef While Cdeel Do Far If Pascal Struct Union Char Double Float Int Register Các từ khóa phải viết chữ thường 63 Signed Unsigned Đồ án II * Kiểu liệu T Kiểu liệu Kích thước Miền giá trị (Type) (Length) (Range) unsigned char byte đến 255 char byte -128 đến 127 enum byte -32,768 đến 32,767 unsigned int byte đến 65,535 short int byte -32,768 đến 32767 int byte -32768 đến 32767 unsigned long byte đến 4,294,967,295 long byte -2,147,483,648 đến 2,147,483,247 float byte 3.4*10-38 đến 3.4 *1038 double byte 1.7*10-308 đến 1.7 *10308 long double 10 byte 3.4*10-4932 đến 1.1 *104932 T 1 4.6.2 Chương trình đo và điều khiển nhiệt độ của thiết bị #include //#include #define Data P0 sbit L1=P2^4; sbit L2=P2^5; sbit L3=P2^6; sbit L4=P2^7; sbit rd=P3^0; sbit wr=P3^1; sbit intr=P3^2; sbit set=P3^5; sbit up=P3^6; 64 Đồ án II sbit down=P3^7; sbit relay=P3^3; sbit led=P3^4; sbit quat=P2^0; unsigned char maled[]={0x7e,0x42,0x5d,0x57 ,0x63,0x37,0x3f,0x52,0x7f,0x77,0xf1,0xbc,0xc3,0xa9}; unsigned char nd=20,min=10,max=90; unsigned int dem=0; //================================================ void delay_ms(unsigned int ms) { unsigned char i; while(ms ) for(i=0;i=nd+5) { quat=0; dem=0; } TH1=0xfc; TL1=0x18; TR1=1; } 65 Đồ án II //================================================ unsigned char conv() { unsigned char t; wr=0; wr=1; while(intr); rd=0; t=P1; rd=1; return t; } //================================================ void display_t(unsigned char x,unsigned char y) { Data=~maled[x]; L1=1; delay_ms(1); L1=0; Data=~maled[y]; L2=1; delay_ms(1); L2=0; } //================================================= void display_c(unsigned char x,unsigned char y) { Data=~maled[x]; L3=1; delay_ms(1); L3=0; 66 Đồ án II Data=~maled[y]; L4=1; delay_ms(1); L4=0; } //================================================ void quetphim() { delay_ms(300); while(set==0); while(set==1) { display_t(13,max/10); display_c(max%10,10); if(up==0) { delay_ms(300); max++; if(max>90) max=0; } if(down==0) { delay_ms(300); max ; if(max==255) max=90; } } delay_ms(300); while(set==0); while(set==1) { 67 Đồ án II display_t(12,min/10); display_c(min%10,10); if(up==0) { delay_ms(300); min++; if(min>90) min=0; } if(down==0) { delay_ms(300); ; if(min==255) min=90; } } delay_ms(300); while(set==0); } //================================================= void main() { unsigned char n,i,min; unsigned char a[10]; relay=0; led=0; quat=0; TMOD=0x10; TH1=0xfc; TL1=0x18; IE=0x88; quat=1; 68 Đồ án II delay_ms(3000); TR1=1; i=0; while(1) { a[i]=conv(); i++; if(i==10) { i=0; nd=a[0]; for(n=0;na[n]) nd=a[n]; } for(n=0;nmax) relay=1; else relay=0; if(nd