Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 33 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
33
Dung lượng
1,47 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH KHOA CƠ – ĐIỆN – ĐIỆN TỬ ĐỒ ÁN CƠ SỞ Đề tài: THIẾT KẾ MẠCH ĐẾM SẢN PHẨM BẰNG NÚT ẤN HIỂN THỊ TRÊN LED ĐOẠN Khoa: CƠ – ĐIỆN – ĐIỆN TỬ Chuyên ngành: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA TP Hồ Chí Minh MỤC LỤC LỜI NĨI ĐẦU iv LỜI CẢM ƠN iv MỤC LỤC vii CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1 ĐẶT VẤN ĐỀ: MỤC TIÊU ĐỀ TÀI: NỘI DUNG ĐỀ TÀI: .1 KẾT CẤU CỦA ĐỒ ÁN: Chương CƠ SỞ LÝ THUYẾT .3 2.1 Vi điều khiển PIC16F877A .3 2.2 LED Đoạn 2.2.1 Giới thiệu LED đoạn 2.2.2 Mã led 2.3 Điện trở: 11 2.4 Thạch anh Mhz: 11 2.5 Tụ điện 12 2.6 Nút nhấn BUTTON 13 2.7 Giới Thiệu Phần mềm lập trinh PIC CCS 14 2.7.1 CCS 14 2.7.2 Biên chương trình: 16 2.7.3 Các phép toán irons CCS: 16 2.7.4 Các điều kiên losic: 16 2.7.5 Các đinh nghĩa CCS: .16 2.7.6 Các hàm thông dụng CCS: 17 2.7.6.1 Hàm delay: liên quan đến #use delay(clock = tần số thạch anh) 17 2.7.6.2 Hàm I/O: xuất/ nhập giá trị ra/ từ PIN (bit) PORT (byte) set_tris_x(byte) 17 Chương 3: TÍNH TỐN THIẾT KẾ 19 3.1 SƠ ĐỒ KHỐI CỦA HỆ THỐNG: 19 3.2 Sơ đồ nguyên lý: .19 3.3 Giá trị điện trở hạn dòng led đoạn 20 3.4 Sơ đồ luận lý 21 3.5 Code vi điều khiển 21 3.6 Chức nhiệm vụ khối 23 3.6.1 Khối nguồn .23 3.6.2 Khối hiển thị .23 3.6.3 Khối VDK PIC 16F877A 23 3.6.4 Khối phím nhấn 23 Chương THI CƠNG MƠ HÌNH (hoặc MÔ PHỎNG) 24 4.1 Mô Protues 8.6 .24 4.2 Mạch in 24 4.3 Ảnh 3d board mạch .25 4.4 Thi Công .25 4.6 Sản phẩm 27 5.1 Kết luận 28 5.2 Hướng phát triển đề tài .28 TÀI LIỆU THAM KHẢO i CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI ĐẶT VẤN ĐỀ: Ngày với phát triển ngành khoa học kỹ thuật, kỹ thuật điện tử mà kỹ thuật số đóng vai trị quan trọng lĩnh vực khoa học kỹ thuật, quản lí, cơng nghiệp tự động hóa, cung cấp thơng tin Do phải nắm bắt vận dụng cách có hiệu nhằm góp phần vào phát triển khoa học kỹ thuật giới nói chung phát triển kỹ thuật điện tử nói riêng Trong q trình sản xuất nhiều khâu tự động hóa Một khâu đơn giản dây chuyền sản xuất tự động hóa số lượng sản phẩm làm đếm cách tự động Tuy nhiên doanh nghiệp vừa nhỏ việc tự động hóa hồn tồn chưa áp dụng khâu đếm sản phẩm, đóng bao bì mà cịn sử dụng nhân cơng MỤC TIÊU ĐỀ TÀI: Từ điều thấy khả em, em muốn làm điều nhỏ để góp phần vào giúp người lao động bớt phần mệt nhọc chân tay mà cho phép tăng hiệu suất lao động lên gấp nhiều lần, đồng thời đảm bảo độ xác cao Nên em định thiết kế mạch đếm sản phẩm gần gũi với thực tế thật có ý nghĩa em làm phần nhỏ đóng góp cho xã hội NỘI DUNG ĐỀ TÀI: Đề tài chọn mạch đếm sản phẩm sữ dụng nút hiển thị LED đoạn tác dụng giảm bớt khó khăn quản lý số lượng sản phẩm sản xuất với số lượng lớn PHƯƠNG PHÁP NGHIÊN CỨU: Sử dụng kiến thức học môn kỹ thuật số vi điều khiển điện tử để vẽ sơ đồ nguyên lý Sử dụng phần mềm protues 8.6 để mô thiết kế mạch in Sử dụng phần mềm CCS để lập trình code cho PIC 16F877A Sử dùng phần mềm PICKIT2 để nạp code cho PIC 16F877A KẾT CẤU CỦA ĐỒ ÁN: Đồ án gồm có chương chính: - TỔNG QUANG VỀ ĐỀ TÀI - CỞ SỞ LÝ THUYẾT - TÍNH TỐN THIẾT KÊT - THI CƠNG MƠ HÌNH ( MÔ PHỎNG) - KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương CƠ SỞ LÝ THUYẾT 2.1 Vi điều khiển PIC16F877A PIC 16F877A dòng PIC phổ biến (đủ mạnh tính năng, 40 chân, nhớ đủ cho hầu hết ứng dụng thông thường) Cấu trúc tổng quát PIC 16F877A sau: - K Flash ROM - 368 Bytes RAM - 256 Bytes EEPROM - ports (A, B, C, D, E) vào với tín hiệu điều khiển độc lập - định thời bits (Timer Timer 2) - Một định thời 16 bits (Timer 1) hoạt động chế độ tiết kiệm lượng (SLEEP MODE) với nguồn xung Clock ngồi - bơ CCP( Capture / Compare/ PWM) - biến đổi AD 10 bits, ngõ vào - so sánh tương tự (Compartor) - định thời giám sát (WatchDog Timer) - Một cổng song song bits với tín hiệu điều khiển - Một cổng nối tiếp - 15 nguồn ngắt - Nạp chương trình cổng nối tiếp ICSP(In-Circuit Serial Programming) - Được chế tạo cơng nghệ CMOS - 35 tập lệnh có độ dài 14 bits - Tần số hoạt động tối đa 20MHz PIC họ vi điều khiển RISC MICROCHIP PIC: Programmable Intelligent Computer Hình 2.1.2 Sơ đồ cấu PIC16F877A Bảng 2.1 Một số đặc tính vi điều khiển PIC16F877A Hình 2.1.2 PIC16F877A Điều kiện hoạt động: VDD: 5VDC RESET: tích cực mức thấp Thạch anh 4/8/12/20 MHz Cổng ghi chương trình: JTAG Hình 2.1.3 Điều kiện hoạt động PIC16F877A Cấu trúc I/O: dòng IL IH 25mA Hình 2.1.4 Cấu trúc I/O 2.2 LED Đoạn 2.2.1 Giới thiệu LED đoạn Có thể hiểu cách vô đơn giản LED đoạn sau: - LED đoạn hay LED (Seven Segment display) linh kiện phổ dụng , dùng công cụ hiển thị đơn giản - Trong LED bao gồm LED mắc lại với , mà có tên LED đoạn ,7 LED đơn mắc cho hiển thị số từ - , vài chữ thông dụng, để phân cách người ta cịn dùng thêm led đơn để hiển thị dấu chấm (dot) Các led đơn gọi tên theo chữ A- B -C-D-E-F-G, dấu chấm dot (DP) - led đơn led có Anode (cực +) Cathode (cực -) nối chung với vào điểm đưa chân để kết nối với mạch điện cực lại led đơn led đoạn cực led đơn góc dưới, bên phải led đoạn đưa thành chân riêng để điều khiển cho led sáng tắt theo ý muốn - Nếu led đoạn có Anode (cực +) chung, đầu chung nối với +Vcc, chân lại dùng để điều khiển trạng thái sáng tắt led đơn, led sáng tín hiệu đặt vào chân mức 2.7.2 Biên chương trình: Kiểu biên Giá tri • Ý nghĩa intl True hay False ( hay 1) số bit int8 đến 255 Số nguyên byte ( bit) int16 đến 65,535 Số nguyên byte int32 đến 4,294,967,295 Số nguyên byte Char -128 đến 127 Ký tự bit Float 3,4-38 đến 3,438 Số thực 32 bit short Mặc định kiểu int1 Byte Mặc định kiểu int8 Int Mặc định kiểu int8 Long Mặc định kiểu int16 Lưu ý: sử dụng signed unsigned trước kiểu trường hợp có dấu khơng có dấu 2.7.3 Các phép toán irons CCS: - Cộng (+) - Trừ (-) - Nhân (*) - ChỉaỢ) - Chia lấy phần dư (%) - Đảo(~) - Phép toán logic: AND (&); OR( I) - Dịch trái n bit biến a: a = a«n - Dịch phải n bit biến a: a = a» n (Xem thêm HELP: operators) 2.7.4 Các điều kiên losic: - AND (&&) - OR(\\) - EQUAL (==) - Phủ định (!) 2.7.5 Các đinh nghĩa CCS: LED PINDO SET= 100 SW1 = 0x86.0 //REO 16 2.7.6 Các hàm thông dụng CCS: 2.7.6.1 Hàm delay: liên quan đến #use delay(clock = tần số thạch anh) - delay_ms(giá trị byte) Ví dụ: - delay_ms(1000);// trì hỗn 1000 ms - delay_ms(200);// trì hỗn 200 ms - delay_us(giá trị byte) - delay_us(10);//trì hỗn 10 ựs - delay_us(5);//trì hỗn ựs - delay_cycles(giá trị byte) Ví dụ: delay_cycles(1): trì hỗn xung clock = 1/(fXTAL/4 ) 2.7.6.2 Hàm I/O: xuất/ nhập giá trị ra/ từ PIN (bit) PORT (byte) set_tris_x(byte) Trong đó: x: a, b, c, d, e Byte: xác định ngõ vào ngõ cho tín hiệu PORT bit = 1: tín hiệu tương ứng ngõ vào bit = 0: tín hiệu tương ứng ngõ Ví dụ: cấu hình PORT D với RD0 RD1 ngõ vào, RD7 đến RD2 ngõ Set_tris_d(0x03);// 0x03 = 00000011b Hoặc: cấu hình RC7-RC4 ngõ vào, RC3-RC0 ngõ Set_tris_c(0b11110000); - output_high(PIN) Ví dụ: Output_high(PIN_C0); // RC0 = - output_low(PIN) Ví dụ: Output_low(PIN_D0); // RD0 = - output_toggle(PIN) Ví dụ: Output_toggle(PIN_C4); // RC4 = ~RC4 - output_x(byte): x a, b, c,d, e (port a, b, c,d, e) Ví dụ: Output_d(0xc0); // PORTD = C0H 17 - input(PIN) Ví dụ 1: State = input(PIN_E0); // State biến nhị phân (intl State) Ví dụ 2: #define SW1 PIN_D4 #define LED PIN C1 If (!input(SW1)) { output_toggle(LED); delay_ms(300);} - input_x(): x a, b, c,d, e (port a, b, c,d, e) Ví dụ: Unsigned char a; a = input_d(); // đọc byte từ port d gán vào a 18 Chương 3: TÍNH TỐN THIẾT KẾ 3.1 SƠ ĐỒ KHỚI CỦA HỆ THỚNG: KHỚI NGUỒN KHỚI XỬ LÝ KHỚI PHÍM NHẤN KHỚI HIỂN THỊ Hình 2.1 Sơ đồ khối hệ thống Khối nguồn: có nhiệm vụ cung cấp nguồn điện chiều cho mạch Khối xử lý: IC xử lý tín hiệu theo chương trình nạp sẵn Khối hiển thị: LED đoạn hiển thị thông tin theo mã code lập trình khối xử lý 19 3.2 Sơ đồ nguyên lý: Hình 3.1 Sơ đồ nguyên lý 3.3 Giá trị điện trở hạn dòng led đoạn Trong mạch thường dùng nguồn 5V nên để tránh việc đốt cháy led cách đơn giản mắc thêm trở hạn dịng Thơng số làm việc LED đoạn là: Điện áp = 2V Dòng = 20mA Vậy dùng nguồn 5V , áp rơi trở = -2 = V R = U / I = 3/(20*10^-3) = 150 ôm, chọn giá trị điên trở thực tế gần với yêu câu 220 Ohm 20 3.4 Sơ đồ luận lý Bắn Đầu Dem =0 Sai Dem < 100 Đúng Dem=Dem + + Xuất giá trị Dem Hình 3.2 Sơ đồ luận lý 21 3.5 Code vi điều khiển #include #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=8000000) int8 array[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; #DEFINE SW PIN_C0 void main() { int16 DEM=0; output_b(0xFF); output_d(0xFF); while(TRUE) { if(!input (PIN_C0)) { if(DEM