cuchuoi_k15a2
New Member
Download miễn phí Đồ án Chương trình thu nhận, xử lý dữ liệu, thông báo sự cố trên nút mạng cảm nhận không dây, hiển thị bằng màn hình tinh thể lỏng - Lcd
MỤC LỤC
LỜI CẢM ƠN 1
MỞ ĐẦU 4
CHƯƠNG 1: GIỚI THIỆU VỀ MẠNG CẢM NHẬN KHÔNG DÂY (Wireless sensor Network - WSN) 6
1.1. Mạng cảm nhận không dây 6
1.2. Mô tả hệ thống 9
1.2.1. Các nút cảm nhận và truyền dữ liệu: 9
1.2.2. Nút mạng di động( Nhận và hiển thị ) 11
1.3. Kết luận 12
CHƯƠNG 2: TỔNG QUAN VỀ MÀN HÌNH TINH THỂ LỎNG – LCD VÀ VI ĐIỀU KHIỂN 13
2.1. Giới thiệu về Vi điều khiển 13
2.2. Vi điều khiển. 13
2.2.1. Vi điều khiển là gì ? 13
2.2.2. Kiến trúc của Vi điều khiển 13
2.2.3. Tập lệnh 14
2.3. Lập trình cho Vi điều khiển 14
2.4. Màn hình tinh thể lỏng-LCD 15
2.5. Kết luận 15
CHƯƠNG 3: MÀN HÌNH LCD 1620A VÀ VI ĐIỀU KHIỂN CC1010 16
3.1. Màn hình tinh thể lỏng LCD 1602A 16
3.2. Cơ chế hoạt động và điều khiển hiển thị trên LCD 17
3.3. Vi điều khiển CC1010 19
3.3.1. Bộ nhớ Flash: 20
3.3.2. Các cổng vào – ra chung: 21
3.3.3. Các bộ định thời: 22
3.3.4. Các cổng nối tiếp 23
3.3.5. Các bộ biến đổi ADC: 23
3.4. Kết luận 25
CHƯƠNG 4: PHẦN MỀM NHÚNG CHO HỆ ĐO NHIỆT ĐỘ TỰ ĐỘNG 26
4.1. Tổng quan về phần mềm nhúng 26
4.2. Các bước để xây dựng một phần mềm nhúng 26
4.3. Phần mềm nhúng viết cho vi điều khiển CC1010 27
4.3.1. Trường hợp truyền đơn bước 27
4.3.2. Trường hợp truyền đa bước 27
4.3.3. Thiết kế phần mềm nhúng 29
4.3.3.1. Phần mềm cho hệ truyền đơn bước ( single hop) 29
4.3.3.2. Phần mềm cho hệ truyền nối tiếp nhiều bước (multi hop ) 35
4.4. Kết luận 40
CHƯƠNG 5: CÀI ĐẶT THỬ NGHIỆM TRÊN HỆ THỐNG, CÁC KẾT QUẢ ĐÃ ĐẠT ĐƯỢC 41
5.1. Thử nghiệm truyền đơn bước (single hop) 42
5.2. Thử nghiệm truyền đa bước (multi hop) 49
5.3. Thực nghiệm đo hiệu suất truyền / nhận của mạng cảm nhận (gồm 2 nút mạng, 1 nút truyền và 1 nút nhận ) 54
Kết Luận 66
Các Tài Liệu Tham Khảo 68
http://cloud.liketly.com/flash/edoc/web-viewer.html?file=jh2i1fkjb33wa7b577g9lou48iyvfkz6-demo-2016-01-14-do_an_chuong_trinh_thu_nhan_xu_ly_du_lieu_canh_bao_su_co_tre_mYcmEbA1js.png /tai-lieu/do-an-chuong-trinh-thu-nhan-xu-ly-du-lieu-canh-bao-su-co-tren-nut-mang-cam-nhan-khong-day-hien-thi-bang-man-hinh-tinh-87314/
Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.
Ketnooi -
Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí
Tóm tắt nội dung tài liệu:
Khi (R/W) = 1 đọc thông tin từ LCD.
Đường Register Select (RS) ựa vào đường (RS) LCD sẽ làm rõ kiểu của dữ liệu trên đường dữ liệu.
Khi (RS) = 0 chọn thanh ghi mã lệnh, cho phép người dùng gửi lệnh lên LCD.
Khi (RS) = 1 chọn thanh ghi dữ liệu cho phép người dùng gửi dữ liệu cần hiển thị lên LCD.
Hai đường A, K là nguồn +5V dùng để điều khiển độ sáng tối của màn hình LCD, LCD 1602A có 8 đường dữ liệu từ DB0 đến DB7, hai đường Vss và Vee điều khiển độ tương phản của LCD.
Cơ chế hoạt động và điều khiển hiển thị trên LCD
Khi LCD được khởi động để sẵn sàng nhận dữ liệu hay lệnh cần thiết lập các đặc trưng của LCD như : độ dài giao diện, ghi mã lệnh (0x010) để tắt màn hình hiển thị, ghi mã lệnh (0x001) để xóa màn hình hiển thị, ghi mã lệnh hướng dịch chuyển của con trỏ, ghi mã lệnh cho phép hiển thị con trỏ ở trạng thái chờ, ghi mã lệnh (0x20) để cho phép chế độ 4bit làm việc.nếu nhận một ký tự nó sẽ ghi ký tự đó lên màn hình và di chuyển con trỏ sang phải một khoảng. Vùng con trỏ đánh dấu vùng tiếp theo là nơi ký tự tiếp theo được ghi lên. Khi muốn viết một chuỗi ký tự, đầu tiên chúng ta cần thiết lập địa chỉ ban đầu thường là 0 sau đó hiển thị lên màn hình.
Dữ liệu được đưa đến hiển thị trên màn hình LCD có độ dài 8 bit theo hai chế độ là 4bit và 8 bit. Chế độ 4 bit chia byte thành hai phần 4bit cao gửi trước, 4 bit thấp gửi sau, đồng thời gửi xung kích hoạt chân (E).Sau khi LCD được khởi tạo ta có thể viết các lệnh hay dữ liệu lên mà hình LCD.Sau mỗi lần viết mã lệnh lên LCD thì lại phải đợi một khoảng thời gian nhất định để thực hiện lệnh (khoảng 5ms) trong suốt thời gian này vi điều khiển không thể truy cập vào LCD.
Sau khi màn hình LCD được khởi tạo, có thể viết các lệnh hay dữ liệu lên LCD. Quá trình viết các kí tự giống như viết một byte điều khiển, chỉ khác về mức thế điều khiển trên RS. Nhờ việc lập bit RC qua lệnh di chuyển con trỏ / dịch chuyển màn hình trong quá trình khởi tạo, sau mỗi một kí tự được gửi đến màn hình LCD. Nội dung con trỏ tăng một đơn vị, con trỏ dịch tới vị trí tiếp theo ( bên phải hay bên trái ). Theo sơ đồ thiết kế LCD làm việc ở chế độ 4 bit, kết nối với CC1010EM qua cổng P2.
Một số các thông số điều khiển hướng dịch chuyển hiển thị của con trỏ trên màn hình:
ID : chỉ số tăng của con trỏ sau mỗi một bytes được hiển thị.
S : dịch chuyển màn hình hiển thị sau mỗi bytes được hiển thị.
Cho phép hiển thị mà hình / con trỏ:
D : On(1) / Off(0) màn hình.
C : On(1) / Off(0) con trỏ.
B : On(1) / Off(0) nhấp nháy con trỏ.
Di chuyển con trỏ trên mà hình hiển thị:
SC : On(1) / Off(0) Sự dịch chuyển màn hình hiển thị.
RL : Hướng dịch chuyển Phải(1) / Trái (0).
DL : Thiết lập độ dài dữ liệu 8bit(1) / 4bit(0).
N : Số dòng hiển thị 1dòng (0) / 2dòng (1).
F : Font ký tự 5x10 (1) / 5x7 (0).
Thăm dò cờ báo bận BUSY FLAG:
BF : Sét module đang trong quá trình sử lý
Dịch chuyển con trỏ tới vùng CGRAM để hiển thị A-Address đọc viết mã ASCII để hiển thị D-DATA.
Vi điều khiển CC1010
Vấn đề lựa chọn vi điều khiển để xây dựng nút mạng là một vấn đề rất quan trọng. Việc lựa chọn vi điều khiển hợp lý sẽ làm cho quá trình xây dựng hệ thống được rút ngắn, hệ thống có thể hoạt động ổn định, độ tin cậy cao và có thể đạt các chỉ tiêu đề ra như sau:
Tiêu thụ năng lượng thấp.
Bộ nhớ chương trình cũng như bộ nhớ dữ liệu có kích thước hợp lý.
Kích thước vật lý nhỏ.
Giá thành rẻ, dễ sử dụng, quen thuộc với người sử dụng....
Như đã giới thiệu ở chương 2 thì trên thế giới hiện nay có rất nhiều loại vi điều khiển khác nhau và các loại vi điều khiển đó đều thỏa mãn được các chỉ tiêu đề ra. Tuy nhiên 2 loại PIC và Motorola không có tích hợp truyền nhận không dây hay khi sử dụng chúng ta phải thiết kế thêm nhiều các thành phần phụ trợ rắc rối khác vì thế khi thiết kế hệ thống có thể gặp nhiều khó khăn, phức tạp. Vi điều khiển CC1010 được lựa chọn để làm nút mạng là thích hợp hơn tất cả các loại khác mà em từng được biết vì nó đã thỏa mãn được những yêu cầu đã đặt ra.
Vi điều khiển CC1010 được cung cấp bởi hãng điện tử nổi tiếng Chipcon, có lõi tương thích với vi điều khiển 8051 .Vi điều khiển CC1010 là dòng vi điều khiển mạnh ,kích thước nhỏ ,tiêu thụ năng lượng ít ,có thời gian sống dài ,có đủ tài nguyên phần cứng để đáp ứng chức năng mạng và chức năng cảm ứng thích hợp cho các ứng dụng truyền nhận không dây, CC1010 được tích hợp nhiều các chức năng phục vụ cho các ứng dụng không dây như bộ truyền nhận vô tuyến, bộ biến đổi ADC, bộ nhớ lập trình Flash...Vì vậy CC1010 chỉ cần đến rất ít các thành phần phụ khác để có thể trở thành một nút mạng cảm nhận không dây.
Đặc điểm chung của vi điều khiển CC1010
Vi điều khiển CC1010 có lõi là vi điều khiển 8051.
Tốc độ xử lý được nâng cấp nhanh hơn 2.5 lần so với 8051 chuẩn.
Có 32kb flash, 2048 + 128 Byte SRAM.
Có 4 bộ định thời.
Có 2 cổng UART, RTC.
Có 3 kênh ADC 10 Bit.
Giao diện lập trình SPI.
Bộ mã hóa DES tích hợp bên trong.
Có 26 chân vào ra chung.
Cần rất ít thành phần bên ngoài.
Độ nhạy cao (-107 dBm).
Nguồn nuôi từ 2,7 – 3,6 V.
Có bộ thu phát sóng vô tuyến 300 – 1000 MHz.
Tiêu thụ dòng thấp ( 9.1 mA trong chế độ thu ).
Công suất phát có thể lập trình được ( lên đến +10 dBm ).
Tốc độ thu phát dữ liệu lên đến 76.8 kbit/s.
Bộ nhớ Flash:
CC1010 có tích hợp 32-kbyte bộ nhớ lập trình flash. Nó được chia thành 256 trang, mỗi trang dài 128 byte. Nó có thể được lập trình hay xoá dữ liệu thông qua giao diện nối tiếp SPI hay thông qua vi nhân 8051. Tuổi thọ của bộ nhớ Flash thường là 20.000 lần ghi/xoá. Bộ nhớ Flash có thể được khoá để không đọc/ghi được bằng cách thiết lập bít tương ứng thông qua giao diện nối tiếp. Việc xoá chíp phải được thực hiện trên bộ nhớ không bị khoá. Ðiều này cho phép ngăn chặn phần mềm không bị copy trái phép.
Các cổng vào – ra chung:
Vi điều khiển CC1010 có tất cả 4 cổng vào - ra chung đó là: P0, P1, P2, P3. Mỗi cổng liên kết với 2 thanh ghi là:Thanh ghi cổng (P0, P1, P2, P3) và Thanh ghi hướng (P0dir, P1dir, P2dir, P3dir). Mỗi bit trên thanh ghi Px được liên kết với bit tương ứng trên thanh ghi hướng PxDIR. Việc thiết lập PxDIR.y sẽ làm cho chân Px.y trở thành đầu nhập dữ liệu và đưa vào bit Px (y). Tất cả các chân đều là chân nhập dữ liệu khi mà reset lại chip. Việc xóa bit hướng PxDir.y sẽ làm cho chân Px.y trở thành chân xuất dữ liệu từ thanh ghi Px(y). Một số cổng có những hàm chức năng thêm vào (ví dụ như giao diện SPI). Các chức năng này có thể được dùng thông qua các thanh ghi khác (như SPCR.SPE). Các chức năng thêm vào này có thể ghi đè lên bit hướng được thiết lập trong PxDIR hay là không. Khi đọc thanh ghi Px, dữ liệu sẽ lấy từ bộ đệm (Pad). Khi sử dụng các lệnh ghi - đọc dữ liệu thì giá trị của thanh ghi xuất dữ liệu sẽ bị thay đổi bất chấp việc thiết lập các bit hướng trong PxDIR..
Các cổng vào / ra chung
Các bộ định thời:
Vi điều khiển CC1010 có chứa 4 bộ định thời / bộ đếm của vi nhân 8051 chuẩn (Timer0 và Timer1), chúng có thể hoạt động như một bộ định thời với xung nhịp dựa trên đồng hồ hệ thống hay hoạt động như một bộ đếm với xung nhịp dựa trên T0 (p3.4 cho Time 0) hay T1 (p3.5 cho Time 1). Mỗi bộ định thời /bộ đếm có một thanh ghi 16 bit có thể ghi đọc được thông qua TL0 và TH0 cho Timer 0 và TL1 và TH1 cho Timer 1. Ngoài 2 bộ định thời trên CC1010 còn cung cấp thêm 2 bộ định thời Timer2 và Timer3 có khả năng điều chỉnh độ rộng xung. Chế độ hoạt động của 2 bộ định thời này có thể được thiết lập thông qua thanh ghi TCON2 có địa chỉ 0xA.
Các thanh ghi của bộ định thời
Các cổng nối tiếp
CC1010 có tích hợp 2 cổng nối tiếp 0 và 1. Hai cổng này được điều khiển thông qua thanh ghi SCON0 và SCON1. Dữ liều vào ra trên hai cổng này sẽ được lưu tạm thời thông qua các thanh ghi đệm SBUF0 và SBUF1. Cổng nối tiếp 0 được sử dụng trong các giao tiếp chung. Trong khi đó cổng nối tiếp 1 được dùng chủ yếu cho mục đích gỡ rối.
Các bộ biến đổi ADC:
Bộ biến đổi ADC tích hợp trên chip được điều khiển bởi thanh ghi ADCON và ADCON2. Có 2 chân analog được dùng để lấy mẫu được điều khiển bởi ADCON.ADADR. Thanh ghi này được dùng để lựa chọn chân AD1 như là chân so sánh bên ngoài (khi đang dùng AD0). Ðiện thế so sánh được điều khiển bởi ADCON.ADCREF. Bit ADCON.AD_PD được lập khi ADC không được dùng để tiết kiệm điện năng.
Bộ biến đổi ADC hoạt động 1 trong 4 chế độ được lựa chọn bởi bit ADCON.ADCM. Mỗi lần biến đổi thì mất 11 chu kì xung nhịp. Trong chế độ xung nhịp 1 khi POWER.PMODE được thiết lập thì đồng hồ 32 kHz được đưa trực tiếp vào bộ biến đổi ADC. Trong chế độ xung nhịp 0, xung nhịp đầu vào của ADC lấy từ bộ dao động chính bằng cách sử dụng bộ chia được lựa chọn bởi ADCON2.ADCDIV. Thanh ghi phải được thiết lập để tần số xung nhịp của ADC phải nhỏ hơn hay bằng 250 kHz.
Trong chế độ chuyển đổi đơn mỗi lần chuyển đổi được thiết lập bằng việc đặt bít điều khiển ADCON.ADCRUN. Cờ ngắt EXIF.ADIF và ADCON2.ADCIF được đặt bởi phần cứng nếu 8 bit của giá trị mẫu sau cùng lớn hơn hay bằng giá trị được lưu trữ trong thanh ghi ADTRH. Một thủ tục ngắt sẽ được thực thi nếu các cờ ngắt này được thiết lập. Ðể luôn l...