1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Giam sat va dk he thong on dinh nhiet bang PC

137 215 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 137
Dung lượng 3,36 MB

Nội dung

ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang MỤC LỤC CHƯƠNG DẪN NHẬP……………………………………………………………………………………………… ……………….3 CHƯƠNG I GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC…………………………… ……………………….7 CHƯƠNG II TÌM HIỂU CẤU TRÚC PHẦN CỨNG CỦA PIC 16F877A……………….64 CHƯƠNG III TẬP LỆNH LẬP TRÌNH CHO PIC TRONG CCS……………………………… 91 CHƯƠNG IV GIỚI THIỆU VỀ GIAO TIẾP CỔNG NỐI TIẾP……………………………………107 CHƯƠNG V: THIẾT KẾ THI CÔNG………………………………………………………………………………127 CHƯƠNG VI: KẾT LUẬN – HƯỚNG PHÁT TRIỂN…………………………………………………………128 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang CHƯƠNG : DẪN NHẬP 1.1.ĐẶT VẤN ĐỀ : Ngày với phát triển công nghiệp vi điện tử, kỹ thuật số hệ thống điều khiển tự động hóa Với kỹ thuật tiên tiến vi xử lí, vi mạch số … đựơc ứ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 trình sản xuất nhà máy, xí nghiệp nay, việc đo khống chế nhiệt độ tự động yêu cầu cần thiết quan trọng Vì nắm bắt nhiệt độ làm việc cuả hệ thống Dây chuyền sản xuất … giúp ta biết tình trạng làm việc c ác yêu cầu có xử lý kòp thời tránh hư hỏng cố xảy Để đáp ứng yêu cầu đo khống chế nhiệt độ tự động, có nhiều phương pháp để thực hiện, nghiên cửu khảo sát vi điều khiển PIC 16F877A nhóm thực nhận thấy rằng: ứng dụng vi điều khiển PIC 16F877A vào việc đo khống chế nhiệt độ tự động phương pháp tối ưu Đồng đồng ý khoa Điện Tử-Tin Học Trường Cao Đẳng Kỹ Thuật Cao Thắng, nhóm chúng em tiến hành thực đề tài “Giám sát điều khiển hệ thống ổn đònh nhiệt máy tính” để điều khiển nhiệt độ nhà kiếng 1.2.GIỚI HẠN ĐỀ TÀI : Với thời gian gần mười tuần thực đề tài, trình độ chuyên môn có hạn, chúng em cố gắng để hoàn thành tập luận văn này, giải vấn đề sau : • Thiết kế mạch đo nhiệt độ dải từ 0C – 1000C hiển thò số • Đặt giá trò để đóng mở thiết bò • Đặt giá trò nhiệt độ để cảnh cáo • Viết chương trình (phần mềm) để đáp ứng yêu cầu • Do thời gian hạn hẹp nên chúng em thiết kế đầu đo phần mềm thiết kế đôi lúc chưa ổn đònh hoàn thiện 1.3.MỤC ĐÍCH NGHIÊN CỨU : Mục đích trước hết thực đề tài để hoàn tất chương trình môn học để đủ điều kiện trường ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang • Cụ thể nghiên cứu thực đề tài chúng em muốn phát huy thành ứng dụng vi điều khiển nhằm tạo sản phẩm, thiết bò tiên tiến hơn, đạt hiệu sản xuất cao • Mặt khác đồ án làm tài liệu tham khảo cho sinh viên khóa sau Giúp họ hiểu rõ ứng dụng vi điều khiển • Ngòai trình nghiên cứu thực đề tài hội để chúng em tự kiểm tra lại kiến thức học trường, đồng thời phát huy tính sáng tạo, khả giải vấn đề theo yêu cầu đặt dòp để chúng em tự khẳng đònh trước trường để tham gia vào hoạt động sản xuất xã hội ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang CHƯƠNG I :GIỚI THIỆU VỀ VI ĐIỀU KHIỂN PIC 1.1 PIC LÀ GÌ ? PIC viết tắt “Programable Intelligent Computer”, tạm dòch “máy tính thông minh khả trình” hãng Genenral Instrument đặt tên cho vi điều khiển họ: PIC1650 thiết kế để dùng làm thiết bò ngoại vi cho vi điều khiển CP1600 Vi điều khiển sau nghiên cứu phát triển thêm từ hình thành nên dòng vi điều khiển PIC ngày 1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC? Hiện thò trường có nhiều họ vi điều khiển 8051, Motorola 68HC, AVR, ARM, Ngoài họ 8051 hướng dẫn cách môi trường đại học, thân người viết chọn họ vi điều khiển PIC để mở rộng vốn kiến thức phát triển ứng dụng công cụ nguyên nhân sau: Họ vi điều khiển tìm mua dễ dàng thò trường Việt Nam Giá thành không đắt Có đầy đủ tính vi điều khiển hoạt động độc lập Là bổ sung tốt kiến thức ứng dụng cho họ vi điều khiển mang tính truyền thống: họ vi điều khiển 8051 Số lượng người sử dụng họ vi điều khiển PIC Hiện Việt Nam giới, họ vi điều khiển sử dụng rộng rãi Điều tạo nhiều thuận lợi trình tìm hiểu phát triển ứng dụng như: số lượng tài liệu, số lượng ứng dụng mở phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm dẫn gặp khó khăn,… Sự hỗ trợ nhà sản xuất trình biên dòch, công cụ lập trình, nạp chương trình từ đơn giản đến phức tạp,… Các tính đa dạng vi điều khiển PIC, tính không ngừng phát triển 1.3 KIẾN TRÚC PIC ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang Cấu trúc phần cứng vi điều khiển thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman kiến trúc Havard Hình 1.1: Kiến trúc Havard kiến trúc Von-Neuman Tổ chức phần cứng PIC thiết kế theo kiến trúc Havard Điểm khác biệt kiến trúc Havard kiến trúc Von-Neuman cấu trúc nhớ liệu nhớ chương trình Đối với kiến trúc Von-Neuman, nhớ liệu nhớ chương trình nằm chung nhớ, ta tổ chức, cân đối cách linh hoạt nhớ chương trình nhớ liệu Tuy nhiên điều có ý nghóa tốc độ xử lí CPU phải cao, với cấu trúc đó, thời điểm CPU tương tác với nhớ liệu nhớ chương trình Như nói kiến trúc Von-Neuman không thích hợp với cấu trúc vi điều khiển Đối với kiến trúc Havard, nhớ liệu nhớ chương trình tách thành hai nhớ riêng biệt Do thời điểm CPU tương tác với hai nhớ, tốc độ xử lí vi điều khiển cải thiện đáng kể Một điểm cần ý tập lệnh kiến trúc Havard tối ưu tùy theo yêu cầu kiến trúc vi điều khiển mà không phụ thuộc vào cấu trúc liệu Ví dụ, vi điều khiển dòng 16F, độ dài lệnh 14 bit (trong liệu tổ chức thành byte), kiến trúc Von-Neuman, độ dài lệnh bội số byte (do liệu tổ chức thành byte) Đặc điểm minh họa cụ thể hình 1.1 1.4 RISC CISC Như trình bày trên, kiến trúc Havard khái niệm so với kiến trúc Von-Neuman Khái niệm hình thành nhằm cải tiến tốc độ thực thi vi điều khiển ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang Qua việc tách rời nhớ chương trình nhớ liệu, bus chương trình bus liệu, CPU lúc truy xuất nhớ chương trình nhớ liệu, giúp tăng tốc độ xử lí vi điều khiển lên gấp đôi Đồng thời cấu trúc lệnh không phụ thuộc vào cấu trúc liệu mà linh động điều chỉnh tùy theo khả tốc độ vi điều khiển để tiếp tục cải tiến tốc độ thực thi lệnh, tập lệnh họ vi điều khiển PIC thiết kế cho chiều dài mã lệnh cố đònh (ví dụ họ 16Fxxxx chiều dài mã lệnh 14 bit) cho phép thực thi lệnh chu kì xung clock ( ngoại trừ số trường hợp đặc biệt lệnh nhảy, lệnh gọi chương trình … cần hai chu kì xung đồng hồ) Điều có nghóa tập lệnh vi điều khiển thuộc cấu trúc Havard lệnh hơn, ngắn hơn, đơn giản để đáp ứng yêu cầu mã hóa lệnh số lượng bit đònh Vi điều khiển tổ chức theo kiến trúc Havard gọi vi điều khiển RISC (Reduced Instruction Set Computer) hay vi điều khiển có tập lệnh rút gọn Vi điều khiển thiết kế theo kiến trúc Von-Neuman gọi vi điều khiển CISC (Complex Instruction Set Computer) hay vi điều khiển có tập lệnh phức tạp mã lệnh số cố đònh mà bội số bit (1 byte) 1.5 PIPELINING Đây chế xử lí lệnh vi điều khiển PIC Một chu kì lệnh vi điều khiển bao gồm xung clock Ví dụ ta sử dụng oscillator có tần số MHZ, xung lệnh có tần số MHz (chu kì lệnh us) Giả sử ta có đoạn chương trình sau: MOVLW 55h MOVWF PORTB CALL SUB_1 BSF PORTA,BIT3 instruction @ address SUB_1 Ở ta bàn đến qui trình vi điều khiển xử lí đoạn chương trình thông qua chu kì lệnh Quá trình thực thi sau: Hình 1.2: Cơ chế pipelining(hinh) TCY0: đọc lệnh TCY1: thực thi lệnh 1, đọc lệnh TCY2: thực thi lệnh 2, đọc lệnh TCY3: thực thi lệnh 3, đọc lệnh TCY4: lệnh lệnh thực thi theo qui trình thực thi chương trình (lệnh thực thi phải lệnh label SUB_1) nên chu thi ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang lệnh dùng để đọc lệnh label SUB_1 Như xem lênh cần chu kì xung clock để thực thi TCY5: thực thi lệnh SUB_1 đọc lệnh SUB_1 Quá trình thực tương tự cho lệnh chương trình Thông thường, để thực thi lệnh, ta cần chu kì lệnh để gọi lệnh đó, chu kì xung clock để giải mã thực thi lệnh Với chế pipelining trình bày trên, lệnh xem thực thi chu kì lệnh Đối với lệnh mà trình thực thi làm thay đổi giá trò ghi PC (Program Counter) cần hai chu kì lệnh để thực thi phải thực việc gọi lệnh đòa ghi PC tới Sau xác đònh vò trí lệnh ghi PC, lệnh cần chu kì lệnh để thực thi xong 1.6 CÁC DÒNG PIC CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC Các kí hiệu vi điều khiển PIC: PIC12xxxx: độ dài lệnh 12 bit PIC16xxxx: độ dài lệnh 14 bit PIC18xxxx: độ dài lệnh 16 bit C: PIC có nhớ EPROM (chỉ có 16C84 EEPROM) F: PIC có nhớ flash LF: PIC có nhớ flash hoạt động điện áp thấp LV: tương tự LF, kí hiệu cũ Bên cạnh số vi điệu khiển có kí hiệu xxFxxx EEPROM, có thêm chữ A cuối flash (ví dụ PIC16F877 EEPROM, PIC16F877A flash) Ngoài có thêm dòng vi điều khiển PIC dsPIC Ở Việt Nam phổ biến họ vi điều khiển PIC hãng Microchip sản xuất Cách lựa chọn vi điều khiển PIC phù hợp: Trước hết cần ý đến số chân vi điều khiển cần thiết cho ứng dụng Có nhiều vi điều khiển PIC với số lượng chân khác nhau, chí có vi điều khiển có chân, có vi điều khiển 28, 40, 44, … chân Cần chọn vi điều khiển PIC có nhớ flash để nạp xóa chương trình nhiều lần Tiếp theo cần ý đến khối chức tích hợp sẵn vi điều khiển, chuẩn giao tiếp bên Sau cần ý đến nhớ chương trình mà vi điều khiển cho phép ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang Ngoài thông tin cách lựa chọn vi điều khiển PIC tìm thấy sách “Select PIC guide” nhà sản xuất Microchip cung cấp 1.7 NGÔN NGỮ LẬP TRÌNH CHO PIC Ngôn ngữ lập trình cho PIC đa dạng Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí nhà sản xuất Microchip), ngôn ngữ lập trình cấp cao bao gồm C, Basic, Pascal, … Ngoài có số ngôn ngữ lập trình phát triển dành riêng cho PIC PICBasic, MikroBasic,… 1.8 MẠCH NẠP PIC Đây dòng sản phẩm đa dạng dành cho vi điều khiển PIC Có thể sử dụng mạch nạp cung cấp nhà sản xuất hãng Microchip như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng sản phẩm để nạp cho vi điều khiển khác thông qua chương trình MPLAB Dòng sản phẩm thống có ưu nạp cho tất vi điều khiển PIC, nhiên giá thành cao thường gặp nhiều khó khăn trình mua sản phẩm Ngoài tính cho phép nhiều chế độ nạp khác nhau, có nhiều mạch nạp thiết kế dành cho vi điều khiển PIC Có thể sơ lược số mạch nạp cho PIC sau: JDM programmer: mạch nạp dùng chương trình nạp Icprog cho phép nạp vi điều khiển PIC có hỗ trợ tính nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming) Hầu hết mạch nạp hỗ trợ tính nạp chương trình WARP-13A MCP-USB: hai mạch nạp giống với mạch nạp PICSTART PLUS nhà sản xuất Microchip cung cấp, tương thích với trình biên dòch MPLAB, nghóa ta trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà không cần sử dụng chương trình nạp khác, chẳng hạn ICprog P16PRO40: mạch nạp Nigel thiết kế tiếng Ông thiết kế chương trình nạp, nhiên ta sử dụng chương trình nạp Icprog Mạch nạp Universal Williem: mạch nạp chuyên dụng dành cho PIC P16PRO40 Các mạch nạp kể có ưu điểm lớn đơn giản, rẻ tiền, hoàn toàn tự lắp ráp cách dễ dàng, thông tin sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra chương trình nạp dễ dàng tìm download miễn phí thông qua mạng Internet Tuy nhiên mạch nạp có nhược điểm hạn chế số vi điều khiển hỗ trợ, bên cạnh mạch nạp cần sử dụng với chương trình nạp thích hợp ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang CHƯƠNG II:TÌM HIỂU CẤU TRÚC PHẦN CỨNG CỦA PIC 16F877A 2.1 SƠ ĐỒ CHÂN VI ĐIỀU KHIỂN PIC16F877A 10 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang J7 C O N J3 J4 C O N R R Q 5A C 1815 R ELAY SPD T D IO D E C O N 2 3 R R R ELAY SPD T D 3 J6 Q 6A C 1815 C O N R ELAY SPD T C O N 1 J9 1 R R Q 4A C 1815 D IO D E 2 D IO D E LS3 D C O N D J2 2 LS2 C O N LS1 J5 C O N 2 J1 J10 J8 J11 C O N C O N C O N Tính toán chọn linh kiện : Ta có dòng vi điều khiển nhỏ không đủ kích cho relay, nên ta sử dụng transistor để khuye6ch đại dòng kích relay Transistor chọn C1815 Ở đầu cuộn dây ta sử dụng thêm diode hồi tiếp dòng 5.6 Khối hiển thò Linh kiện chọn để hiển thò giá trò nhiệt độ giới hạn trên, giới hạn led đoạn, led đoạn có khả phát quang lớn, hiển thò môi trường có ánh sáng yếu, tầm nhìn LCD Sau sơ đồ mạch khối hiển thò: 123 LED SEG A B C D E F G H U Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc Vcc LED SEG J1 SV:Nguyễn Văn Đước Nguyễn Trường Giang Vcc ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới P O R TB Q PN P BC E Q PN P BC E R R R R Q PN P BC E R R Q PN P BC E R R Q PN P BC E R R VC C R R Q PN P BC E J2 P O R TD VC C Tính toán chọn linh kiện: R Nguồn cung cấp : V CC =5v Để led sáng bình thường ta chọn dòng qua cho led là: I LED = 10mA A 1015 R Điện áp rơi led V LED =2V D LED Do led mắc song song với nên dòng tổng qua : ∑ I = N* I LED =80mA Do ta hiển thò led phương pháp quét led nên dòng qua led không liên tục nên ta chọn dòng tổng qua led đoạn là:100mA Khi transistor A1015 hoạt động chế độ bảo hồ ,theo thông số nhà sản xuất ta có: V EC = V EC _ S _max= 0.3V A1015 hoạt động chế độ bão hòa, I C = -100mA IB= -10mA lúc Tacó: V  VR1_min = Vcc-(VLED+VEC_S) =5V –(2.5+0.3)=2.2V CC = V R1 + V LED + V EC _ S  R1 = 2.7/100mA = 22 Ω Chọn R1=27( Ω ) Khi vi xử lý múc thấp transistor dẫn, dòng vào Vi Xử Lý 10mA , theo thông số nhà sản xuất IC =-100mA VBE_SAT = -1.1V  R2_min = (5V-1.1V)/10mA=390Ω 124 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang Chọn R2=390Ω Sơ đồ kết nối mạch sau: J3 LED SEG U 5 Q PN P BC E Q PN P BC E R R R R Q PN P BC E Q PN P BC E R R R R 220 V R 10 Q 7A c1815 R ELAY SPD T Q PN P BC E R R J3 LS1 KHOI HIEN THI J3 U 13 C C VC C C 3C C C C C 11 10 R IN R IN R 1O U T R 2O U T T IN T IN T1O U T T2O U T C C C C V V 1 2 + - 12 14 + + - D 1 D IO D E R 10 C O N N E C TO R D B R R ELAY SPD T Q 7A c1815 M A X2 KHOI CONG SUAT KHOI DIEU KHIEN 125 BAO _D O N G LS P1 J4 PO T 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 B7 B6 B5 B4 B3 B2 B1 B0 dd ss D D D D C C C C D D R 7 10 11 12 13 14 15 16 17 18 19 20 R R R R R R R R V V R R R R R R R R R R 220V R ELAY SPD T Q 7A c1815 C O N PO R TD P IC F 7 A p d s 2 1 U L M 3 /S O Vp R A R A R A R A R A R A R E R E R E Vd Vs O SC O SC R C R C R C R C R D R D R J2 U R 10 3 D IO D E J6 J4 R R LO _SU O I VC C D VC C 2 D IO D E R Q PN P BC E J4 D P O R TB R R Q U AT LS Vcc A B C D E F G H Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc LED SEG Vcc A B C D E F G H U Vcc Vcc LED SEG J1 220V ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang GIẢI THUẬT CHƯƠNG TRÌNH: + GIẢI THUẬT: + CHƯƠNG TRÌNH: CODE CHƯƠNG TRÌNH VI ĐIỀU KHIỂN: #include "16f877a.h" #include #device *=16 adc=10 #fuses NOWDT,HS, NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOW RT #use delay(clock=20000000) #use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8) int8 high,low; int8 led1,led2,led3,led4; int8 so1,so2,so3; int8 giatri; int16 i; 126 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang int8 const a[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; float sbuffer[3]; int8 next_int=0; #bit T_max = 0x08.6 // mode #bit T_min = 0x08.7 #bit Bao_dong = 0x09.0 void bao_dong1(); void bao_dong2(); void bao_dong3(); void bao_dong4(); void doc_nhiet1(); void display(); #int_RDA void serial_isr() { sbuffer[next_int]=getc(); next_int ++; if(next_int==3)next_int=0; } void main() { trisb = 0x00; //Thi?t l?p chan PORTB OUTPUT trisd = 0x00; //Thi?t l?p chan PORTD OUTPUT trise = 0x00; //Thi?t l?p chan PORTE OUTPUT trisa = 0xff; //Thi?t l?p chan PORTA INPUT portD = 0xff; //Thi?t l?p chân PORTD ? m?c cao enable_interrupts(GLOBAL); enable_interrupts(INT_RDA); setup_adc(ADC_CLOCK_INTERNAL); //Ch? th?i gian l?y m?u //c?a ADC b?ng xung Clock setup_adc_ports(AN0); //AN0 chân l?y tín hi?u Analog set_ADC_channel(0) ; delay_us(10); doc_nhiet1(); i=0; while(1) {doc_nhiet1(); display(); } } void doc_nhiet1() {float value; i++; so1=sbuffer[0]; so2=sbuffer[1]; 127 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang so3=sbuffer[2]; if(i==150) { value = (float)read_adc(); giatri = (value - 558.5)/2.048; i=0; } low=giatri%10; high=giatri/10; high=high%10; if((int8)giatri > so1 ) {if((int8)giatri > (so1+so3)) bao_dong4(); else bao_dong1(); } else if((int8)giatri < so2) {if((int8)giatri < (so2-so3)) bao_dong4(); else bao_dong2(); } else bao_dong3(); led1=so1%10; led2=so1/10; led3=so2%10; led4=so2/10; } void display() { PORTB=a[low]; RD1=0; delay_us(850); RD1=1; PORTB=0xff; PORTB=a[high]; RD0=0; delay_us(850); RD0=1; PORTB=0xff; PORTB=a[led1]; RD3=0; delay_us(850); RD3=1; PORTB=0xff; 128 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới SV:Nguyễn Văn Đước Nguyễn Trường Giang PORTB=a[led2]; RD2=0; delay_us(850); RD2=1; PORTB=0xff; PORTB=a[led3]; RD5=0; delay_us(850); RD5=1; PORTB=0xff; PORTB=a[led4]; RD4=0; delay_us(850); RD4=1; } void bao_dong1(){ T_max=0; T_min=1; bao_dong=0; putc('H'); putc(giatri); } void bao_dong2(){ T_max=1; T_min=0; bao_dong=0; putc('M'); putc(giatri); } void bao_dong3(){ T_max=0; T_min=0; bao_dong=0; putc('S'); putc(giatri); } void bao_dong4(){ T_max=0; T_min=0; bao_dong=1; putc('K'); putc(giatri); } CODE CHƯƠNG TRÌNH VB6: Dim kgio As Integer 129 ĐỒ ÁN TỐT NGHIỆP GVHD: Nguyễn Phú Quới Dim Dim Dim Dim Dim Dim Dim Dim SV:Nguyễn Văn Đước Nguyễn Trường Giang kphut As Integer kgiay As Integer giatri1 As String giatri2 As String giatri3 As String nhiet_value As Integer nhiet_string As String dem As Integer Private Sub Timer5_Timer() kgiay = Second(Time) kphut = Minute(Time) kgio = Hour(Time) Label20.Caption = kgio & ":" & kphut & ":" & kgiay End Sub Private Sub Truyen_Click() giatri1 = Tmax.Text giatri2 = Tmin.Text giatri3 = Sai_so.Text If Val(giatri1) > Val(giatri2) And Val(giatri1) Val(giatri2) > Then MSComm1.Output = Chr$(giatri1) MSComm1.Output = Chr$(giatri2) MSComm1.Output = Chr$(giatri3) Else MsgBox "Du Lieu Nhap Khong Dung,Moi Nhap Lai" End If End Sub Private Sub Timer2_Timer() If Label7.Left

Ngày đăng: 07/09/2017, 11:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w