Chương 1: Tổng quan Trình bày lý do chọn đề tài, mục tiêu đề tài, nội dung thực hiện, kết quả đạt được. Chương 2: Cơ sở lý thuyết Giới thiệu về vi điều khiển Pic16f887, module DS1307 hiển thị thời gian thực, module cảm biến màu sắc Tcs3200, màn hình LCD2004, cảm biến vật cản hồng ngoại HW-488. Chương 3: Thiết kế hệ thống 2 Trình bày yêu cầu người dùng, yêu cầu kỹ thuật, chức năng kỹ thuật và thông số kỹ thuật của mạch. Trình bày thiết kế kiến trúc: số đồ khối, thiết kế chi tiết.
Trình bày thiết kế phần mềm: lưu đồ giải thuật, chương trình điều khiển. Chương 4: Thi công hệ thống và đánh giá kết quả Trình bày quá trình thi công hệ thống và đánh giá kết quả toàn mạch. Chương 5: Kết luận Nêu ra các kết quả đạt được cũng như kết quả chưa đạt được trong quá trình thực hiện và hướng phát triển của đề tài. 3 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VI ĐIỀU KHIỂN PIC16F887 2.1 Sơ lược về vi điều khiển Pic16f887 Pic16f887 là một chíp vi điều khiển được sản xuất bời hãng Microchip thuộc họ Pic.
Pic16f887 là một bộ vi điều khiển 8 bit dựa trên kiến trúc RISC bộ nhớ chương trình 8KB ISP flash có thể ghi xóa hàng nghìn lần, 256B EEPROM, một bộ nhớ RAM vô cùng lớn trong thế giới vi xử lý 8 bit (368B SRAM) Với 33 chân có thể sử dụng cho các kết nối vào hoặc ra i/O, 32 thanh ghi, 3 bộ timer/counter có thể lập trình, có các gắt nội và ngoại (2 lệnh trên một vector ngắt), giao thức truyền thông nối tiếp UART, SPI, I2C. Ngoài ra có thể sử dụng bộ biến đổi số tương tự 10 bit (ADC/DAC) mở rộng tới 11 kênh, khả năng lập trình được watchdog timer, hoạt động với 5 chế độ nguồn, có thể sử dụng tới 2 kênh điều chế độ rộng xung (PMW) …. Hình 2-1 Vi điều khiển Pic16f887 4 2.2 Sơ đồ chân kết nối Sơ đồ chân Pic16f887 có 40 chân như hình 2-2 bên dưới. Vi điều khiển Pic16f887 loại 40 chân, trong đó các chân đều tích hợp nhiều chức năng, chức năng từng chân được khảo sát theo port.
Hình 2-2 Sơ đồ chân của Pic16f887 2.3 Thông số kỹ thuật - Dòng PIC: PIC16 - Core Size: 8-Bit - Tốc độ: 20MHz - Giao tiếp: I²C, SPI, UART/USART - Số cổng I/O: 35 - Kích thước bộ nhớ: 14KB (8K x 14) - Loại bộ nhớ: FLASH - EEPROM: 256 x 8 - RAM :368 x 8 - Điện áp cấp: 2V ~ 5.5V - Bộ chuyển đổi dữ liệu: A/D 14x10b 5 - Loại dao động: Bên trong - Nhiệt độ hoạt động: -40°C ~ 85°C (TA) - Kiểu đóng gói: 40-DIP 2.4 Sơ đồ cấu trúc của vi điều khiển Pic16f887 Hình 2-3 Cấu trúc bên trong của vi điều khiển Cấu trúc bên trong vi điều khiển: [1] 6 - Có khối bộ nhớ Ram cùng với thanh ghi FSR để tính toán tạo địa chỉ cho 2 cách truy xuất gián tiếp và trực tiếp. - Có thanh ghi lệnh (Instruction register) dùng để lưu mã lệnh nhận về từ bộ nhớ chương trình. - Có thanh ghi bộ đếm chương trình (PC) dùng để quản lý địa chỉ của bộ nhớ chương trình. - Có thanh ghi trạng thái (status register) cho biết trạng thái sau khi tính toán của khối ALU.
- Có thanh ghi FSR. - Có khối ALU cùng với thanh ghi working hay thanh ghi A để xử lý dữ liệu. - Có khối giải mã lệnh và điều khiển (Instruction Decode and Control). - Có khối dao động nội (Internal Oscillator Block).
- Có khối dao động kết nối với 2 ngõ vào OSC1 và OSC2 để tạo dao động. - Có khối các bộ định thời khi cấp điện PUT, có bộ định thời chờ dao động ổn định, có mạch reset khi có điện, có bộ định thời giám sát watchdog, có mạch reset khi phát hiện sụt giảm nguồn. - Có khối bộ dao động cho timer1 có tần số 32kHz kết nối với 2 ngõ vào T1OSI và T1OSO. - Có khối CCP2 và ECCP.
- Có khối mạch gỡ rối (In-Circuit Debugger IDC). - Có khối timer0 với ngõ vào xung đếm từ bên ngoài là T0CKI. - Có khối truyền dữ liệu đồng bộ/bất đồng bộ nâng cao. - Có khối truyền dữ liệu đồng bộ MSSP cho SPI và I2C.
- Có khối bộ nhớ Eeprom 256 byte và thanh ghi quản lý địa chỉ EEADDR và thanh ghi dữ liệu EEDATA. - Có khối chuyển đổi tín hiệu tương tự sang số ADC. - Có khối 2 bộ so sánh với nhiều ngõ vào ra và điện áp tham chiếu. - Có khối các port A, B, C, E và D.2 GIỚI THIỆU MODULE THỜI GIAN THỰC DS1307 2.1 Sơ lược về module DS1307 IC thời gian thực (RTC) DS1307 có chức năng cung cấp thông tin thời gian hiện tại (thời gian thực): giờ, phút, giây, thứ, ngày tháng, năm một cách chính xác ngay cả khi thiết bị đã bị tắt (ngắt điện ngoài).
Giao tiếp với vi điều khiển thông qua chuẩn I2C, và đóng vai trò là slave khi kết nối đến bus I2C này. Có thể đếm thời gian theo định dạng 24 giờ hoặc 12 giờ với chỉ thị AM/PM. Ngoài ra bên trong chíp có bộ dò phát hiện mất nguồn và tự động chuyển sang sử dụng nguồn pin dự phòng. Hình 2-4 Module DS1307 2.2 Sơ đồ chân kết nối Hình 2-5 Sơ đồ chân DS1307 - X1,X2: Đây là các chân kết nối với thạch anh tần số 32.768 KHz để kích hoạt bộ dao động nội.
- VBAT: Chân này được kết với cực dương pin Lithium 3V để cấp nguồn nuôi dự phòng. - GND: Chân nối đất. 8 - SDA: Chân dữ liệu nối tiếp (Serial Data). Đây là chân dữ liệu vào/ra của giao thức I2C.
Chân này cần đưa lên nguồn 5V thông qua điện trở 10kΩ. - SCL: Chân đầu vào xung đồng hồ nối tiếp (Serial Clock). Đây là chân ngõ vào xung nhịp của giao thức I2C. Chân này cũng phải được kéo đến 5V thông qua một điện trở 10kΩ.
- SQW/OUT: Ngõ xuất ra xung vuông, tần số có thể lập trình để thay đổi từ 1Hz, 4Khz, 8Khz, 32Khz. Nếu không được sử dụng, chân này có thể được thả nổi. - VCC: Chân cấp nguồn chính, khoảng 5VDC. Nếu VCC không có mà VBAT có thì DS1307 vẫn hoạt động bình thường nhưng không ghi và đọc được dữ liệu.3 Thông số kỹ thuật - Điện áp làm việc: 3.
- Bao gồm 1 IC thời gian thực DS1307. - Các thành phần cần thiết như thạch anh 32768kHz, điện trở pull-up và tụ lọc nguồn đều được tích hợp trên board. - Có sẵn pin dự phòng duy trì thời gian khi mất điện. - 5-pin bao gồm giao thức I2C sẵn sàng giao tiếp: INT (QWO), SCL, SDA, VCC và GND.
- Dễ dàng Thêm một đồng hồ thời gian thực để dự án của bạn. - Nhỏ gọn và dễ dàng để lắp thêm vào bo mạch hoặc test board.3 GIỚI THIỆU VỀ CẢM BIẾN MÀU SẮC TCS3200 2.1 Sơ lược về cảm biến màu sắc TCS3200 Module cảm biến màu TCS3200 là một module cảm biến phát hiện đầy đủ màu sắc, bao gồm cả cảm biến TCS3200 với khả năng nhận biết 3 màu cơ bản RGB và 4 led màu trắng. Các TCS3200 có thể phát hiện và đo lường gần như tất cả màu sắc có thể nhìn thấy. Các bộ lọc màu bên trong TCS3200 được phân bố 9 đều khắp các mảng để loại bỏ sai lệch vị trí giữa các điểm màu.
Bên trong là một bộ dao động tạo ra sóng vuông ở ngõ ra tỉ lệ với cường độ màu sắc. Hình 2-6 Cảm biến màu sắc TCS3200 2.2 Sơ đồ chân kết nối Hình 2-7 Sơ đồ chân cảm biến màu sắc - S1,S0: Ngõ vào chọn tỉ lệ tần số ngõ ra. - OE: Ngõ vào cho phép xuất tần số ở chân OUT (tích cực mức thấp). - GND: Chân nối đất.
- VDD: Chân cấp nguồn (2. - OUT: Ngõ ra là tần số thay đổi phụ thuộc cường độ và màu sắc. - S2, S3: Ngõ vào chọn loại photodiode.3 Thông số kỹ thuật - Chuyển đổi cường độ ánh sáng thành tần số có độ phân giải cao. - Lập trình lựa chọn bộ lọc màu sắc khác nhau và dạng tần số xuất ra.
- Giao tiếp trực tiếp với vi điều khiển. - Kích thước: 28. - Tần số ngõ ra có độ rộng xung 50% - Tần số tỉ lệ với ánh sáng có cường độ và màu sắc khác nhau. - Tần số ngõ ra nằm trong khoảng 2 Hz- 500KHz.4 GIỚI THIỆU VỀ LCD2004 2.1 Sơ lược về màn hình LCD2004 LCD 2004 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã ASCII.
Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi ô chỉ hiển thị được một kí tự duy nhất. LCD 2004 nghĩa là loại LCD có 4 dòng và mỗi dòng chỉ hiển thị được 20 kí tự. Đây là loại màn hình được sử dụng rất phổ biến trong các loại mạch điện. Hình 2-8 Màn hình LCD2004 2.2 Sơ đồ chân kết nối LCD có nhiều loại và số chân của chúng cũng khác nhau nhưng có 2 loại phổ biến là loại 12 chân và loại 16 chân, sự khác nhau là các chân nguồn cung cấp, còn các chân điều khiển thì không thay đổi, khi sử dụng loại LCD nào thì phải tra datasheet của chúng để biết rõ các chân.
[1] 11 Bảng 2-1 Chức năng các chân LCD Chân số Tên chân Input/Output Chức năng tín hiệu 1 VSS Power GND 2 VDD Power +5V 3 V0 Analog Điều chỉnh độ sáng màn hình 4 RS Input Lựa chọn thanh ghi: - RS=0: Lựa chọn thanh ghi lệnh. - RS=1: lựa chọn thanh ghi dữ liệu. 5 R/W Input Read/write (R/W): - R/W=0: Ghi dữ liệu. - R/W=1: Đọc dữ liệu.
6 E Input Cho phép ghi vào LCD 7 D0 I/O DATA 8 D1 I/O DATA 9 D2 I/O DATA 10 D3 I/O DATA 11 D4 I/O DATA 12 D5 I/O DATA 13 D6 I/O DATA 14 D7 I/O DATA 15 A Input Anode đèn nền 16 K Input Cathode đèn nền Trong 16 chân của LCD được chia ra làm 4 dạng tín hiệu như sau: [1] - Các chân cấp nguồn: Chân số 1 là chân nối mass (0V), chân thứ 2 là Vdd nối với nguồn +5V. Chân thứ 3 dùng để chỉnh contrast thường nối với biến 12 trở, chỉnh cho đến khi thấy được kí tự thì ngừng, trong bộ thực hành thì đã chỉnh rồi. - Các chân điều khiển: Chân số 4 là chân RS dùng để điều khiển lựa chọn thanh ghi. Chân R/W dùng để điều khiển quá trình đọc và ghi.
- Chân E là chân cho phép dạng xung chốt.