Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
0,97 MB
Nội dung
Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ BỘ MÔN ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN KỸ THUẬT VI XỬ LÝ THIẾT KẾ VÀ ĐIỀU KHIỂN CẢNH BÁO ĐỘ ẨM ĐẤT QUA SMS Giáo viên hướng dẫn: TRẦN HỮU DANH Sinh viên thực hiện: NGUYỄN THỊ BẢO TRÂN MSSV: B1708984 Cần Thơ, ngày 05 tháng 07 năm 2020 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ HỆ THỐNG KÍCH HOẠT SIM VÀ CARD ABSTRACT System automatic day as return and will be important in cuoc song people Current max Failed to nghien cuu the system automatic are also return and will be popular and Multiline as higher than Following is one of a system automatic: enabled sim Because our goal is to help save time, effort and money, while ensuring we can use the sim best way At the same time other purposes and for human applications can be expanded scale To implement this system we use sim908 mudule Type mudule sim integrated GPRS and GPS Keywords: automated system, activated sim Title: a system and activated sim TÓM TẮT Hệ thống tự động ngày trở nên quan trọng sống người đại.Việc nghiên cứu hệ thống tự động trở nên phổ biến đa dạng Dưới hệ thống tự động:kích hoạt sim Vì mục đích giúp ta tiết kiệm thời gian, công sức tiền bạc đảm bảo ta sử dụng sim cách tơt Đồng thời nhằm mục đích khác ứng dụng cho người ta mở rộng qui mô lớn Để thực hệ thống ta sử dụng mudule sim908 Loại mudule sim tích hợp GPRS GPS Từ khóa: Hệ thống tự động,kích hoạt sim GIỚI THIỆU Hiện muốn sử dụng Sim mua trực tiêp từ nhà sản xuất ta phải thực số thao tác như:gọi 900, bắm *101# Việc làm thời gian công sức với người sử dụng Đối với hàng bán sim việc kích hoạt phải thực trước cho khách hàng, với lượng sim lớn làm phương pháp thủ cơng thời gian Thực tế đặt vấn đề,phải có thiết bị kich hoat sim Thiết bị phải kích hoạt đồng thời nhiều sim nhanh chóng nhằm mang lại tiện lợi cho người sử dụng Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ 2PHƯƠNG TIỆN VÀ PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Phương tiện Để hoàn thành đồ án phải sử dụng msp430 có tích hợp UART, mudule sim800L, phần mền Proteus nhằm mô kết quả, phần mền IAR Embedded Wordbech,phần mền hercules 2.2 Phương pháp HỆ CẢM BIẾN ĐỘNG BỘ XỬ LÝ TRUNG TÂM BÁO UART MODULE GỬI SMS SIM800L 2.2.1 Khối xử lí Với yêu cầu theo hướng thiết kế ta sử dụng msp430g2553 làm IC xử lý.Msp430g2553 tích hợp mudule USART1 USCI_A0 Trong USCI module hỗ trợ nhiều chế độ truyền thông phổ biến, phần khảo sát UART chủ yếu module USCI_Ax + USCI_Ax hỗ trợ chế độ giao tiếp: UART, IrDA, SPI Đặc điểm UART: -7 bit data với bit kiểm tra chẵn lẽ không - Có ghi dịch, ghi đệm truyền nhận độc lập - Bắt đầu truyền nhận liệu từ bit LSB MSB - Có khả phát cạnh bắt đầu truyền đến tự động đánh thức từ chế độ tiết kiệm nguồn - Tốc độ baud lập trình, có điều chỉnh bổ sung để nâng cao độ xác - Có cờ trạng thái dùng cho phát ngăn chặn lỗi - Có khả ngắt truyền nhận độc lập Định dạng chuỗi liệu: -Chuỗi liệu bao gồm: bit start, bit liệu có bit kiểm tra chẵn lẻ, bit địa chỉ, bit stop Thiêt lập tốc độ Baund: Có chế độ hoạt động: Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ -Khi UCOS16=0, dùng cho thiết lập tốc độ baud nguồn tần số thấp Tốc độ baud tối đa 1/3 lần tần số nguồn xung clock + UCA0BRx = INT(N) + UCBRSx = round (( N − INT(N)) × ) Với N: -Khi UCOS16=1, dùng cho thiết lập tốc độ baud nguồn tần số cao Tốc độ baud tối đa 1/16 lần tần số nguồn xung clock + UCBRx = INT(N/16) + UCBRFx = round (((N/16) − INT (N/16)) × 16 2.2.2 Khối Sim 800L Mạch GSM GPRS SIM800L Mini giao tiếp với Vi điều kiển qua giao tiếp UART (lưu ý với Vi điều khiển sử dụng 5VDC cần mắc thêm mạch chuyển mức Logic trở phân áp sang 3.3VDC để tránh làm cháy mạch), thích hợp với ứng dụng gọi điện nhắn tin SMS GSM, GPSR Thơng số kỹ thuật: Nguồn cấp: 4.2VDC , sử dụng với nguồn dòng thấp từ 500mAh trở lên (như cổng USB, nguồn từ Board Arduino) Nhưng khuyên bạn nên dùng nguồn có dịng áp đủ 4.2V-1A để đảm bảo mạch hoạt động ổn định Khe cắm SIM : MICROSIM Dòng chế độ chờ: 10 mA Dòng hoạt động: 100 mA đến 1A Hỗ trợ băng tần phổ biến Kích thước: 25 mm x 22 cm Thứ tự chân hình: Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ Chức chân: VCC: Nguồn vào 4.2V TXD: Chân truyền Uart TX RXD: Chân nhận Uart RX DTR : Chân UART DTR, thường không xài SPKP, SPKN: ngõ âm thanh, nối với loa để phát âm (8 Ohm-0.87W) MICP, MICN: ngõ vao âm thanh, phải gắn thêm Micro để thu âm Reset: Chân khởi động lại Sim800L (thường không xài) RING : báo có gọi đến GND: Chân Mass, cấp 0V 2.2.3 Khối Phím Điều Khiển Các chân thường trực mức cao, nhấn nút chân trở mức thấp, tùy vào cách nối chân vào msp430 mà chân có nhiệm vụ thực lệnh gọi hay nhắn tin 2.2.4 Khối hiển thị LCD Khối hiển thị LCD 16x2 - LCD 16x2 loại hình tinh thể lỏng hiển thị 16 kí tự có hai dịng hiển thị, mổi kí tự tạo nên từ ma trận điểm 5x7 5x10 - Có thể giao tiếp chế độ 4bit bit, tốc độ giao tiếp BUS 2MHz Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ -Sơ đồ chân LCD: Chân - Vss điện 0V ; Chân - Vcc điện +5V; Chân - Vee chỉnh độ tương phản; Chân - RS, RS = ghi lệnh, RS = ghi liệu; Chân - R/W, R/W = ghi liệu, R/W = dọc liệu Chân - E chân cho phép thực thi lệnh; Chân - DB0 đến 14-DB7 chân liệu Chân 15 - A chân Anot đèn LCD; Chân 16 - K chân Katot đèn LCD - Nguyên tắc hoạt động: chân 1,2,3 chân VSS , VDD, VEE VSS chân nối đất , VEE chân chọn độ tương phản chân chọn qua biến trở 10K đầu nối VCC , đầu nối mass Chân VDD nối dương nguồn Chân chọn ghi RS (Register Select): Có hai ghi LCD, chân RS(Register Select) dùng để chọn ghi, sau: Nếu RS = chế độ ghi lệnh xóa hình, bật tắt trỏ… Nếu RS=1 chế độ ghi liệu hiển thị ký tự, chữ số lên hình Chân đọc/ ghi (R/W): Đầu vào đọc/ghi cho phép người dùng ghi thông tin lên LCD R/W=1 - Chân cho phép E (Enable): Chân cho phép E sử dụng LCD để chốt liệu Khi liệu đến chân liệu cần có xung từ mức cao xuống mức thấp chân để LCD chốt liệu , xung phải có độ rộng tối thiểu 450ns - Chân D0-D7 : Đây chân liệu bit, dùng để gửi thông tin lên LCD đọc nội dung ghi LCD Để hiển thị Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ chữ số gửi mã ASCII chữ số tương ứng đến chân bật RS =1; 2.2.5 Cảm biến độ ẩm đất Soil Moisture Sensor Cảm biến độ ẩm đất Soil Moisture Sensor thường sử dụng mơ hình tưới nước tự động, vườn thông minh, , cảm biến giúp xác định độ ẩm đất qua đầu dò trả giá trị Analog, Digital qua chân tương ứng để giao tiếp với Vi điều khiển để thực vô số ứng dụng khác Thông số kỹ thuật: Điện áp hoạt động: 3.3~5VDC Tín hiệu đầu ra: o Analog: theo điện áp cấp nguồn tương ứng o Digital: High Low, điều chỉnh độ ẩm mong muốn biến trở thông qua mạch so sánh LM393 tích hợp Kích thước: x 1.6cm Sơ đồ chân: VCC GND DO AO 3V ~ 5V GND nguồn ngồi Đầu tín hiệu số (mức cao mức thấp) Đầu tín hiệu tương tự (Analog) CODE CẢNH BÁO ĐỘ ẨM ĐẤT QUA SMS #include "msp430g2553.h" #include "LCD_24.h" #include "string.h" #define CR 13 // CR=inter #define CtrlZ 26 unsigned long am0;//bien lay gia tri adc10mem float am1;//gia tri thuc int doam;//gia tri nguyen unsigned int getadcvalue(void);//ham lay gia tri bien doi adc int doamset = 60; Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ unsigned int i,j,a,b,c,d,e,k,h,l; //************************************************** void send_text(char kt) { while (!(IFG2&UCA0TXIFG)); UCA0TXBUF=kt; delay_cycles(20000); } //****************send_string**** void send_str(char chuoi[]) { while(chuoi[i]!='\0') { while (!(IFG2&UCA0TXIFG)); UCA0TXBUF=chuoi[i]; delay_cycles(20000); i++;} i=0; } //************************ send cmd void sendcmd(char cmd[],char dk) { while(cmd[i]!='\0') { while (!(IFG2&UCA0TXIFG)); Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ UCA0TXBUF=cmd[i]; delay_cycles(20000); i++; } UCA0TXBUF=dk; // ki tu dien khien delay_cycles(20000); i=0; } //*************send_sms************************************ void sendsms(char*sdt,char *message) { sendcmd("AT",CR); // Kiem tra duong truyen delay_cycles(200000); send_str("AT+CMGF=1"); send_text(CR); send_str("AT+CMGS="); send_text('"'); send_str(sdt); send_text('"'); send_text(CR); delay_cycles(200000); sendcmd(message,CtrlZ); // noi dung tin nhan delay_cycles(2000000); } //****************call************************************* Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ void call(char *sdt) { sendcmd("AT",CR);// kiem tra duong truyen delay_cycles(200000); send_str("ATD");// truyen chuoi send_str(sdt); send_text(';'); send_text(CR); delay_cycles(20000); } // bien adc void main(void) { char *sdt, *message; sdt="0379418406"; message="Dat kho ban"; WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ;// tan so dao dong noi 1MHZ DCOCTL = CALDCO_1MHZ; P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD UCA0CTL1 |= UCSSEL_2; // SMCLK UCA0BR0 = 104; // 1MHz 9600 UCA0BR1 = 0; // 1MHz 9600 UCA0MCTL = UCBRS0; // Modulation UCBRSx = UCA0CTL1 &= ~UCSWRST; // **Initialize USCI state machine** Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ // Thu vien LCD //#include "msp430g2553.h" //#include "intrinsics.h" #include "string.h" #include "stdio.h" #ifndef _LCD_INIT_H #define _LCD_INIT_H // -union reg { struct bit { unsigned char b0:1; unsigned char b1:1; unsigned char b2:1; unsigned char b3:1; unsigned char b4:1; unsigned char b5:1; unsigned char b6:1; unsigned char b7:1; }_BIT; unsigned char _BYTE; }; union reg* P2_DIR=(union reg*)0x2a; //khai bao dia chi o nho union reg* P2_OUT=(union reg*)0x29; union reg* P2_SEL=(union reg*)0x2e; union reg* P2_IN=(union reg*)0x28; 11 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ union reg* P1_SEL=(union reg*)0x26; union reg* P1_DIR=(union reg*)0x22; //khai bao dia chi o nho union reg* P1_OUT=(union reg*)0x21; union reg* P1_IN=(union reg*)0x20; //========================================================= ========================== =================================== //========================================================= ===================== //DINH NGHIA LCD: #define MCLK_F // frequency of Master Clock in MHz /**************************************************************************** * HARD DEFINITIONS ******************************************************************************/ /* Display ON/OFF Control definitions */ #define DON 0x0F /* Display on */ #define DOFF 0x0B /* Display off */ #define CURSOR_ON 0x0F /* Cursor on */ #define CURSOR_OFF 0x0D /* Cursor off */ #define BLINK_ON 0x0F /* Cursor Blink */ #define BLINK_OFF 0x0E /* Cursor No Blink */ /* Cursor or Display Shift definitions */ #define SHIFT_CUR_LEFT 0x04 /* Cursor shifts to the left */ #define SHIFT_CUR_RIGHT 0x05 /* Cursor shifts to the right */ #define SHIFT_DISP_LEFT 0x06 /* Display shifts to the left */ 12 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ #define SHIFT_DISP_RIGHT 0x07 /* Display shifts to the right */ /* Function Set definitions */ #define FOUR_BIT 0x2C /* 4-bit Interface */ #define EIGHT_BIT 0x3C /* 8-bit Interface */ #define LINE_5X7 0x30 /* 5x7 characters, single line */ #define LINE_5X10 0x34 /* 5x10 characters */ #define LINES_5X7 0x38 /* 5x7 characters, multiple line */ //========================================================= ===== #define LCD_RS P2_OUT -> _BIT.b1 #define LCD_RS_DIR P2_DIR -> _BIT.b1 #define LCD_EN P2_OUT -> _BIT.b3 #define LCD_EN_DIR P2_DIR -> _BIT.b3 #define LCD_DATA_4 P2_OUT -> _BIT.b4 #define LCD_DATA_4_DIR P2_DIR -> _BIT.b4 #define LCD_DATA_5 P2_OUT -> _BIT.b5 #define LCD_DATA_5_DIR P2_DIR -> _BIT.b5 #define LCD_DATA_6 P2_OUT -> _BIT.b6 #define LCD_DATA_6_DIR P2_DIR -> _BIT.b6 #define LCD_DATA_7 P2_OUT -> _BIT.b7 #define LCD_DATA_7_DIR P2_DIR-> _BIT.b7 /**************************************************************************** * MODULE PRIVATE FUNCTIONS: 13 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ * void lcd_delay_us (unsigned long t); * void lcd_delay_ms (unsigned long t); * void lcd_put_byte(unsigned char rs, unsigned char data); * ******************************************************************************/ //========================================================= ===================== //CHUONG TRINH DELAY: void delay_ms(unsigned int ms){ while(ms ){ delay_cycles(1000); } } unsigned int value; //================================ void lcd_delay_us (unsigned long t) { int i; for (i = 0; i<t; i++ ) delay_cycles(MCLK_F); } void lcd_delay_ms (unsigned long t) { int i; 14 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ for (i = 0; i<t; i++ ) delay_cycles(MCLK_F*1000); } //========================================================= ===================== //THU VIEN LCD : //***************************************************************************** // Send a byte of data (rs == 1) or command (rs == 0) to LCD //***************************************************************************** void lcd_put_byte(unsigned char rs, unsigned char data) { LCD_RS = 0; if(rs) LCD_RS = 1; lcd_delay_us(20); LCD_EN = 0; // send the high nibble if (data&BIT4) LCD_DATA_4 = 1; else LCD_DATA_4 = 0; if (data&BIT5) LCD_DATA_5 = 1; else LCD_DATA_5 = 0; if (data&BIT6) LCD_DATA_6 = 1; else LCD_DATA_6 = 0; if (data&BIT7) LCD_DATA_7 = 1; else LCD_DATA_7 = 0; 15 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ lcd_delay_us(20); LCD_EN = 1; lcd_delay_us(20); LCD_EN = 0; // send the low nibble if (data&BIT0) LCD_DATA_4 = 1; else LCD_DATA_4 = 0; if (data&BIT1) LCD_DATA_5 = 1; else LCD_DATA_5 = 0; if (data&BIT2) LCD_DATA_6 = 1; else LCD_DATA_6 = 0; if (data&BIT3) LCD_DATA_7 = 1; else LCD_DATA_7 = 0; lcd_delay_us(20); LCD_EN = 1; lcd_delay_us(20); LCD_EN = 0; } /**************************************************************************** * MODULE PUPLIC FUNCTIONS: * void lcd_init(void) * void lcd_clear(void) 16 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ * void lcd_gotoxy(unsigned char col, unsigned char row) * void lcd_putc(char c) * void lcd_puts(const char* s) * void lcd_clr_puts (const char* s1 , const char* s2) * void lcd_put_num (unsigned long val, char dec, unsigned char neg) ******************************************************************************/ //***************************************************************************** // Initialization for LCD module //***************************************************************************** void lcd_init(void) { // Set all signal pins as output LCD_RS_DIR = 1; LCD_EN_DIR = 1; LCD_DATA_4_DIR = 1; LCD_DATA_5_DIR = 1; LCD_DATA_6_DIR = 1; LCD_DATA_7_DIR = 1; LCD_RS = 0; LCD_EN = 0; lcd_delay_ms(500); // delay for power on // reset LCD lcd_put_byte(0,0x30); 17 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ lcd_delay_ms(500); lcd_put_byte(0,0x30); lcd_delay_ms(500); lcd_put_byte(0,0x32); lcd_delay_ms(500); // delay for LCD reset lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,FOUR_BIT & LINES_5X7); // Set LCD type lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,DOFF&CURSOR_OFF&BLINK_OFF); // display off lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,DON&CURSOR_OFF&BLINK_OFF); // display on lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,0x01); // clear display and move cursor to home lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,SHIFT_CUR_LEFT); // cursor shift mode lcd_delay_ms(2); // wait for LCD lcd_put_byte(0,0x01); // clear display and move cursor to home lcd_delay_ms(2); // wait for LCD } //***************************************************************************** // Clear the LCD 18 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ //***************************************************************************** void lcd_clear(void) { lcd_put_byte(0,0x01); // display off lcd_delay_ms(2); // wait for LCD } //***************************************************************************** // Move the pointer of LCD to coordinate (column, row) // Note that cursor is at (0,0) after reset of clear LCD //***************************************************************************** void lcd_gotoxy(unsigned char col, unsigned char row) { unsigned char address; if(row!=0) address=0x40; else address=0; address += col; lcd_put_byte(0,0x80|address); lcd_delay_ms(2); // wait for LCD } //***************************************************************************** 19 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ // Put a writable character on LCD // If the character is '\f', clear the LCD // If the character is '\n', move cursor to the second line //***************************************************************************** void lcd_putc(char c) { switch(c){ case '\f': lcd_put_byte(0, 0x01); lcd_delay_ms(2); // wait for LCD break; case '\n': lcd_gotoxy(0, 0x01); break; default: lcd_put_byte(1, c); lcd_delay_ms(2); // wait for LCD break; } } //***************************************************************************** // Put a string s[] on LCD // Please note that the string is ended with '/0' (or 0x00) //***************************************************************************** void lcd_puts(const char* s) 20 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ { while(*s){ lcd_putc(*s++); } } //***************************************************************************** // Clear LCD Put string s1[] on line and string s2[] on line //***************************************************************************** void lcd_clr_puts (const char* s1 , const char* s2) { lcd_clear (); lcd_puts (s1); lcd_gotoxy (0,1); lcd_puts (s2); } //***************************************************************************** // Put a constant or a number stored in 'val' on LCD // The number must be multiplied and convert in type "unsigned long" // or "unsigned int" // dec: amount of digits after '.' // neg: sign of the number, neg = if the number is positive // // Example 1: lcd_put_num(val, 3, 0); // val = 12345 21 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ // will put "12.345" on the LCD // Example 2: lcd_put_num(val, 6, 1); // val = 12345 // will put "-0.012345" on the LCD // // Note: This function may contain some bugs If you can detect and fix them // , please contact me :d //***************************************************************************** void lcd_put_num (unsigned long val, char dec, unsigned char neg) { char i, j, digit,k; long total; long temp; for (i = 0, total = val; total > 0;i++) // count number total /= 10; total = i; if (neg !=0 ) lcd_putc ('-'); if ((total - dec) <=0) // if total < dec put 0.xxx lcd_putc('0'); else { for (i=0; i< (total-dec); i++) 22 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ { temp = 1; for (j=1;j<(total-i);j++) temp *=10; digit = (val/temp)%10; lcd_putc(digit + 0x30); } } if (dec > 0) { lcd_putc('.'); if ( (dec - total)> 0) // ex: val = 55; dec = put 0.055 { for ( i = 0; i < (dec-total);i++) lcd_putc('0'); k = 0; } else k = total - dec; for (i=k; i< total; i++) { temp = 1; for (j=1;j<(total-i);j++) temp *=10; digit = (val/temp)%10; lcd_putc(digit + 0x30); 23 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ } } } void lcd_2n(unsigned char x) {lcd_putc((x/10)+48); lcd_putc((x%10)+48);} void lcd_3n(unsigned char x) {lcd_putc((x/100)+48); lcd_putc(((x/10)%10)+48); lcd_putc((x%10)+48);} #endif KẾT QUẢ THỰC HIỆN 24 Đồ án kĩ thuật vi xử lí Trường Đại học Cần Thơ 2.3 Kết nhận xét Kết mạch chạy ổn định , yêu cầu đồ án.Thực chức nhắn tin Thuận lợi : nhận hướng dẫn tận tình Thầy Trần Hữu Danh, nguồn tài liệu phong phú, bảo nhiệt tình bạn Khó khăn: Do lịch thi qúa nhiều nên gần báo cáo thực đồ án, lần đầu tiếp xúc msp430 modulesim nên có số khó khăn định ĐỀ NGHỊ Qua trình làm mạch chạy thử nhận ứng dụng mudule sim800l vào sống lớn,đề tài mở rộng lên,thực thêm nhiều chứa năng, khai thác tối đa chức mudule sim800l msp430 TÀI LIỆU THAM KHẢO [1] Giáo trình Kỹ Thuật Vi Điều Khiển MSP430FG4618 thầy Trần Hữu danh 25 ... (N/16)) × 16 2.2.2 Khối Sim 800L Mạch GSM GPRS SIM800L Mini giao tiếp với Vi điều kiển qua giao tiếp UART (lưu ý với Vi điều khiển sử dụng 5VDC cần mắc thêm mạch chuyển mức Logic trở phân áp... động, vườn thông minh, , cảm biến giúp xác định độ ẩm đất qua đầu dò trả giá trị Analog, Digital qua chân tương ứng để giao tiếp với Vi điều khiển để thực vô số ứng dụng khác Thông số kỹ thuật:... //doi den qua trinh chuyen doi ket thuc return ADC10MEM; } #pragma vector=ADC10_VECTOR interrupt void ADC10_ISR(void) { bic_SR_register_on_exit(CPUOFF); } Thư vi? ??n: 10 Đồ án kĩ thuật vi xử lí