Đồ án Hiết kế hệ thống tưới tự động và giám sát cho trại nấm bào ngư (Phần 1)

pdf 22 trang phuongnguyen 10
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Hiết kế hệ thống tưới tự động và giám sát cho trại nấm bào ngư (Phần 1)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfdo_an_hiet_ke_he_thong_tuoi_tu_dong_va_giam_sat_cho_trai_nam.pdf

Nội dung text: Đồ án Hiết kế hệ thống tưới tự động và giám sát cho trại nấm bào ngư (Phần 1)

  1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG THIẾT KẾ HỆ THỐNG TƯỚI TỰ ĐỘNG VÀ GIÁM SÁT CHO TRẠI NẤM BÀO NGƯ GVHD: THS. LÊ QUỐC ĐÁN SVTH: NGUYỄN ĐỨC HUY MSSV: 12341045 SVTH: VÕ TRUNG HIẾU MSSV: 12341039 SKL003128 Tp. Hồ Chí Minh, tháng 07/2014
  2. BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ-CÔNG NGHIỆP ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHÊ ̣ KỸ THUÂṬ ĐIỆN TỬ –TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ HỆ THỐNG TƯỚI TỰ ĐỘNG VÀ GIÁM SÁT CHO TRẠI NẤM BÀO NGƯ GVHD : Th.SLêQuốcĐán SVTH : NguyễnĐứcHuy MSSV : 12341045 SVTH : VõTrungHiếu MSSV : 12341039 Tp. HồChí Minh - 07/2014
  3. PHẦN B
  4. Đồ án tốt nghiệp Chƣơng I DẪN NHÂP̣ Trang 2
  5. Đồ án tốt nghiệp 1.1. Đặt vấn đề Vài năm trở lại đây, nhờ trồng nấm đã giúp cho nhiều hộ gia đình tăng thêm thu nhập nên đã kích thích một số hộ đầu tư sản xuất với quy mô lớn hàng ngàn mét vuông, sản phẩm thu hoạch hàng ngày lên đến hàng trăm kí. Cùng với trồng hoa, rau mầm, cây kiểng , trồng nấm bào ngưđang là mô hình sản xuất nông nghiệp đô thị được khuyến khích hiện nay. Trồng nấm bào ngư, không tốn nhiều đất nhưng quan trọng là phải đảm bảo quy trình trồng hợp lý, khoa học. Nước ta là một nước nông nghiệp có sản lượng nông sản xuất khẩu thuộc loại cao trong khu vực,nhưng so với những nền nông nghiệp tiên tiến trên thế vẫn còn là một nước có nền nông nghiệp lạc hậu, nguyên nhân là do chúng ta chậm áp dụng thành tựu khoa học vào trong nông nghiệp, đặc biệt là trong lĩnh vựctrồng trọt. 1.2. Lý do chọn đề tài. Xuất phát từ những nhu cầu thực tế nhóm chọn đề tài “ Thiết Kế Hệ Thống Tƣới Tự Động Và Giám Sát Cho Trồng Nấm Bào Ngƣ” nhằm ứng dụng ngành điện-điện tử vào ngành nông nghiệp để từ đó giúp nâng cao năng suất và giám sát trong việc trồng nấm một cách khoa học và hiệu quả hơn. 1.3. Đối tƣợng nghiên cứu Thiết kế, thi công, điều khiển và giám sát trong việc trồng nấm bào ngư. Hệ thốngtập trung vào khả năng tự động hóa việc tưới nước để giữ nhiệt độ và độ ẩm một cách tốt nhất cho nấm phát triển, đồng thời giám sát sự thay đổi qua tin nhắn SMS nhằm nâng cao khả năng hoạt động ổn định của hệ thống. 1.4. Giới hạn đề tài Với lượng thời gian và kinh phí có hạn , trong đề tài này xin phép thực hiêṇ những chức năng cơ bản như sau: Hệ thống thiết kế có chiều dài truyền dẫn tín hiệu cảm biến không vượt quá 30m. Các thông tin được hiển thị lên màn hình LCD 20x4. Thi công hệ thống trên mô hình. Trang 4
  6. Đồ án tốt nghiệp Sử dụng các linh kiện, các cảm biến có sẵn trên thị trường. Phương pháp tưới chưa được tối ưu, hệ thống tưới phun sương cần máy nén khí. Các van nhỏ đóng ngắt tự động điều chỉnh dòng tưới cho mô hình có giá thành cao nên phải dùng nhiều máy bơm nước nhỏ. 1.5. Dàn ý nghiên cứu Đồ án được thực hiện trình tự theo đúng yêu cầu thiết kế cho một hệ thống hoàn chỉnh trên thực tế, trình bày chi tiết các công đoạn tiến hành xây dựng mô hình từ quá trình tìm hiểu cấu tạo, cách lập trình. Trên cơ sở đó đưa ra phương án lựa chọn và kết nối các thiết bị điều khiển, thiết lập thuật toán điều khiển. Phần cuối trình bày nhận xét đánh giá kết quả đạt được và phân tích hướng phát triển của đồ án trong tương lai. Các giai đoạn tiếp theo được trình bày chi tiết trong nội dung các chương sau: Chương II.Tổng Quan Các Phương Pháp Đo Thông Số Môi Trường Và Linh Kiện Sử Dụng Giới thiệu tổng quát về các phương pháp đo nhiệt độ và độ ẩm,giới thiệu vi điều khiển PIC16F887, khảo sát tổ chức bộ nhớ, port xuất nhập, hoạt động ngắt, hoạt động Timer,counter, chuyển đổi ADC, giao tiếp ngoại vi, IC555, Cảm biến độ ẩm HS1101, cảm biến nhiệt độ LM35,module sim900 Chương III. Thiết Kế Hệ Thống Giới thiệu kỹ thuật giám sát và tưới cho trại nấm, phương án thiết kế, thiết kế hệ thống phần cứng, lập trình hệ thống , một số hình ảnh mô hình thiết kế. Từ mô hình và các phân tích yêu cầu của hệ thống nội dung chính, trình bày các giai đoạn tiến hành thiết lập thuật toán điều khiển của mô hình trên màn hình LCD và gửi nhận tin nhắn SMS. Chương IV. Kết quả nghiên cứu kết luận hướng phát triển. Nội dung chương III sẽ tổng hợp các kết quả sau khi hoàn thành, việc thi công mô hình và giao diện giám sát. Trang 5
  7. Đồ án tốt nghiệp Nhận xét đánh giá kết quả nhận được sau khi hoàn thành đề tài, từ đó đưa ra các phương án phát triển và hoàn thiện về mô hình cũng như giao diện điều khiển giám sát nhằm tiến tới tối ưu hệ thống trong tương lai , đó cũng là nội dung và nhiệm vụ của chương. 1.6. Tình hình nghiên cứu Hiện nay, ở Việt Nam với sự tiến bộ của khoa học kỹ thuật, các ứng dụng của khoa học vào ngành nông nghiệp ngày càng phổ biến. Bên cạnh đó, nhu cầu sử dụng các thiết bị một cách tự động, con người ngày càng muốn có nhiều thiết bị hỗ trợ cho việc trồng trọt sản xuất. Việc tưới nước để tăng độ ẩm và giám sát trong công tác trồng trọt vẫn còn làm một cách thủ công phổ biến ở Việt Nam chưa tiến đến áp dụng tự động và giám sát trồng nấm. 1.7. Ý nghĩa thực tiển. Từ những nhu cầu thực tế, nhóm thưc̣ hiêṇ đề tài muốn đưa một phầ n ứng dụng của ngành Điện-Điện Tử áp dụng vào điều kiện thực tế trong nước để có thể tạo ra một hệ thống trồng nấm tự động.Nhằm đáp ứng nhu cầu trồng trọt trong nước, góp phần mang lại hiệu quả cao trong sản xuất. Ngoài ra đề tài lấy cơ sở là tin nhắn SMS để điều khiển và giám sát thiết bị. Việc sử dụng tin nhắn SMS thuận lợi tiết kiệm chi phí, mang tính cạnh tranh và cơ động cao. Trang 6
  8. Đồ án tốt nghiệp CHƢƠNG II: TỔNG QUAN CÁC PHƢƠNG PHÁP ĐO THÔNG SỐ MÔI TRƢỜNG VÀ LINH KIỆN SỬ DỤNG 2.1 Các phƣơng pháp đo thông số môi trƣờng 2.1.1 Phƣơng pháp đo nhiệt độ: Nhiệt độ là một trong những thông số quan trọng nhất ảnh hưởng đến đặc tínhcủa vật chất nên trong các quá trình kỹ thuật cũng như trong đời sống hằng ngàyrất hay gặp yêu cầu đo nhiệt độ. Ngày nay hầu hết các quá trình sản xuất côngnghiệp hay nông nghiệp đều có yêu cầu đo nhiệt độ. Tùy theo nhiệt độ đo có thể dùng các phương pháp khác nhau, thường phânloại các phương pháp dựa vào dải nhiệt độ cần đo. Thông thường nhiệt độ đo được chia thành ba dải: nhiệt độ thấp, nhiệt độ trung bình và cao. Ở nhiệt độ trung bình và thấp: phương pháp thường đo là phương pháp tiếpxúc nghĩa là các chuyển đổi được đặt trực tiếp ở ngay môi trường cần đo. Đối với nhiệt độ cao: đo bằng phương pháp không tiếp xúc, dụng cụ đặt ởngoài môi trường đo. 2.1.2 Phƣơng pháp đo độ ẩm: - Độ ẩm tuyệt đối Độ ẩm tuyệt đối của không khí trong khí quyển là đại lượng đo bằng khối lượng m (tính ra gạm) của hơi nước có trong 1m3 không khí. Đơn vị đo của a là g/m3. Tuy nhiên trong thực tế thì việc xác định độ ẩm tuyệt đối là rất khó khăn, ít nhất là chúng ta phải có các dụng cụ đo có độ chính xác rất cao, kéo theo các dụng cụ này chế tạo rất khó và đắt tiền. Ngay cả khi chúng ta đã có độ ẩm tuyệt đối rồi thì việc chuyển đổi thành tín hiệu đồng nhất là điện áp hoặc dòng điện để đi điều khiển cũng là cả một vấn đề. Trang 7
  9. Đồ án tốt nghiệp - Độ ẩm cực đại Nếu độ ẩm tuyệt đối của không khí càng cao thì lượng hơi nước có trong 1m3 không khí càng lớn nên áp suất riêng phần p của hơi nước trong không khí càng lớn. Áp suất này không thể lớn hơn áp suất hơi nước bão hòa po ở cùng nhiệt độ cho trước nên độ ẩm độ ẩm tuyệt đối của không khí ở trạng thái bão hòa hơi nước có giá trị cực đại và được gọi là độ ẩm cực đại A. Độ ẩm cực đại có độ lớn bằng khối lượng riêng của hơi nước bão hòa trong không khí tính theo đơn vị g/m3. * Chú ý: độ ẩm cực đại được lấy bằng khối lượng riêng của hơi nước bão hòa, ví dụ: độ ẩm cực đại ở 28oC là 27,2(g/m3). - Độ ẩm tỉ đối Độ ẩm tuyệt đối chưa cho biết không khí ẩm nhiều hay ẩm ít, vì nhiệt độ càng thấp thì hơi nước càng dễ bão hòa và độ ẩm tuyệt đối càng gần độ ẩm cực đại. Để mô tả mức độ ẩm của không khí ở mỗi nhiệt độ, người ta dùng độ ẩm tỉ đối B. Độ ẩm tỉ đối f là đại lượng đo bằng tỉ số phần trăm giữa độ ẩm tuyệt đối a và độ ẩm cực đại A của không khí ở cùng nhiệt độ cho trước. Trong khí tượng học, độ ẩm tỉ đối f được tính gần đúng theo công thức Ý nghĩa độ ẩm tỉ đối cho ta biết mức độ ẩm của không khí.Không khí càng ẩm thì độ ẩm tỉ đối của nó càng cao. Có thể đo độ ẩm của không khí bằng các ẩm kế : Ẩm kế tóc, ẩm kế khô – ướt, ẩm kế điểm sương. - Ảnh hưởng của độ ẩm không khí Trang 8
  10. Đồ án tốt nghiệp Độ ẩm tỉ đối của không khí càng nhỏ, sự bay hơi qua lớp da càng nhanh, thân người càng dễ bị lạnh. Độ ẩm tỉ đối cao hơn 80% sẽ tạo điều kiện cho cây cối phát triển, nhưng lại dễ làm ẩm mốc hàng hóa trong kho và làm hư hỏng máy móc, dụng cụ điện tử, cơ khí, khí tài quân sự. Để bảo quản các thứ này ta phải thực hiện nhiều biện pháp chống ẩm như dùng các chất hút ẩm, bôi dầu mỡ lên các chi tiết máy Để chống ẩm, người ta phải thực hiện nhiều biện pháp như dùng chất hút ẩm, sấy nóng, thông gió, Hiện nay có nhiều loại ẩm kế đo độ ẩm. Tuy các ẩm kế hoạt động theo nhiều nguyên lý khác nhau nhưng cùng một cơ sở nhiệt động là đều dựa trên hiệu số nhiệt độ nhiệt kế khô và nhiệt độ nhiệt kế ướt. Bên cạnh việc sử dụng các ẩm kế chúng ta có thể sử dụng các cảm biến đo độ ẩm. Các IC này hoạt động dựa vào nguyên tắc: điện dung biến đổi phụ thuộc vào sự thay đổi của độ ẩm môi trường. Như HR202, HS1101 Các cảm biến đo nhiệt độ kết hợp độ ẩm thông dụng có mặt trên thị trường hiện nay: Như DHTxx, SHTxx Độ ẩm thay đổi theo nhiệt độ, do đó các cảm biến tích hợp đo nhiệt độ và độ ẩm, giữa chúng liên hệ với nhau bằng các công thức biến đổi, phụ thuộc lẫn nhau. Trang 9
  11. Đồ án tốt nghiệp 2.2 Khảo sát vi điều khiển PIC16F887 2.2.1 Tổ chức bộ nhớ, thanh ghi Hình 2.1 Dạng đóng gói của VĐK PIC16F887 - Bộ nhớ Bộ nhớ chương trình của PIC16F887 có dung lượng 8k được chia làm 4 trang bộ nhớ, mỗi trang 2k. Thanh ghi bộ đếm chương trình PC sẽ quản lý địa chỉ của bộ nhớ chương trình, thanh ghi PC có độ dài 13bit sẽ quản lý 8192 ô nhớ tương đương với 8k ô nhớ. Mỗi ô nhớ chương trình lưu 14bit dữ liệu. Khi PC bị reset thì thanh ghi PC có gí trị là 000H và PIC sẽ bắt đầu thực hiện chương trình tại địa chỉ 0000H. Khi có bất kỳ ngắt nào tác động thì PIC sẽ thực hiện chương trình phục vụ ngắt tại địa chỉ 0004H. Mỗi trang của bộ nhớ chương trình có địa chỉ xác định, việc phân chia theo trang bô nhớ chỉ có tác dụng đối với lệnh nhảy và lệnh gọi chương trình con. Khi nơi nhảy đến hoặc khi gọi chương trình con nằm trong cùng 1 trang thì lệnh sẽ viết ngắn gọn hơn, mã lệnh ít hơn so với trường hợp nằm khác trang. Trang 10
  12. Đồ án tốt nghiệp Trong các họ vi điều khiển khác thì bộ nhớ ngăn xếp dung chung với bộ nhớ dữ liệu, ưu điểm là cấu trúc đơn giản, khuyết điểm là việc dùng chung nếu không biết giới hạn sẽ lấn chiếm lẫn nhau và làm mất dữ liệu lưu trong bộ nhớ ngăn xếp và chương trình thực thi sai. Ở vi điều khiển PIC thì nhà thiết kế tách bộ nhớ ngăn xếp độc lập với bộ nhớ dữ liệu và chỉ để dùng lưu địa chỉ trở về khi thực hiện lệnh gọi chương trình con và khi thực hiện ngắt. Dung lượng bộ nhớ ngăn xếp chỉ có 8 ô nhớ từ stack level 1 đến stack level 8. Do chỉ có 8 ô nhớ nên khi thực hiện các chương trình con lồng vào nhau tối đa là 8 cấp. Do lưu địa chỉ trở về trong thanh ghi PC, mà thanh ghi PC có chiều dài 13bit nên mỗi ô nhớ ngăn xếp có số bit là 13. Bộ nhớ dữ liệu của PIC16F887 được chia ra làm 4 bank. Mỗi bank có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR nằm ở vùng địa chỉ còn lại trong bank. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiên trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.Sơ đồ cụ thể như sau: Trang 11
  13. Đồ án tốt nghiệp Hình 2.2Sơ đồ bộ nhớ dữ liệu của PIC16F887 Trang 12
  14. Đồ án tốt nghiệp Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điều khiển các khối chức năng được tích hợp bên trong vi điều khiển. Có thể phân thanh ghi SFR làm hai loaị : thanh ghi SFR liên quan đến các chức năng bên trong (CPU)và thanh ghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (vídụ như ADC, PWM, ). Phần này sẽ đề cập đến các thanh ghi liên quan đến các chức năng bên trong. Các thanh ghi dùng để thiết lập và điều khiển các khối chức năng sẽ được nhắc đến khi ta đề cập đến các khối chức năng đó. Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi chứa kết quả thực hiện phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu. Hình 2.3 Thanh ghi STATUS. Thanh ghi OPTION_REG (81h, 181h): thanh ghi này cho phép đọc và ghi,cho phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm Timer0. Hình 2.4 Thanh ghi OPTION_REG. Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi. Hình 2.5 Thanh ghi PIE1. Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1. Trang 13
  15. Đồ án tốt nghiệp Hình 2.6 Thanh ghi PIR1. Thanh ghi PIE2 (8Dh): chứa các bit điều khiển các ngắt của các khối chức năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM. Hình 2.7 Thanh ghi PIE2. Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển. Hình 2.8 Thanh ghi PCON Thanh ghi mục đích chung GPR Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanh ghi FSG (File Select Register). Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thể tùy theo mục đích chương trình mà có thể dung các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình. 2.2.2 Port xuất nhập Port A Port A gồm 6 chân từ RA0 đến RA5. Việc ghi giá trị vào thanh ghi TRISA sẽ quy định các chân của Port A là input hay output (nếu là 1 thì là input, là output nếu là 0). Việc đọc thanh ghi Port A sẽ đọc trạng thái của các chân ở Port A. Việc ghi giá trị vào thanh ghi Port A sẽ thay đổi trạng thái của các chân Port A. Riêng chân RA4 được tích hợp chức năng nhận xung clock ngoài cho Timer0 (RA4/T0CKI).Những chân khác của Port A được đa hợp với các chân ngõ vào Analog của ADC và chân ngõ vào điện thế so sánh của bộ so sánh Comparator. Hoạt động của những chân này được quy định bằng những bit tương ứng trong các thanh ghi Trang 14
  16. Đồ án tốt nghiệp ADCCON1 và CMCON1. Khi các chân của Port A được sử dụng làm ngõ vào Analog thì các bit trong thanh ghi TRISA phải được set bằng 1. Trang 15
  17. Đồ án tốt nghiệp Port B Port B gồm 8 chân từ chân RB0-RB7. Việc ghi giá trị vào thanh ghi TRISB sẽ quy định các chân của Port B là input hay output (1 :input, 0 :output). Việc đọc thanh ghi Port B sẽ đọc trạng thái của các chân ở Port B. Việc ghi giá trị vào thanh ghi Port B sẽ thay đổi trạng thái của các chân Port B. Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và Low Voltage Programming function :RB3/PGM, RB6/PGC, RB7/PGD. Mỗi chân Port B có một transistor kéo lên Vdd. Chức năng này hoạt động khi bit RBPU (Option ) được xóa. Chức năng này sẽ tự động được xóa khi Port B được quy định là input. Bốn chân của Port B từ RB7 đến RB4 có chức năng ngắt khi trạng thái chân Port B thay đổi (Khi Port B được quy định là output thì chức năng này không hoạt động.Giá trị chân của Port được so sánh với giá trị đã được lưu trước đó, khi có sự sai lệch giữa 2 giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bật lên.Ngắt có thể làm cho VĐK thoát khỏi trạng thái SLEEP. Bất cứ sự truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phép xóa cờ ngắt RBIF. Port C Port C gồm 8 chân từ chân RC0-RC7. Việc ghi giá trị vào thanh ghi TRISC sẽ quy định các chân của Port C là input hay output (1:input, 0 :output). Việc đọc thanh ghi Port C sẽ đọc trạng thái của các chân ở Port C. Việc ghi giá trị vào thanh ghi Port C sẽ thay đổi trạng thái của các chân Port C. Các chân của Port C được đa hợp với các chức năng ngoại vi. Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giá trị các bit của thanh ghi TRISC. Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lên các bit của thanh ghi TRISC và mặc định các chân này là output, ngoài ra một số chức năng ngoại vi khác sẽ tự động mặc định một số chân là ngõ vào. Do đó cần xem xét kĩ các tính năng của các hàm ngoại vi để thiết lập giá trị các bit trong thanh ghi TRISC cho thích hợp. Trang 16
  18. Đồ án tốt nghiệp Ngoài ra, chân 25 và 26 của PIC tức bit thứ 6 và thứ 7 của PortC còn đảm nhiệm việc giao tiếp dữ liêụ theo kiểu t ruyền nối tiếp, cụ thể chân 25 là chân truyền dữ liệu ( TXD ) của PIC và chân 26 là chân nhận dữ liệu ( RXD ) của PIC. Port D Port D gồm 8 chân từ chân RD0-RD7. Bên cạnh chức năng là port xuất nhập, Port D còn có thể hoạt động như một cổng song song bằng cách set bit PSPMODE (TRISE ), trong chế độ này buffer ngõ vào là TTL. 2.2.3 Ngắt PIC 16F877 có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng. Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuộc vào bit GIE và các bit điều khiển khác. Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanh ghi này còn chứa bit cho phép và ngắt ngoại vi PEIE. Bit điều khiển các ngắt nằm trong thanh ghi PIE1và PIE2. Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2. Trong một thời điểm chỉ có một chương trình ngắt được thưc thi, chương trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực thi, bit GIE tự động được xóa địa chỉ tiếp theo của chương trình chính được cất trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004H. Lệnh RETFIE được dung để thoát khỏi chương trình ngắt và quay trở về chương trình chính, đồng thời GIE cũng sẽ được set để cho phép các ngắt hoạt động trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và phải được xóa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động trở lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra. Đối với các ngắt ngoại vi như ngắt từ chân RB0 hay ngắt từ sự thay đổi trạng thái các chân của PORTB, việc xác định ngắt nào xảy ra cần ba hoặc 4 chu kỳ lệnh tùy thuộc vào thời điểm xảy ra ngắt. Trang 17
  19. Đồ án tốt nghiệp Cần chú ý trong quá trình thực thi ngắt chỉ có giá trị của bộ đếm chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ không được cất và có thể bị thay đổi giá trị trong quá trình thực thi ngắt. Điều này nên được xử lý bằng chương trìnhđể tránh hiện tượng trên xảy ra. Hình 2.9 Sơ đồ logic tất cả các ngắt trong vi điều khiển 16F877 Ngắt INT:Ngắt này dựa trên sự thay đổi trạng thái của chân RB0. Cạnh tác động gây ra ngắt có thể là cạnh lên hay cạnh xuống và được điều khiển bởi bit INTEDG (thanh ghi OPTION_REG ). Khi có cạnh tác động thích hợp xuất hiện tại chân RB0, cờ ngắt INTF được set bất chấp trạng thái các bit điều khiển GIE và PEIE. Ngắt này có thể đánh thức vi điều khiển từ chế độ Sleep nếu bit cho phép ngắt được set trước khi lệnh Sleep được thực thi. 2.2.4 TIMER/COUNTER Vi điều khiển PIC 16F887 có 3 Timer T0, T1 và T2. T0 là timer/counter 8 bit, T1 là timer/counter 16 bit cả 2 đều có bộ chia trước. T2 là timer 8 bit có bộ chia trước và chia sau: Khảo sát timer1/counter Trang 18
  20. Đồ án tốt nghiệp Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi (TMR1H:TMR1L). Cờ ngắt của Timer1 là bit TMR1IF (PIR1 ). Bit điều khiển của Timer1 sẽ là TMR1IE (PIE ). Tương tự như Timer0, Timer1 cũng có hai chế độ hoạt động: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số của timer bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phản ánh các sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tác động là cạnh lên). Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạt động là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON ). Sau đây là sơ đồ khối của Timer1: Hình 2.10 Sơ đồ khối Timer T1 Ngoài ra Timer1 còn có chức năng reset input bên trong được điều khiển bởi một trong hai khối CCP (Capture/Compare/PWM). Các thanh ghi liên quan đến Timer1 bao gồm: INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và PEIE). PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF). PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE). TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1. TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1. T1CON (địa chỉ 10h): xác lập các thông số cho Timer1. Trang 19
  21. Đồ án tốt nghiệp 2.2.4 Chuyển đổi tƣơng tự sang số ADC ADC của PIC16F887 có sơ đồ khối như hình 7-1: Hình 2.11Sơ đồ khối của ADC PIC 16F887. Chức năng các thành phần: . AN0 đến AN13 (analog) là 14 ngõ vào của 14 kênh tương tự được đưa đến mạch đa hợp. . CHS là các ngõ vào chọn kênh của bộ đa hợp tương tự Trang 20