đồ án kỹ thuật điều khiển tự động THIẾT KẾ VÀ XÂY DỰNG BỘ NẠP NĂNG LƯỢNG ĐIỆN MẶT TRỜI SỬ DỤNG CHO NGUỒN CHIẾU SÁNG ĐƯỜNG PHỐ CÔNG SUẤT 100 W

83 794 1
đồ án kỹ thuật điều khiển tự động THIẾT KẾ VÀ XÂY DỰNG BỘ NẠP NĂNG LƯỢNG ĐIỆN MẶT TRỜI SỬ DỤNG CHO NGUỒN CHIẾU SÁNG ĐƯỜNG PHỐ CÔNG SUẤT 100 W

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Nguyễn Minh Chương ĐỀ TÀI THIẾT KẾ VÀ XÂY DỰNG BỘ NẠP NĂNG LƯỢNG ĐIỆN MẶT TRỜI SỬ DỤNG CHO NGUỒN CHIẾU SÁNG ĐƯỜNG PHỐ CÔNG SUẤT 100 W Chuyên ngành : ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA (KT) LUẬN VĂN THẠC SĨ KỸ THUẬT … NGƯỜI HƯỚNG DẪN KHOA HỌC: TS LƯU HỒNG VIỆT Hà Nội – Tháng Năm 2012 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt Phần A GIỚI THIỆU Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt LỜI MỞ ĐẦU Ngày nay, kinh tế quốc gia phát triển, lượng coi nguồn sống quốc gia Do vậy, nhu cầu sử dụng lượng, đặc biệt điện ngày cao Năng lượng hóa thạch ngày cạn kiện, kèm theo vấn đề ô nhiễm môi trường nguồn lượng gây Năng lượng hạt nhân có công suất lớn, gây nguy hiểm cho người Gần đây, vấn đề rị rỉ phóng xạ nhà máy điện hạt nhân Nhật gây cho nhân loại lo lắng tính an tồn nguồn lượng Vì việc tìm sử dụng nguồn lượng sạch, an toàn mối quan tâm quốc gia giới Trong nguồn lượng người sử dụng, nguồn lượng sức gió, thủy triều, lượng mặt trời nguồn lượng đáng lưu tâm Các nguồn lượng sức gió hay thủy triều thường có yêu cầu vị trí lắp đặt cơng suất lớn Ngược lại, lượng mặt trời lắp đặt hầu hết tất nơi dải công suất Do vậy, phát triển hệ thống lượng mặt trời hướng phát triển khoa học kỹ thuật ngày Đồ án “THIẾT KẾ VÀ XÂY DỰNG BỘ NẠP NĂNG LƯỢNG ĐIỆN MẶT TRỜI SỬ DỤNG CHO NGUỒN CHIẾU SÁNG ĐƯỜNG PHỐ CÔNG SUẤT 100 W” nằm đề tài lớn: “Nghiên cứu thiết kế thiết bị biến đổi nguồn điện chiều sang xoay chiều (DC-AC) pha công suất 2kW ứng dụng hệ thống biến đổi lượng mặt trời” nhằm nghiên cứu sử dụng lượng mặt trời chuyển dạng điện cách hiệu sử dụng lưu trữ, truyền tải sử dụng Luận văn sâu vào nghiên cứu phương pháp biến đổi lượng mặt trời nạp cho hệ acquy, áp dụng cho phương pháp biến đổi để đưa vào thực tế Sử dụng lượng mặt trời khơng cịn hầu hết Việt Nam sử dụng với công suất nhỏ tải thường 12V xoay chiều pha Việc nghiên cứu để đưa lượng mặt trời sử dụng trực tiếp sản xuất hướng mới, nhằm tăng cường sử dụng nguồn lượng xanh, Việt Nam Học viên thực đề tài Nguyễn Minh Chương Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt LỜI CẢM ƠN Trong thời gian thực đề tài, em lĩnh hội nhiều kinh nghiệm kiến thức bổ ích.Việc thi cơng mạch luận văn giúp em có điều kiện tiếp xúc với thực tiễn, bổ sung kiến thức thực tế cịn thiếu Để hồn thành luận văn này, em nhận giúp đở nhiều từ quí Thầy Cô, bạn bè Em xin gởi lời cảm ơn sâu sắc đến Thầy TS Lưu Hồng Việt trực tiếp hướng dẫn tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài Xin chân thành cảm ơn! Học viên thực đề tài Nguyễn Minh Chương Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt MỤC LỤC NỘI DUNG TRANG PHẦN A: GIỚI THIỆU Lời mở đầu Lời cảm ơn Mục lục Liệt kê hình vẽ Liệt kê bảng…………………………………………………………… 10 PHẦN B: NỘI DUNG 11 CHƯƠNG I: DẪN NHẬP 12 1.1 Lý chọn đề tài 12 1.2 Nhiệm vụ để tài 12 1.3 Đối tượng phạm vi nghiên cứu 13 1.4 Ý nghĩa thực tiển 14 1.5 Phương pháp nghiên cứu 14 2.1 Giới thiệu chung 15 2.1.1 Vai trò lượng mặt trời cung cấp lượng 15 2.1.2 Tổng quan hệ thống pin lượng mặt trời 16 2.2 Acquy phương pháp nạp acquy 18 2.3 Nguyên lý nạp lượng mặt trời 23 2.3.1 Sơ đồ biến đổi DC-DC không cách ly 23 2.3.2 Sơ đồ biến đổi DC-DC có cách ly 24 2.3.3 Lựa chọn sơ đồ nguyên lý cho biến đổi DC-DC 26 2.3.4 Sơ đồ biến đổi DC-DC không cách ly Cuk 27 CHƯƠNG III: LÝ THUYẾT LIÊN QUAN 31 3.1 Tổng quan Vi Điều Khiển dsPIC30F4011 31 3.1.1 Khối xử lý trung tâm CPU 31 3.1.2 Bộ chuyển đổi tương tự số AD 32 3.1.3 Các cổng vào I/O Port ngoại vi 32 3.1.4 Bộ xử lý tín hiệu số 32 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt 3.1.5 Một số đặc điểm khác 32 3.2 Giới thiệu linh kiện khác 33 3.2.1 Cảm biến dòng ACS712 33 a Các đặc tính ……………………………………………………… 33 b Mô tả ……………………………………………………… 33 3.2.2 IC Driver IR2104 35 a Các đặc tính ……………………………………………………… 35 b Mơ tả ……………………………………………………… 35 3.2.3 Graphic LCD……………………………………………………… 37 a Giới thiệu 37 b Sơ đồ chân 38 c Tổ chức nhớ 41 d Tập lệnh cho chip KS0108 43 CHƯƠNG IV: THIẾT KẾ THỰC THI 46 4.1 Sơ đồ thực thi hệ thống 46 4.2 Tính tốn thiết kế mạch nạp theo nguyên lý Cuk 46 4.3 Mơ hình hóa biến đổi DC – DC Cuk 50 4.4 Thiết kế mạch điều khiển 51 4.5 Thiết kế mạch lực 52 CHƯƠNG V: SƠ ĐỒ KHỐI VÀ CHƯƠNG TRÌNH 57 5.1 Sơ đồ khối 57 5.2 Sơ đồ nguyên lý 58 5.3 Sơ đồ mạch in 59 5.4 Sơ đồ bố trí linh kiện 60 5.5 Một số hình ảnh thực tế 61 5.6 Lưu đồ… 76 5.7 Chương trình 77 CHƯƠNG VI: KẾT QUẢ NGHIÊN CỨU, KẾT LUẬN, HƯỚNG PHÁT TRIỂN 82 6.1 Kết luận 82 6.2 Kết nghiên cứu hướng phát triển 82 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt Tài liệu tham khảo 83 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt LIỆT KÊ HÌNH VẼ Hình Trang Hình 1.1: Sơ đồ khối hệ thống lượng mặt trời 13 Hình 2.1: Bảng thống kê sử dụng nguồn lượng năm 2008 15 Hình 2.2: Lượng khí thải CO2 sinh tạo 1KWh nguồn 16 Hình 2.3: Hệ thống lượng mặt trời 16 Hình 2.4: Cách bố trí góc ghiêng β hệ thống pin 18 Hình 2.5: Đặc tính điện tỷ trọng phóng nạp với dịng khơng đổi 19 Hình 2.6 Đặc tuyến phóng điện với Điện cuối 19 Hình 2.7: Dung lượng định mức dựa mức 20 Hình 2.8: Đặc tính phóng acquy 20 Hình 2.9: Đặc tính nạp acquy 21 Hình 2.10: Sơ đồ biến đổi DC-DC không cách ly 23 Hình 2.11: Sơ đồ biến đổi DC_DC cách ly 25 Hình 2.12: Sơ đồ khối mạch nạp lượng mặt trời DC-DC Cuk 27 Hình 2.13: Sơ đồ nguyên lý mạch DC-DC Cuk 27 Hình 2.14: Tín hiệu điều chế độ rộng xung PWM 28 Hình 2.15: Bộ biến đổi hai trạng thái đóng/mở van 28 Hình 2.16: Dòng điện điện áp cuộn dây 29 Hình 3.1: Sơ đồ kết nối chân ACS712 33 Hình 3.2: Sơ đồ kết nối bên ACS712 34 Hình 3.3: Chức cảm biến ACS712 35 Hình 3.4: Bảng tóm tắt thơng số IC Driver IR2104 35 Hình 3.5: Chức chân điều kiện hoạt động IC Driver IR2104 36 Hình 3.6: Sơ đồ kết nối bên IR2104 36 Hình 3.7: Giản đồ xung Ir2104 37 Hình 3.8: GLCD 12864B 37 Hình 3.9: Sơ đồ chân GLCD 12864B 38 Hình 3.10: Sơ đồ điều khiển GLCD 128*64 40 Hình 3.11: Tổ chức RAM 41 Hình 3.12: Hiển thị chữ GLCD 42 Hình 3.13: Tóm tắt lệnh chip KS0108 43 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt Hình 4.1 : Sơ đồ thực thi hệ thống 46 Hình 4.2 : Sơ đồ khối DC-DC Cuk nạp lượng mặt trời 46 Hình 4.3 : Mạch DC-DC Cuk hai chế độ đóng/mở van 51 Hình 4.4: Mạch DC-DC Cuk chế độ van đóng D=1 51 Hình 4.5: Mạch DC-DC Cuk chế độ van mở D=0 51 Hình 4.6: Khối Vi Điều Khiển Dspic30F4011 52 Hình 4.7: Mạch đảo mạch lặp điện áp 53 Hình 4.8: Mạch so sánh bảo vệ điện áp 54 Hình 4.9: Khối so sánh bảo vệ cứng 55 Hình 4.10: Tín hiệu điều khiển vào Driver 56 Hình 4.11: Sơ đồ mạch kết nối GLCD 56 Hình 5.1 : Sơ đồ khối toàn mạch 57 Hình 5.2: Sơ đồ nguyên lý 58 Hình 5.3: Sơ đồ mạch in 59 Hình 5.4: Sơ đồ bố trí linh kiện 60 Hình 5.5: số hình ảnh thực tế 61 Nguyễn Minh Chương Trang Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt LIỆT KÊ BẢNG Bảng Trang Bảng 2.1: So sánh tiêu chất lượng topology cho biến đổi DC-DC 26 Bảng 4.1 Kết tính tốn mạch Cuk 49 Nguyễn Minh Chương Trang 10 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt void _ISR _ADCInterrupt(void) { _ADIF = 0; }  Chương trình khởi tạo timer void InitTimer(PVOID pTimerConfig) { BYTE byTimerShiftBit = 0; if (((PTIMERCONFIG)pTimerConfig) -> byTimerID == 1) { switch (((PTIMERCONFIG)pTimerConfig) -> wTimerPrescaler) { case 1: T1CONbits.TCKPS = 0; byTimerShiftBit = 0; break; case 8: T1CONbits.TCKPS = 1; byTimerShiftBit = 3; break; case 64: T1CONbits.TCKPS = 2; byTimerShiftBit = 6; break; case 256: T1CONbits.TCKPS = 3; byTimerShiftBit = 8; break; default: T1CONbits.TCKPS = 1; break; T1CONbits.TCS = 0; } _T1IE = 1; _T1IF = 0; T1CONbits.TON = 1; Nguyễn Minh Chương Trang 69 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt //PR1 = ((BYTE)(((Ktimer >> byTimerShiftBit) / 10) ) * (((PTIMERCONFIG)pTimerConfig) -> dwuSec)); PR1 = ((PTIMERCONFIG)pTimerConfig) -> wPR; TMR1 = 0; } if (((PTIMERCONFIG)pTimerConfig) -> byTimerID == 2) { T2CONbits.TON = 1; switch (((PTIMERCONFIG)pTimerConfig) -> wTimerPrescaler) { case 1: T2CONbits.TCKPS = 0; case 8: T2CONbits.TCKPS = 1; case 64: T2CONbits.TCKPS = 2; case 256: T2CONbits.TCKPS = 3; default: T2CONbits.TCKPS = 1; } _T2IE = 1; _T2IF = 0; T2CONbits.TON = 1; //PR1 = ((BYTE)(((Ktimer >> byTimerShiftBit) / 10) ) * (((PTIMERCONFIG)pTimerConfig) -> dwuSec)); PR2 = ((PTIMERCONFIG)pTimerConfig) -> wPR; TMR2 = 0; } if (((PTIMERCONFIG)pTimerConfig) -> byTimerID == 3) { T3CONbits.TON = 1; switch (((PTIMERCONFIG)pTimerConfig) -> wTimerPrescaler) { case 1: T3CONbits.TCKPS = 0; case 8: T3CONbits.TCKPS = 1; case 64: T3CONbits.TCKPS = 2; case 256: T3CONbits.TCKPS = 3; default: T3CONbits.TCKPS = 1; Nguyễn Minh Chương Trang 70 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt } _T3IE = 1; _T3IF = 0; T3CONbits.TON = 1; //PR1 = ((BYTE)(((Ktimer >> byTimerShiftBit) / 10) ) * (((PTIMERCONFIG)pTimerConfig) -> dwuSec)); PR3 = ((PTIMERCONFIG)pTimerConfig) -> wPR; TMR3 = 0; } if (((PTIMERCONFIG)pTimerConfig) -> byTimerID == 4) { T4CONbits.TON = 1; switch (((PTIMERCONFIG)pTimerConfig) -> wTimerPrescaler) { case 1: T4CONbits.TCKPS = 0; case 8: T4CONbits.TCKPS = 1; case 64: T4CONbits.TCKPS = 2; case 256: T4CONbits.TCKPS = 3; default: T4CONbits.TCKPS = 1; } _T4IE = 1; _T4IF = 0; T4CONbits.TON = 1; //PR1 = ((BYTE)(((Ktimer >> byTimerShiftBit) / 10) ) * (((PTIMERCONFIG)pTimerConfig) -> dwuSec)); PR4 = ((PTIMERCONFIG)pTimerConfig) -> wPR; TMR4 = 0; } if (((PTIMERCONFIG)pTimerConfig) -> byTimerID == 5) { switch (((PTIMERCONFIG)pTimerConfig) -> wTimerPrescaler) { case 1: T5CONbits.TCKPS = 0; case 8: T5CONbits.TCKPS = 1; case 64: T5CONbits.TCKPS = 2; Nguyễn Minh Chương Trang 71 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt case 256: T5CONbits.TCKPS = 3; default: T5CONbits.TCKPS = 1; } _T5IE = 1; _T5IF = 0; T5CONbits.TON = 1; PR5 = ((PTIMERCONFIG)pTimerConfig) -> wPR; TMR5 = 0; } } VOID StopTimer(BYTE nID) { switch (nID) { case 1: T1CONbits.TON = 0; case 2: T2CONbits.TON = 0; case 3: T3CONbits.TON = 0; case 4: T1CONbits.TON = 0; case 5: T1CONbits.TON = 0; } } void Delay_us(BYTE nNum) { BYTE nIndex1; BYTE nIndex2; for (nIndex1 = 0; nIndex1 < nNum; nIndex1++) { for (nIndex2 = 0; nIndex2 < 30; nIndex2++); } } void Delay_GLCD(BYTE nNum) { BYTE nIndex2; for (nIndex2 = 0; nIndex2 < 10; nIndex2++); } Nguyễn Minh Chương Trang 72 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt void Delay_ms(BYTE nNum) { BYTE nIndex1; DWORD nIndex2; for (nIndex1 = 0; nIndex1 < nNum; nIndex1++) { for (nIndex2 = 0; nIndex2 < 30000; nIndex2++); } } VOID InitTimer1(VOID) { TMR1 = 0; PR1 = 0x01A1; _T1IF = 0; T1CONbits.TCKPS = 0b10; T1CONbits.TON = 1; T1CON = 0x8020; _T1IE = 1; }  Chương trình PID FLOAT fDuty =20,fDuty1,fEk = 0,fEk_1 = 0; FLOAT fRealV_In,fRealV_Out,fRealI_In,fRealI_Out; FLOAT fRealV_In_InADC,fRealV_Out_InADC,fRealI_In_InADC,fRealI_Out_InADC; { fEk_1 = fEk; fEk = (I_In_Set - fRealI_In); fDuty += (fEk - fEk_1) * Kp + Ki * fEk_1; fDuty1= fDuty; if (fDuty1 >= MaxDutyValue) fDuty1 = MaxDutyValue; SetDuty(fDuty1); } VOID PIExecute_V_Out(VOID) { fEk_1 = fEk; fEk = (V_Out_Set - fRealV_Out)*100; fDuty += (fEk - fEk_1)* Kp + Ki * fEk_1; fDuty1 = fDuty; if (fDuty1 >= MaxDutyValue) Nguyễn Minh Chương Trang 73 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt fDuty1 = MaxDutyValue; SetDuty(fDuty1); }  Thư viện GLCD #include "p30f4011.h" #include "typedef.h" #include "GLCD.h" #include #include BYTE g_nX = 0; BYTE g_nY = 0; BYTE arNum[9]; const BYTE FONT[95][5] ={ {0x00, 0x00, 0x00, 0x00, 0x00}, {0x00, 0x00, 0x5F, 0x00, 0x00}, {0x00, 0x03, 0x00, 0x03, 0x00}, {0x14, 0x3E, 0X14, 0X3E, 0X14}, {0x24, 0x2A, 0x7F, 0x2A, 0x12}, {0x43, 0x33, 0x08, 0x66, 0x61}, {0x36, 0x49, 0x55, 0x22, 0x50}, {0x00, 0x05, 0x03, 0x00, 0x00}, {0x00, 0x1C, 0x22, 0x41, 0x00}, {0x00, 0x41, 0x22, 0x1C, 0x00}, {0x14, 0x08, 0x3E, 0x08, 0x14}, {0x08, 0x08, 0x3E, 0x08, 0x08}, {0x00, 0x50, 0x30, 0x00, 0x00}, {0x08, 0x08, 0x08, 0x08, 0x08}, {0x00, 0x60, 0x60, 0x00, 0x00}, {0x20, 0x10, 0x08, 0x04, 0x02}, {0x3E, 0x51, 0x49, 0x45, 0x3E}, {0x00, 0x04, 0x02, 0x7F, 0x00}, {0x42, 0x61, 0x51, 0x49, 0x46}, {0x22, 0x41, 0x49, 0x49, 0x36}, {0x18, 0x14, 0x12, 0x7F, 0x10}, {0x27, 0x45, 0x45, 0x45, 0x39}, {0x3E, 0x49, 0x49, 0x49, 0x32}, {0x01, 0x01, 0x71, 0x09, 0x07}, {0x36, 0x49, 0x49, 0x49, 0x36}, {0x26, 0x49, 0x49, 0x49, 0x3E}, {0x00, 0x36, 0x36, 0x00, 0x00}, {0x00, 0x56, 0x36, 0x00, 0x00}, {0x08, 0x14, 0x22, 0x41, 0x00}, Nguyễn Minh Chương Trang 74 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt {0x14, 0x14, 0x14, 0x14, 0x14}, {0x00, 0x41, 0x22, 0x14, 0x08}, {0x02, 0x01, 0x51, 0x09, 0x06}, {0x3E, 0x41, 0x59, 0x55, 0x5E}, {0x7E, 0x09, 0x09, 0x09, 0x7E}, {0x7F, 0x49, 0x49, 0x49, 0x36}, {0x3E, 0x41, 0x41, 0x41, 0x22}, {0x7F, 0x41, 0x41, 0x41, 0x3E}, {0x7F, 0x49, 0x49, 0x49, 0x41}, {0x7F, 0x09, 0x09, 0x09, 0x01}, {0x3E, 0x41, 0x41, 0x49, 0x3A}, {0x7F, 0x08, 0x08, 0x08, 0x7F}, {0x00, 0x41, 0x7F, 0x41, 0x00}, {0x30, 0x40, 0x40, 0x40, 0x3F}, {0x7F, 0x08, 0x14, 0x22, 0x41}, {0x7F, 0x40, 0x40, 0x40, 0x40}, {0x7F, 0x02, 0x0C, 0x02, 0x7F}, {0x7F, 0x02, 0x04, 0x08, 0x7F}, {0x3E, 0x41, 0x41, 0x41, 0x3E}, {0x7F, 0x09, 0x09, 0x09, 0x06}, {0x1E, 0x21, 0x21, 0x21, 0x5E}, {0x7F, 0x09, 0x09, 0x09, 0x76}, {0x26, 0x49, 0x49, 0x49, 0x32}, {0x01, 0x01, 0x7F, 0x01, 0x01}, {0x3F, 0x40, 0x40, 0x40, 0x3F}, {0x1F, 0x20, 0x40, 0x20, 0x1F}, {0x7F, 0x20, 0x10, 0x20, 0x7F}, {0x41, 0x22, 0x1C, 0x22, 0x41}, {0x07, 0x08, 0x70, 0x08, 0x07}, {0x61, 0x51, 0x49, 0x45, 0x43}, {0x00, 0x7F, 0x41, 0x00, 0x00}, {0x02, 0x04, 0x08, 0x10, 0x20}, {0x00, 0x00, 0x41, 0x7F, 0x00}, {0x04, 0x02, 0x01, 0x02, 0x04}, {0x40, 0x40, 0x40, 0x40, 0x40}, {0x00, 0x01, 0x02, 0x04, 0x00}, {0x20, 0x54, 0x54, 0x54, 0x78}, {0x7F, 0x44, 0x44, 0x44, 0x38}, {0x38, 0x44, 0x44, 0x44, 0x44}, {0x38, 0x44, 0x44, 0x44, 0x7F}, {0x38, 0x54, 0x54, 0x54, 0x18}, {0x04, 0x04, 0x7E, 0x05, 0x05}, {0x08, 0x54, 0x54, 0x54, 0x3C}, {0x7F, 0x08, 0x04, 0x04, 0x78}, {0x00, 0x44, 0x7D, 0x40, 0x00}, {0x20, 0x40, 0x44, 0x3D, 0x00}, Nguyễn Minh Chương Trang 75 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt {0x7F, 0x10, 0x28, 0x44, 0x00}, {0x00, 0x41, 0x7F, 0x40, 0x00}, {0x7C, 0x04, 0x78, 0x04, 0x78}, {0x7C, 0x08, 0x04, 0x04, 0x78}, {0x38, 0x44, 0x44, 0x44, 0x38}, {0x7C, 0x14, 0x14, 0x14, 0x08}, {0x08, 0x14, 0x14, 0x14, 0x7C}, {0x00, 0x7C, 0x08, 0x04, 0x04}, {0x48, 0x54, 0x54, 0x54, 0x20}, {0x04, 0x04, 0x3F, 0x44, 0x44}, {0x3C, 0x40, 0x40, 0x20, 0x7C}, {0x1C, 0x20, 0x40, 0x20, 0x1C}, {0x3C, 0x40, 0x30, 0x40, 0x3C}, {0x44, 0x28, 0x10, 0x28, 0x44}, {0x0C, 0x50, 0x50, 0x50, 0x3C}, {0x44, 0x64, 0x54, 0x4C, 0x44}, {0x00, 0x08, 0x36, 0x41, 0x41}, {0x00, 0x00, 0x7F, 0x00, 0x00}, {0x41, 0x41, 0x36, 0x08, 0x00}, {0x02, 0x01, 0x02, 0x04, 0x02}}; VOID GLCD_OUTSET() { GLCD_CTRL_TRIS_OUTPUT; GLCD_DATA_TRIS_OUTPUT; GLCD_DATA_OUT(0x00); } VOID GLCD_INSET() { GLCD_CTRL_TRIS_OUTPUT; GLCD_DATA_TRIS_INPUT; } VOID GLCD_SetSide(CHAR nSide) { GLCD_OUTSET(); if (nSide == LEFT) { GLCD_CS1 = 1; GLCD_CS2 = 0; } if (nSide == RIGHT) Nguyễn Minh Chương Trang 76 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt { GLCD_CS1 = 0; GLCD_CS2 = 1; } GLCD_DELAY; } VOID GLCD_Enable() { GLCD_DELAY; GLCD_ENABLE; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_EnableInstruction() { GLCD_RW = 0; GLCD_RS = 0; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_EnableData() { GLCD_RW = 0; GLCD_RS = 1; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_Display() { GLCD_SetSide(LEFT); GLCD_OUTSET(); GLCD_EnableInstruction(); GLCD_DATA_OUT (GLCD_DISPLAY + 1); GLCD_ENABLE; GLCD_DELAY; GLCD_DISABLE; GLCD_SetSide(RIGHT); GLCD_DATA_OUT (GLCD_DISPLAY + 1); Nguyễn Minh Chương Trang 77 Luận Văn Thạc Sỹ Kỹ Thuật GVHD: TS Lưu Hồng Việt GLCD_ENABLE; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_SetX(BYTE X) { GLCD_OUTSET(); GLCD_EnableInstruction(); GLCD_DELAY; GLCD_DISABLE; GLCD_DATA_OUT(GLCD_X_ADRESS + X); GLCD_ENABLE; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_SetY(BYTE Y) { GLCD_OUTSET(); GLCD_EnableInstruction(); GLCD_DELAY; GLCD_DISABLE; GLCD_DATA_OUT(GLCD_Y_ADRESS + Y); GLCD_ENABLE; GLCD_DELAY; GLCD_DISABLE; } VOID GLCD_GotoXY(BYTE X, BYTE Y) { BYTE nSide = 0; nSide = (Y >> 6); g_nX = X; g_nY = Y; GLCD_SetSide(nSide); Y = Y - (nSide

Ngày đăng: 12/05/2015, 15:56

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan