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

37 13 0
  • Loading ...
1/37 trang

Thông tin tài liệu

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

Để 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 Tín hiệu bus wire chia thành các khe thời gian 60 µs bit dữ liệu được truyền bus dựa khe thời gian (time slots) Các thiết bị slave cho phép có thời gian nền có một chúc khác biệt từ thời gian nền danh nghĩa Tuy nhiên đối với thiết bị master cần có bộ định thời với độ chính xác cao, để đảm bảo giao tiếp đúng với các thiết bị salve có thời gian nền khác biệt Do đó rất quan trọng để tuân theo giới hạn thời gian mô tả các phần sau Bốn thao tác hoạt động bản của bus wire là Reset/Presence, gửi bit 1, gửi bit 0, đọc bit Thao tác byte gửi byte và đọc byte dựa thao tác bít Gửi bit (“Write 1” signal) Thiết bị master kéo bus xuống mức thấp khoảng đến 15µs Sau đó nhả bus (releases the bus) cho đến hết phần còn lại của khe thời gian Gửi bit ("Write 0" signal) Kéo bus xuống mức thấp ít nhất 60µs, với chiều dài tới đa là 120 µs Lưu ý: lần gửi bit (0 hoặc 1), phải có khoảng thời gian phục hồi bus (recovery time) tới thiểu µs Đọc bit: Nhóm 23 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện Thiết bị master kéo bus x́ng mức thấp từ -15µs Khi đó thiết bị tớ đó sẻ giữ bus ở mức thấp nếu muốn gửi bit 0, Nếu muốn gửi bit đơn giản là nhả bus Bus nên lấy mẫu 15 µs sau bus kéo xuống mức thấp "Reset/Presence": Tín hiệu reset và Presence(Báo hiện diện) được trình bày hình bên dưới Thiết bị master kéo bus xuống thấp ít nhất khe thời gian (tức là 480 µs) và sau đó nhả bus Khoảng thời gian bus ở mức thấp đó gọi là tín hiệu reset Nếu có thiết bị slave gắn bus nó sẻ trả lời tín hiệu Presence tức là thiết bị tớ sẻ kéo bus x́ng mức thấp khoảng thời gian 60µs Nếu không có tín hiệu Presence, thiết bị master sẻ hiểu không có thiết bị slave nào bus, và các giao tiếp tiếp theo sẻ không thể diễn Nhóm 24 Lớp: ĐH Tự Động Hóa Trường Đại học Công Nghiệp Hà Nội Khoa điện CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRÊN CƠ SỞ 8051 3.1 Lưu đồ tḥt tốn 3.2 Chương trình điều khiển xây dựng KeilC 3.2.1 Khai báo thư viện cà biến dùng chương trình #include sbit DHT11=P3^5; // Chan tin hieu DHT11 sbit lcd_RS=P2^1; // Chan RS cua LCD sbit lcd_EN=P2^3; // Chan EN cua LCD sbit lcd_D4=P2^4; // Chan D4 cua LCD sbit lcd_D5=P2^5; // Chan D5 cua LCD sbit lcd_D6=P2^6; // Chan D6 cua LCD sbit lcd_D7=P2^7; // Chan D7 cua LCD int I_RH,D_RH,I_Temp,D_Temp,CheckSum; Do LCD ứng dụng này chỉ cần đặt ở chế độ đọc nên ta cho chân RW có giá trị 0, mặt khác ta nối chân RS của LCD x́ng GND 3.2.2 Chương trình giao tiếp với LCD16x2 // Delay LCD void delay_ms(unsigned int t) { unsigned int i,j; for(i=0;i>2) & 1; // Tach bit lcd_D7=(Data>>3) & 1; // Tach bit } void lcd_SendCommand(unsigned char command) { lcd_Send4Bit(command>>4); lcd_Enable(); lcd_Send4Bit(command); lcd_Enable(); } Nhóm 26 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
- Xem thêm -

Xem thêm: 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, 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, CHƯƠNG 1: TỔNG QUAN VỀ VI XỬ LÝ TRONG ĐO LƯỜNG VÀ ĐIỀU KHIỂN, CHƯƠNG 2: Cảm biến DHT11 và giao tiếp chuẩn 1 Wire, CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG TRÊN CƠ SỞ 8051

Từ khóa liên quan

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay