Hệ thống báo giờ tự động HỆ THỐNG NHÚNG(BAO GỒM CODE PIC+ MÔ PHỎNG PROTEUS)Hệ thống báo giờ tự động HỆ THỐNG NHÚNG(BAO GỒM CODE PIC+ MÔ PHỎNG PROTEUS)Hệ thống báo giờ tự động HỆ THỐNG NHÚNG(BAO GỒM CODE PIC+ MÔ PHỎNG PROTEUS)Hệ thống báo giờ tự động HỆ THỐNG NHÚNG(BAO GỒM CODE PIC+ MÔ PHỎNG PROTEUS)
Tiểu luận Hệ thống nhúng TRƯỜNG ĐẠI HỌC KỸ THUẬT CƠNG NGHIỆP KHOA CƠ KHÍ **** BÀI TIỂU LUẬN HỆ THỐNG NHÚNG Sinh viên: Nguyễn Thị Doan MSSV: K175520114077 Sinh viên: Ngô Quang Trường MSSV: K175520114127 Sinh viên: Nguyễn Quang Thực MSSV: K175520114122 Giảng viên hướng dẫn: Th.s Tăng Cẩm Nhung Tiểu luận Hệ thống nhúng MỤC LỤC LỜI MỞ ĐẦU .4 CHƯƠNG GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI .5 Giới thiệu .5 1.1.1 Chức hệ thống 1.1.2 Phân loại 1.1.3 Yêu cầu hệ thống Giới hạn CHƯƠNG THIẾT KẾ Giới thiệu .9 Thiết kế sơ đồ khối 2.2.1 Thiết kế sơ đồ nguyên lý .10 2.2.2 Lưu đồ chương trình 18 CHƯƠNG KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN .29 Ưu, nhược điểm đề tài 29 Kết luận 29 TÀI LIỆU THAM KHẢO 30 Tiểu luận Hệ thống nhúng DANH SÁCH HÌNH ẢNH Hình 2.1 : Sơ đồ khối mạch đếm sản phẩm .9 Hình 2.2: Khối xử lý 11 Hình 2.3: Kí hiệu cấu tạo led đoạn 12 Hình 2.4: Hình ảnh led đoạn 12 Hình 2.5: Mạch hiển thi led đoạn sử dụng IC74HC595 mở rộng chân 13 Hình 2.6: Khối hiển thị led đoạn 13 Hình 2.7:Cấu tạo kí hiệu led matrix 14 Hình 2.8: Hình ảnh led matrix 15 Hình 2.9: Bộ mở rộng chân dùng cho led matrix .15 Hình 2.10: Bộ khuếch đại dòng .16 Hình 2.11: Sơ đồ mạch đếm thời gian thực 16 Hình 2.12: Sơ đồ nguyên lý hệ thống 18 Hình 2.13: Lưu đồ trình tự điều khiển hệ thống .19 Tiểu luận Hệ thống nhúng LỜI MỞ ĐẦU Ngày nay, với ứng dụng khoa học kỹ thuật tiên tiến, giới ngày thay đổi, văn minh đại Trong đó, phát triển kỹ thuật tự động hóa tạo hàng loạt thiết bị với đặc điểm bật độ xác, bảo mật cao, tốc độ nhanh, gọn nhẹ yếu tố cần thiết cho tiện lợi sống.Trong lĩnh vực tự động hóa kĩ thuật vi điều khiển trở nên quen thuộc, hầu hết dây truyền tự động lớn sản phẩm dân dụng ta thấy xuất vi điều khiển Càng ngày, họ vi điều khiển nhà sản xuất tích hợp thêm nhiều tính với ngoại vi tích hợp chip, với khả xử lý nhiều hoạt động phức tạp Thành cách mạng 4.0 sản sinh thiết bị cơng nghệ có tính kết nối cao Cơng nghệ Trí tuệ nhân tạo, Internet of Things tảng quan trọng cung cấp giải pháp xử lý công việc tiết kiệm thời gian, công sức Sự kết hợp thiết bị giải pháp đồng tạo nên xu hướng sống từ nhà thơng minh smarthome Theo đó, việc quản lý điều khiển nhà, từ hệ thống chiếu sáng, thiết bị điện tử, hệ thống an ninh thực không dây, kết nối qua internet Các thao tác tắt, bật đèn, TV, tăng giảm điều hòa, kéo mở rèm cửa thực với cú chạm smartphone hay tablet Đi theo xu hướng trên, chúng em thiết kế “ Hệ thống báo tự động loa” dựa nhu cầu tính tự động thời gian cho cơng ty, quan, trường học mô Tiểu luận môn học Hệ thống nhúng Tiểu luận Hệ thống nhúng CHƯƠNG GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA ĐỀ TÀI Giới thiệu 1.1.1 Chức hệ thống - Hệ thống báo tự động loa ngày ứng dụng mạnh mẽ với mức độ hoạt động tuyệt đối Những thiết bị báo thông thường ngày thay đổi nhiều tính hoạt động ứng dụng người đại khác Bộ báo phát nhạc tự động ln có tính ưu việt mà người dùng cảm nhận sử dụng thiết bị Chuyên dùng cho hệ thống chuông báo văn phịng, cơng ty, với tiêu chuẩn kỹ thuật chất lượng cao - Chức hệ thống hệ thống báo loa bao gồm: + Có thể chọn thời gian báo chuông + Hiển thị thời gian thực + Hiển thị thơng số +Sử dụng cịi led nháy để báo + Điều khiển tay 1.1.2 Phân loại Hệ thống báo tự động loa thị trường phổ biến trường học, quan, đơn vị, phân xưởng sản xuất,… Và điều khiển nhiều pháp khác nhau.Ở tiểu luận này, chúng em phân loại hệ thống theo phương pháp điều khiển Có dạng: Hệ thống điều khiển dùng LOGO, hệ thống điều khiển dùng PLC hệ thống điều khiển sử dụng vi điều khiển a) Hệ thống dùng vi điều khiển Ưu điểm Tiểu luận Hệ thống nhúng - Chi phí phần cứng tương đối thấp, linh kiện phổ biến dễ dàng tìm thấy mua thị trường - Tiêu thụ điện thấp - Tiết kiệm không gian - Mô thử nghiệm đơn giàn - Có thể thiết kế khối riêng rẽ đặc biệt thay đổi linh hoạt thời điểm vào/ra nhờ thay đổi khối giải mã Nhược điểm - Mỗi lần muốn thay đổi chương trình phải lắp đặt lại toàn - Tốn nhiều thời gian cho việc thiết kế lắp đặt - Quy trình lập trình, thuật toán tương đối phức tạp - Độ bền tin cậy không cao - Sau thởi gian dùng bị sai lệch thởi gian thực hệ thống bị ảnh hường nhiễu bên ngồi, chương trình lập trình - Khi điện nhiều lần dẫn đến hệ thống bị sai số điện thông số thời không lưu mà bị reset ban đầu b) Hệ thống điều khiển dùng logo Ưu điểm - Công suất tiêu thụ - Ngơn ngữ lập trình đơn giàn - Tính hộp modul nhỏ gon, dễ dàng đấu nối - Giao tiếp người - mảy đơn giản dễ thao tác - Có độ bền độ tin cậy vận hành cao - Dễ dành thay đổi chương trình cần - Bào trì sửa chữa dễ dàng Nhược điểm - Giá thành cao - khó sửa chữa thay khối bị hỏng - Sau dùng thời gian( năm) xuất sai lệch thời gian Chạy khơng xác nữa, ngun nhân pin LOGO! không bền - Pin dự trữ điện thấp (từ 10 tiếng đến 30 tiếng) Tiểu luận Hệ thống nhúng c) Hệ thống điều khiển sử dụng PLC Ưu điểm - Những dây kết nối hệ thống giàm 80 % nên nhỏ gọn - Công suất tiêu thụ - Thời gian lắp đặt nhanh - Tiết kiệm khơng gian - Dễ dàng thay đổi chương trình - Bảo trì sửa chữa dễ dàng - Độ bền tin cậy vận hành cao - Giá thành hệ thống giảm số tiếp điểm tăng - Thích ứng mơi trường khắc nghiệt mơi trường ẩm ướt nước ta, mơi trường có nhiệt độ thay đổi, điện áp dao động, tiếng ồn,oxi hóa - Chuẩn bị hoạt động nhanh - Chuẩn hóa phần cứng điều khiển - Ửng dụng điều khiển phạm vi rộng - Ngơn ngữ lập trình dễ hiểu - Dễ lập trình lập trình máy tính thích hợp cho việc thực lệnh - Có thiết bị chống nhiễu - Các modul rời cho phép thay thêm vào cần thiết - Giao tiếp với thiết bị thơng minh khác như: máy tính, nối mạng, Modul mở rộng Nhược điểm - Giá thành cao - Có loại đồng hồ: đồng hồ cơ, đồng hồ điện tử, ưu điểm, khuyết điểm … 1.1.3 Yêu cầu hệ thống - Sử dụng nút nhấn để chọn thời gian báo chuông Hiển thị lên Led Matrix thời gian thời Hiển thị lên Led đoạn số phút lại Khi đến thời điểm đặt báo còi nhấp nháy Led đơn Tiểu luận Hệ thống nhúng - Sử dụng nút nhấn để tắt hệ thống báo chuông Sử dụng IC thời gian thực DS1307 Giới hạn - Do điều kiện kinh tế thời gian nên em thiết kế hệ thống báo tự động hiển thị số phút giây Led matrix số phút lại led đoạn Hệ thống sử dụng nút để điều chỉnh tăng giảm thời gian theo nhu cầu người vận hành Và tất mô phần mềm proteus Tiểu luận Hệ thống nhúng CHƯƠNG THIẾT KẾ Giới thiệu - Hệ thống báo tự động loa thiết kế với chức linh hoạt chọn thời gian báo chng ( u cầu nên tối đa chọn 99 phút) , hiển thị thời gian thời để làm cho việc chọn thời gian báo chuông Khi đến thời gian báo chuông hệ thống hiển thị hệ thống chuông khởi động cần sử dụng nút bấm tắt hệ thống Thiết kế sơ đồ khối - Theo u cầu đề tài nhóm tiến hành thiết kế sơ đồ khối mạch báo tự động hình 2.1: KHỐI THỜI GIAN THỰC BỘ ĐẾM KHỐI NGUỒN BỘ SO SÁNH KHỐI HIỂN THỊ BỘ GIẢI MÃ KHỐI XỬ LÝ KHỐI BÁO HIỆU Hình 2.1 : Sơ đồ khối mạch đếm sản phẩm Tiểu luận Hệ thống nhúng - Chức khối: ● Khối nguồn: có chức cấp nguồn cho toàn mạch để hoạt động ● Khối thời gian thực: có chức hiển thị thời gian thời ● Khối xử lí: +Bộ đếm: có chức đếm xung phạm vi đếm từ 00 đến 99 +Bộ giải mã: có chức giải mã tín hiệu đưa vào từ khối đếm sang mã đoạn giải mã tín hiệu thời gian thực để hiển thị lên led matrix + Bộ so sánh: có chức so sánh giá trị đếm với giá trị cài đặt để reset lại mạch đếm ● Khối hiển thị: có chức hiển thị kết đếm số phút dạng số thập phân ● Khối báo hiệu: Có chức báo hiệu cho người sử dụng biết thời gian hết 2.2.1 Thiết kế sơ đồ nguyên lý a Khối xử lí: - - - - Khối xử lí có chức đếm, so sánh giải mã tín hiệu vào chip pic Từ đó, đưa tín hiệu để hiển thị led thực báo hiệu cho hệ thống Ở đây, nhóm em sử dụng chip pic 16F877A, số chân chip pic số chân mà đề tài cần dùng Cụ thể: led ma trận cần 48 chân điều khiển cho led sáng theo ý muốn chưa tính đến chân điều khiển led đoạn hay xử lý thời gian thực… chip pic 16F877A có q chân để sử dụng Vậy nên, chúng em sử dụng thêm IC mở rộng chân tên ICHC595 Thông qua IC mà ta tối giản số chân chip xử lí cần sử dụng Các chân thuộc PORTA(chân 5-6) chân PORTE (chân 2-3) vi xử lí, nối với khối nút nhấn để tao tín hiệu điều chỉnh thông số Led đoạn Các chân từ 1-3 thuộc PORTA vi xử lí ngõ Led đoạn Các chân từ 1-6 thuộc PORTB, PORTD chân từ 1-3, 5-8 thuộc PORTC vi xử lí ngõ Led matrix Vi xử lí muốn hoạt động cần có nguồn tạo dao động Trong mạch vi xử lí thường sử dụng thạch anh để tạo dao động Để tăng độ ổn định tần số, người ta dùng thêm tụ nhỏ C4, C5 (33pF x2), tụ bù nhiệt ổn tần 10 Tiểu luận Hệ thống nhúng Hình 2.10: Bộ khuếch đại dòng - Cũng giống led đoạn nhóm em sử dụng IC74HC595 để tối ưu chân vi xử lí việc thực hiển thị led matrix dễ dàng Ngồi ra, nhóm em sử dụng IC74HC245 để khuếch đại dòng chạy qua led matrix, để led hiển thị rõ c Khối thời gian thực Hình 2.11: Sơ đồ mạch đếm thời gian thực 16 Tiểu luận Hệ thống nhúng - - - - VCC,GND: nguồn chiều cung cấp tới chân VCC đầu vào 5V Khi 5V cung cấp thiết bị truy cập hồn chỉnh liệu đọc viết Khi pin 3V kết nối tới thiết vcc nhỏ 1,25Vbat trình đọc viết không thực thi, nhiên chức timekeeping không bị ảnh hưởng điện áp vào thấp VCC nhỏ Vbat RAM time keeper ngắt tới nguồn cung cấp( 3-5VDC) Vbat: đầu vào pin cho chuẩn pin 3V Điện áp pin phải giữ khoảng 2.5-3V để đảm bảo cho thiết bị hoạt động tốt SCL(serial clock input): SCL xử dụng để đồng chuyển liệu đường dây nối tiếp SDA(serial data input/output): chân vào cho đường dây nối tiếp chân SDA thiết kế theo kiêu cực máng hở, phải có điện trở R2=10K R3=10K kéo lên hoạt động X ,X2: nối với thạch anh với tần số 32,768 kHz mạch tạo dao động ngồi, để hoạt động ổn định ta nối thêm tụ C1,C2 với giá trị 33pF d Khối nguồn - Có 16 linh kiện dùng nguồn 5V thiết bị sử dụng nguồn 24V Do nhiều hạn chế dựa vào kinh nghiệm nên nhóm em định thiết kế nguồn nêu - Sử dụng biến đổi 220V-24V module biến đổi nguồn 5V cho tồn hệ thống - Tính tổng dòng cho nguồn: Quyết định cho IC khuếch đại dịng 100mA e Sơ đồ ngun lý cho tồn mạch - - Đầu tiên hệ thống setup thời gian thực nhờ IC DS1307 Ấn nút “Tang” “Giam” để điều chỉnh số phút cần báo hiển thị led đoạn, sau nhấn nút “ Bat Dau” để thực đếm báo Để chắn hệ thống báo hoạt động có led đơn báo hiệu Khi đến thời gian hẹn hệ thống loa báo led báo hoạt động Muốn dừng báo hiệu hệ thống ta nhấn nút “Tat” 17 Tiểu luận Hệ thống nhúng Hình 2.12: Sơ đồ nguyên lý hệ thống 2.2.2 Lưu đồ chương trình a Giới thiệu yêu cầu điều khiển Với yêu cầu hệ thống báo tự động loa sử dụng chip pic 16F877A để điều khiển hệ thống, nhóm đồng thời kết hợp IC phụ trợ để tối ưu chân vi xử lý sử dụng như: IC DS1307 để hiển thị thời gian thực hay IC 74HC595 để mở rộng chân thực yêu cầu hiển thị báo hiệu khác hệ thống 18 Tiểu luận Hệ thống nhúng b Lưu đồ NHẬN THỜI GIAN THỰC TỪ DS1307 BẮT ĐẦU HIỂN THỊ THỜI GIAN CÒN LẠI LÊN LCD HIỂN THỊ LÊN LED MATRIX THỜI GIAN THỰC CÀI DẶT THỜI GIAN SAI KIÊM TRA ĐÚNG CHUÔNG VÀ LED HOẠT ĐỘNG Hình 2.13: Lưu đồ trình tự điều khiển hệ thống 19 Tiểu luận Hệ thống nhúng c Chương trình #include #use delay(clock=20M) #include #include #include #include #include #include #include #include #define Led(x) output_bit(PIN_D6,x); #define Ledbao(x) output_bit(PIN_D7,x); #define EN0(x) output_bit(Pin_B6,x); #define EN1(x) output_bit(Pin_B7,x); char Mang0[10][8]={{0x00,0x00,0x00,0x00,0x3E,0x41,0x41,0x3E},//00 {0x00,0x00,0x00,0x00,0x00,0x42,0x7F,0x40},//01 {0x00,0x00,0x00,0x00,0x42,0x61,0x51,0x4E},//02 {0x00,0x00,0x00,0x00,0x00,0x49,0x49,0x7F},//03 {0x00,0x00,0x00,0x00,0x18,0x14,0x12,0x7F},//04 {0x00,0x00,0x00,0x00,0x00,0x4F,0x49,0x79},//05 {0x00,0x00,0x00,0x00,0x00,0x7F,0x49,0x79},//06 {0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x7F},//07 {0x00,0x00,0x00,0x00,0x36,0x49,0x49,0x36},//08 20 Tiểu luận Hệ thống nhúng {0x00,0x00,0x00,0x00,0x00,0x4F,0x49,0x7F},//09 }; char Mang1[10][8]={{0x3E,0x41,0x41,0x3E,0x00,0x00,0x00,0x00},//00 {0x00,0x42,0x7F,0x40,0x00,0x00,0x00,0x00},//10 {0x42,0x61,0x51,0x4E,0x00,0x00,0x00,0x00},//20 {0x00,0x49,0x49,0x7F,0x00,0x00,0x00,0x00},//30 {0x18,0x14,0x12,0x7F,0x00,0x00,0x00,0x00},//40 {0x00,0x4F,0x49,0x79,0x00,0x00,0x00,0x00},//50 {0x00,0x7F,0x49,0x79,0x00,0x00,0x00,0x00},//60 {0x00,0x01,0x01,0x7F,0x00,0x00,0x00,0x00},//70 {0x36,0x49,0x49,0x36,0x00,0x00,0x00,0x00},//80 {0x00,0x4F,0x49,0x7F,0x00,0x00,0x00,0x00},//90 }; unsigned char Ma7doan[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90, 0xFF}; void _HienThiLed(char Index, char Index1,char Index2, char Index3,char Index4, char Index5); void Led7thanh(char Sophut); void main() { unsigned char* Time; signed char Gio,Phut,Giay; char Index; char Index1; 21 Tiểu luận Hệ thống nhúng char Index2; char Index3; char Index4; char Index5; char Sophut; int8 Caidat; char Trangthai; char Thoigian; char Chuong; Char Hienthi; while(TRUE) { //TODO: User Code Time = Get_DS1307_RTC_Time(); Gio = Time[2]; Phut = Time[1]; Giay = Time[0]; Thoigian=Gio*60+Phut; Index=Gio%10; Index1=Gio/10; Index2=Phut%10; Index3=Phut/10; Index4=Giay%10; 22 Tiểu luận Hệ thống nhúng Index5=Giay/10; _HienThiLed(Index,Index1,Index2,Index3,Index4,Index5); if(input(PIN_A4)==0) { while(input(PIN_A4)==0){}; Caidat=Caidat+1; } if(input(PIN_A5)==0) { while(input(PIN_A5)==0){}; Caidat=Caidat-1; } if(input(PIN_E1)==0) { while(input(PIN_E1)==0){}; Chuong= ThoiGian + Caidat; Trangthai=1; Caidat=0; } if(input(PIN_E2)==0) { while(input(PIN_E2)==0){}; Trangthai=0; } if(Chuong==Thoigian) { 23 Tiểu luận Hệ thống nhúng Trangthai=2; Chuong=0; } if(Trangthai==0) { Led(0); Ledbao(0); Led7thanh(Caidat); } if(trangthai==1) { Hienthi=Chuong-Thoigian; Led(0); Ledbao(1); Led7thanh(Hienthi); } if(trangthai==2) { Led(1); Ledbao(1); Led7thanh(0); } Sophut=Caidat; } } //! 24 Tiểu luận Hệ thống nhúng void _HienThiLed(char Index , char Index1 ,char Index2, char Index3,char Index4, char Index5) { char MaDich=0x01;//0b00000001 =>0b11111110 char Ma; char i; char j; char Data; char Data1; for(i=0;i