MỤC LỤCMỞ ĐẦU............................................................................................................................. 81. Lý do chọn đề tài......................................................................................................... 82. Đối tượng và phạm vi nghiên cứu............................................................................... 83. Phương pháp nghiên cứu............................................................................................. 84. Nội dung nghiên cứu................................................................................................... 9CHƢƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI...................................................................... 101.1 Đặt vấn đề ............................................................................................................... 101.2 Hướng giải quyết..................................................................................................... 101.3 Quy trình và kỹ thuật ấp trứng bằng máy ấp........................................................... 101.3.1 Kỹ thuật ấp trúng .............................................................................................. 101.3.2 Quy trình ấp trứng............................................................................................. 141.4 Giới thiệu một số mô hình ấp trứng ........................................................................ 151.4.1 Máy ấp trứng GTL – 1000................................................................................ 151.4.2 Máy ấp trứng OXY GTL 240K ........................................................................ 161.4.3 Máy ấp trứng Mini CNE................................................................................... 17CHƢƠNG II: CƠ SỞ LÝ THUYẾT CHUNG.............................................................. 192.1 Phân tích đề tài ........................................................................................................ 192.1.1 Chức năng của đề tài......................................................................................... 192.1.2 Các yêu cầu cụ thể cho hệ thống ...................................................................... 192.1.3 Giải pháp lựa chọn đề tài .................................................................................. 192.2 Vi điều khiển PIC 16F877A.................................................................................... 202.2.1 Khái quát về vi điều khiển PIC 16F877A......................................................... 202.2.2 Tìm hiểu về vi điều khiển PIC 16F877A.......................................................... 262.3 Cảm biến nhiệt độ và độ ẩm SHT10 ....................................................................... 372.4 Thiết bị hiển thị LCD .............................................................................................. 382.5 Phân tích công nghệ của lò ấp trứng ....................................................................... 402.5.1 Lò ấp trứng thủ công......................................................................................... 402.5.2 Lò ấp trứng bán thủ công.................................................................................. 412.5.3 Lò ấp trứng công nghiệp................................................................................... 41CHƢƠNG III: THIẾT KẾ, TÍNH TOÁN VÀ LỰA CHỌN LINH KIỆN ................ 433.1 Sơ đồ khối ............................................................................................................... 433.1.1 Khối nguồn ....................................................................................................... 44Trang 43.1.2 Khối đầu vào..................................................................................................... 443.1.3 Khối cảm biến................................................................................................... 453.1.4 Khối hiển thị ..................................................................................................... 463.1.5 Khối điều khiển................................................................................................. 473.1.6 Các khối chấp hành........................................................................................... 483.2 Sơ đồ nguyên lý....................................................................................................... 503.3 Mạch in.................................................................................................................... 523.4 Tính toán, xây dựng mô hình .................................................................................. 533.5 Thuật toán điều khiển.............................................................................................. 543.5.1 Lưu đồ thuật toán mạch điều nhiệt ................................................................... 543.5.2 Lưu đồ thuật toán mạch tạo ẩm ........................................................................ 563.6 Kết quả .................................................................................................................... 56KẾT LUẬN VÀ KIẾN NGHỊ......................................................................................... 59TÀI LIỆU THAM KHẢO............................................................................................... 61PHỤ LỤC ......................................................................................................................... 62
Trang 1NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Hưng Yên, ngày tháng năm 2016
Giáo viên hướng dẫn
Trang 2NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Hưng Yên, ngày tháng năm 2016
Giáo viên phản biện
Trang 3MỤC LỤC
MỞ ĐẦU 8
1 Lý do chọn đề tài 8
2 Đối tượng và phạm vi nghiên cứu 8
3 Phương pháp nghiên cứu 8
4 Nội dung nghiên cứu 9
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 10
1.1 Đặt vấn đề 10
1.2 Hướng giải quyết 10
1.3 Quy trình và kỹ thuật ấp trứng bằng máy ấp 10
1.3.1 Kỹ thuật ấp trúng 10
1.3.2 Quy trình ấp trứng 14
1.4 Giới thiệu một số mô hình ấp trứng 15
1.4.1 Máy ấp trứng GTL – 1000 15
1.4.2 Máy ấp trứng OXY GTL 240K 16
1.4.3 Máy ấp trứng Mini CNE 17
CHƯƠNG II: CƠ SỞ LÝ THUYẾT CHUNG 19
2.1 Phân tích đề tài 19
2.1.1 Chức năng của đề tài 19
2.1.2 Các yêu cầu cụ thể cho hệ thống 19
2.1.3 Giải pháp lựa chọn đề tài 19
2.2 Vi điều khiển PIC 16F877A 20
2.2.1 Khái quát về vi điều khiển PIC 16F877A 20
2.2.2 Tìm hiểu về vi điều khiển PIC 16F877A 26
2.3 Cảm biến nhiệt độ và độ ẩm SHT10 37
2.4 Thiết bị hiển thị LCD 38
2.5 Phân tích công nghệ của lò ấp trứng 40
2.5.1 Lò ấp trứng thủ công 40
2.5.2 Lò ấp trứng bán thủ công 41
2.5.3 Lò ấp trứng công nghiệp 41
CHƯƠNG III: THIẾT KẾ, TÍNH TOÁN VÀ LỰA CHỌN LINH KIỆN 43
3.1 Sơ đồ khối 43
3.1.1 Khối nguồn 44
Trang 43.1.2 Khối đầu vào 44
3.1.3 Khối cảm biến 45
3.1.4 Khối hiển thị 46
3.1.5 Khối điều khiển 47
3.1.6 Các khối chấp hành 48
3.2 Sơ đồ nguyên lý 50
3.3 Mạch in 52
3.4 Tính toán, xây dựng mô hình 53
3.5 Thuật toán điều khiển 54
3.5.1 Lưu đồ thuật toán mạch điều nhiệt 54
3.5.2 Lưu đồ thuật toán mạch tạo ẩm 56
3.6 Kết quả 56
KẾT LUẬN VÀ KIẾN NGHỊ 59
TÀI LIỆU THAM KHẢO 61
PHỤ LỤC 62
Trang 5DANH MỤC CÁC HÌNH
Hình 1 1 Máy ấp trứng GTL - 1000 16
Hình 1 2 Máy ấp trứng OXY GTL 240K 17
Hình 1 3 Máy ấp trứng Mini CNE 18
Hình 2 1 Sơ đồ chân của PIC 16F877A 21
Hình 2 2 Sơ đồ nguyên lý của PIC 16F877A 23
Hình 2 3 Sơ đồ khối của PIC 16F877A 27
Hình 2 4 Bộ nhớ chương trình PIC 16F877A 28
Hình 2 5 Sơ đồ bộ nhớ dữ liệu của PIC 16F877A 30
Hình 2 6 Sơ đồ khối của Timer0 của PIC 16F877A 33
Hình 2 7 Sơ đồ khối của Timer1 của PIC 16F877A 34
Hình 2 8 Sơ đồ khối của Timer2 của PIC 16F877A 35
Hình 2 9 Sơ đồ logic của tất cả các ngắt trong vi điều khiển PIC 16F877A 37
Hình 3 1 Sơ đồ khối của toàn bộ hệ thống 43
Hình 3 2 Sơ đồ nguyên lý khối nguồn 44
Hình 3 3 Sơ đồ nguyên lý khối đầu vào 44
Hình 3 4 Sơ đồ nguyên lý khối cảm biến 45
Hình 3 5 Sơ đồ nguyên lý khối hiển thị 46
Hình 3 6 Sơ đồ nguyên lý khối điều khiển 47
Hình 3 7 Sơ đồ nguyên lý mạch điều khiển bóng đèn 48
Hình 3 8 Sơ đồ nguyên lý mạch phát hiện điểm 0 của điện áp xoay chiều 48
Hình 3 9 Sơ đồ nguyên lý mạch điều khiển quạt 49
Hình 3 10 Sơ đồ nguyên lý mạch tạo ẩm 49
Hình 3 11 Sơ đồ nguyên lý khối đảo trứng 50
Hình 3 12 Sơ đồ nguyên lý toàn bộ hệ thống 51
Hình 3 13 Mạch in toàn bộ hệ thống 52
Hình 3 14 Hình ảnh mô hình thực tế 53
Hình 3 15 Hình ảnh thực tế các khay đựng trứng 54
Hình 3 16 Lưu đồ thuật toán mạch điều nhiệt 55
Hình 3 17 Lưu đồ thuật toán mạch tạo ẩm 56
Trang 6Hình 3 19 Hình ảnh hộp điều khiển 57 Hình 3 20 Hình ảnh toàn bộ hệ thống 58
Trang 7DANH MỤC CÁC BẢNG BIỂU
Bảng 1 1 Bảng nhiệt độ thích hợp cho máy ấp trứng đơn kỳ 11 Bảng 1 2 Bảng độ ẩm thích hợp cho máy ấp trứng đơn kỳ 12
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay do sự phát triển của khoa học kỹ thuật đang tác động đến các lĩnh vực, đặc biệt là lĩnh vực điện tử đã tạo ra bước nhảy vọt vượt bậc trong nhiều lĩnh vực của đời sống xã hội, nó đòi hỏi con người luôn luôn không ngừng tìm tòi học tập để tiến bộ Thiết
bị và công nghệ luôn được đổi mới tiên tiến hiện đại để góp phần nâng cao chất lượng cũng như các máy móc, thiết bị hoạt động có hiệu quả, an toàn ổn định Ngày nay các bộ
vi điều khiển đang có ứng dụng ngày càng rộng rãi trong các lĩnh vực kỹ thuật và
đời sống xã hội, đặc biệt là trong kỹ thuật tự động hóa và điều khiển từ xa
Trong hoạt động sản xuất nông nghiệp hiện nay, việc tự động hóa khâu sản xuất là rất quan trọng Nhiều năm trở lại đây, có rất nhiều ứng dụng của vi điều khiển vào hoạt động chăn nuôi, …Một trong những yếu tố của ngành nông nghiệp là chăn nuôi gia cầm với một khâu quan trọng là ổn định trong khâu sản xuất con giống, mà cụ thể là việc ấp
nở con giống từ trứng gia cầm Từ thực tế thấy được tầm quan trọng của việc ấp nở con giống từ trứng gia cầm và đặc biệt là việc ổn định nhiệt độ và độ ẩm trong lò ấp trứng Vì
thế em đã lựa chọn đề tài “Thiết kế, chế tạo hệ thống điều khiển ổn định nhiệt độ và
độ ẩm trong lò ấp trứng”
2 Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu lò ấp trứng đơn kỳ
Phạm vi nghiên cứu:
Nghiên cứu ổn định nhiệt độ và độ ẩm trong lò ấp trứng tại thời điểm cần đặt
Sử dụng động cơ bước để đảo trứng
Bộ điều nhiệt bằng bóng đèn
Bộ thông gió bằng quạt
Trang 9- Phương pháp nghiên cứu lý thuyết:
Đọc và tìm hiểu các phương pháp ấp trứng hiện nay
Đọc và tìm hiểu bài giảng, giáo trình điện tử căn bản, giáo trình vi xử lý :
Khoa Điện - Điện Tử - ĐHSPKT HY
- Phương pháp thực nghiệm:
Bằng cách vận dụng các kiến thức đạt được trong quá trình học tập, tham
khảo tài liệu Nhóm thực hiện tiến hành tìm hiểu, thiết kế, thi công, và thử nghiệm mô hình trong nhiều tình huống và điều kiện khác nhau Quá trình thực nghiệm giúp nhóm thực hiện tự hoàn thiện và bổ sung dần các kiến thức mới Đặc biệt là tìm được hướng nghiên cứu thích hợp nhất để hoàn chỉnh và tối ưu đề tài
Đồ án được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng những kiến thức đã được học trong nhà trường để thiết kế, tạo ra một hệ thống điều khiển tự động hoàn chỉnh
4 Nội dung nghiên cứu
- Khái quát về đề tài
- Quy trình và kỹ thuật ấp trứng nói chung
- Giới thiệu về một số mô hình ấp trứng trên thị trường hiện nay
- Phân tích đề tài
- Giới thiệu và tìm hiểu về vi điều khiển PIC 16F877A, cảm biến nhiệt độ và độ ẩm SHT10, thiết bị hiển thị LCD
- Phân tích công nghệ của lò ấp trứng
- Xây dựng sơ đồ khối, chỉ ra nhiệm vụ của các khối
- Xây dựng sơ đồ nguyên lý của từng khối ,trình bày nguyên lý hoạt động của từng khối
- Tính toán và lựa chọn link kiện cho từng sơ đồ nguyên lý
- Các kết quả nghiên cứu đạt được và đánh giá về kết quả đó
Trang 10CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
Có rất nhiều hệ thống đã ứng dụng việc điều khiển nhiệt độ và độ ẩm, ví dụ như trong các hệ thống nồi hơi, các lò ấp trứng, các lò sấy, Hiện nay trên thị trường, các hệ thống đó có rất nhiều phương pháp điều khiển nhiệt độ va độ ẩm Tuy nhiên, với các hệ thống khác nhau ta phải có phương pháp điều khiển thích hợp để hệ thống trở lên đơn giản và giá thành rẻ, giúp người dùng dễ dàng sử dụng
Trong khuôn khổ đồ án, nhóm em xin trình bày về việc điều khiển ổn định nhiệt
độ và độ ẩm trong lò ấp trứng sử dụng vi điều khiển PIC 16F877A, ngoài ra còn sử dụng thêm động cơ DC để đảo trứng một cách tự động
1.2 Hướng giải quyết
- Tìm hiểu về một số lò ấp trứng hiện nay, các phương pháp điều khiển nhiêt độ và
độ ẩm
- Tìm hiêu về động cơ bước
- Xây dựng, thiết kế mô hình hệ thống, thi công mạch phần cứng điều khiển nhiệt
độ vầ đọ ẩm trong lò ấp trứng
- Viết chương trình điều khiển
- Đánh giá về kết quả thu được sau khi hoàn thành đề tài
Trang 112 Chuẩn bị máy ấp, máy nở và xếp trứng vào khay
Máy ấp và máy nở phải được vệ sinh trước (dùng Benkocid lau các khung máy và lau khô), sau đó xông khử trùng (dùng thuốc tím và formol giống như phần phương pháp xông trứng, sau đó mở cửa cho khí formol bay hết)
Đối với máy ấp:
- Bật trước 2 – 4h để máy đạt nhiệt độ và độ ẩm yêu cầu sau đó mới cho khay đã
Đối với máy nở:
- Bật máy trước khi chuyển trứng từ 4 - 5h (đủ nhiệt độ)
- Sau khi gà nở, lấy gà ra khỏi máy thì tiến hành vệ sinh, xông khử trùng như trên chuẩn bị cho đợt ấp tiếp theo
- Khay trứng đưa vào ấp phải được ghi ngày thu trứng
3 Các yêu cầu kỹ thuật
Máy ấp đơn kỳ:
Nhiệt độ
Bảng 1 1 Bảng nhiệt độ thích hợp cho máy ấp trứng đơn kỳ
Trang 12Bảng 1 2 Bảng độ ẩm thích hợp cho máy ấp trứng đơn kỳ
- Nếu 6 ngày đầu không đảo phôi dính vào vỏ không phát triển và chết
- Sau 13 ngày không đảo túi niệu không khép kín, lượng abumin không vào được bên trong túi niệu dẫn đến tỷ lệ chết phôi cao, gà mổ vỏ sẽ không đúng vị trí, phôi
bị dị hình ở phần mắt, mỏ, đầu
Phương pháp đảo trứng
- Trứng được đảo một góc 90o và có thể đảo 2h/lần
- Ngừng đảo trứng từ ngày thứ 18 sau khi ấp
b Soi trứng
Mục đích soi trứng
Kiểm tra loại bỏ những quả trứng trắng, trứng chết phôi để tiết kiệm diện tích máy, đồng thời tránh ô nhiễm và xác định thời điểm phôi chết để có biện pháp cải thiện
Trang 13- Lần 1: lúc 6 ngày để biết được trứng có phôi (có các mạch máu bên trong
trứng tỏa ra ngoài từ một đốm nhỏ đen gọi là phôi, phôi di chuyển bên trong trứng), loại bỏ trứng không phôi và chết phôi qua các đặc điểm sau: + Trứng trong suốt, xoay trứng thấy lòng đỏ và lòng trắng lẫn lộn
+ Phôi nhẹ nằm lên sát mặt vỏ trứng, nhìn rõ tâm phôi
+ Hệ thống mạch máu phát triển yếu, mờ nhạt + Đôi khi buồng khí khá lớn
+ Trứng bị chết phôi, khi xoay trứng phôi di động nhanh, có vết đen nằm sát buồng khí, mạch máu sẫm, vòng máu chạy ngang
- Lần 2: lúc 11 ngày, phôi sống giống như lúc 6 ngày tuổi tuy nhiên phôi lớn
hơn nhiều và di chuyển bên trong trứng với động tác mạnh mẻ hơn, loại tiếp những trứng chết phôi qua các đặc điểm sau:
+ Phôi không chuyển động
+ Trứng có màu nâu sẫm, do mạch máu bị vỡ, máu đen
+ Loại bỏ trứng chết phôi, trứng dập vào khay không Soi hết khay trứng,
kiểm tra đếm số trứng chết phôi và xếp lại khay trứng có phôi đưa vào máy ấp
+ Soi trứng phải nhanh, hạn chế trứng bị mất nhiệt, phòng soi trứng phải ấm + Khi soi trứng lúc 6 ngày, khi soi phải xoay quả trứng mới thấy phôi
+ Khi soi trứng lúc 11 ngày phải soi đầu nhọn của trứng, cần chú ý xem màng niệu nang đã khép kín chưa
+ Khi soi trứng cần tham khảo quá trình phát triển của phôi (phụ lục 2)
c Chuyển trứng sang máy nở
- Đối với máy ấp đơn kỳ: Sau khi ấp khoảng 21 ngày trứng bắt đầu khẩy mỏ, khi có khoảng 10% trứng đã khẩy mỏ thì chuyển trứng sang máy nở
Trang 14- Đối với máy ấp đa kỳ: Khi trứng đã ấp được 18 ngày, thì chuyển trứng sang máy
nở
d Lấy gà ra khỏi máy
Gà con nở ra để lâu trong máy không cho ăn uống được sẽ khô chân khó nuôi Do đó
ta phải đưa gà con ra khỏi máy ấp trước 6 giờ
- Trước khi lấy gà ra khỏi máy cần tắt công tắc cho bộ phận tạo độ ẩm ngừng hoạt động
- Lần lượt rút khay gà ra khỏi máy, đặt lên bàn rồi tiến hành chọn gà
1 Giai đoạn trước khi ấp
Chuẩn bị trứng gà đủ chất lượng để ấp, thu nhặt trứng và bảo quản trứng đúng cách
- Thời gian bảo quản không quá 7 ngày vào mùa đông, 5 ngày vào mùa hè
2 Giai đoạn trong khi ấp
Trang 15- Đảo trứng hai giờ một lần (tùy từng hộ gia đình mà số giờ đảo trứng khác nhau, có
hộ gia đình đảo trứng bằng tay hoạc tự động)
- Soi trứng vào ngày 7, ngày 14 và ngày 18 để loại bỏ những quả trứng không có trống, trứng chết phôi sớm, và biết được chất lượng phát triển của phôi trứng
Nhiệt độ ấp trứng phù hợp với một số loại gia cầm:
- Đối với gà ta, gà chọi, gà đông tảo thì nhiệt độ khoảng từ 37,4 oC – 37,8 oC
- Đối với gà tre thì nhiệt độ khoảng 37,4 oC – 37,6 oC
- Đối với vịt ngan ngỗng thì nhiệt độ từ: ngày 1 – 15: 37,8 oC
ngày 15 đến ngày nở: 37,3 oC
3 Giai đoạn nở gà
Để gà nở ra được khỏe mạnh, không bị tật lỗi gì thì cần lưu ý:
- Khi trứng bắt đầu bổ mỏ thì nên cho trứng xuống khay nhựa bên dưới hoặc để
trên tấm vải mềm để gà nở ra đi lại dễ dàng hơn, không bị choãi chân
- Gà sau khi nở ra chỉ nên để trong máy khoảng 5 - 6 tiếng rồi cho ra lồng nuôi
- Điện áp: 220V AC
- Công suất tiêu thụ: 10kw/1 kỳấp
- Phun ẩm: Tuỳ chỉnh, tự động đóng ngắt khi quá % quy định
- Hệ thống cung cấp nhiệt: Bóng nhiệt halozen chuyên dùng cho ấp trứng
- Đảo Trứng: Tự chọn hẹn giờ từ 30 Phút - 120 Giờ
- Nhiệt độ được điều khiển tự động, ổn định bằng vi xử lý
- Tạo độ ấm tự động
- Đảo trứng tự động (có thể tuỳ chọn thời gian đảo từ 1 giờ – 120 giờ)
- Có thể ấp theo chế độ đa kỳ (mỗi tuần vào trứng một lần) hoặc đơn kỳ
Trang 16Hình ảnh trên thị trường
Hình 1 1 Máy ấp trứng GTL - 1000 1.4.2 Máy ấp trứng OXY GTL 240K
- Là loại máy ấp trứng đảo trứng bằng khí - Điện áp: 220V AC
- Công suất tiêu thụ: 2KW điện/1 kỳ ấp
Trang 17Hình 1 2 Máy ấp trứng OXY GTL 240K 1.4.3 Máy ấp trứng Mini CNE
- Là loại máy loại nhỏ, được làm bằng thùng xốp, tích hợp đảo trứng tự động thích hợp với những hộ gia đình buôn bán nhỏ lẻ
- Hiển thị nhiệt độ trong thùng
- Cài đặt nhiệt độ thông qua nút nhấn, thay đổi được thời gian đảo trứng
- Tự động tính toàn và điều chỉnh nhiệt độ khi có sai số so với nhiệt độ thực tế
- Có thể điều chỉnh nhiệt độ phù hợp cho mọi loại trứng.( có bảng nhiệt độ từng loại trứng kèm theo trong HDSD)
- Tỉ lệ trứng nở đạt trên 85% với trứng có phôi tốt
- Siêu tiết kiệm điện năng với phương pháp điều áp 3D
- Nhiệt độ ổn định gần như không có sai số
- Bóng đèn bền không bị cháy như bật tắt bằng relay
- Cấu tạo nhỏ gọn, bền chắc với vỏ nhựa công nghiệp
Hình ảnh trên thị trường:
Trang 18Hình 1 3 Máy ấp trứng Mini CNE
Trang 19CHƯƠNG II: CƠ SỞ LÝ THUYẾT CHUNG
2.1 Phân tích đề tài
2.1.1 Chức năng của đề tài
- Đo và hiển thị nhiệt độ, độ ẩm của lò ấp trứng tại một thời điểm bất kỳ trong khoảng nhiệt độ từ 0 – 100oC, độ ẩm từ 50 – 80%
- Ổn định khi nhiệt độ, độ ẩm của lò ấp trứng
- Đảo trứng theo chu kỳ
2.1.2 Các yêu cầu cụ thể cho hệ thống
- Đo và hiển thị nhiệt độ của lò trong khoảng từ 0 – 100oC
- Đo và hiển thị độ ẩm của lò trong khoảng 50 – 80 %
- Cài đặt nhiệt độ và độ ẩm theo yêu cầu
- Làm việc với điện áp 220V/ 50Hz
- Dùng IC cảm biến nhiệt độ và độ ẩm SHT10
- Cảm biến gửi về tín hiệu điện áp
- Khi nhiệt độ tăng dần thì bộ phận điều nhiệt sẽ giảm từ từ, tới một giới hạn nào đó
có thể ngừng cấp nhiệt
- Khi nhiệt độ giảm dần thì bộ phận điều nhiệt sẽ tăng từ từ, tới một giới hạn nào đó
có thể ngừng cấp nhiệt
- Khi độ ẩm tăng thị bộ phận tạo ẩm sẽ tắt tạo ẩm
- Khi độ ẩm giảm bộ phận tạo ẩm sẽ bật tạo ẩm
2.1.3 Giải pháp lựa chọn đề tài
1 Các tiêu chuẩn lựa chọn bộ vi điều khiển
Tiêu chuẩn đầu tiên và trước hết trong lựa chọn một bộ vi điều khiển là nó phải đáp ứng nhu cầu bài toán về mặt công suất tinh toán, giá thành và hiệu quả, chúng ta phải biết trước hết là các bộ vi điều khiển nào là 8 bit, 16 bit, 32 bit có thể đáp ứng tốt nhất nhu cầu tính toán của bài toán một cách hiệuquả nhất
Những tiêu chuẩn đưa ra để cân nhắc:
- Tốc độ: Tốc độ lớn nhất mà bộ vi điều khiển hỗ trợ là bao nhiêu?
Trang 20- Kiểu đóng vỏ: Đây là điều quan trọng đối với yêu cầu về không gian, kiểu lắp giáp
và tạo mẫu thử cho sản phẩm cuối cùng Đó là kiểu 40 chân DIP hay QFP hay là kiểu đống vỏ khác
- Công suất tiêu thụ: Điều này đặc biệt khắc khe với những sản phẩm dùng pin, ác quy
- Dung lượng bộ nhớ RAM và ROM trên chip
- Khả năng nâng cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ
- Giá thành cho một đơn vị: điều này quan trọng quyết định giá thành cuối cùng của sản phẩm mà một bộ vi điều khiển đươc sử dụng
2 Lựa chọn thiết bị
Qua tìm hiểu tham khảo một số tài liệu trên internet nhóm em đã quyết định lùa chọn bộ vi điều khiển PIC 16F877A, IC cảm biến nhiệt độ và độ ẩm SHT10, bộ đảo trứng bằng động cơ bước, bộ điều nhiệt bằng bóng đèn, bộ tạo ẩm băng máy phun sương, bộ hiển thị LCD, có thể bố trí thêm quạt để thông gió bởi nó đáp ứng tốt nhất yêu cầu của đề tài Cụ thể là:
- Các thiết bị này có sẵn trên thị trường, giá thành không quá cao, đảm bảo độ tin cậy, chính xác, tính liên tục khi làm việc, đáp ứng được công suất tính toán,
- Nguồn các bộ vi xử lý có sẳn nhiều và tin cậy
- Các thiết bị dễ dàng sử dụng
2.2 Vi điều khiển PIC 16F877A
2.2.1 Khái quát về vi điều khiển PIC 16F877A
1 Sơ đồ chân và sơ đồ nguyên lý của PIC 16F877A
Sơ đồ chân:
Trang 21Hình 2 1 Sơ đồ chân của PIC 16F877A Chức năng các chân PIC 16F877A:
PIC 16F877A có tất cả 40 chân,được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chân thạch anh và 1 chân dùng để RESET vi điều khiển
+ VPP: ngõ vào nhận điện áp lập trình khi lập trình cho PIC
- Chân RA0/AN0(2), RA1/AN1(3), RA2/AN2(3): có 2 chức năng
+ RA0,1,2: xuất/ nhập số
+ AN 0,1,2: ngõ vào tương tự của kênh thứ 0,1,2
- Chân RA2/AN2/VREF-/CVREF+(4): xuất nhập số/ ngõ vào tương tự của kênh thứ 2/ ngõ vào điện áp chuẩn thấp của bộ AD/ ngõ vào điện áp chẩn cao của bộ
AD
- Chân RA3/AN3/VREF+(5): xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp chuẩn (cao) của bộ AD
Trang 22- Chân RA4/TOCK1/C1OUT(6): xuất nhập số/ ngõ vào xung clock bên ngoài cho Timer 0/ ngõ ra bộ so sánh 1
- Chân RA5/AN4/ / C2OUT(7): xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào chọn lựa SPI phụ/ ngõ ra bộ so sánh 2
- Chân RB0/INT (33): xuất nhập số/ ngõ vào tín hiệu ngắt ngoài
- Chân RB1(34), RB2(35): xuất nhập số
- Chân RB3/PGM(36): xuất nhập số/ cho phép lập trình điện áp thấp ICSP
- Chân RB4(37), RB5(38): xuất nhập số
- Chân RB6/PGC(39): xuất nhấp số/ mạch gỡ rối và xung clock lập trình ICSP
- Chân RB7/PGD(40): xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP
- Chân RC0/T1OCO/T1CKI(15): xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ vào xung clock bên ngoài Timer 1
- Chân RC1/T1OSI/CCP2(16): xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào Capture2, ngõ ra compare2, ngõ ra PWM2
- Chân RC2/CCP1(17): xuất nhập số/ ngõ vào Capture1 ,ngõ ra compare1, ngõ
ra PWM1
- Chân RC3/SCK/SCL(18): xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra chế độ SPI./ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C
- Chân RC4/SDI/SDA(23): xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C
- Chân RC5/SDO(24): xuất nhập số/ dữ liệu ra SPI
- Chân RC6/TX/CK(25): xuất nhập số/ truyền bất đồng bộ USART/ xung đồng
bộ USART
- Chân RC7/RX/DT(26): xuất nhập số/ nhận bất đồng bộ USART
- Chân RD0-7/PSP0-7(19-30): xuất nhập số/ dữ liệu port song song
Sơ đồ nguyên lý:
Trang 23Hình 2 2 Sơ đồ nguyên lý của PIC 16F877A Nhận xét:
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như sau :
- PIC 16F877A có tất cả 40 chân
- 40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2 chan thạch anh và một chân dùng để RESET vi điều khiển
- 5 port của PIC 16F877A bao gồm :
2 Khái quát về chức năng của các port trong vi điều khiển PIC 16F877A
Cổng xuất nhập (I/O port) chính là phương tiện để vi điều khiển tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theo cách
bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong
Trang 24mỗi cổng có thể khác nhau Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó
Vi điều khiển PIC16F877 có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE
PORTA
PORTA gồm có 6 chân Các chân của PortA, ta lập trình để có thể thực hiện được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ liệu từ ngoại
vi vào vi điều khiển
Việc xuất nhập dữ liệu ở PIC 16F877A khác với họ 8051 Ở tất cả các PORT của PIC 16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc nhập Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải xử lý bằng phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào là chức năng xuất Trong kiến trúc phần cứng của PIC 16F877A, người ta sử dụng thanh ghi TRISA ở địa chỉ 85H để điều khiển chức năng I/O trên Muốn xác lập các chân nào của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA Ngược lại, muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh ghi TRISA Điều này hoàn toàn tương tự đối với các PORT còn lại
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
- Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang Digital
- Ngõ vào điện thế so sánh
- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các nhiệm vụ đếm xung thông qua Timer0
Trang 25ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC
Các thanh ghi liên quan đến PORTB bao gồm:
PORTB (địa chỉ 06h, 106h) : chứa giá trị các pin trong PORTB TRISB (địa chỉ 86h, 186h) : điều khiển xuất nhập
OPTION_REG (địa chỉ 81h, 181h) : điều khiển ngắt ngoại vi và bộ timer0
PORTC
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên
Ngoài ra PORTC còn có các chức năng quan trọng sau :
- Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng
- Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty cycle:
sử dụng trong điều khiển tốc độ và vị trí của động cơ v.v…
- Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART
Các thanh ghi điều khiển liên quan đến PORTC:
PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC
TRISC (địa chỉ 87h) : điều khiển xuất nhập
PORTD
PORTD có 8 chân Thanh ghi TRISD điều khiển 2 chức năng input và output của PORTD tương tự như trên PORTD cũng là cổng xuất dữ liệu của chuẩn giao tiếp song song PSP (Parallel Slave Port)
Các thanh ghi liên quan đến PORTD bao gồm:
Thanh ghi PORTD : chứa các giá trị Pin trong PORTD
Thanh ghi TRISD : điều khiển xuất nhập
PORTE
Trang 26PORTE có 3 chân Thanh ghi điều khiển xuất nhập tương ứng là TRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chân điều khiển của chuẩn giao tiếp PSP
Các thanh ghi liên quan đến PORTE bao gồm:
- PORTE : chứa giá trị các chân trong PORTE
- TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP
- ADCON1 : thanh ghi điều khiển khối ADC
2.2.2 Tìm hiểu về vi điều khiển PIC 16F877A
1 Cấu trúc phần cứng của PIC 16F877A
PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General Instrument đặt tên cho con vi điều khiển đầu tiên của họ Hãng Micrchip tiếp tục phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác nhau
PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu hết tất cả các ứng dụng thực tế Đây là dòng PIC khá dễ cho người mới làm quen với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình
Cấu trúc tổng quát của PIC 16F877A như sau :
- 8K Flash Rom
- 368 bytes Ram
- 256 bytes EFPROM
- 5 port vào ra với tín hiệu điều khiển độc lập
- 2 bộ định thời Timer0 và Timer2 8 bit
- 1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng lượng với nguồn xung clock ngoài
- 2 bộ Capture/ Compare/ PWM
- 1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào
Trang 27Hình 2 3 Sơ đồ khối của PIC 16F877A
2 Tổ chức bộ nhớ PIC 16F877A
Bộ nhớ chương trình:
Trang 28Hình 2 4 Bộ nhớ chương trình PIC 16F877A
Bộ nhớ chương trình của vi điều khiển PIC 16F877A là bộ nhớ Flash, dung lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên
Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương trình PC có dung lượng 13 bit
Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h Khi có ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h
Trang 29Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu, 128 byte còn lại thuộc bank 2 là cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được chứa dữ liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC 16F877A được tổ chức theo cách khác
Mỗi bank của bộ nhớ dữ liệu PIC 16F877A bao gồm cả các thanh ghi có chức năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi Vùng ô nhớ các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu trong quá trình viết chương trình Tất cả các biến dữ liệu nên được khai báo chứa trong vùng địa chỉ này
Trong cấu trúc bộ nhớ dữ liệu của PIC 16F877A, các thanh ghi SFR nào mà
thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank để thuận tiện trong việc truy xuất Sở dĩ như vậy là vì, để truy xuất một thanh ghi nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi đó, việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều trong quá trình truy xuất, làm giảm lệnh chương trình
Trang 31do đó để truy xuất dữ liệu các thanh ghi này ta phải chuyển đến bank0 Ngoài ra một vài các thanh ghi thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở Bank0
- Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh Các thanh ghi dùng chung
có địa chỉ từ A0h đến Efh Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE cũng được chứa ở Bank1
- Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên
Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR có mặt trên cả 4 bank Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của PIC 16F877A là phải khai báo đúng bank chứa thanh ghi đó Nếu thanh ghi nào mà 4 bank đều chứa thì không cần phải chuyển bank
3 Một vài thanh ghi chức năng đặc biết SFR
Thanh ghi STATUS: thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ 03h,
83h, 103h và 183h : 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
Thanh ghi OPTION_REG : có mặt ở bank2 và bank3 có địa chỉ 81h và 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
Thanh ghi INTCON : có mặt ở cả 4 bank ở địa chỉ 0Bh,8Bh,10Bh,18Bh Thanh
ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit báo tràn timer0, ngắt ngoại vi RB0/INT và ngắt khi thay đổi trạng thái tại các chân của PORTB
Thanh ghi PIE1 :địa chỉ 8Ch, chứa các bit điều khiển chi tiết các ngắt của các khối
Trang 32Thanh ghi PIR1 : địa chỉ 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
Thanh ghi PIE2 : địa chỉ 8Dh, chứa các bit điều khiển các ngắt của các khối chức
năng CCP, SSP bú, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM
Thanh ghi PIR2: địa chỉ 0Dh, 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 PIE2
Thanh ghi PCON : địa chỉ 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
4 Thanh ghi W (word)
Đây là thanh ghi rất đặc biệt trong PIC 16F877A Nó có vai trò tương tự như thanh ghi Accummulator của 8051, tuy nhiên tầm ảnh hưởng của nó rộng hơn rất nhiều
Tập lệnh của PIC 16F877A có tất cả 35 lệnh thì số lệnh có sự “góp mặt” của thanh ghi W là 23 lệnh Hầu hết các lệnh của PIC 16F877A đều liên quan đến thanh ghi W Ví
Trang 3314 bit Do vậy ta không thể nào tiến hành một phép tính toàn trực tiếp nào giữa 2 thanh ghi với nhau hoặc giữa một thanh ghi với một hằng số k Hầu hết các lệnh của PIC
16F877A đều phải liên quan đến thanh ghi W cũng vì lý do đó Khi thực hiện một dòng lệnh nào đó, thì PIC sẽ địa chỉ của thanh ghi W trong mã lệnh ( vì được hiểu ngầm) Có thể xem thanh ghi W là thanh ghi trung gian trong quá trình viết chýõng trình cho PIC 16F877A
5 Các vấn đề về Timer
PIC 16F877A có tất cả 3 timer : timer0 (8 bit), timer1 (16 bit) và timer2 (8 bit)
Timer0:
Hình 2 6 Sơ đồ khối của Timer0 của PIC 16F877A
Cũng giống như 8051, Timer0 của PIC 16F877A cũng có 2 chức năng : định thời
và đếm xung 2 chức năng trên có thể được lựa chọn thông qua bit số 5 TOCS của thanh
Trang 34trong thanh ghi OPTION Nó có thể có giá trị 1:2, 1:4, 1:8, 1:16, 1:32, 1:64, 1:128, 1:256 tùy thuộc vào việc thiết lập các giá trị 0 ,1 cho 3 bit trên
Bộ tiền định có giá trị 1:2 chẳng hạn ,có nghĩa là : bình thường không sử dụng bộ tiền định của Timer0 (đồng nghĩa với tiền định tỉ lệ 1:1) thì cứ khi có tác động của 1 xung clock thì timer0 sẽ tăng thêm một đơn vị Nếu sử dụng bộ tiền định 1:4 thì phải mất 4 xung clock thì timer0 mới tăng thêm một đơn vị Vô hình chung, giá trị của timer0 (8 bit) lúc này không còn là 255 nữa mà là 255*4=1020
Các thanh ghi liên quan đến Timer0 bao gồm :
- TMR0 : chứa giá trị đếm của Timer0
- INTCON : cho phép ngắt hoạt động
- OPTION_REG : điều khiển prescaler
Timer1:
Hình 2 7 Sơ đồ khối của Timer1 của PIC 16F877A
Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi 8 bit TMR1H:TMR1L Cờ ngắt của Timer1 là bit TMR1IF, bit điều khiển của Timer1 là
TRM1IE
Cặp thanh ghi của TMR1 sẽ tăng từ 0000h lên đến FFFFh rồi sau đó tràn về
Trang 35- Chế độ đếm đồng bộ : trong chế độ này, giá trị của timer1 sẽ tăng khi có xung cạnh lênh vào chân T1OSI/RC1 Xung clock ngoại sẽ được đồng bộ với xung clock nội, hoạt động đồng bộ được thực hiện ngay sau bộ tiền
định tỉ lệ xung (prescaler)
- Chế độ đếm bất đồng bộ :chế độ này xảy ra khi bit T1SYNC được set Bộ định thời sẽ tiếp tục đếm trong suốt quá trình ngủ của vi điều khiển và có khả năng tạo một ngắt khi bộ định thời tràng và làm cho Vi điều khiển thoát
khỏi trạng thái ngủ
Timer2 :
Đây là bộ định thời 8 bit bao gồm một bộ tiền định (prescaler), một bộ hậu định Postscaler và một thanh ghi chu kỳ viết tắt là PR2 Việc kết hợp timer2 với 2 bộ định tỉ lệ cho phép nó hoạt động như một bộ đinh thời 16 bit Module timer2 cung cấp thời gian hoạt động cho chế độ điều biến xung PWM nếu module CCP được chọn
Hình 2 8 Sơ đồ khối của Timer2 của PIC 16F877A
6 Ngắt (INTERRUPT)
PIC 16F877A có đến 15 nguồn tạo ra hoạt động ngắt và đượ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/INT0 và TMR0 nằm trong thanh ghi INTCON,