Giới thiệu chung về vi điều khiển Hiện nay có nhiều họ vi điều khiển để lựa chọn như: 8051, Motola68HC, AVR, ARM, Pic… có lẽ trước đây 8051 là dòng mà chúng ta được biết nhiều nhất trong
Trang 1MỤC LỤC
DANH SÁCH KÝ HIỆU VÀ CHỮ VIẾT TẮT
DANH SÁCH HÌNH VẼ
DANH SÁCH BẢNG
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 18F4520 2
1.1 Giới thiệu chung về vi điều khiển 2
1.2 Đặc điểm của vi điều khiển Pic18f4520 2
1.3 Sơ đồ chân và sơ đồ nguyên lý của vi điều khiển Pic18f4520 3
1.4 Tổ chức bộ nhớ: 7
1.5 Ngôn ngữ lập trình và trình dịch: 11
1.6 Các định danh phần cứng: 14
1.7 Các Hàm: 15
1.8 Kết nối ngoại vi: 18
CHƯƠNG 2: GIỚI THIỆU MÁY ẤP TRỨNG 23
2.1 Giới thiệu chung về máy ấp trứng 23
2.1.1 Máy ấp trứng là gì ? 23
2.1.2 Một số phương pháp ấp trứng 23
2.2 Một số máy ấp trứng hiện nay 25
2.2.1 Máy ấp trứng13200 trứng [K100 – 2XE – LINs] 25
2.2.2 Máy ấp trứng 6600 trứng [K100 – 1XE – LINs] 26
2.2.3 Máy ấp trứng Alpha ™ – H5: 27
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG MÁY ẤP TRỨNG 29
3.1 Đặt vấn đề 29
3.2 Yêu cầu của hệ thống khi hoạt động 29
3.2.1 Nhiệt độ: 29
3.2.2 Độ ẩm: 29
3.2.3 Đảo trứng: 30
3.3 Các linh kiện sử dụng trong mạch 30
Trang 23.3.1 Vi điều khiển Pic 18f4520 30
3.3.2 Điện trở 31
3.3.3 Tụ điện 31
3.3.4 Biến trở 32
3.3.5 LED ( Light Emitting Diode ) 33
3.3.6 DS18B20 34
3.3.7 DHT11 36
3.3.8 Thạch anh 37
3.3.9 Diode 1N4007 38
3.3.10 Transistor A1015 ( PNP) 39
3.3.11 Nút nhấn 40
3.3.12 Relay 5V 40
3.3.13 Màn hình hiển thị LCD (Liquid Crystal Display) 41
3.3.14 Header 2 51
3.3.15 Jack DC 51
3.4 Thiết kế và thi công mạch 51
3.4.1 Giới thiệu về phần mềm thiết kế mạch điện tử Altium Designer 51
3.4.2 Sơ đồ khối mạch ấp trứng 53
3.4.3 Chức năng các khối trong mạch 53
3.4.4 Sơ đồ nguyên lý tổng hợp 57
3.4.5 Sơ đồ mạch in 58
3.4.6 Lưu đồ thuật toán: 60
3.4.7 Phần mềm lập trình vi điều khiển MPLAP 62
3.5 Ưu điểm, nhược điểm của đề tài 62
3.6 Hướng phát triển của đề tài 63
KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 1
PHỤ LỤC 1
Trang 3DANH SÁCH KÝ HIỆU VÀ CHỮ VIẾT TẮT
nhớ EEPROM Electrically Erasable
Programmable ROM
Bộ nhớ có thể ghi/đọc bằng điện
FGPA Field-Programmable Gate Array Mạch tích hợp
đặc biệt
Trang 4DANH SÁCH HÌNH VẼ
Hình 1.1: Sơ đồ nguyên lý Pic18f4520 3
Hình 1.2: Sơ đồ chân Pic18F4520 4
Hình 2.1: Máy ấp trứng 13200 trứng [ K100 – 2XE – LINs] 25
Hình 2.2: Máy ấp trứng 6600 trứng [K100-1XE-LINs] 26
Hình 2.3: Máy ấp trứng Alpha ™ – H5 27
Hình 3.1: Điện trở 31
Hình 3.2: Tụ điện 32
Hình 3.3: Biến trở 33
Hình 3.4: LED 33
Hình 3.5: DS18B20 và Sơ đồ chân 35
Hình 3.6: C ảm biến DHT11 36
Hình 3.7: Sơ đồ kết nối với vi điều khiển 36
Hình 3.8: Thạch anh dao động 38
Hình 3.9: Diode 1N4007 39
Hình 3.10: Transistor A1015 39
Hình 3.11: Nút nhấn 40
Hình 3.12: Relay 5VDC 40
Hình 3.13: Sơ đồ chân Relay 5VDC 41
Hình 3.14: Màn hình LCD 42
Hình 3.15: Bộ nhớ DDRAM 44
Hình 3.16: Chân điều khiển RS 47
Hình 3.17: Header 2 chân 51
Hình 3.18: Jack DC 51
Hình 3.19: Giao diện phần mềm Altium Designer 52
Hình 3.20: Sơ đồ khối 53
Hình 3.21: Khối mạch nạp 54
Hình 3.22: Khối Reset 54
Hình 3.23: Khối thạch anh dao động 54
Trang 5Hình 3.24: Khối nguồn 55
Hình 3.25: Khối cảm biến độ ẩm 55
Hình 3.26: Khối cảm biến nhiệt độ 56
Hình 3.27: Khối màn hình hiển thị LCD 56
Hình 3.28: Khối cơ cấu chấp hành 57
Hình 3.29: Sơ đồ nguyên lý mạch tổng hợp 57
Hình 3.30: Sơ đồ mạch in khối vi điều khiển 58
Hình 3.31: Sơ đồ mạch in 3D lớp Top khối điều khiển 59
Hình 3.32: Sơ đồ mạch in 3D lớp Bottom khối điều khiển 59
Hình 3.33: Giao diện phần mềm lập trình MPLAP 62
Trang 6DANH SÁCH BẢNG
Bảng 3.1: Sơ đồ chân của LCD 16x2 43 Bảng 3.2: Vùng nhớ CGROM 46 Bảng 3.3: Bảng các tập lệnh của LCD 16x2 48
Trang 7LỜI MỞ ĐẦU
Hiện tại vi điều khiển đã trở nên khá quen thuộc trong đại đa số ngành
kỹ thuật và cả ngành dân dụng Bộ vi điều khiển đã có khả năng xử lý các hoạt động phức tạp với một con chip nhỏ, nó đã thay thế cho các bộ điều khiển phức tạp và nó đã làm cho việc điều khiển trở nên đơn giản hơn
Vi điều khiển không chỉ đóng vai trò trong kỹ thuật điều khiển mà nó còn có vai trò trong phát triển thông tin Từ các lý do đó mà sinh viên điện tử chúng em hết sức quan tâm đến vi điều khiển và cố gắng vận dụng nó trong cuộc sống
Có nhiều bộ điều khiển tuy thiết kế với vi điều khiển nhìn thì đơn giản nhưng để vận hành nó lại là một vấn đề Các công việc xử lý chính vẫn còn phụ thuộc nhiều vào con người và cái đó chính là chương trình hay phần mềm Vi điều khiển sẽ không hoạt động được nếu không có sự tham gia của con người Vi điều khiển sẽ gồm hai phần là phần cứng và phần mềm
Với kiến thức được học từ trường về vi điều khiển, em đã chọn đề tài:
“Thiết kế mạch kiểm soát và điều khiển nhiệt
độ và độ ẩm cho lò ấp trứng gà”.
Và sau đây em xin trình bày toàn bộ nội dung về đề tài này do cô Ths Đào Thị Phương Mai – Giảng viên Khoa Điện Tử – Trường Đại Học Công Nghiệp Hà Nội đã hướng dẫn em trong thời gian vừa qua Tuy đề tài em đã hoàn thành nhưng vẫn không thể tránh những thiếu sót cho nên em mong các quý thầy cô đóng góp ý kiến thêm để giúp em hoàn thiện hơn ạ!
Em xin chân thành cám ơn !
Sinh viên thực hiện
Lê Minh Đức
Trang 8CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC 18F4520 1.1 Giới thiệu chung về vi điều khiển
Hiện nay có nhiều họ vi điều khiển để lựa chọn như: 8051, Motola68HC, AVR, ARM, Pic… có lẽ trước đây 8051 là dòng mà chúng ta được biết nhiều nhất trong các trường đại học nhưng chúng ta lại chọn dòng vi điều khiển Pic
để thực hiện ứng dụng và phát triển là bởi nguyên nhân sau:
Do vi điều khiển Pic phát triển và đang được sử dụng phổ biến ở nước ta cho nên việc tìm mua và trao đổi kinh nghiệm đã trở nên dễ dàng hơn
Giá thành của các dòng Pic là không quá đắt
Các dòng Pic có thể hoạt động độc lập với đầy đủ các tính năng
Là sự bổ sung cải tiến hợp lý về kiến thức cũng như ứng dụng đối với họ
vi điều khiển 8051
Cùng với sự hỗ trợ của nhà sản xuất về các công cụ lập trình, trình biên dịch, mạch nạp Pic từ đơn giản cho tới phức tạp Và các tính năng đa dạng của nhiều dòng Pic đang không ngừng được phát triển
Có các bộ phận ngoại vi tích hợp ngay trên chip như: Cổng vào/ra số, bộ biến đổi ADC, bộ nhớ EEFROM, bộ định thời, bộ điều chế độ rộng xung (PWM)…vv…
Bộ nhớ chương trình, bộ nhớ dữ liệu đã tích hợp ngay trên chip
Và Pic18F4520 còn nằm trong dòng PIC18F2420/2520/4420/4520 của nhà sản xuất Microchip cùng với đặc điểm 28/40/44 -Pin Enhanced Flash Microcontrollers with 10- Bit A/D and nanoWatt Technology Với dòng này
đã có nhiều cải tiến về tính năng so các dòng Pic trước đó như:
Bộ nhớ chương trình được tăng lên (16Kbytes cho PIC18F2420/4420 devices và 32Kbytes cho PIC18F2520/4520 devices)
Tăng cường thêm cho modul CCP
Được sử dụng công nghệ nanoWatl
1.2 Đặc điểm của vi điều khiển Pic18f4520
Dòng Pic18F4520 có các đặc điểm cơ bản sau:
Trang 9- Sử dụng công nghệ nanoWatl: Cho hiệu năng cao, tiêu thụ ít năng lượng
Kiến trúc RISC:
- 75 mệnh lệnh, đa số các lệnh thực hiện trong bốn chu kì xung
- Tốc độ đạt tới 10 triệu lệnh trong 1s với tần số 40Mhz
- Có bộ nhân cứng
Các bộ nhớ chương trình và dữ liệu cố định:
- 32 Kbytes bộ nhớ flash có thể tự lập trình trong hệ thống và thực hiện được 100.000 lần ghi/xóa
- 256 bytes EEPROM có thể thực hiện 1.000.000 lần ghi/xóa
- 256 bytes SRAM
Những ngoại vi tiêu biểu:
- Có 4 bộ định thời/bộ đếm 8 bit cùng với các chế độ tỉ lệ đặt trước và chế độ so sánh
- Bộ đếm thời gian thực và bộ tạo dao động riêng
- Có 2 kênh PWM và 13 kênh ADC 10 bit
- Bộ truyền tin nối tiếp USART khả trình với bộ so sánh tương tự
Các đặc điểm đặc biệt khác:
- Power on Reset và dò Brown out khả trình
- Bộ tạo dao động RC đã được định cỡ sẵn bên trong
- Có các nguồn ngắt bên trong và cả bên ngoài
1.3 Sơ đồ chân và sơ đồ nguyên lý của vi điều khiển Pic18f4520
Sơ đồ nguyên lý:
Hình 1.1.Sơ đồ nguyên lý Pic18f4520
Trang 10 Sơ đồ chân và chức năng các chân
Hình 1.2.Sơ đồ chân Pic18F4520
Cấu tạo chân loại 40 chân:
- Chân 1( MCLR /VPP/RE3): MCLR là đầu vào Master Clear (reset) hoạt động ở mức thấp dể reset toàn bộ thiết bị
- VPP dùng để thay đổi điện áp đầu vào
- RE3 đầu vào số
Các chân thuộc cổng vào ra Port A
- Chân 2 (RA0/AN0):với RA0 là cổng vào ra số, AN0 là đầu vào tương tự Input0
- Chân 3 (RA1/AN1): RA1 là cổng vào ra số, AN1 là đầu vào tương tự Input1
- Chân 4 (RA2/AN2/VREF+): RA2 là cổng vào ra số, AN2 là đầu vào tương tự Input2 VREF+ đầu vào tương tự chuyển đổi A/D điện áp tham chiếu(mức thấp), còn CVREF là đầu ra tương tự để so sánh điện áp chuẩn
Trang 11- Chân 5 (RA3/AN3/VREF-/CVREF ): RA3 là cổng vào ra số, AN3 là đầu vào tương tự Input3 VREF- đầu vào tương tự chuyển đổi A/D điện áp tham chiếu(mức cao)
- Chân 6 (RA4/T0CKI/C1OUT): RA4 là đầu vào ra số,T0CKI dầu vào xung bên ngoài của Timer0, C1OUT là đầu ra bộ so sánh 1
- Chân 7 (RA5/AN4/ SS /HLVDIN/C2OUT): trong đó RA5 là cổng vào ra só, AN4 là đầu vào tương tự Input 4, SS chọn đầu vào phụ thuộc SPI, HLVDIN đầu vào tương tự để dò điện áp, C2OUT là đầu ra bộ
so sánh
- Chân 13 (OSC1/CLKI/RA7): với OSC1 là đầu vào bộ dao động thạch anh hay đầu vào nguồn xung từ bên ngoài, khi ta nối dây với các thiết bị tương tự thì đầu vào này dạng ST( Schmitt Trigger input with CMOS levels) CLKI là đầu vào CMOS cho nguồn xung bên ngoài và luôn được ghép nối với chân OSC1 Còn RA7 là chân vào ra sử dụng chung
- Chân 14 (OSC2/CLKO/RA6): OSC2 là đầu ra bộ dao động thạch anh được nối với thạch anh hoặc bộ công hưởng dể lựa chọn dạng bộ dao động thạch anh CLK0 có tần số bằng ¼ tần số của OSC1 độ rộng chu kì lệnh, RA6 là đầu vào ra chung
Các chân cổng vào ra hai chiều Port B:
- Chân 33 (RB0/INT0/FLT0/AN12): Với RB0 là cổng vào ra số, INT0 là đầu vào ngắt ngoài Interrup 0, FLT0 là đầu vào báo lỗi PWM được tăng cường CCP1, AN12 đầu vào tương tự Input 12
- Chân 34 (RB1/INT1/AN10): RB1 là đầu vào ra số, INT1 đầu vào ngắt ngoài Interrup1, AN10 đầu tương tự Input 10
- Chân 35 (RB2/INT2/AN8): RB2 là đầu vào ra số, INT2 đầu vào ngắt ngoài Interrup2, AN8 đầu tương tự Input 8
- Chân 36 (RB3/AN9/ccp2): RB3 là đầu vào ra số, AN9 đầu tương
tự Input 9, CCP2 ( Capture 2 input/Compare 2 output/PWM2 output)
- Chân 37 (RB4/KBI0/AN11): RB4 là đầu vào ra số, KBI0 thay đổi mở ngắt, AN11 đầu tương tự Input 9
- Chân 38 (RB5/KBI1/PGM): RB5 đầu vào ra số, KBI1 thay đổi
mở ngắt, PGM cho phép có thể lập trình ISCPTM ở điện áp thấp
Trang 12- Chân 39 (RB6/KBI2/PGC): RB6 là đầu vào ra số, KBI2 thay đổi
mở ngắt, PGC chân dùng trong mạch chạy và xung lập trình ICSP
- Chân 40 (RB7/KBI3/PGD): RB7 đầu vào ra số, KBI3 thay đổi
mở ngắt, PGD chân dùng trong mạch chạy và xung lập trình ICSP
- Chân 17 (RC2/CCP1/P1A): RC2 lầ đầu vào ra số, CCP1
(Capture1 input/Compare 1 output/PWM1 output), P1A đầu ra tăng cường CCP1
- Chân 18 (RC3/SCK/SCL): RC3 là đầu vào ra số, SCK đầu vào ra đưa chuỗi xung vào ra cho SPI lựa chọn, SCL đầu vào ra đưa chuỗi xung vào ra cho I2 CTM lựa chọn
- Chân 23 (RC4/SDI/SDA): RC4 là đầu vào ra số, SDI đầu vào dữ liệu API, SDA đầu vào ra dữ liệu cho I2 C
- Chân 24 (RC5/SDO): RC5 đầu vào ra số, SDO đầu ra dữ liệu SPI
- Chân 25 (RC6/TX/CK): RC6 đầu vào ra số, TX đầu ra chuyển đổi dị bộ EUSARRT, CK dầu vào ra xung đồng bộ EUSART
- Chân 26 (RC7/RX/DT): RC7 đầu vào ra số, RX đầu vào nhận dị
bộ EUSART, DT đầu vào ra dữ liệu đồng bộ EUSART
Trang 13- Chân 21 (RD2/PSP2): RD2đầu vào ra số, PSP2 cổng dữ liệu song song phụ thuộc
- Chân 22 (RD3/PSP3): RD3 đầu vào ra số, PSP3 cổng dữ liệu song song phụ thuộc
- Chân 27 (RD4/PSP4): RD4 đầu vào ra số, PSP4 cổng dữ liệu song song phụ thuộc
- Chân 28 (RD5/PSP5/P1B): RD5 đầu vào ra số, PSP5 cổng dữ liệu song song phụ thuộc, P1B đầu ra được tăng cường CCP1
- Chân 29 (RD6/PSP6/P1C): RD6 đầu vào ra số, PSP6 cổng dữ liệu song song phụ thuộc, P1C đầu ra được tăng cường CCP1
- Chân 30 (RD7/PSP7/P1D): RD7 đầu vào ra số, PSP7 cổng dữ liệu song song phụ thuộc, P1D đầu ra được tăng cường CCP1
- Chân 12,31 (VSS): nối đất chuẩn cho I/O và logic
- Chân 11,32 (VDD): cungcấp nguồn dương cho I/O và logic
- Loại 44 chân có thêm một số chân phụ khác khi cần thiết ta có thể dễ dàng tra trong DataSheet Cụ thể hơn chúng ta có thể thấy qua sơ đồ khối của Pic18F4420/4520 trong tài liệu do microchip cung cấp sẽ có hoàn toàn đầy đủ thông tin và đặc điểm cấu tạo
1.4 Tổ chức bộ nhớ:
- Bộ nhớ chương trình (Program Memory)
- Bộ nhớ dữ liệu RAM (Data RAM)
- Bộ nhớ dữ liệu EEPROM (Data EEPROM)
Tổ chức bộ nhớ chương trình (Program Memory Organization):
Trang 14Dòng vi điều khiển Pic18xxxx là thiết bị với 21 bit bộ đếm chương trình
PC (Program counter) có thể quản lý 2Mbyte bộ nhớ chương trình Với
Pic18F4520 có 32Kbytes bộ nhớ Flash có thể lưu trữ lên tới 16,384 câu lệnh đơn, dòng Pic này có hai vector ngắt: Reset vector có địa chỉ 0000h và
Interrupt vector ở địa chỉ 0008h và 0018h
Bộ đếm chương trình – PC (Program Counter):
PC có độ rộng 21 bits phân chia trên 3 thanh ghi 8 bits: thanh ghi PCL, thanh ghi PCH, thanh ghi PCU Dữ liệu bytes địa chỉ của PC được lưu trong
bộ nhớ chương trình Khi sử dung cần lưu ý tới cấu trúc lệnh có làm thay đổi giá trị PC hay không
Khôi phục dịa chỉ ngăn xếp (RETURN ADDRESS STACK):
Ở đây ta có thể cho phép lưu trữ gọi 31 chương trình và các ngắt xảy ra Trong thực thi ngăn xếp cấu trúc lệnh CALL và RCALL là được quan tâm
Sơ đồ ngăn xếp dạng:
Trong vùng ngăn xếp này cần quan tâm tới
- Top-of-Stack Access
- Return Stack Pointer (STKPTR)
- Stack Full and Underflow Resets
Khi chúng ta lập trình cần thiết chính xác khi gọi chương trình qua lệnh Call và Rcall nên khi tác động cần quan tâm sự thay đổi các ngăn xếp cũng như quản lý con trỏ (Pointer) Ta có thể dùng các lệnh Push và Pop để điều khiển con trỏ
Trang 15Một quan tâm khác nữa đó là Stack Pointer Register (STKPTR) - thanh ghi con trỏ ngăn xếp:
- Bit 7 (STKFUL): bit cờ báo ngăn xếp đầy
Giá tri 1 có nghĩa là ngăn xếp đã đầy hoặc tràn
Giá trị 0 thì ngăn xếp vẫn chưa bị đầy hoặc tràn
- Bit 6 (STKUNF): bit cờ báo tràn dưới
Giá trị 1: xảy ra tràn dưới
Giá trị 0: không có tràn dưới
- Bit 5 (Unimplementad): mang giá trị “0”
- Bit 4-0 (SP:Các bit xác định con trỏ ngăn xếp Chúng ta có thể xóa bit 6
và bit 7 nhờ phần mềm hoạc bởi một POR
FAST REGISTER STACK
Nhóm thanh ghi này gồm có các thanh ghi: Status, WREG, BSR giúp việc khôi phục nhanh lựu chọn cho các ngắt
Chu kì lệnh Pic 18Fxxx:
Bất kì một vi điều khiển Pic nào khi nhận một xung từ bên trong hay bên ngoài đều xử lý theo một chu kì gồm 4 bước Họ 18Fxxxx cũng vậy chu kì lệnh được xử lý song song (Pipelining) qua 4 bước Q1,Q2,Q3,Q4:
Clock/Instruction Cycle
Trang 16Instruction Pipeline Flow
Instruction In Program Memory
Tổ chức dữ liệu bộ nhớ(Data Memory Organization)
Pic18Fxxxx là họ Statis Ram mỗi thanh ghi bộ nhớ dữ liệu có 12 bit địa chỉ, cho phép truy nhập tới 4096 bytes dữ liệu bộ nhớ Không gian bộ nhớ chia làm 16 bank gồm 256 byte mỗi bank Pic18F4520 như sơ đồ phía sau Bộ nhớ dữ liệu bao gồm: thanh ghi chức năng đặc biệt (SFRs), thanh ghi mục đích chung (GPRs) Thanh ghi SFR dùng để điều khiển trạng thái và chức năng thiết bị ngoại vi, trong khi thanh ghi GPR dùng để lưu trữ hoặc làm vùng nhớ tạm thời đang hoạt động của các ứng dụng
Theo cấu trúc lệnh và kiến trúc dòng Pic18Fxxxx cho phép các bank hoạt động đồng thời Toàn bộ bộ nhớ dữ liệu có thể cho phép truy nhập có hướng, vô hướng hay địa chỉ có chỉ số, đặc điểm chung của các thanh ghi là cho phép xử lý trong một chu kì đơn Pic 18Fxxxx cung cấp một AccesBank gồm 256 byte bộ nhớ cho phép truy cập nhanh tới SFRs và phần Bank0 của GPR nếu không sử dụng BSR
Cổng vào ra (I/O Port)
Trang 17Như đã tìm hiểu cấu trúc chân Pic18F4520 loại PDIP chúng ta biết có tất cả 5 cổng vào ra PortA, PortB, Port C, PortD, PortE Việc sử dụng lựa chọn các cổng vào ra này phụ thuộc nhiều vào các ứng dụng và thiết bị ngoại
vi Mỗi cổng này đều gồm ba thanh ghi hoạt động chính đó là:
- Thanh ghi TRIS (thanh ghi dữ liệu có hướng)
- Thanhghi của chính các cổng (PORT register)
- Thanh ghi LAT (thanh ghi chốt dữ liệu)
PORTA, TRISA and LATA Registers:
Port A là cổng vào ra hai hướng 8 bit Thanh ghi TRISA dùng điều khiển
dữ liệu có hướng Khi bit TRISA (=1) thì tương ứng các chân Port A là đầu vào, ngược lại (=0) tương ứng các chân Port A là đầu ra Thanh ghi LATA kiểm soát hoạt động đọc viết hiệu chỉnh của Port A Cụ thể chức năng các chân của cổng này đã nói chi tiết ở cấu trúc chân của vi điều khiển
PORTB, TRISB and LATB Registers
PORTC, TRISC and LATC Registers
PORTD, TRISD and LATD Registers
Về cơ bản Port B, PortC, PortD có nguyên tắc hoạt động giống PortA Còn các chức năng cơ bản khác trong sơ đồ chân phần cứng đã giải thích cụ thể Riêng PortD có thêm sự đặc biệt do nó có thể chuyển tiếp thành cổng song song phụ thuộc (PSP)
PORTE, TRISE and LATE Registers:
Port E có độ rộng 4 bit các chân chúng ta đã tìm hiểu ở trên Hoạt động thanh ghi TRISE cũng tươngtự như các thanh ghi có cùng chức năng ở các cổng khác
1.5 Ngôn ngữ lập trình và trình dịch:
//khai báo các thư viện, ví dụ:
#include <P18f4520.h>
#include <delays.h>
//Cấu hình cho vi điều khiển, ví dụ:
#pragma config OSC = HS
Trang 18#pragma config MCLRE = ON
#pragma config WDT = OFF
/*khai báo biến số,hằng số,cấu trúc,chương trình con, ví
dụ:*/
int x;
char m[10];
void high_isr (void);
//viết các chương trình con, ví dụ:
void high_isr (void)
const unsigned int c = 100;
const unsigned char tens[] = { 1, 10, 100, 1000 };
Hằng số trong ROM được định nghĩa bởi từ khoá rom:
unsigned char rom coolant_temp = 0x02 ;
Một mảng các giá trị nằm trong ROM có thể được địng nghĩa như sau:
unsigned char rom anh_so[] =
{
17
0x08,0x08,0x00,0x00,0x00,0x09,0x41,0x80,0xC0,0xFF,0x00,0x0 0,0x13,0x1A,0x26,0x33,0x80,0xFF,0x00,0x00,0x00,0x09,0x41,0 x80,0x66,0x66,0x00,0x00,0x00,0x05,0x4A,0x46,0x40,0x40,0x00
Trang 190 đến 255 -32,768 đến 32,767
0 đến 65,535 -32,768 đến 32,767
0 đến 65,535 -8,388,608 đến 8,388,607
0 đến 16,777,215 -2,147,483,648 đến 2,147,483,647
0 đến 4,294,967,295
Độ dài
32 bits
Khoảng giá trị 2–126 ≈1.17549435e - 38 đến
2128 * (2-2–15 )
≈6.80564693e + 38
Trang 201.6 Các định danh phần cứng:
Các định danh phần cứng là tên của các thanh ghi, các bit chức năng có trên phần cứng của vi điều khiển PIC đã được định nghĩa trong tập tin Pxxx.h Định danh phần cứng của PIC18F4520 chứa trong tệp tin P18f4520.h Một phần của tệp tin này dùng để định nghĩa các bit trong thanh ghi PORTA như sau:
extern volatile near unsigned char PORTA;
extern volatile near union {
#define contact PORTAbits.RA5
//Chân RA5 của PORTA được gán tên
contact
#define LED PORTAbits.RA
//Chân RA4 của PORTA được gán tên LED
.…
if(!contact) LED=1;
//đọc vào, nếu contact (RA5)=0 xuất ra LED (RA4)=1
else LED=0 //và ngược lại
Trang 21Hàm trong thư viện trình dịch
MCC18 cung cấp một số lượng lớn các hàm giúp người lập trình có thể phát triển các ứng dụng một các nhanh nhất Các hàm của MCC18 chia thành
ba nhóm:
- Nhóm các hàm sử dụng cho các tài nguyên ngoại vi của PIC18Fxxx
- Nhóm các hàm sử dụng cho các các phần cứng thông dụng có thể kết nối với PIC18Fxxx
- Nhóm các hàm công dụng chung (ví dụ: các hàm tạo trễ)
Trang 22Các hàm trong thư viện delay.h
Để sử dụng các hàm trong trình dịch, người lập trình cần khai báo thư viện chứa hàm
Ví dụ: Để tạo trễ 1 giây (giả thiết bộ tạo dao động hoạt động ở chế độ
HS, thạch anh sử dụng có tần số 8Mhz) cần khai báo và viết các lệnh sau:
Trang 24Điều khiển hiển thị các ký tự trên LCD thực chất là gửi các mã lệnh tới
bộ điều khiển HD44780, các mã lệnh cơ bản được liệt kê như sau:
Trang 25Ghi chú
DDRAM (Display Data RAM) : Ch ứa dữ liệu cần hiển thị (mã ASCII của các ký tự); địa chỉ của DDRAM tương ứng với vị trí con trỏ trên màn hình
Các bit/byte viết tắt trong mã lệnh:
Trang 26Giản đồ thời gian mô tả quá trình ghi lệnh và ghi dữ liệu vào DDRAM (hiển thị ký tự) như sau:
Căn cứu giản đồ thời gian mô tả quá trình ghi lệnh và ghi dữ liệu, quá
trình ghi một mã lệnh bao gồm các bước sau:
- Đặt các chân RS, R/W ở mức thấp; chân E ở mức cao
- Xuất mã lệnh cần ghi lên bus DB0÷DB7
- Đặt chân E ở mức thấp
Quá trình ghi dữ liệu vào DDRAM (hiển thị ký tự) bao gồm các bước sau:
- Đặt các chân R/W ở mức thấp; chân RS, chân E ở mức cao
Trang 27- Xuất mã ký tự cần hiển thị lên bus DB0÷DB7
- Đặt chân E ở mức thấp
Nguyên tắc hiển thị ký tự trên LCD:
Một chương trình hiển thị ký tự trên LCD sẽ đi theo bốn bước sau:
// Buoc 2: Dat che do hien thi
//(1)dua LCD ve che do "bat dau"
Lcd_Write_Command(0x03);
// (2)Cau hinh LCD:
// - DL=1: 8-bit du lieu
// - N=1: LCD hien thi tren 2 dong
// - F=0: Font chữ gom 5x7 diem (dot)
Lcd_Write_Command(0x38);
// (3)Thiet lap che do hien thi:
// - I/D=1: Vi tri con tro tang (hien thi tu trai qua phai)
// - S=0: Khong hien thi dich (cac ky tu khong dich chuyen)
Lcd_Write_Command(0x06);
// (4)Bat/Tat hien thi:
// - D=1: Bat hien thi (hien thi lien tuc-khong nhap nhay)
// - B=0: Con tro khong nhap nhay
// - C=0: Tat con tro (khong hien thi con tro tren LCD)
Lcd_Write_Command(0x0c);
//Buoc 3: Dat vi tri hien thi
Trang 28Lcd_Write_Command(0XC0); // dau dong thu 2
//Buoc 4: Hien thi ky tu
Lcd_Write_Data(0x41);
// hien thi A // Lcd_Write_Data: Hàm ghi dữ liệu vào
DDRAM
Chú ý:
- Các bước 3, 4 có thể lặp lại nhiều lần nếu cần hiển thị nhiều ký tự
- Khi thực hiện ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần lưu ý đến thời gian thi hành lệnh của bộ điều khiển HD44780 Ví dụ sau khi xoá màn hình thì tối thiểu 1.64 mS sau mới ra lệnh khác
- Chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ
là đầu dòng thứ nhất
Trang 29CHƯƠNG 2: GIỚI THIỆU MÁY ẤP TRỨNG
2.1 Giới thiệu chung về máy ấp trứng
2.1.1 Máy ấp trứng là gì ?
Máy ấp trứng là thiết bị áp dụng kỹ thuật điện tử để tạo ra một môi
trường có đầy đủ các yếu tố (nhiệt độ, độ ẩm và đảo trứng) phù hợp cho phôi của trứng phát triển một cách tốt nhất giống như khi ấp trứng tự nhiên Cách
sử dụng máy ấp trứng sẽ cho tỉ lệ nở thành công cao hơn, nhanh hơn so với các cách thủ công như ấp trứng tự nhiên, dùng đèn dầu tạo nhiệt trong buồng
ấp hay dùng đèn điện tạo nhiệt để ấp, từ đó đảm bảo chất lượng con giống và mang lại hiệu quả kinh doanh cao hơn
2.1.2 Một số phương pháp ấp trứng
Phương pháp thủ công
Phương pháp ấp thủ công là phương pháp ấp trứng bằng lò ấp sử dụng các nguyên vật liệu và năng lượng sẵn có, không phải ấp bằng máy công nghiệp Với phương pháp này thì việc điều chỉnh chế độ nhiệt độ, ẩm độ qua các giai đoạn ấp hoàn toàn nhờ vào kinh nghiệm của nguời chủ ấp Ví dụ: ấp trứng bằng thóc, trấu được rang nóng hoặc bằng đèn dầu, bằng nước nóng… Phương pháp này chủ yếu sử dụng để ấp trứng gà, trứng ngan, trứng chim cút…
Máy ấp được làm bằng bằng tre nứa được đan lại, trấu, chăn, màn (để ủ trứng)… đây toàn là những thứ rẻ tiền sẵn có ở đại đa số các hộ gia đình
Nơi để lắp đặt máy đơn giản, có thể sử dụng trong nhà bếp, nhà ở, nhà kho…
Quy mô ấp trứng đa dạng từ ít đến nhiều, không bị phụ thuộc vào quy
mô như máy ấp, rất thuận tiện… do đó trứng luôn được cho vào ấp, không cần bảo quản dài ngày
Dễ vận hành
Còn chưa có khả năng tự động được
Trang 30 Khả năng nở của trứng còn thấp do phụ thuộc vào kinh nghiệm của nhân công
Còn phụ thuộc nhiều vào điều kiện nhiệt độ, ẩm độ môi trường
Phải mất nhiều giai đoạn xử lý nhiệt, tốn công và tốn thời gian
Tỷ lệ nở không cao và con non khi mới nở 1 ngày đạt loại 1 (khoẻ mạnh, không bị khuyết tật) khá thấp, chỉ khoảng 65 – 70%
Quy trình vệ sinh lò ấp và dụng cụ để đựng gia cầm mới nở chưa được đảm bảo, con non dễ bị nhiễm bệnh, tỷ lệ chết nhiều
Cho hiệu quả kinh tế không cao do tỷ lệ nở thấp, công suất một lò ấp không cao
Làm việc liên tục nhiều ngày
Làm việc được ở điện áp 220V
Công suất tiêu thụ thấp, giảm được một lượng lớn nhân công
Có khả năng tự động hóa 1 phần Người sử dụng có thể cài các chế độ
tự động theo một số phần mềm định sẵn
Không có khả năng báo lỗi và hoạt động khi mất điện
Hoạt động trong một một quy mô nhỏ khoảng 1000 trứng
Cần người giám sát khi hệ thống hoạt đông
Phương pháp công nghiệp
Phương pháp này hoàn toàn tự động và thông số được thiết lập một lần và hoạt động suốt trong quá trình ấp cho độ chính xác hiệu quả kinh tế cao hơn
Hệ thống mang tính tự động và ấp được nhiều loại trứng
Trang 31 Hoạt động ổn định cao và mang tính liên tục
Tỷ lệ nở cao có thể đạt đến 98%, con non mới nở khỏe mạnh ít bệnh
Có khả năng phát hiện và xử lý sự cố một cách hoàn toàn tự động
Hệ thống hoạt động ổn định, dễ vận hành
Hoạt động với điện áp phổ thông 220V/50Hz
Không phải phụ thuộc vào điều kiện môi trường bên ngoài
Hệ thống có chi phí đắt
Đa số là phù hợp với quy mô vừa và lớn
2.2 Một số máy ấp trứng hiện nay
2.2.1 Máy ấp trứng13200 trứng [K100 – 2XE – LINs]
Hình 2.1.Máy ấp trứng 13200 trứng [ K100 – 2XE – LINs]
Dòng máy này có cấu hình nổi bật sau:
Công suất khởi động: 1600W
Công suất bình ổn nhiệt: giảm hơn 65% so với công suất khởi tùy vào môi trường
Trọng lượng tiêu chuẩn : 16kg/m3
Trang 32 Hệ số truyền nhiệt ổn định
Điện thế sử dụng: 220VAC / 50 Hz
Có 2 xe đẩy trứng (mỗi xe chứa 6600 trứng)
Có 11 tầng khay trứng mỗi tầng 600 trứng
Động cơ đảo trứng có 2 cái
Khay Tạo ẩm: 1 khay
Có chức năng UV diệt khuẩn
2.2.2 Máy ấp trứng 6600 trứng [K100 – 1XE – LINs]
Hình 2.2.Máy ấp trứng 6600 trứng [K100-1XE-LINs]
Cấu hình máy ấp trứng 6600 như sau:
Công suất khởi động: 860W
Công suất bình ổn nhiệt: giảm hơn 65% so với công suất khởi động
Điện thế sử dụng: 220VAC / 50 Hz
Có một xe đẩy trứng
Trang 33 Cấu hình dòng máy ấp trứng gà 500 trứng Alpha ™ – H5 này:
Công suất khởi động 440W
Trọng lượng là 36kg
Có kích thước: 56 × 58 × 116 cm
Có màn hình cảm ứng 7 inchs
Điện áp sử dụng là 220VAC / 50-60Hz
Trang 34 Thân máy được sản xuất bằng CNC cùng vách cách nhiệt Foam Board Plastic độ dày 20mm
Độ ồn khi hoạt động dưới 70 dB
Có tính năng lọc bụi lông tơ bằng tấm filter từ tính và dễ dàng vệ sinh
Có 5 tầng khay trứng mỗi tầng 100 trứng trên khay
Khay trứng thuộc loại K100 định vị 100 trứng đứng
Còn có thêm các Fan kép 3D Roll, xả nhiệt và độ ẩm thừa tự động, bơm nước tự động, chức năng UV diệt khuẩn
Trang 35CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG MÁY ẤP TRỨNG 3.1 Đặt vấn đề
Máy ấp trứng về cơ bản là một tổ hợp các thiết bị dùng để thay thế chức năng của con mái trong việc ấp nở Các máy ấp trứng được chế tạo để giảm thời gian con mái phải nằm ổ, ấp được số lượng trứng nhiều trong
khoảng thời gian cố định, tỉ lệ trứng nở cao và cho hiệu quả kinh tế cao
Từ nhu cầu ấp trứng ngày càng tăng và lượng con giống chất lượng nên
em chọn đề tài này để giải quyết vấn đề đó Với đề tài này em có thể dùng máy ấp trứng này để ấp các loại trứng gia cầm như gà, vịt, ngan, chim cút,…
Và em đã quyết định dùng máy này tối ưu nhất cho việc ấp trứng gà do nhu cầu về gà đang ngày càng nhiều Máy em thiết kế sẽ cho năng suất ấp 1 chu kỳ khoảng 60 quả và tỷ lệ nở sẽ đạt cao nhất là 90% Máy sẽ gồm một thùng xốp và bên trong sẽ gồm có 1 khay đặt trứng (kèm đảo trứng) cùng với đèn nhiệt, quạt và thêm khay đựng nước để tạo độ ẩm cần thiết
Máy ấp trứng được đưa ra với ưu điểm giảm công sức, hiệu quả cao và tiết kiệm cho người tiêu dùng
3.2 Yêu cầu của hệ thống khi hoạt động
Mạch sau khi thiết kế phải đảm bảo được các yêu cầu sau:
bị sát vỏ và chết ngạt
Trang 36độ, độ ẩm và không khí xung quanh quả trứng Nếu 6 ngày đầu không đảo, phôi dính vào vỏ không thể phát triển và sẽ chết Nếu sau 13 ngày không đảo, túi niệu sẽ không khép kín, lượng abumin không vào được bên trong túi niệu gây ra khả năng chết phôi cao, gà mổ vỏ sẽ không đúng vị trí, phôi bị dị dạng
ở phần mắt, mỏ, đầu…
Dùng mô tơ động cơ xoay chiều để đảo:
Trứng được đảo một góc khoảng 45 độ và đảo 2-3 giờ/lần
Ngưng đảo trứng từ ngày thứ 18 sau khi ấp trứng
Nếu đáp ứng tốt các yêu cầu trên thì máy ấp trứng sẽ cho hiệu suất là tỷ
lệ nở đạt 80 đến 90%
3.3 Các linh kiện sử dụng trong mạch
3.3.1 Vi điều khiển Pic 18f4520
Trang 37Khối vi điều khiển là khối điều khiển trung tâm, sử dụng vi điều khiển Pic 18f4520 dùng để tiếp nhận và xử lý tín hiệu thu được từ các cảm biến, thực hiện các cài đặt đã được lập trình từ trước, và đưa các thông tin đến các
cơ cấu chấp hành: màn hình hiển thị LCD, động cơ, đèn sợi đốt, …
3.3.2 Điện trở
Điện trở là một linh kiện thụ động có tác dụng cản trở dòng và áp Điện trở được sử dụng phổ biến trong các mạch điện tử hiện nay Nó còn là đại lượng đặc trưng cho tính chất cản trở dòng điện của một vật thể dẫn điện
Nó được gọi là tỷ số của hiệu điện thế giữa hai đầu vật thể dẫn điện với cường độ dòng điện
3.3.3 Tụ điện
Tụ điện là linh kiệnđiện tử thụ động được tạo bởi hai bề mặt
dẫn điệnđược ngăn cách bởi một chất được gọi làđiện môi
Khi có sự chênh lệch điệnthế giữa hai bề mặtlà điệnthế xoay chiều, sự tích tụ điệntích bị chậm pha so vớiđiện áp, tạo nên trở kháng của tụ
điệntrong mạch điệnxoay chiều.Tụ điện có đặc điểm là cho dòng điện xoay chiều đi qua và ngăn cản dòng điện một chiều
Hình 3.1: Điện trở
Trang 38Trong đề tài này ta sẽ dùng:
+ Một tụ hóa có giá trị 100uF/50V là tụ để lọc nguồn
+ Một tụ hóa có giá trị 10uF/50V là tụ để Reset
+ Hai tụ gốm có giá trị 33pF để tạo dao động thạch anh
3.3.4 Biến trở
Biến trở thực chất là điện trở có thể thay đổi được và có thể thay đổi điện
áp theo yêu cầu sử dụng của chúng ta
Trong đề tài này, biến trở thay đổi độ tương phản của màn hình LCD Khi ta chỉnh biến trở về 0V thì màn hình sẽ trở nên rõ nét, khi ta chỉnh biến trở về 5V thì màn hình sẽ mờ đi
Hình 3.2: Tụ điện
Trang 39Biến trở gồm 2 thành phần chính là con chạy và cuộn dây được tạo ra bằng hợp kim có điện trở suất lớn
3.3.5 LED ( Light Emitting Diode )
Led thực chất làcác diode có khả năng phát ra ánh sáng hay tia hồng ngoại, tia tử ngoại…Được dùng rất phổ biến hiện nay
Ưu điểm, nhược điểm của LED
- Ưu điểm:
Có thể phát sáng cao hơn bóng sợi đốt và tiêu thụ điện năng ít hơn
Màu sắc: LED có thể phát ra màu sắc như ý muốn mà không cần qua
bộ lọc màu như phương pháp truyền thống vẫn làm
Kích thước: Bóng LED rất nhỏ ( có cái nhỏ đến 2mm2 ) vì vậy mà nó
có thể bố trí một cách dễ dàng trên board mạch in
Hình 3.4: LED Hình 3.3: Biến trở
Trang 40 Có thời gian bật tắt nhanh: Led có thời gian bật và tắt rất nhanh kể từ lúc có tác động (lên đến micro giây) Điều này là rất quan trọng trong thông tin liên lạc, lĩnh vực cần có thời gian đáp ứng nhanh
Độ sáng tối: LED có thể điều khiển độ sáng tối bằng phương pháp điều chỉnh độ rộng xung hay tăng giảm dòng điện tác động vào
Tuổi thọ đèn cao: Là ưu điểm lớn nhất của đèn LED, tuổi thọ của đèn LED có thể lên tới 50000 giờ, lớn gấp nhiều lần so với bóng huỳnh quang hay bóng đèn sợi đốt
Độ bền cao: Được làm từ chất bán dẫn, nên khó bị hỏng bởi sự va đập
- Độ an toàn: LED không gây độc hại và không ảnh hưởng đến môi
Khi sử dụng rộng rãi thiết bị chiếu sáng bằng đèn LED có thể giúp chúng
ta tiết kiệm đuợc nhiều năng lượng Hiện nay bóng đèn LED trắng có tuổi thọ lên tới 50.000 giờ, gấp 50 lần so với bóng đèn 60W
3.3.6 DS18B20
DS18B20 là một cảm biến nhiệt độ kỹ thuật số và giao tiếp 1-Wire (chỉ 1 dây duy nhất), bên trong IC được tích hợp sẵn cảm biến nhiệt và bộ chuyển đổi, khối xử lý, giao tiếp 1 wire, bộ nhớ ROM, EEPROM, báo nhiệt độ khi đạt ngưỡng nào đó
Thông số của cảm biến:
Giải đo: từ -55 đến +125 độ C (sai số có thế là 0.5 độ C trong môi
trường từ -10 đến +85 độ C)
Nguồn cung cấp: 3V đến 5.5V
Độ phân giải là: 9 bits hay 12 bits