Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 90 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
90
Dung lượng
5,64 MB
Nội dung
Chƣơng DẪN NHẬP 1.1 Đặt vấn đề Ngày nay, xã hội ngày phát triển nhu cầu truyền bá thông tin ngày tăng Sản xuất phát triển kéo theo việc cần nhanh chóng thơng tin sản phẩm tới người tiêu dùng nhiều hơn, quan nhà nước cần thông báo nhiều thông tin tới người dân Chính lý mà nhu cầu quảng cáo truyền bá thông tin ngày tăng cao Hiện nay, có nhiều hình thức để truyền bá thơng tin, quảng cáo sản phẩm phát tờ rơi, treo băng rôn, hiệu, dán áp phích,… Tuy nhiên, nhu cầu quảng cáo ngày tăng để đáp ứng nhu cầu hình thức quảng cáo truyền thống tờ rơi, áp phích, băng rơn, … khơng cịn đáp ứng tốt nữa, quang báo điện tử đời 1.2 Lý chọn đề tài Với phát triển vũ bão khoa học công nghệ, sản phẩm tiên tiến ngày xuất nhiều, sản xuất phát triển mạnh kéo theo việc thứ thay đổi nhanh chóng thơng tin phải cập nhật thông báo tức thời việc quan trọng tất lĩnh vực Để đáp ứng nhu cầu đó, thiết bị điều khiển từ xa qua thiết bị di động điều khiển trực tiếp máy tính Việc sử dụng vi điều khiển quang báo điện tử có nhiều ưu điểm mà phương pháp quảng cáo truyền thống so sánh việc thay đổi thơng tin cách nhanh chóng, xác, thơng tin hiển thị chuyển động, màu sắc phong phú,… Với nhu cầu thực tiễn nhưu nên nhóm thực định chọn đề tài : “THIẾT KẾ VÀ THI CÔNG MẠCH QUANG BÁO SỬ DỤNG PIC18 ĐIỀU KHIỂN BẰNG TIN NHẮN ĐIỆN THOẠI VÀ MÁY TÍNH” 1.3 Nội dung nghiên cứu Mục tiêu đề tài tìm hiểu nghiên cứu hoạt động module SIM900, nguyên lý hoạt động module led ma trận 16x32, cách lập trình PIC18F4620 cách truyền nhận liệu qua máy tính thơng qua chuẩn giao tiếp UART, RS232 để thi công mạch quang báo điều khiển tin nhắn điện thoại máy tính Như vậy, với nội dung đề đề tài bao gồm nội dung sau: - Tìm hiểu PIC18F4620 Nghiên cứu phương án điều khiển led ma trận P10 (16x32) Tìm hiểu module SIM900 Tìm hiểu phương thức giao tiếp RS232, UART,… Nghiên cứu lập trình cho PIC trình biên dịch CCS 1.4 Giới hạn Nghiên cứu lập trình visual basic giao tiếp máy tính Xây dựng sơ đồ khối kết nối Thiết kế mô mạch Xây dựng lưu đồ giải thuật Viết chương trình mà chạy mơ để sửa lỗi Thi cơng mạch Nạp chương trình, chạy thử kiểm tra lỗi Viết báo cáo Báo cáo đề tài tốt nghiệp Trong khuôn khổ để tài chúng em xin giới hạn sau: 1.5 - Font chữ hiển thị quang báo font chữ không dấu - Chỉ có hiệu ứng chữ chạy từ phải sang trái - Sử dụng bảng Led P10 ( 16x32) Bố cục đề tài Như vậy, với yêu cầu mục tiêu, giớ hạn đề ra, đồ án xây dựng bao gồm chương sau: Chƣơng 1: Tổng quan – chương trình bày khái quát lĩnh vực nghiên cứu, đề mục đích đề tài, đưa nhiệm vụ, giới hạn đề tài trình bày phương pháp nghiên cứu đươc sử dụng Chƣơng 2: Cơ sở lý thuyết – chương trình bày tóm lượt sở lý thuyết sử dụng đồ án phương pháp để ứng dụng lý thuyết vào thực tiễn Chƣơng 3: Thiết kế phần cứng – chương trình bày trình thiết kế, xây dựng phần cứng đồ án : sơ đồ khối, sơ đồ nguyên lý, mạch in, … Chƣơng 4: Thiết kế phần mềm – chương trình bày trình thiết xây dựng phần mềm đồ án : lưu đồ, giải thuật chương trình, giao diện Visual Basic để điều khiển máy tính Chƣơng 5: Kết luận – chương trình bày kết đạt được, so sánh với mục tiêu đặt ra, rút kinh nghiệm, đề hướng phát triển đề tài Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu Khối xử lý trung tâm khối có vai trị Khối xử lý trung tâm có nhiệm vụ tiếp nhận, xử lý liệu đến cách tự động Đề tài sử dụng PIC18F4620 để làm khối xử lý có tín năng, ưu điểm vượt trội vi điều khiển khác Các vi điều khiển họ PIC có ưu điểm vượt trội nhiều so với họ 8051 với nhiều module tích hợp sẵn : module ADC 10bit, PWM 10bit, Opam, EEPROM,… thuận lợi nhiều việc thiết kế mạch mà không cần phải thiết kế thêm module bổ trợ họ vi điều khiển 8051, đó, mạch điện thi cơng gọn, tiết kiệm linh kiện, hạn chế sai xót từ module bổ trợ Bên cạnh ưu điểm phần cứng, PIC hỗ trợ nhiều để lập trình phần mềm dễ dàng Hiện nay, ngồi ngơn ngữ Assembly phức tạp, PIC cịn lập trình dễ dàng tảng ngôn ngữ C dễ hiểu, gần gũi với người dùng Việc lập trình PIC hỗ trợ nhiều từ trình biên dịch sử dụng ngơn ngữ C, điển hình trình biên dịch CCS MIKROC Ngồi ra, PIC dịng vi điều khiển đời từ lâu, nên có nhiều tài liệu diễn đàn điện tử nói họ vi điều khiển này, nguồn tài liệu tìm để hỗ trợ cho việc nghiên cứu vô phong phú PIC18F4620 sử dụng đề tài vi điều khiển phổ thơng với tính dễ sử dụng: Tập lệnh để lập trình có 35 lệnh dễ nhớ dễ học, có độ dài 16bit Mỗi lệnh thực thi chu kỳ xung clock Tốc độ hoạt động tối đa cho phép 64MHz 64k Flash Rom 3936 Bytes Ram 1024 Bytes EEPROM Port điều khiển vào với tín hiệu điều khiển độc lập, với dịng cao có thề kích trực tiếp transitor mà khơng cần qua buffer định thời Timer0, Timer1, Timer2, Timer3 định thời Timer0 8bit lập trình định thời Timer1, Timer2 Timer3 16bit hoạt động chế độ sleep với nguồn xung clock module CCP ( bao gồm Capture bắt giữ, Compare so sánh, PWM điều chế xung 10bit) module ECCP ADC với 13 kênh ADC 10bit so sánh tương tự hoạt động độc lập Bộ giám sát định thời Watchdog timer Cổng giao tiếp song song 8bit với tín hiệu điều khiển Chuẩn giao tiếp nối tiếp MSSP (SPI/I2C) Chuẩn giao tiếp nối tiếp USART (AUSART/EUSART) với 9bit địa Hỗ trợ giao tiếp I2C 15 nguồn ngắt Chế độ sleep tiết kiệm lượng Chức bảo mật chương trình Nạp chương trình cổng nối tiếp ICSP (In Cicuit Serial Programming) thông qua chân Có thể hoạt động với nhiều dạng Oscillator khác Tần số hoạt động tối đa 64Mhz Bộ nhớ Flash với khả ghi xóa 100.000 lần Bộ nhớ EEPROM với khả ghi xóa 1.000.000 lần Dữ liệu EEPROM lưu trữ 40 năm Khả tự nạp chương trình với điều khiển phần mềm 2.2 Tổng quan vi điều khiển PIC18F4620 2.2.1 Sơ đồ khối củaPIC18F4620 Hình 2.1 sơ đồ khối vi điều khiển PIC18F4620 2.2.2 Sơ đồ chân nhớ Hình 2.1 Sơ đồ chân PIC18F4620 - - Tổ chức nhớ: Cấu trúc nhớ vi điều khiển PIC18F4620 bao gồm nhớ chương trình (Program memory) nhớ liệu (Data Memory) Bộ nhớ chương trình: Bộ nhớ chương trình Vi điều khiển PIC18F4620 nhớ flash, dung lượng nhớ 64 Kword (1 word = 16 bit) Để mã hóa địa 64k word nhớ chương trình, đếm chương trình có 21bit (PC) Khi vi điều khiển reset, đếm chương trình đến địa 0000h (Reset vertor) Khi có ngắt xảy ra, đếm chương trình đến địa 0008h (Interrupt vertor) Bộ nhớ chương trình bao gồm nhớ Stack địa hóa đếm chương trình Bộ nhớ liệu: Bộ nhớ liệu PIC18F4620 nhớ EEPROM chia làm nhiều bank Đối với PIC18F4620 nhớ liệu chia làm 16 bank 2.2.3 Các cổngI/O PIC18F6420 Cổng xuất nhập (I/O Port) phương tiện mà vi điều khiển giao tiếp với bên Sự giao tiếp, tương tác đa dạng, tùy theo mục đích sử dụng lập trình viên mà chức I/O pin thể rõ ràng Một cổng xuất nhập (I/O Port ) bao gồm nhiều chân (I/O Pin) Tùy theo chức vi điều khiển mà số lượng cổng, số lượng chân cổng Do số lượng I/O Pin có hạn việc vi điều khiển tích hợp nhiều module khác nên ngồi chức xuất nhập thơng thường, số I/O Pins cịn tích hợp thêm nhiều chức khác xác lập điều khiển thông qua ghi SFR liên quan đến I/O Pin Vi điều khiển 18F4620 có cổng xuất nhập : PORTA, PORTB, PORTC, PORTD PORTE 2.2.4 Truyền thông nối tiếp EUART EUSART (Enhanced Universal Synchronous Asynchronous Receiver Transmitter) truyền thông nối tiếp Nó có tất phát xung clock, đăng ký thay đổi đệm liệu cần thiết để thực đầu vào hay đầu liệu nối tiếp chuyển giao độc lập thiết bị thực chương trình EUSART cịn gọi giao diện giao tiếp nối tiếp nối tiếp SCI (Serial Communication Interface) Bộ EUSART hai hình thức giao tiếp nối tiếp vào EUSART cấu hệ thống bất đồng hoạt động song cơng mà giao tiếp với thiết bị bên thiết bị đầu cuối CRT máy tính cá nhân cấu hệ thống đồng hoạt động bán cơng mà giao tiếp với mạch tích hợp A/D hay D/A, EEPROM nối tiếp….EUSART cấu hình để hoạt động chế độ sau: Bất đồng ( song công : Asynchronous) Đồng chủ ( bán công: Master Mode) Đồng tớ ( bán công: Slave Mode) 2.2.5 Ngắt (interrupt) PIC18F4620 có nhiều nguồn tạo hoạt động ngắt điều khiển nhiều ghi: RCON; INTCON; INTCON2; INTCON3; PIR1, PIR2; PIE1, PIE2; IPR1, IPR2 Bên cạnh ngắt cịn có bit điều khiển cờ ngắt riêng Các cờ ngắt set bình thường thỏa mãn điều kiện ngắt xảy bất chấp trạng thái bit GIE Tuy nhiên, hoạt động ngắt phụ thuộc vào bit GIE bit điều khiển khác Bit điều khiển ngắt RB0/INT0 TMR0 nằm ghi INTCON, ghi chứa bit cho phép ngắt ngoại vi PEIE Bit điều khiển ngắt nằm ghi PIE1 PIE2 Các cờ ngắt ngoại vi chứa hai ghi chức đặc biệt: ghi PIR1 PIR2 Các bit cho phép ngắt tương ứng chứa hai ghi PIE PIE Trong thời điểm có chương trình ngắt thực thi, chương trình ngắt kết thúc lệnh RETFIE Khi chương trình ngắt thực thi, bit GIE tự động xóa, địa lệnh chương trình cất vào nhớ Stack đếm chương trình đến địa 0008h Lệnh RETFIE dùng để khỏi chương trình ngắt quay trở chương trình chính, đồng thời bit GIE set phép ngắt hoạt động trở lại Các cờ hiệu dùng để kiểm tra ngắt xảy phải xóa chương trình trước cho phép ngắt tiếp tục hoạt động trở lại để ta phát thời điểm mà ngắt xảy Đối với ngắt ngoại vi ngắt từ chân INT hay ngắt từ thay đổi trạng thái Pin PortB (PORTB interrupt-on-change), việc xác định ngắt xảy cần chu kì lệnh tùy thuộc vào thời điểm xảy ngắt Trong trình thực thi ngắt, có giá trị đếm chương trình cất vào Stack, số ghi quan trọng không cất bị thay đổi giá trị q trình thực thi chương trình ngắt Điều nên xử lí chương trình để tránh tượng xảy 2.3 Chức thơng số LCD16x2 Hình 2.2 LCD 16x2 LCD có nhiều dạng, phân biệt theo kích thước, từ vài kí tự đến vài chục kí tự, từ vài hàng đến vài chục hàng Ví dụ LCD16x2 có nghĩa LCD có hàng hàng chứa 16 kí tự, tương tự ta có LCD20x4, LCD32x2, LCD40x2, v.v… 2.3.1 Chức chân LCD16x2 2.4 Module led ma trận 2.4.1 Cấu tạo Led ma trận tập hợp led đơn xếp theo hàng cột, tùy thuộc vào loại mà có số lượng led khác Trong đó, tất led cột nối chân anode với đưa chân để điều khiển Tương tự hàng, chân cathode nối lại với đưa chân để điều khiển Hình 2.3 Cấu tạo Led ma trận 2.4.2 Nguyên lý hoạt động Mỗi led ma trận led coi điểm ảnh, địa điểm ảnh xác định hàng cột tương ứng Do ma trận led có nhiều hàng nhiều cột nên thời điểm có trạng thái hàng cột xác định Tuy nhiên, thời điểm có hàng cột bật, nên bật hàng cột khác, phái tắt hàng cột trước đó, đó, muốn quan sát ma trận led liền mạch, ta phải thực quét led với tốc độ cao Mắt người có khả nhận biết tối đa 24 khung hình giây (FPS) thế, thực quét led với tốc độ cao, mắt khơng thể nhận biết điểm ảnh nhấp nháy Như vậy, để ứng dụng phương pháp qt hiển thị led ma trận tín hiệu hiển thị cấp vào hàng sau tích cực mức thấp cho cột ( qt cột) tín hiệu điều khiển cấp cho cột sau tích cực mức cao cho hàng ( quét hàng), vậy, thời điểm có hàng cột hiển thị tùy theo phương pháp quét Ngoài ra, thực tế, bảng led có kích thước lớn với nhiều cột có hàng việc qt led theo cột không khả thi, số lượng cột nhiều, nên thời gian quét hết tất cột dài nên không đảm bảo tỉ lệ 24 FPS, thấy bảng led nhấp nháy Do đó, bảng led có nhiều cột, ta thực phương pháp quét hàng tốt Hình 3.2 LCD 16x2 Bảng 2.1 Chức chân LCD16x2 Chân Ký hiệu Mô tả chức VSS Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển VDD Chân cấp nguồn cho LCD, thiết kế mạch ta nối chân với VCC = V mạch điều khiển VEE Điều chỉnh độ tương phản LCD RS Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) logic “1” (VCC) để chọn ghi + Logic “0”: Bus DB0-DB7 nối với ghi lệnh IR LCD (ở chế độ “ghi” - write) nối với đếm địa LCD (ở chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 nối với ghi liệu DR bên LCD RW Chân chọn chế độ đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động chế độ ghi mức logic “1” để LCD chế độ đọc EN Chân cho phép (Enable) Sau tín hiệu đặt lên 10 } #separate void LCD_PutChar ( unsigned int cX ) { /* this subroutine works specifically for 4-bit Port A */ output_high ( LCD_RS ); LCD_PutCmd( cX ); output_low ( LCD_RS ); } #separate void LCD_PutCmd ( unsigned int cX ) { /* this subroutine works specifically for 4-bit Port A */ LCD_SetData ( swap ( cX ) ); /* send high nibble */ LCD_PulseEnable(); LCD_SetData ( swap ( cX ) ); /* send low nibble */ LCD_PulseEnable(); } #separate void LCD_PulseEnable ( void ) { output_high ( LCD_EN ); delay_us ( ); // was 10 output_low ( LCD_EN ); delay_ms ( ); // was } #separate void LCD_SetData ( unsigned int cX ) { output_bit ( LCD_D4, cX & 0x01 ); output_bit ( LCD_D5, cX & 0x02 ); output_bit ( LCD_D6, cX & 0x04 ); output_bit ( LCD_D7, cX & 0x08 ); } [Phụ Lục 4] /* Bang ma ascii ? ? ? ? ? ? • ? ? 10 ? 11 ? 12 ? 13 ? 14 ? 15 Ô 16 ? 17 ? 18 ? 19 ? 20 ả 21 Đ 22 ? 23 ? 24 ? 25 ? 26 ? 27 ? 28 ? 29 ? 30 ? 31 ? */ //tao ma chu tu day /*32 33 ! 34 " 35 # 36 $ 37 % 38 & 39 ' 40 ( 41 ) 42 * 43 + 44 , 45 46 47 / 48 49 50 51 52 53 54 55 56 57 */ //vi tri so ki tu const char font1[] = {0,6,12,22,33,44,59,73,77,83,89, 96,106,111,118,123,131, 142,153,164,175,186,197,208,219,230,241}; //ma chu const char font1h[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0x3E,0x00,0x00,0x00,0x3C, 0x1E,0x00,0x00,0x3E,0x0E,0x00,0x00,0x00,0x90,0xF0,0x7C,0x1E,0x90,0xF8,0x1E,0x10, 0x10,0x00,0x00,0x38,0x7C,0xFE,0xE6,0xC2,0xC3,0x8E,0x8E,0x0C,0x00,0x00,0x78,0xFC, 0x86,0xC2,0x7E,0xBC,0xC0,0x20,0x18,0x8C,0x82,0x80,0x00,0x00,0x00,0x00,0x80,0xB8, 0xFC,0xFE,0xC2,0x7E,0x3E,0x1C,0xC0,0xC0,0xC0,0x40,0x00,0x00,0x3E,0x0E,0x80,0xE0, 0xF8,0x7C,0x0E,0x06,0x00,0x00,0xFE,0xFC,0xF0, 0x00,0x18,0x3A,0x3C,0x2A,0x08,0x00,0x00,0x80,0x80,0x80,0xF0,0xF0,0x80,0x80,0x80, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0x7C,0x0E,0x02, 0x06,0xE0,0xF8,0xFC,0x3C,0x06,0x02,0x02,0xFE,0xFC,0xF8,0x00,0x00, 0x00,0x00,0x04,0xC4,0xFC,0xFE,0x3E,0x00,0x00,0x00,0x00,0x00,0x38,0x3C,0x9E,0xC2, 0xE2,0xFE,0x7E,0x3C,0x00,0x00,0x00,0x0C,0x4C,0x4E,0x42,0xE2,0xBE,0xBE,0x1C,0x00, 0x00,0x80,0xE0,0x30,0x18,0x8C,0xFE,0xFE,0x7E,0x00,0x00,0x00,0x80,0x78,0x26,0x26, 0x62,0xE2,0xC2,0xC2,0x02,0x00,0x80,0xE0,0xF8,0x78,0x2C,0x24,0xE6,0xE2,0xC2,0x02, 0x00,0x00,0x0E,0x02,0x82,0xC2,0xF2,0x7A,0x1E,0x0E,0x02,0x00,0x00,0x00,0xB8,0xFC, 0xFE,0xE2,0xE2,0xFE,0xBE,0x9C,0x00,0xF0,0xF8,0xFC,0x0E,0x02,0x02,0xC2,0xFE,0xFC, 0x78, }; const char font1l[]= { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x1B,0x19,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x1F,0x07,0x02,0x1A,0x1F,0x03,0x02, 0x00,0x00,0x00,0x0C,0x0C,0x1C,0x50,0x30,0x19,0x1F,0x0F,0x07,0x00,0x00,0x00,0x00, 0x10,0x18,0x0C,0x02,0x01,0x00,0x0E,0x1F,0x11,0x18,0x0F,0x07,0x00,0x0E,0x0F,0x1F, 0x19,0x10,0x11,0x17,0x0F,0x1C,0x3E,0x3B,0x31,0x10,0x00,0x00,0x00,0x00,0x00,0x1F, 0x7F,0xFF,0x00,0x00,0x80,0xE0,0x7C,0x3F,0x0F, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x0F,0x0F,0x01,0x01,0x01, 0x00,0x00,0x58,0x38,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x18,0x18, 0x00,0x00,0x00,0x70,0x7C,0x0F,0x03,0x00,0x00,0x00, 0x00,0x00,0x07,0x0F,0x1F,0x10,0x10,0x18,0x0F,0x0F,0x07,0x01,0x00, 0x00,0x10,0x10,0x18,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x00,0x18,0x1C,0x1E,0x1F,0x1F, 0x1B,0x19,0x18,0x0C,0x00,0x00,0x0C,0x1C,0x1C,0x10,0x10,0x18,0x1F,0x0F,0x07,0x00, 0x00,0x03,0x03,0x02,0x12,0x12,0x1F,0x1F,0x1F,0x02,0x02,0x00,0x0C,0x1C,0x1C,0x10, 0x10,0x18,0x0F,0x0F,0x03,0x00,0x00,0x07,0x0F,0x1F,0x10,0x10,0x18,0x0F,0x0F,0x03, 0x00,0x00,0x00,0x18,0x1E,0x1F,0x0F,0x03,0x00,0x00,0x00,0x00,0x00,0x0E,0x0F,0x1F, 0x19,0x10,0x10,0x19,0x0F,0x0F,0x07,0x00,0x10,0x11,0x11,0x19,0x09,0x0F,0x07,0x03, 0x01,0x00, }; /*//////////////// 58 : 59 ; 60 < 61 = 62 > 63 ? 64 @ 65 A 66 B 67 C 68 D 69 E //12 70 F 71 G 72 H //15 73 I 74 J 75 K 76 L 77 M 78 N 79 O 80 P */ //vi tri ky tu const char font2[]= {0,6,12,25,38,51,60,74,87,100,112,126,137,147,159,173, 179,186,198,208,222,233,244,254}; //machu const char font2h[]= { 0x00,0x00,0x80,0xC0,0xC0,0x00,0x00,0x00,0x80,0xC0,0xC0,0x00,0x00,0x00,0x80,0x80, 0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x10,0x30,0x20,0x20,0x40,0x40,0x80,0x80, 0x80,0x00,0x00,0x00,0x0C,0x0C,0x86,0xC2,0xE2,0x7E,0x3E,0x1C,0x00,0x00,0xE0,0x18, 0x0C,0x84,0xE2,0x72,0x12,0xF2,0xF2,0x14,0x0C,0xF0,0x00,0x00,0x00,0x00,0xC0,0x20, 0x18,0x1E,0xFE,0xFC,0xE0,0x00,0x00,0x00,0x00,0x00,0xFE,0xFE,0xFE,0xC2,0x42,0x62, 0xE2,0xFE,0xBE,0x9C,0xC0,0xF0,0xF8,0x1C,0x0C,0x06,0x02,0x02,0x02,0x02,0x0E,0x1C, 0x00,0x00,0xFE,0xFE,0xFE,0x02,0x02,0x02,0x02,0x0E,0xFE,0xFC,0xF8,0x00,0x00,0x00, 0xFE,0xFE,0x7E,0x42,0x42,0x42,0xE2,0x02,0x06,0x00,0x00,0xFE,0xFE,0x7E,0x42,0x42, 0x42,0xE2,0x06,0xF0,0xF8,0x1C,0x0C,0x06,0x02,0x82,0x82,0x82,0x86,0x9C,0x8C,0x00, 0x00,0xFE,0xFE,0xFE,0x46,0x42,0x40,0x40,0x40,0xFE,0xFE,0x7E,0x02, 0x02,0x02,0xFE,0xFE,0x02,0x02,0x00,0x00,0x02,0x02,0xFE,0xFE,0x02, 0x02,0xFE,0xFE,0x82,0xC2,0xE0,0xF2,0x92,0x0A,0x06,0x02,0x02, 0x02,0xFE,0xFE,0x02,0x02,0x00,0x00,0x00,0x00,0x00, 0x02,0xFE,0x06,0x3C,0xF0,0xC0,0x00,0x80,0xE0,0x18,0x06,0xFE,0xFE,0x02, 0x02,0x06,0xFE,0x1E,0x38,0x70,0xE0,0x80,0x02,0xFE,0x02, 0xF0,0xF8,0x0C,0x06,0x02,0x02,0x02,0x06,0x0C,0xF8,0xF0, 0x02,0xFE,0xFE,0x42,0x42,0x42,0x42,0x66,0x3C,0x1C, }; const char font2l[]= { 0x00,0x18,0x1D,0x0D,0x00,0x00,0x00,0x98,0x79,0x39,0x00,0x00,0x00,0x00,0x01,0x02, 0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x04, 0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x10,0x08,0x08,0x08,0x04,0x04,0x02,0x02, 0x01,0x00,0x00,0x00,0x18,0x1A,0x1B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06, 0x0C,0x0B,0x17,0x14,0x12,0x13,0x14,0x0A,0x09,0x04,0x10,0x18,0x1E,0x03,0x01,0x01, 0x01,0x01,0x13,0x1F,0x1F,0x1E,0x10,0x00,0x10,0x1E,0x1F,0x1F,0x10,0x10,0x10,0x10, 0x18,0x0F,0x0F,0x07,0x03,0x07,0x0F,0x1C,0x18,0x10,0x10,0x10,0x10,0x08,0x0C,0x04, 0x10,0x1F,0x1F,0x1F,0x10,0x10,0x10,0x18,0x0C,0x0E,0x07,0x03,0x00,0x00,0x10,0x1F, 0x1F,0x1F,0x10,0x10,0x10,0x10,0x18,0x1C,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x00, 0x00,0x00,0x00,0x07,0x0F,0x1C,0x18,0x10,0x10,0x10,0x18,0x0F,0x0F,0x0F,0x00,0x10, 0x1E,0x1F,0x1F,0x10,0x00,0x00,0x00,0x10,0x1C,0x1F,0x1F,0x10,0x00, 0x10,0x10,0x1F,0x1F,0x10,0x10,0x38,0x20,0x20,0x20,0x1F,0x1F,0x00, 0x10,0x1F,0x1F,0x10,0x10,0x01,0x13,0x17,0x1F,0x1E,0x1C,0x18, 0x10,0x1F,0x1F,0x10,0x10,0x10,0x10,0x18,0x18,0x1E, 0x10,0x1F,0x10,0x00,0x03,0x1F,0x0E,0x03,0x00,0x10,0x10,0x1F,0x1F,0x10, 0x00,0x10,0x1F,0x10,0x00,0x00,0x01,0x03,0x0F,0x1F,0x00, 0x03,0x07,0x0C,0x18,0x10,0x10,0x10,0x18,0x0C,0x07,0x03, 0x10,0x1F,0x1F,0x10,0x10,0x00,0x00,0x00,0x00,0x00, }; /*////////////////////// 81 Q 82 R 83 S 84 T 85 U 86 V 87 W 88 X 89 Y 90 Z 91 [ 92 \ 93 ] 94 ^ 95 _ 96 ` 97 a 98 b 99 c 100 d 101 e 102 f 103 g 104 h 105 i 106 j*/ //vi tri ki tu const char font3[]= {0,14,26,37,48,60,72,88,100,112,122,127,137,142,152,160,165,175,185,194,204,214,221,231,241,246,2 51}; //ma chu const char font3h[]= { 0xE0,0xF8,0xFC,0x0C,0x06,0x02,0x02,0x02,0x06,0x0C,0xFC,0xF8,0xE0,0x00,0x02,0xFE, 0xFE,0xFE,0x82,0x82,0xC2,0xC6,0xFE,0x3E,0x1C,0x00,0x38,0x7C,0xFE,0xE6,0xE2,0xE2, 0xC2,0xC6,0xCC,0x80,0x00,0x0E,0x06,0x02,0x02,0xFE,0xFE,0xFE,0x02,0x02,0x06,0x0E, 0x02,0xFE,0xFE,0xFE,0x02,0x00,0x00,0x00,0x00,0x02,0xFE,0x02,0x02,0x3E,0xFE,0xFE, 0xC2,0x00,0x00,0x00,0xC2,0x7E,0x0E,0x02,0x02,0x7E,0xFE,0xFE,0x80,0x00,0x82,0xFE, 0xFE,0xFE,0xE2,0x00,0x00,0xC2,0x3E,0x02,0x02,0x06,0x1E,0x3E,0xFA,0xE0,0xE0,0xB0, 0x1E,0x06,0x02,0x00,0x02,0x06,0x1E,0x3E,0x7A,0xE0,0xC0,0x80,0x60,0x3E,0x0E,0x02, 0x00,0x0E,0x06,0x82,0xE2,0xF2,0xFE,0x3E,0x0E,0x02,0x00,0xFE,0xFE,0xFE,0x02,0x00, 0x00,0x02,0x1C,0x70,0x80,0x00,0x00,0x00,0x00,0x02,0xFE,0xFE,0xFE,0x00,0x00,0x00, 0xC0,0x38,0x0E,0x02,0x1C,0x70,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x02,0x06,0x06,0x08,0x00,0x60,0x60,0x20,0x20,0xE0,0xC0,0xC0,0x00,0x00,0x04, 0xFE,0xFE,0xFE,0x40,0x20,0xE0,0xE0,0x80,0x00,0x80,0xC0,0xE0,0x60,0x20,0x60,0xE0, 0xC0,0x00,0x80,0xC0,0xE0,0x60,0x20,0x24,0xFE,0xFE,0xFE,0x00,0x80,0xC0,0xE0,0x20, 0x20,0xE0,0xE0,0xC0,0x00,0x00,0x20,0xFC,0xFE,0xFE,0x22,0x02,0x00,0x80,0xC0,0xE0, 0x20,0x20,0xE0,0xE0,0xE0,0x20,0x00,0x04,0xFE,0xFE,0xFE,0x20,0x20,0xE0,0xE0,0xC0, 0x00,0x44,0xEE,0xEE,0xEE,0x00,0x40,0xEE,0xEE,0xEE,0x00,}; const char font3l[]= { 0x03,0x07,0x0F,0x0C,0x18, 0x10,0x1E,0x30,0x78,0xCC,0x8F,0x87,0x81,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x01, 0x1F,0x1F,0x1E,0x18,0x10,0x04,0x0C,0x18,0x10,0x10,0x11,0x19,0x0F,0x0F,0x07,0x00, 0x00,0x00,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x00,0x00,0x07,0x0F,0x1F,0x18, 0x10,0x10,0x10,0x10,0x08,0x07,0x00,0x00,0x00,0x01,0x07,0x0F,0x1F,0x18,0x0E,0x03, 0x00,0x00,0x00,0x00,0x00,0x03,0x0F,0x1F,0x1C,0x07,0x00,0x01,0x0F,0x1F,0x1F,0x0E, 0x01,0x00,0x00,0x10,0x18,0x1E,0x13,0x01,0x01,0x03,0x17,0x1F,0x1C,0x18,0x10,0x00, 0x00,0x00,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x00,0x18,0x1C,0x1F,0x1F,0x13, 0x11,0x10,0x10,0x18,0x1C,0x00,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x01, 0x0E,0x18,0x00,0x00,0x80,0xFF,0xFF,0xFF,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0x02,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00, 0x0E,0x1E,0x1F,0x11,0x11,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x0F,0x1F,0x1F,0x10,0x10, 0x1F,0x0F,0x07,0x00,0x07,0x0F,0x1F,0x18,0x10,0x10,0x10,0x08,0x00,0x07,0x0F,0x1F, 0x18,0x10,0x10,0x1F,0x1F,0x1F,0x00,0x07,0x0F,0x1F,0x1A,0x13,0x13,0x11,0x09,0x00, 0x00,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x63,0xE7,0xEF,0x90,0x90,0x9F,0xFF,0xE7, 0x60,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x1F, 0x00,0x80,0xFF,0xFF,0x7F,0x00, }; /*////////////////////// 107 k 108 l 109 m 110 n 111 o 112 p 113 q 114 r 115 s 116 t 117 u 118 v 119 w 120 x 121 y 122 z 123 { 124 | 125 ** 126 ~ */ //vi tri ki tu const char font4[]= {0,10,15,30,40,50,60,69,76,84,90,100,109,122,131,140,148,154,164,170,189,}; //ma chu const char font4h[]= { 0x04,0xFE,0xFE,0xFE,0x00,0x80,0xE0,0x60,0x20,0x00,0x04,0xFE,0xFE,0xFE,0x00,0x40, 0xE0,0xE0,0xE0,0x40,0x20,0xE0,0xE0,0xC0,0x20,0x20,0xE0,0xE0,0xC0,0x00,0x40,0xE0, 0xE0,0xE0,0x40,0x20,0xE0,0xE0,0xC0,0x00,0x80,0xC0,0xE0,0x60,0x20,0x60,0xE0,0xC0, 0x80,0x00,0x40,0xE0,0xE0,0xE0,0x20,0x20,0xE0,0xC0,0x80,0x00,0x80,0xC0,0xE0,0x20, 0x20,0xC0,0xE0,0xE0,0x00,0x40,0xE0,0xE0,0xC0,0x60,0x60,0x60,0xC0,0xE0,0xE0,0x20, 0x20,0x60,0x40,0x00,0x20,0xE0,0xFC,0xFC,0x20,0x20,0x00,0xE0,0xE0,0xE0,0x00,0xC0, 0xE0,0xE0,0x00,0x00,0x20,0xE0,0xE0,0xE0,0x00,0x00,0x20,0xE0,0x20,0x20,0xE0,0xE0, 0x20,0x00,0x20,0xE0,0xE0,0x00,0x00,0xE0,0xE0,0x20,0x20,0x60,0xE0,0xE0,0x80,0xA0, 0xE0,0x20,0x00,0x20,0xE0,0xE0,0x20,0x00,0x00,0x20,0xE0,0x20,0x40,0x60,0x20,0xA0, 0xE0,0xE0,0x60,0x00,0x00,0xFC,0xFE,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00, 0x00,0x00,0x00,0x10,0x14,0x36,0x3E,0x18,0x24,0x00, 0x00,0x00,0xC0,0x30,0x0C,0x04,0x26,0x62,0x23,0x01,0x01,0x23,0x62,0x26,0x04,0x1C,0x70,0x80,0x00, }; const char font4l[]= { 0x10,0x1F,0x1F,0x1F,0x11,0x07,0x1E,0x1C,0x18,0x00,0x10,0x1F,0x1F,0x1F,0x10,0x10, 0x1F,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x10,0x1F, 0x1F,0x1F,0x10,0x10,0x1F,0x1F,0x1F,0x10,0x07,0x0F,0x1F,0x18,0x10,0x18,0x1F,0x0F, 0x07,0x00,0x80,0xFF,0xFF,0xFF,0x90,0x18,0x1F,0x0F,0x07,0x00,0x07,0x1F,0x1F,0x10, 0x90,0xFF,0xFF,0xFF,0x80,0x10,0x1F,0x1F,0x1F,0x10,0x00,0x00,0x09,0x13,0x13,0x13, 0x1F,0x1F,0x0E,0x00,0x00,0x1F,0x1F,0x1F,0x10,0x10,0x00,0x0F,0x1F,0x1F,0x10,0x1F, 0x1F,0x1F,0x10,0x00,0x00,0x01,0x07,0x1F,0x1E,0x18,0x06,0x01,0x00,0x00,0x03,0x0F, 0x1F,0x10,0x0E,0x03,0x0F,0x1C,0x1C,0x0F,0x01,0x00,0x10,0x18,0x1D,0x03,0x17,0x1F, 0x1C,0x18,0x10,0x00,0x83,0x87,0x8F,0x48,0x38,0x1F,0x07,0x00,0x18,0x1C,0x1F,0x17, 0x13,0x10,0x18,0x00,0x01,0x7F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00, 0x00,0x00,0x00,0x00,0x00,0x36,0x3E,0x18,0x24,0x00, 0x00,0x00,0x07,0x18,0x30,0x62,0x4C,0xC8,0x90,0x90,0x90,0x90,0xC8,0x4C,0x62,0x30,0x18,0x07,0x00, }; /*/////////// 127 Ư 128 ầ 129 ỹ 130 ‚ 131 ƒ 132 „ 133 … 134 † 135 ‡ 136 ˆ 137 ‰ 138 Š 139 ‹ 140 Œ 141 ì 142 Ä 143 Å 144 É 145 ‘ 146 ’ 147 “ 148 ” 149 • 150 – 151 — 152 ˜ 153 ™ 154 š 155 › 156 œ 157 ¥ 158 P 159 ƒ 160 ỏ 161 162  163 Ê 164 Ô 165 Ơ 166 Ư 167 Đ 168 ă 169 â 170 ê 171 ô 172 173 174 đ 175 ¯ 176 ° 177 ± 178 ² 179 ³ 180 181 182 ả 183 ã 184 185 186 187 ằ 188 ẳ 189 ẵ 190 ¾ 191 ¿ 192 À 193 Á 194  195 196 197 198 ặ 199 ầ 200 È 201 É 202 Ê 203 Ë 204 Ì 205 Í 206 Ỵ 207 Ï 208 Ð 209 Đ 210 Ị 211 Ĩ 212 Ơ 213 Õ 214 Ư 215 × 216 Ø 217 Ù 218 Ú 219 Û 220 ĩ 221 í 222 ị 223 ò 224 225 226 â 227 ã 228 ä 229 å 230 ổ 231 ỗ 232 ố 233 ộ 234 235 ë 236 ì 237 í 238 ỵ 239 ï 240 ð 241 đ 242 ị 243 ó 244 245 õ 246 247 ÷ 248 ø 249 ù 250 ỳ 251 ỷ 252 ỹ 253 ý 254 ỵ 255 ÿ */ MỤC LỤC Danh sách hình i Danh sách bảng iii Chƣơng DẪN NHẬP 1.1 Đặt vấn đề 1.2 Lý chọn đề tài 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục đề tài Chƣơng CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu 2.2 Tổng quan vi điều khiển PIC18F4620 2.2.1 Sơ đồ khối PIC18F4620 2.2.2 Sơ đồ chân nhớ 2.2.3 Các cổngI/O PIC18F6420 2.2.4 Truyền thông nối tiếp EUART 2.2.5 Ngắt (interrupt) 2.3 Chức thông số LCD16x2 2.3.1 2.4 Chức chân LCD16x2 Module led ma trận 2.4.1 Cấu tạo 2.4.2 Nguyên lý hoạt động 2.4.3 Tập lệnh cho LCD16X2 11 2.5 Led ma trận P10 11 2.5.1 Thông số module led ma trận P10 (16x32) 11 2.5.2 Nguyên lý hoạt động led ma trận P10 13 2.5.3 Sơ đồ quét sơ đồ dịch liệu module led P10 13 2.6 Phương pháp hiển thị sử dụng ghi dịch 14 2.6.1 Quét cột 14 2.6.2 Quét hàng 14 2.6.3 Ưu – nhược điểm phương pháp sử dụng ghi dịch 15 2.7 Tổng quan GSM 16 2.7.1 Giới thiệu GSM 16 2.7.2 Cấu trúc mạng GSM 16 2.7.3 Mạng di động MS (Mobile – Station) 16 2.8 Tổng quan tin nhắn SMS 17 2.8.1 Giới thiệu 17 2.8.2 Cấu trúc tin nhắn SMS 17 2.9 Tổng quan SIM900 17 2.9.1 Nguồn cung cấp 17 2.9.2 Bật/tắt SIM900 18 2.9.3 Cách thức giao tiếp nối tiếp 18 2.9.4 Cách thiết lập lệnh at cho SIM900 20 2.10 Truyền liệu nối tiếp 27 2.10.1 Truyền liệu nối tiếp USART 27 2.10.2 Truyền liệu nối tiếp đồng 28 2.10.3 Truyền liệu nối tiếp bất đồng 29 2.11 Chuẩn RS232 30 2.11.1 Giới thiệu chuẩn RS232 30 2.11.2 Đặc điểm 31 2.11.3 Cổng RS232 máy tính 31 Chƣơng 3.THIẾT KẾ PHẦN CỨNG 33 3.1 Sơ đồ khối 33 3.2 Thiết kế phần cứng 33 3.2.1 Sơ đồ nguyên lý mạch điều khiển 33 3.2.2 Module SIM900A 35 3.2.3 Khối giao tiếp máy tính 36 3.2.4 Khối điều khiển 36 3.2.5 Khối hiển thị led P10 37 3.2.6 Thiết kế mạch nguồn 38 3.2.7 Sơ đồ board mạch 39 Chƣơng THIẾT KẾ PHẦN MỀM 42 4.1 Giới thiệu tập lệnh AT 42 4.2 Giới thiệu ngôn ngữ CCS 43 4.3 Giới thiệu phần mềm PIC C compiler 44 4.3.1 Giới thiệu sơ lược cách sử dụng trình biên dịch PIC C compiler 45 4.3.2 Cách lập trình phần mềm PIC C compiler: 47 4.4 Giới thiệu phần mềm nạp chương trình Burn-E programmer 49 4.5 Giao tiếp máy tính 53 4.5.1 Giới thiệu giao diện điều khiển 53 4.5.2 Thiết kế giao diện điều khiển 53 4.5.3 Lập trình kết nối 57 4.6 Lưu đồ giải thuật chương trình 59 4.6.1 Lưu đồ giải thuật 59 4.6.2 Giải thích lưu đồ 60 4.6.3 Chương trình 61 Chƣơng KẾT QUẢ NGHIÊN CỨU 63 5.1 Kết 63 5.2 Kết 63 Chƣơng KẾT LUẬN – HƢỚNG PHÁT TRIỂN 65 6.1 Kết luận 65 6.2 Hướng phát triển 65 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC 67 DANH SÁCH HÌNH VẼ Hình 2.1 sơ đồ khối vi điều khiển PIC18F4620 Hình 2.1 Sơ đồ chân PIC18F4620 Hình 2.2 LCD 16x2 Hình 2.4 Cấu tạo Led ma trận Hình 3.2 LCD 16x2 10 Hình 2.5 Mặt trước led ma trận P10 12 Hình 2.6 Mặt sau led ma trận P10 13 Hình 2.7 Sơ đồ quét led ma trận P10 13 Hình 2.8 Sơ đồ dịch led ma trận P10 14 Hình Sơ đồ khối led ma trận P10 14 Hình 2.10 Lưu đồ trình quét hàng 15 Hình 2.11 Cấu trúc mạng GSM 16 Hình 2.12 Nối chân VBAT cho SIM900 17 Hình 2.13 Điện áp VBAT trình truyền 18 Hình 2.14 Giản đồ xung mô tả cách bật/tắt SIM900 18 Hình 2.15 Kết nối giao tiếp nối tiếp module khách hàng 19 Hình 2.16 Thiết lập cấu hình mặc định 22 Hình 2.17 Khởi tạo vùng nhớ 23 Hình 2.18 Nhận đọc tin nhắn 24 Hình 2.19 Gửi tin nhắn 26 Hình 2.20 Truyền liệu nối tiếp 28 Hình 2.21 Các kiểu truyền liệu 28 Hình 2.22 Truyền diệu nối tiếp đồng 29 Hình 2.23 Truyền liệu nối tiếp bất đồng UART 30 Hình 2.24 Cổng DB9 thực tế 32 Hình 2.25 Sơ đồ bố trí chân 32 Hình 3.1 Sơ đồ khối hệ thống 33 Hình 3.2 Sơ đồ nguyên lý mạch điều khiển 34 Hình 3.3 Mặt module SIM900A 35 Hình 3.4 Mặt module SIM900A 35 Hình 3.5 Sơ đồ giao tiếp Module SIM900A với Vi điều khiển 35 Hình 3.6 Sơ đồ giao tiếp khối giao tiếp máy tính với vi điều khiển 36 Hình 3.7 Sơ đồ nguyên lý khối điều khiển 37 Hình 3.8 Khối hiển thị ma trận led 16x128 38 i Hình 3.9 Sơ đồ nguyên lý khối nguồn 38 Hình 3.10 Sơ đồ bố trí linh kiện 39 Hình 3.11 Sơ đồ mạch in mặt trước 40 Hình 3.12 Sơ đồ mạch in mặt sau 40 Hình 3.13 Phần cứng hoàn chỉnh 41 Hình 4.1 Biểu tượng PIC C Compiler 44 Hình 4.2 Quá trình lập trình, biên dịch nạp chương trình vào PIC 44 Hình 4.3 Giao diện trình biên dịch PIC C Compiler 45 Hình 4.4 Mục File 45 Hình 4.5 Mục Project 46 Hình 4.6 Mục Edit 46 Hình 4.7 Mục Compile 47 Hình 4.8 Cửa sổ Project 47 Hình 4.9 Lưu file định dạng pjt 48 Hình 4.10 Chọn loại PIC cần dùng tần số dao đông thạch anh 48 Hình 4.11 Giao diện lập trình 49 Hình 4.12 Mạch nạp Burn-E thực tế 49 Hình 4.13 Giao diện chương trình nạp mạch nạp Burn-E 50 Hình 4.14 Kết nối mạch nạp với Chip Vi điều khiển 51 Hình 4.15 Chọn PIC cần nạp kiểm tra kết nối với PIC 51 Hình 4.16 Thiết lập thông số cho mạch nạp 52 Hình 4.17 Giao diện điều khiển máy tính 53 Hình 4.18 Giao diện chỉnh Visual Basic 6.0 54 Hình 4.19 Giao diện Form 55 Hình 4.20 Giao diện sau đưa đối tượng lên 55 Hình 4.21 Giao diện ô Properties đối tượng 56 Hình 4.22 Cửa sổ viết chương trình 56 Hình 4.23 Các đối tượng lập trình 57 Hình 4.24 Các biến cố (hành động) áp dụng cho đối tượng 57 Hình 25 Lưu đồ giải thuật 59 Hình 5.1 Mặt trước mạch điều khiển 63 Hình 5.2 Mặt sau mặt điều khiển 64 Hình 5.3 Kết đạt 64 ii DANH SÁCH BẢNG Bảng 2 Ký hiệu chức chân LCD16x2 Bảng 2.3 Ý nghĩa chân cổng DB9 33 Bảng 4.2 Bảng phân loại câu lệnh AT mở rộng 43 iii ... chức VSS Chân nối đất cho LCD, thi? ??t kế mạch ta nối chân với GND mạch điều khiển VDD Chân cấp nguồn cho LCD, thi? ??t kế mạch ta nối chân với VCC = V mạch điều khiển VEE Điều chỉnh độ tương phản LCD... động, chờ tín hiệu điều khiển, … - Giao tiếp với máy tính: nhận tín hiệu từ máy tính - Điều khiển bảng quang báo hiển thị nội dung gửi lên từ máy tính tin nhắn SMS từ module sim PIC18F4620 hỗ trợ... tiếp đồng Thi? ??t bị kết với với thi? ??t bị đường, đường liệu đường xung nhịp Cứ lần thi? ??t bị muốn gửi bit liệu, thi? ??t bị điều khiển đường xung nhịp chuyển từ mức thấp lên mức cao báo cho thi? ??t bị