Bài Tập Lớn ĐO LƯỜNG VÀ ĐIỀU KHIỂN sử dụng 8051 và Cảm biến DHT11 đô nhiệt độ báo ra Màn Hình LCD CÓ CHƯƠNG TRÌNH

41 950 14
Bài Tập Lớn ĐO LƯỜNG VÀ ĐIỀU KHIỂN sử dụng 8051 và Cảm biến DHT11 đô nhiệt độ báo ra Màn Hình LCD  CÓ CHƯƠNG TRÌNH

Đ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

Để phân biệt được sự khác nhau cơ bản giữa μP và vi xử lý tín hiệu (Digital Signalprocessor, viết tắt: DSP) ta phải xem xét kỹ hơn khâu tính toán thuộc CPU của μP. Đối với μP thông thường, các phép tính số học thường được thực hiện giữa các thanh ghi số liệu có bề rộng chính bằng bề rộng của số liệu. Ví dụ: nếu μP 16-Bit thì các thanh ghi số liệu cũng là 16-Bit. Điều này dẫn đến nhược điểm sau đây: Bất kỳ thanh ghi nào cũng có thể nhận kết quả của phép tính số học như cộng trừ. Điều này gây khó khăn khi thực hiện các phép cộng trừ có tích lũy, nhất là khi kết quả của các phép tính đó vượt quá kích cỡ số liệu cho phép (ở ví dụ trên: 16-Bit) Khi thực hiện phép nhân, kết quả bao giờ cũng có bề rộng gấp đôi của số liệu chuẩn. Ví dụ: phép nhân 16-Bit x 16-Bit cho kết quả 32 Bit. Các μP có hỗ trợ phép nhân thường cất kết quả ở 2 thanh ghi số liệu riêng biệt. Điều này làm cho người lập trình sẽ phải tốn kém thêm vài thao tác lệnh nữa để làm tròn số mới đi đến kết quả 16-Bit cuối cùng mà ít gây sai số. Bí quyết thành công của DSP có thể được diễn giải một cách đơn giản công thức:

