Đo nhiệt độ sử dụng DS18B20 hiển thị LCD 8051

43 490 2
Đo nhiệt độ sử dụng DS18B20 hiển thị LCD 8051

Đ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

Bài tập lớn vi xử lí trong đo lường và điều khiển Haui Chương 1: Tổng quan về Vi xử lý trong Đo lường và Điều khiển 1 1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý. 1 1.1.1 Vi xử lý. 1 1.1.2 Cấu trúc của một hệ vi xử lý. 2 1.1.2.1 Khối xử lý trung tâm (CPU) 3 1.1.2.2. Hệ thống bus 4 1.2 Cấu trúc chung họ 8051 và AT89S51. 5 1.2.1 Bộ vi điều khiển 8051 5 1.2.2 Sơ lược về AT89S52 6 1.2.3 Các thanh ghi cơ bản 11 1.2.3.1 Thanh ghi TMOD ( Timer Mode) 11 1.2.3.2 Thanh ghi TCON ( Timer Control) 13 1.2.3.3 Thanh ghi cho phép ngắtcấm ngắt ngoài: IE (Interrupt Enable) 15 1.2.4 Trình phục vụ ngắt 15 1.3. Ngôn ngữ C cho vi điều khiển 16 1.3.1 Giới thiệu ngôn ngữ C 16 1.3.2 Các hàm trong C 16 1.3.3 Kiểu dữ liệu 18 Chương 2: Cảm biến 18B20 và giao tiếp 1W 20 2.1. Cấu tạo và đặc điểm của 18B20 20 2.2. Nguyên lý giao tiếp Vi điều khiển theo chuẩn 1W 22 2.3 Màn hình LCD 25 2.3.1 Cấu trúc của LCD 25 2.3.2 Cách kết nối, lập trình để sử dụng LCD 26 Chương 3: Xây dựn ứng dụng trên cơ sở 8051 27 3.1 Lưu đồ thuật toán 27 3.2 Chương trình điều khiển xây dựng trên keil C 28 3.3. Kết quả mô phỏng 39

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BỘ CÔNG THƯƠNG  BÀI TẬP LỚN : HỌC PHẦN VI XỬ LÍ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN Tên đề tài: Đo điều khiển nhiệt độ dùng DS18B20 hiển thị LCD Hà Nội-2019 Mục lục Chương 1: Tổng quan Vi xử lý Đo lường Điều khiển 1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý 1.1.1 Vi xử lý 1.1.2 Cấu trúc hệ vi xử lý 1.1.2.1 Khối xử lý trung tâm (CPU) 1.1.2.2 Hệ thống bus 1.2 Cấu trúc chung họ 8051 AT89S51 1.2.1 Bộ vi điều khiển 8051 1.2.2 Sơ lược AT89S52 1.2.3 Các ghi 11 1.2.3.1 Thanh ghi TMOD ( Timer Mode) 11 1.2.3.2 Thanh ghi TCON ( Timer Control) 13 1.2.3.3 Thanh ghi cho phép ngắt/cấm ngắt ngoài: IE (Interrupt Enable) 15 1.2.4 Trình phục vụ ngắt 15 1.3 Ngôn ngữ C cho vi điều khiển 16 1.3.1 Giới thiệu ngôn ngữ C 16 1.3.2 Các hàm C 16 1.3.3 Kiểu liệu 18 Chương 2: Cảm biến 18B20 giao tiếp 1W 20 2.1 Cấu tạo đặc điểm 18B20 20 2.2 Nguyên lý giao tiếp Vi điều khiển theo chuẩn 1W 22 2.3 Màn hình LCD 25 2.3.1 Cấu trúc LCD 25 2.3.2 Cách kết nối, lập trình để sử dụng LCD 26 Chương 3: Xây dựn ứng dụng sở 8051 27 3.1 Lưu đồ thuật toán 27 3.2 Chương trình điều khiển xây dựng keil C 28 3.3 Kết mô 39 Chương 1: Tổng quan Vi xử lý Đo lường Điều khiển 1.1 Cấu trúc hệ thống đo lường điều khiển có sử dụng Vi xử lý 1.1.1 Vi xử lý Vi xử lý (viết tắt µP hay uP), đơi gọi vi xử lý, linh kiện điện tử chế tạo từ tranzito thu nhỏ tích hợp lên vi mạch tích hợp Khối xử lý trung tâm (CPU) vi xử lý nhiều người biết đến nhiều thành phần khác máy tính có vi xử lý riêng nó, ví dụ card hình (video card) có vi xử Trước xuất vi xử lý, CPU xây dựng từ mạch tích hợp cỡ nhỏ riêng biệt, mạch tích hợp chứa khoảng vào chục tranzito Do đó, CPU bảng mạch gồm hàng ngàn hay hàng triệu vi mạch tích hợp ngày nay, cơng nghệ tích hợp phát triển, CPU tích hợp lên vài vi mạch tích hợp cỡ lớn, vi mạch tích hợp cỡ lớn chứa hàng ngàn hàng triệu tranzito Nhờ cơng suất tiêu thụ giá thành vi xử lý giảm đáng kể Vi điều khiển máy tính tích hợp chíp, thường sử dụng để điều khiển thiết bị điện tử Vi điều khiển, thực chất, hệ thống bao gồm vi xử lý có hiệu suất đủ dùng giá thành thấp (khác với vi xử lý đa dùng máy tính) kết hợp với khối ngoại vi nhớ, mô đun vào/ra, mô đun biến đổi số sang tương tự tương tự sang số, Ở máy tính mơ đun thường xây dựng chíp mạch ngồi Vi điều khiển thường dùng để xây dựng hệ thống nhúng Nó xuất nhiều dụng cụ điện tử, thiết bị điện, máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện, dây chuyền tự động, v.v Hầu hết vi điều khiển ngày xây dựng dựa kiến trúc Harvard, kiến trúc định nghĩa bốn thành phần cần thiết hệ thống nhúng Những thành phần lõi CPU, nhớ chương trình (thơng thường ROM nhớ Flash), nhớ liệu (RAM), vài định thời cổng vào/ra để giao tiếp với thiết bị ngoại vi môi trường bên - tất khối thiết kế vi mạch tích hợp Vi điều khiển khác với vi xử lý đa chỗ hoạt động với vài vi mạch hỗ trợ bên 1.1.2 Cấu trúc hệ vi xử lý Sơ đồ khối máy tính cổ điển - ALU (đơn vị logic số học): thực tốn cho máy tính bao gồm: +, *, /,-, phép toán logic, … - Control (điều khiển): điều khiển, kiểm soát đường liệu thành phần máy tính - Memory (bộ nhớ): lưu trữ chương trình hay kết trung gian - Input (nhập), Output (Xuất): xuất nhập liệu (còn gọi thiết bị ngoại vi) Về kiến trúc vi xử lý gồm phần cứng sau:  Đơn vị xử lý trung tâm CPU (Central Processing Unit)  Các nhớ (Memories)  Các cổng vào/ra (song song (Parallel I/O Ports), nối tiếp (Serial I/O Ports))  Các đếm/bộ định thời (Timers)  Hệ thống BUS (Địa chỉ, liệu, điều khiển) Ngoài với loại vi điều khiển cụ thể có thêm số phần cứng khác biến đổi tương tự-số ADC, biến đổi số-tương tự DAC, mạch điều chế dạng sóng WG, điều chế độ rộng xung PWM…Bộ não vi xử lý CPU, phần cứng khác quan chấp hành quyền CPU Mỗi quan có chế hoạt động định mà CPU phải tuân theo giao tiếp với chúng Sơ đồ khối hệ vi xử lý Để giao tiếp điều khiển quan chấp hành (các ngoại vi), CPU sử dụng 03 loại tín hiệu tín hiệu địa (Address), tín hiệu liệu (Data) tín hiệu điều khiển (Control) Về mặt vật lý tín hiệu đường nhỏ dẫn điện nối từ CPU đến ngoại vi chí ngoại vi với Tập hợp đường tín hiệu có chức gọi bus Như ta có bus địa chỉ, bus liệu bus điều khiển 1.1.2.1 Khối xử lý trung tâm (CPU) CPU có cấu tạo gồm có đơn vị xử lý số học lôgic (ALU), ghi, khối lôgic mạch giao tiếp Chức CPU tiến hành thao tác tính tốn xử lý, đưa tín hiệu địa chỉ, liệu điều khiển nhằm thực nhiệm vụ người lập trình đưa thơng qua lệnh (Instructions) Khối xử lý trung tâm 1.1.2.2 Hệ thống bus Là đường tín hiệu song song chiều nối từ CPU đến nhớ, bao gồm: - Bus địa - Address bus Độ rộng bus: số đường tín hiệu, 8, 18, 20, 24, 32 hay 64 CPU gửi giá trị địa ô nhớ cần truy nhập (đọc/ghi) đường tín hiệu CPU với n đường địa địa hố 2n nhớ Ví dụ, Cpu có 16 đường địa địa hố 216 hay 65,536 (64K) ô nhớ a Bus liệu - Data bus Là đường tín hiệu song song chiều, nhiều thiết bị khác nối với bus liệu; thời điểm, có thiết bị phép đưa liệu lên bus liệu Độ rộng Bus: 4, 8, 16, 32 hay 64 bits Bất kỳ thiết bị kết nối đến bus liệu phải có đầu dạng trạng thái, cho trạng thái treo (trở kháng cao) không sử dụng b Bus điều khiển - Control bus Bao gồm đến 10 đường tín hiệu song song CPU gửi tín hiệu bus điều khiển phép đầu ô nhớ hay cổng I/O địa hố Các tín hiệu điều khiển thường là: đọc/ ghi nhớ - memory read, memory write, đọc/ ghi cổng vào/ra - I/O read, I/O write Ví dụ, để đọc byte liệu từ ô nhớ cần đến hoạt động sau: CPU đưa địa ô nhớ cần đọc lên bus địa CPU đưa tín hiệu đọc nhớ - Memory Read bus điều khiển Tín hiệu điều khiển cho phép thiết bị nhớ địa hoá đưa byte liệu lên bus liệu Byte liệu từ ô nhớ truyền tải qua bus liệu đến CPU 1.2 Cấu trúc chung họ 8051 AT89S51 1.2.1 Bộ vi điều khiển 8051  Vcc (40): Chân cung cấp điện (5V)  GND (20): Chân nối đất (0V)  Port (32-39): Port port xuất nhập 8-bit hai chiều  Port 1(1-8):Port port xuất nhập 8-bit hai chiều  Port port xuất nhập 8-bit hai chiều  Trong hệ thống sử dụng 8751, 89C51 DS5000 ta thường nối cổng P0 tới điện trở kéo  Port Port xuất nhập 8-bit hai chiều Port làm chức khác AT89C51 Sơ đồ chân IC 8501 Hình: Cấu trúc vi điều khiển 8051 Các thành viên họ 8501 1.2.2 Sơ lược AT89S52 AT89S52 có đặc tính sau: + KB PEROM (Flash Programmable and Erasable Read Only Memory), có khả tới 1000 chu kỳ ghi xoá + Tần số hoạt động từ: 0Hz đến 24 + mức khóa nhớ lập trình + 256 Byte RAM nội + Port xuất /nhập I/O bit + Timer/counter 16 Bit + nguồn ngắt + Giao tiếp nối tiếp điều khiển phần cứng + 128 KB vùng nhớ mã + 128 KB vùng nhớ liệu + Cho phép xử lý bit + 210 vị trí nhớ định vị bit + chu kỳ máy (4 µs thạch anh 12MHz) cho hoạt động nhân chia + Có chế độ nghỉ (Low-power Idle) chế độ nguồn giảm (Powerdown) Sơ đồ chân AT89S52 - Nhóm chân nguồn: + VCC: chân 40, điện áp cung cấp 5VDC Chương 3: Xây dựn ứng dụng sở 8051 3.1 Lưu đồ thuật tốn 27 3.2 Chương trình điều khiển xây dựng keil C #include #define LCD_RS P2_0 #define LCD_RW P2_1 #define LCD_EN P2_2 #define Man P3_0 #define led P3_5 #define LCD_D4 P0_4 #define LCD_D5 P0_5 #define LCD_D6 P0_6 #define LCD_D7 P0_7 #define DS18B20_SKIP_ROM 0xCC #define DS18B20_CONVERT_T 0x44 #define DS18B20_READ_SCRATCHPAD sbit DS18B20_PIN = P3^7; /* Ham delay */ void delay_us(unsigned int t) { unsigned int load_value; 28 0xBE TMOD=0x01; load_value = 65536 - t; TH0 = load_value >> 8; TL0 = load_value & 0x00FF; TR0 = 1; while(!TF0); TR0 = 0; TF0 = 0; } void delay_ms(unsigned int t){ unsigned int i,j; for(i=0;i1)&1;//Tach bit thu LCD_D6=(Data>>2)&1; LCD_D7=(Data>>3)&1; } //Ham gui lenh cho LCD void LCD_SendCommand(unsigned char command){ LCD_Send4Bit(command>>4);// Gui bit cao - Dich bit LCD_Enable();//Kich hoat bit cao LCD_Send4Bit(command);//Gui bit thap LCD_Enable(); } void LCD_Clear(){//Ham Xoa man hinh LCD LCD_SendCommand(0x01);//Ma lenh de xoa man hinh delay_us(10); } //Ham khoi tao LCD void LCD_Init(){ LCD_Send4Bit(0x00);//bat LCD len delay_ms(20); LCD_RS=0; LCD_RW=0; LCD_Send4Bit(0x03); LCD_Enable(); delay_ms(5); LCD_Enable(); delay_us(100); 30 LCD_Enable(); LCD_Send4Bit(0x02);//Di chuyen tro ve dau man hinh LCD_Enable();//Kich hoat xung LCD_SendCommand(0x28);//Lua chon che bit LCD_SendCommand(0x0c);//Bat hien thi va tat tro LCD_SendCommand(0x06);//Tu dong di chuyen tro sang vi tri ke tiep LCD_SendCommand(0x01);//XOa man hinh } void LCD_Gotoxy(unsigned char x, unsigned char y){//x la cot, y la hang unsigned char address; if(!y)address=(0x80+x); else address=(0xc0+x); delay_us(1000); LCD_SendCommand(address); delay_us(50); } void LCD_PutChar(unsigned char Data){ LCD_RS=1;//Che ghi LCD_SendCommand(Data);//gui chuoi LCD_RS=0; } //Ham viet len chuoi ki tu theo tro void LCD_Puts(char*s){ while(*s){ LCD_PutChar(*s); s++; 31 } } long luythua(int a,int b) { int i; long P=1; for(i=1;i=1; } } unsigned char readbit() { unsigned char result; DS18B20_PIN = 0; delay_us(6); DS18B20_PIN = 1; delay_us(9); result = DS18B20_PIN; delay_us(55); return result; } unsigned char readbyte() { unsigned char result; int i; 34 for(i=0;i>=1; result |= (readbit()

Ngày đăng: 04/05/2019, 22:14

Từ khóa liên quan

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

Tài liệu liên quan