Trường Đại học Công Nghiệp Hà Nội Khoa điện LỜI CẢM ƠN Trong những năm gần công nghệ thong tin có những bước phát triển vượt tăng vọt, đặc biệt là sự đời của máy tính đã tạo cho xã hội một bước phát triển mưới, nó ảnh hưởng đến hầu hết các vấn đề của xã hội công nghiệp cũng vậy Hòa cùng với sự phát triển đó, ngày càng nhiều nhà sản xuất đã ứng dụng các họ vi xử lí có tính mạnh vào công nghiệp, việc điều khiển và xử lý dữ liệu Những hạn chết kỹ thuật tương tự sự trôi thông số, sự làm việc cố định dài hạn, những khó khăn của việc chuyển nhanh công nghệ số Ngoài điều khiển số còn cho phép tiết kiệm linh kiện phần cứng, cho phép tiêu chuẩn hóa Với cùng một bộ vi xử lý, một cấu trúc phần cứng có thể dùng cho mọi ứng dụng, chỉ cần thay nội dung ô nhớ Tuy nhiên kỹ thuật số có những nhược điểm xử lý các tín hiệu rời rạc,…, đồng thời tín hiệu tương tự có ưu điểm mà kỹ thuật số không có tác động nhanh và liên tục Vì cậy ngày xu hướng điều khiển là phối hợp điều khiển số và điều khiển tương tự Để nắm vững được những kiến thức đã học thì việc nghiên cứu là cần thiết đối với sinh viên Bài tập lớn môn học Vi xử lý đo lường và điều khiển đã giúp cho chúng em biết them được rất nhiều về cả kiến thức lẫn kinh nghiệm Nhân em cũng xin cảm ơn rất nhiều đến thầy giáo Bùi Văn Huy đã tận tình hướng dẫn và chỉ bảo em để làm bài này Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện MỤC LỤC Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện DANH MỤC HÌNH VE Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Cơng Nghiệp Hà Nợi Khoa điện CHƯƠNG 1: TỞNG QUAN VỀ VI XỬ LÝ TRONG ĐO LƯỜNG VÀ Đ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ử ly 1.1.1 Vi xử ly Chữ "vi " khái niệm có nguồn gốc từ chữ "micro" ký hiệu là "μ", có ý nghĩa là "một phần triệu" hoặc "rất nhỏ" Vi xử lý (Microprocessor) có nghĩa là "bộ xử lý rất nhỏ", được ký hiệu là "μP" Hình 1.1: Đơn vị xử lí trung tâm Về bản, μP thường có cấu trúc được thể hiện hình Tùy loại μP, chúng có thể có thêm một vài đơn vị chức khác nữa, cấu trúc tối thiểu của chúng bao giờ cũng có ba khâu: Khâu tính tốn: gờm có đơn vị số học và lôgic (Arithmetic Logic Unit: ALU), các ghi số liệu và địa chỉ Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện Khâu điều khiển: gồm có bộ giải mã lệnh và bộ đếm chương trình Khâu đệm: với các bộ đệm (thường là ba trạng thái: Tri-State), ghép nối Bus phiến của μP với các Bus điều khiển, số liệu và địa chỉ nằm bên ngoài Hai khâu tính toán và điều khiển thường được gọi ghép chung là đơn vị xử lý trung tâm (Central Processing Unit: CPU) Khi nảy sinh nhu cầu sử dụng μP các hệ thống điều khiển tự động (ĐKTĐ), ta phải sử dụng thêm các phần tử ngoại vi, tạo thành giao diện thích hợp giữa μP với môi trường công nghệ bên ngoài phiến (Chip) 1.1.2 Vi xử ly tín hiệu Để phân biệt được sự khác bản giữa μP và vi xử lý tín hiệu (Digital Signalprocessor, viết tắt: DSP) ta phải xem xét kỹ khâu tính toán thuộc CPU của μP Đối với μP thông thường, các phép tính số học thường được thực hiện giữa các ghi số liệu có bề rộng chính bề rộng của số liệu Ví dụ: nếu μP 16-Bit thì các ghi số liệu cũng là 16-Bit Điều này dẫn đến nhược điểm sau đây: Bất kỳ ghi nào cũng có thể nhận kết quả của phép tính số học cộng trừ Điều này gây khó khăn thực hiện các phép cộng trừ có tích lũy, nhất là kết quả của các phép tính đó vượt quá kích cỡ số liệu cho phép (ở ví dụ trên: 16-Bit) Khi thực hiện phép nhân, kết quả bao giờ cũng có bề rộng gấp đôi của số liệu chuẩn Ví dụ: phép nhân 16-Bit x 16-Bit cho kết quả 32 Bit Các μP có hỗ trợ phép nhân thường cất kết quả ở ghi số liệu riêng biệt Điều này làm cho người lập trình phải tốn kém thêm vài thao tác lệnh nữa để làm tròn số mới đến kết quả 16-Bit cuối cùng mà ít gây sai số Bí quyết thành công của DSP có thể được diễn giải một cách đơn giản công thức: Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện Đó là công thức tiếng tính "tổng tích lũy" được sử dụng hầu hết các thuật toán xử lý tín hiệu số (digital) các khâu lọc tín hiệu, biến đổi Fourier Phần lớn các thuật toán điều khiển/ điều chỉnh (ĐK/ĐC) cũng có thể quy về công thức đó Nếu μP thông thường muốn thực hiện thuật toán (1) với tốc độ cao, μP đó phải có khả thực hiện đồng thời một phép nhân và một phép cộng chỉ một nhịp lệnh nhất Vì giá trị của tổng (1) liên tục được tăng thêm lượng kết quả của phép nhân μP phải có bộ phận cứng và một ghi tích lũy Trong các μP thông thường không có ghi này, chí ít cũng thiếu bộ nhân Khâu tính toán của DSP vì vậy được bổ sung thêm một ghi tích lũy (Accumlator, viết tắt: ACC) có bề rộng gấp đôi bề rộng số liệu chuẩn Ví dụ: nếu bề rộng số liệu là 16-Bit, ACC là 32Bit Duy nhất ghi ACC là nơi thực hiện và chứa kết quả của mọi phép cộng/trừ, vì vậy rất thuận tiện cho các phép tính tích lũy sau nhân, cho phép giảm một cách đáng kể (so sánh với μP thông thường) thời gian thực hiện các phép tính xử lý tín hiệu Như vậy, về bản chất DSP là μP có thêm ghi ACC và bộ nhân cứng Nhiều DSP kết hợp cả hai khâu đó một đơn vị gọi là MACC, ở ta đã nhắc đến nhược điểm cố hữu của μP thực hiện phép nhân: đó là việc bề rộng của kết quả nhân tăng gấp đôi và được cất ở ghi khác khiến cho thao tác làm tròn hoặc xử lý kết quả rất tổn thất thời gian Cũng tại đây, bật lợi thế của DSP: nhiều DSP cho phép thực hiện các thao tác đó đồng thời với nhân và tích lũy chỉ một nhịp lệnh nhất Tuy nhiên, có được thế mạnh đó còn là nhờ thay đổi cấu trúc Bus chip Ta hãy xét cách thực hiện một lệnh nhân của μP thông thường tính công thức (1) Công thức đó có chứa các hệ số cố định, vì vậy chúng được cất ở bộ nhớ chương trình Các dữ liệu xi được cất ở bộ nhớ số liệu Chương trình và số liệu của các μP thông thường đều sử dụng chung Bus địa chỉ là Bus số liệu Vì vậy trình tự tính thường là sau: Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội • • • • • Khoa điện Xâm nhập vào bộ nhớ lần thứ để đọc mã lệnh, mã lệnh được đưa từ bộ nhớ tới μP μP giải mã lệnh và biết là phải thực hiện phép nhân Xâm nhập lần thứ vào bộ nhớ chương trình để đọc giá trị của Xâm nhập lần thứ vào bộ nhớ số liệu để đọc giá trị của xi Thực hiện phép nhân Ta đã biết, cách tổ chức Bus được gọi là cấu trúc Vonneumann Hình 1.2: Cấu trúc Vonneumann Ngược với μP thông thường, DSP có nhiệm vụ chuyển số liệu tính tới khâu tính càng nhanh càng tốt Để làm được điều này, buộc phải tốn kém hơn: phải chia không gian nhớ chip làm và vì thế phải có Bus địa chỉ và Bus số liệu (hình b) độc lập cho vùng nhớ Nhờ cách tổ chức này, DSP có khả thâm nhập vào vùng nhớ để đọc toán hạng chỉ nhịp nhất vì vậy tiết kiệm được nhiều thời gian Cấu trúc Bus này có tên là cấu trúc Harward Nhóm 7 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện Trên thực tế, vì lý giá thành chỉ có thể thực hiện cấu trúc Bus Harward cho các bộ nhớ phiến (on-chip) Do đó, tra cứu về cấu trúc bên của DSP, bạn đọc thường gặp khái niệm Promgram Bus (hình b): (Bus số liệu 2, Bus địa chỉ 2) và Data bus (Bus số liệu 1, Bus địa chỉ 1) Đối với bên ngoài phiến, DSP vẫn sử dụng Bus địa chỉ, Bus số liệu chung cho cả hai vùng nhớ Điều này giải thích cho ta thấy: Tại DSP chỉ có khả thực hiện phép nhân một nhịp nhất, nếu các toán hạng đều nằm ở vùng nhớ on-chip Ngoài ra, thực hiện phép cộng tích lũy (1),đồng thời DSP có thể phải thực hiện thêm các thao tác dịch trái, dịch phải (vị trí dấu phẩy) hay làm tròn tổng cuối cùng Nhiều DSP có khả kết hợp thao tác đó một lệnh nhất Tóm lại DSP được phân biệt với μP thông thường là nhờ ở: • • • Có thêm ghi tích lũy ACC và bộ nhân cứng Có cấu trúc Bus phiến theo kiểu cấu trúc Harward Có khả tích hợp nhiều thao tác lệnh cùng một lệnh nhất Tất cả các điểm khác đó chỉ nhằm tạo cho DSP khả thực hiện với tốc độ có phép tính tổng tích lũy (1) Dễ dàng thấy rằng, ứng dụng của DSP không chỉ giới hạn việc thực hiện các thuật toán xử lý số liệu (xử lý tín hiệu) tốc độ cao DSP có thể phát huy được ưu thế của nó tất cả các ứng dụng ĐK/ĐC thời gian thực, nơi mà: thời gian tính toán (thời gian trích mẫu) chỉ nằm khoảng vài trăm ms và phép cộng tích lũy (thuật toán điều chỉnh digital) thường xuyên được cần đến Vi điều khiển = μP (hoặc DSP) + ngoại vi + ngắt không cần thủ tục Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện Trong quá trình lên của công nghệ tự động, μP được sử dụng ngày càng nhiều các thiết bị ĐK/ĐC Nhằm tăng độ tin cậy, đồng thời giảm giá thành của hệ thống, người ta đã tìm cách tích hợp các phần tử ngoại vi bản phiến Đó là những phần tử ngoại vi thường gặp nhất kỹ thuật: • Khâu biến đổi tượng tự số (Analog to Digital Con-verter, viết tắt: ACD): Khâu này có thể gồm 1-2 bộ ADC với khả xen nhiều kênh Độ phân giải • thường là 8-10 Bit Khâu điều chế điện áp hình sin (Puls Width Modulation, viết tắt: PWM): Khâu PWM có thể có nhiều kênh, đặc biệt là khả tạo điện áp xoay chiều pha với chế bù thời gian an toàn bảo vệ van bán dẫn cơng śt lớn Đợ • phân giải từ 50nsec - vài msec Hệ thống ghi CAPCOM(Capture/compara Register) phục vụ việc ghi nhận tín hiệu từ bên ngoài đến (rất quan trọng đo lường) hoặc tạo tín • hiệu phát ngoài (rất quan trọng điều khiển) Hệ thống ghi cổng đặc biệt: Khi các phần tử ngoại vi được tích hợp chung với μP cùng một phiến, linh kiện mới này được gọi là "Vi điều khiển" (Microcontroller Viết tắt: μC) Tóm lại: μC được phân biệt với μP là các đặc điểm có thêm các phần tử ngoại vi bản phiến và có chế ngắt không cần thủ tục ngắt Điều này cho phép nâng cao tốc độ tính toán, tăng độ tin cậy, đồng thời giảm giá thành của hệ thống 1.2 Cấu trúc chung họ 8051 1.2.1 Giới thiệu về dòng vi điều khiển 8051 Vào năm 1981 hãng Intel giới thiệu bộ vi điều khiển được gọi là 8051 Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM chip, hai bộ định thời, một cổng nối tiếp và cổng (độ rộng bit) vào – tất cả được đặt một chip 8051 là một bộ xử lý bit có nghĩa là CPU chỉ có thể làm việc với bit dữ liệu tại một thời điểm Dữ liệu lớn bit được chia thành các dự Nhóm Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện liệu bit để xử lý 8051 đã trở lên phổ biến sau Intel cho phép các nhà sản xuất khác sản xuất và bán các dạng biến thể của 8051 Điều này dẫn đến sự đời nhiều phiên bản của 8051 với các tốc độ khác và dung lượng ROM chip khác Mặc dù có nhiều biến thể khác của 8051 về tốc độ và dung lượng nhớ ROM chip, tất cả chúng đều tương thích với 8051 ban đầu về các lệnh Điều này có nghĩa là nếu viết chương trình của mình cho một phiên bản nào của 8051 thì nó cũng chạy với mọi phiên bản khác mà không phân biệt nó được sản xuất từ hãng nào Đặc tính Sớ lượng Rom chip 4K byte RAM 128 byte Bộ định thời Số chân I/O 32 Cổng nối tiếp (UART) Nguồn ngắt Bảng 1.1: Các đặc tính của dòng 8051 Nhóm 10 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện void lcd_Clear() { lcd_SendCommand(0x01); delay_us(10); } void lcd_Init() { lcd_Send4Bit(0x00); delay_ms(20); lcd_RS = 0; lcd_Send4Bit(0x03); lcd_Enable(); delay_us(100); lcd_Enable(); lcd_Send4Bit(0x02); lcd_Enable(); / lcd_SendCommand(0x28); lcd_SendCommand(0x0c); lcd_SendCommand(0x06); lcd_SendCommand(0x01); } void lcd_gotoxy(unsigned char x, unsigned char y) { unsigned char address; if(!y) address=(0x80 + x); else Nhóm 27 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện address=(0xc0 + x); delay_us(1000); lcd_SendCommand(address); delay_us(50); } void lcd_putchar (unsigned char Data) { lcd_RS = 1; lcd_SendCommand(Data); lcd_RS = 0; } void lcd_puts(char *s) { while(*s) { lcd_putchar(*s); s++; } } void lcd_putnum(unsigned int num) // Gui so { lcd_putchar((num/10)+48); lcd_putchar((num%10)+48); } Nhóm 28 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nợi Khoa điện 3.2.3 Chương trình giao tiếp với DHT11 theo chuẩn Wire // Delay DHT11 void timer_delay20ms() { TMOD = 0x01; TH0 = 0xB7; TL0 = 0xFF; TR0 = 1; while(TF0 == 0); TR0 = 0; TF0 = 0; } void timer_delay50us() { TMOD = 0x01; TH0 = 0xFF; TL0 = 0xE4; TR0 = 1; while(TF0 == 0); TR0 = 0; TF0 = 0; } //Giao tiep wire voi dht11 void Request() { DHT11 = 0; timer_delay20ms(); DHT11 = 1; Nhóm 29 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện } void Response() { while(DHT11==1); while(DHT11==0); while(DHT11==1); } int Receive_data() { int i,dat=0; for (i=0; i

Ngày đăng: 26/11/2018, 11:19

Từ khóa liên quan

Mục lục

  • LỜI CẢM ƠN

  • MỤC LỤC

  • DANH MỤC HÌNH VẼ

  • CHƯƠNG 1: TỔNG QUAN VỀ VI XỬ LÝ TRONG ĐO LƯỜNG VÀ Đ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. Vi xử lý tín hiệu

    • 1.2. Cấu trúc chung họ 8051

      • 1.2.1 Giới thiệu về dòng vi điều khiển 8051

      • 1.2.2 Kiến trúc phân cứng

        • 1.2.2.1 Sơ độ khổi

        • 1.2.2.2 Sơ đồ và chức năng của các chân

      • 1.2.3. Tổ chức bộ nhớ

        • 1.2.3.1. Bộ nhớ chương trình

        • 1.2.3.2. Bộ nhớ dữ liệu

    • 1.3. Tổng quan về ngôn ngữ C và các hàm, kiểu dữ liệu hay dùng cho việc lập trình cho Vi điều khiển

      • 1.3.1. Giới thiệu ngôn ngữ C

      • 1.3.2. Kiểu dữ liệu trong C

      • 1.3.3.Khai báo biến

  • CHƯƠNG 2: Cảm biến DHT11 và giao tiếp chuẩn 1 Wire

    • 2.1. Cấu tạo và đặc điểm của DHT11

    • 2.1.1. Giới thiệu về cảm biến DHT11

    • 2.1.2. Thông số DHT 11

    • 2.2. Nguyên lí giao tiếp Vi điều khiển theo chuẩn 1 Wire

      • 2.2.1. Giới thiệu chuẩn giao tiếp 1 wire:

  • 2.2.2. Cách thức hoạt động:

  • Gửi bit 1 (“Write 1” signal)

  • Gửi bit 0 ("Write 0" signal)

  • Đọc bit:

  • "Reset/Presence":

  • CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRÊN CƠ SỞ 8051

    • 3.1. Lưu đồ thuật toán

    • 3.2. Chương trình điều khiển xây dựng trên KeilC

      • 3.2.1. Khai báo thư viện cà các biến dùng trong chương trình

      • 3.2.2. Chương trình giao tiếp với LCD16x2

      • 3.2.3. Chương trình giao tiếp với DHT11 theo chuẩn 1 Wire

  • TR0 = 1;

  • TR0 = 0;

  • TF0 = 0;

  • TR0 = 1;

  • TR0 = 0;

  • TF0 = 0;

  • DHT11 = 0;

  • DHT11 = 1;

    • 3.2.4. Chương trình chính

    • 3.3. Kết quả mô phỏng, thiết kế mạch nguyên lí và thực nghiệm trên mạch thực

      • 3.3.1. Kết quả mô phỏng

  • 3.3.2. Thiết kế mạch nguyên lí và mạch in

  • 3.2.4. Kết quả thực hiện trên mạch thực

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

  • DHT11 Humidity & Temperature Sensor D-Robotic UK

  • Temperature and humidity module DHT11 Product Manual

  • http://www.ytuongnhanh.vn/chi-tiet/chuan-giao-tiep-1-wire-156.html

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

Tài liệu liên quan