Báo cáo đề tài đồ án mạch đo và khống chế nhiệt độ hiển thị lcd

40 1 0
Báo cáo đề tài đồ án mạch   đo và khống chế nhiệt độ hiển thị lcd

Đ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

Đồ án HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG BÁO CÁO ĐỀ TÀI ĐỒ ÁN MẠCH ĐO VÀ KHỐNG CHẾ NHIỆT ĐỘ HIỂN THỊ LCD GVHD thầy: Lê Đức Toàn Nhóm SV : -B14DCDT029 : Vũ Văn Khải -B14DCDT030 : Hồng Xn Trung Hà Nợi, ngày 19 tháng năm 2017 Đồ án LỜI NÓI ĐẦU Với phát triển không ngừng khoa học công nghệ, sống người ngày trở nên tiện nghi đại Điều đem lại cho nhiều giải pháp tốt hơn, đa dạng việc xử lý vấn đề tưởng chừng phức tạp gặp phải sống Việc ứng dụng thành tựu khoa học kĩ thuật đại tất lĩnh vực phổ biến toàn giới, thay dần phương thức thủ công, lạc hậu ngày cải thiện hơn, hoàn mỹ Cùng với phát triển chung đó, nước ta mạnh mẽ tiến hành cơng cơng nghiệp hóa đại hóa đất nước để theo kịp phát triển nước khu vực giới Trong đó, lĩnh vực điện tử ngày đóng vai trị quan trọng việc phát triển kinh tế đời sống người Sự phổ biến góp phần khơng nhỏ tới phát triển tất ngành sản xuất, giải trí, Trong năm gần đây, đặc biệt lĩnh vực tự động nhiệt độ, có phát triển mạnh mẽ với nhiều hình thức, phương pháp tiếp cận, chia sẻ thơng tin đại tồn diện Với lịng đam mê, u thích nhóm lĩnh vực này, nhóm định chọn đề tài “ Đo khống chế nhiệt độ hiển thị LCD” làm đề tài môn học Trong thời gian thực đề tài cộng với kiến thức hạn chế, nên đồ án khơng tránh khỏi thiếu sót, nhóm thực mong đóng góp thầy bạn sinh viên Nhóm sinh viên thực đề tài Vũ Văn Khải Hoàng Xuân Trung Đồ án NHẬN XÉT CỦA GIÁO VIÊN Đồ án MỤC LỤC LỜI NÓI ĐẦU NHẬN XÉT CỦA GIẢNG VIÊN Phần 1: Cơ sở lý thuyết I II III IV V VI VII Cơ sở thực tiễn đề tài Mục đích nghiên cứu đề tài Các phương pháp lựa chọn phương án thiết kế Tổng quan AT89S52 Tổng quan LCD 16x2 Tổng quan cảm biến nhiệt độ DS18B20 Các linh kiện hỗ trợ khác Phần 2: Nội dung trình tự thiết kế I II III IV Sơ đồ khối tổng quát vá nguyên lý Mô với proteus Mạch in Code Phần 3: Kết luận tài liệu tham khảo LỜI CẢM ƠN Đồ án ĐỀ TÀI: Thiết kế đo khống chế nhiệt độ hiển thị LCD 16x2 Phần 1: Cơ sở lý thuyết I Cơ sở thực tiễn đề tài: Ngày với phát triển ngành khoa học kỹ thuật, kỹ thuật điện tử mà kỹ thuật số đóng vai trị quan trọng lĩnh vực khoa học kỹ thuật, quản lí, cơng nghiệp tự động hóa, cung cấp thơng tin Do đó, phải nắm bắt vận dụng cách có hiệu nhằm góp phần vào phát triển khoa học kỹ thuật giới nói chung phát triển kỹ thuật điện tử nói riêng Trong đời sống ngày phát triển, xuất phát từ nhu cầu thực tế, nhóm thực tìm hiểu hồn thành xong mạch đo nhiệt độ Nó có ứng dụng lớn doanh nghiệp sản xuất với độ xác cao II Mục đích nghiên cứu đề tài: Đo nhiệt độ cảm biến nhiệt DS18B20 hiển thị LCD thông báo đèn LED III IV Các phương pháp lựa chọn phương án thiết kế:  Để đo lường nhiệt độ, người ta chọn nhiều loại cảm biến nhiệt độ khác nhau, loại có ưu điểm riêng biệt phù hợp với nhu cầu người sử dụng Ở đây, nhu cầu nhóm đo nhiệt độ mơi trường nên nhóm sử dụng DS18B20 tối ưu  Bộ vi điều khiển AT89S51 tối ưu giá thành hợp lý  LED 16X2 hiển thị đầy đủ thơng báo cần thiết Tổng quan AT89S52 Đồ án AT89S52 họ IC vi điều khiển hãng Atmel sản xuất Các sản phẩmAT89S52 thích hợp cho ứng dụng điều khiển Việc xử lý byte cáctoán số học cấu trúc liệu nhỏ thực nhiều chế độ truy xuấtdữ liệu nhanh RAM nội Tập lệnh cung cấp bảng tiện dụng lệnh số học bit gồm lệnh nhân lệnh chia Nó cung cấp hổ trợ mởrộng chip dùng cho biến bit kiểu liệu riêng biệt chophép quản lý kiểm tra bit trực tiếp hệ thống điều khiển AT89S52 cung cấp đặc tính chuẩn như: KByte nhớ đọc cóthể xóa lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3TIMER/COUNTER 16 Bit, vectơ ngắt có cấu trúc mức ngắt, Port nối tiếpbán song công, mạch dao động tạo xung Clock dao động ON-CHIP Các đặc điểm chip AT89S52 tóm tắt sau:  KByte nhớ lập trình nhanh, có khả tới 1000 chu kỳ ghi/xoá  Tần số hoạt động từ: 0Hz đến 24 MHz  mức khóa nhớ lập trình  Timer/counter 16 Bit 128 Byte RAM nội  Port xuất /nhập I/O bit  Giao tiếp nối tiếp  64 KB vùng nhớ mã  64 KB vùng nhớ liệu ngoại Sơ đồ khối vi điều khiển Đồ án Sơ đồ chân vi điều khiển AT89S52 thể hình bên Sơ đồ chân vi điều khiển AT89S52 40 20 Chân VCC:Chân số VCC cấp điện áp nguồn cho vi điều khiển Nguồn điện cấp +5V±0.5 Chân GND: Chân số nối GND (hay nối Mass) - Port (P0): Port gồm chân (từ chân 32 đến 39) có hai chức năng: + Chức xuất/nhập: chân dùng để nhận tín hiệu từ bên ngồi vào để xử lí, dùng để xuất tín hiệu bên ngồi, chẳng hạn xuất tín hiệu để điều khiển led đơn sáng tắt + Chức bus liệu bus địa (AD7-AD0) : chân (hoặc Port 0) làm nhiệm vụ lấy liệu từ ROM RAM ngoại (nếu có kết nối với nhớ ngồi), đồng thời Port cịn dùng để định địa nhớ - Port (P1): Port P1 gồm chân (từ chân đến chân 8), có chức làm đường xuất/nhập, khơng có chức khác - Port 2(P2): Port gồm chân (từ chân 21 đến chân 28) có hai chức năng: Đồ án - Chức xuất/nhập + Chức bus địa cao (A8-A15): kết nối với nhớ ngồi có dung lượng lớn, cần byte để định địa nhớ, byte thấp P0 đảm nhận, byte cao P2 đảm nhận - Port (P3): Port gồm chân (từ chân 10 đến 17) + Chức xuất/nhập + Với chân có chức riêng thứ hai bảng sau: Bảng chức chân port Các ngõ tín hiệu điều khiển: Ngõ tín hiệu (PSEN)’ (Program store enable) : Chân số 29 - Cho phép đọc nhớ chương trình mở rộng - Nối với chân ((OE)’ (RD)’) EPROM để điều khiển đọc mã lệnh - Khi giao tiếp với nhớ chương trình mở rộng dùng (PSEN)’, khơng có giao tiếp chân (PSEN)’ bỏ trống - Các mã lệnh chương trình đọc từ EPROM qua bus liệu chốt vào ghi lệnh bên 8051 để giải mã lệnh Ngõ tín hiệu điều khiển ALE (Address Latch Enable): Chân số 30 Đồ án - Khi dùng nhớ mở rộng, ALE điều khiển mạch giải đa hợp để tách đường địa (A7-A0) liệu (D7 – D0) - Là xung port tải địa - Xung ALE có tần số = 1/6 tần số thạch anh - Có thể dùng làm xung clock cung cấp cho IC khác - Có thể nhận cung lập trình từ bên ngồi ghi liệu vào nhớ Flash Rom Ngõ tín hiệu (EA)’ (External Access): Chân số 31 - Nếu (EA)’ = 1(+5V) VĐK thực chương trình nhớ nội - Nếu (EA)’ = 0(0V) VĐK thực chương trình nhớ ngoại - Nhận điện áp lập trình VPP(Program) ghi liệu vào nhớ Flash Rom Ngõ tín hiệu RST (Reset) : Chân số - Khi cấp điện nhấn RESET reset VĐK - Tín hiệu Reset phải mức cao, chu kỳ máy - Các ghi bên nạp giá trị Các ngõ vào dao động XTALT1, XTAL2: Chân số 18, 19 8051 có dao động chíp u cầu có xung đồng hồ ngồi để chạy Một dao động thạch anh nối tới chân đầu vào XTAL1 (chân 19) và XTAL2 (chân 18) Bộ dao động thạch anh nối tới XTAL1 và XTAL2 cũng cần hai tụ gốm giá trị khoảng 30pF Một phía tụ điện nối xuống đất Cần phải lưu ý có nhiều tốc độ khác họ 8051 Tốc độ coi tần số cực đại dao động nối tới chân XTAL Một vi điều khiển 8051 yêu cầu tinh thể thạch anh có tần số khơng lớn hơn 20MHz Khi 8051 nối tới dao động tinh thể thạch anh cấp nguồn ta quan sát tần số chânXTAL2 bằng máy sóng Nếu ta định sử dụng nguồn tần số khác dao động thạch anh, chẳng hạn dao động TTL nối tới chân XTAL1, cịn chân XTAL2 thì để hở khơng nối Chân 40 (VCC) nối lên nguồn 5V Chân 20 GND nối MASS V Tổng quan LCD 16x2 a Hình dáng kích thước Đồ án Có nhiều loại LCD với nhiều hình dáng kích thước khác nhau, hình loại LCD thơng dụng Hình Hình dáng loại LCD thông dụng Khi sản xuất LCD, nhà sản xuất tích hợp chíp điều khiển (HD44780) bên lớp vỏ đưa các chân giao tiếp cần thiết Các chân đánh số thứ tự đặt tên hình :  Hình Sơ đồ chân LCD b Chức chân: Chân Ký hiệu Vss Mô tả Chân nối đất cho LCD, thiết kế mạch ta nối chân với GND mạch điều khiển 10 Đồ án Phần 2: Nội dung trình tự thiết I Sơ đồ khối tổng quát nguyên lý hoạt động a Sơ đồ khồi Khối hiển thị Khối cảm biến LCD Khối xử lý trung tâm Khối điều khiển nhiệt độ khống chế Đầu ứng dụng (mô sáng tắt led) b Hoạt đơng Cảm biến DS18B20 có nhiệm vụ đo nhiệt độ mơi trường sau biến đổi thành tín hiệu số Tín hiệu từ cảm biến gửi đến khối xử lý trung tâm AT89S52 qua chân DQ vào cổng P0_0 AT89S52 phân tích, tính tốn sau 26 Đồ án chuyền liệu khối hiển thị LCD Nút bấm giúp ta tăng giảm nhiệt độ khống chế theo ý mốn Khi nhiệt độ mơi trường lớn nhiệt độ khống chế khối xử lý xuất tín hiệu mức chân P2_7 để bật đèn Khi nhiệt độ môi trường nhỏ nhiệt độ khống chế khối xử lý xuất tín hiệu mức chân P2_5 để bật đèn Khi nhiệt độ mơi trường nhiệt độ khống chế khối xử lý xuất tín hiệu mức chân P2_6 để bật đèn 27 Đồ án II Mô với proteus 28 Đồ án III Mạch in 29 Đồ án IV Code #include #define LCD_RS P3_7 #define LCD_RW P3_6 #define LCD_EN P3_5 #define LCD_D4 P3_3 #define LCD_D5 P3_2 #define LCD_D6 P3_1 #define LCD_D7 P3_0 #define nhan_t P2_1 #define nhan_g P2_0 #define LED_1 P2_5 #define LED_2 P2_6 #define LED_3 P2_7 #define DQ P0_0 void khong_che(void); void kiemtra(void); unsigned char temp; unsigned int nhiet_dat; void delay_us(unsigned int t) { unsigned int i; for(i=0;i=1; DQ = 1; if(DQ) dat |= 0x80; delay_18B20(4); } return(dat); } void WriteOneChar(unsigned char dat){ unsigned char i=0; for (i=8; i>0; i ){ DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; } } void ReadTemperature(void) { unsigned char a=0; unsigned char b=0; Init_18B20(); WriteOneChar(0xCC); WriteOneChar(0x44); 32 Đồ án delay_18B20(10); Init_18B20(); WriteOneChar(0xCC); WriteOneChar(0xBE); delay_18B20(10); a=ReadOneChar(); b=ReadOneChar(); temp=((b*256+a)>>4); } void LCD_Enable(void){ LCD_EN =1; delay_us(3); LCD_EN=0; delay_us(50); } void LCD_Send4Bit(unsigned char Data) { LCD_D4=Data & 0x01; LCD_D5=(Data>>1)&1; LCD_D6=(Data>>2)&1; LCD_D7=(Data>>3)&1; } 33 Đồ án void LCD_SendCommand(unsigned char command) { LCD_Send4Bit(command >>4); LCD_Enable(); LCD_Send4Bit(command); LCD_Enable(); } void LCD_Clear() { LCD_SendCommand(0x01); delay_us(10); } void LCD_Init() { LCD_Send4Bit(0x00); delay_ms(20); LCD_RS=0; LCD_RW=0; LCD_Send4Bit(0x03); LCD_Enable(); delay_ms(5); LCD_Enable(); delay_us(100); LCD_Enable(); LCD_Send4Bit(0x02); 34 Đồ án 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 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++; 35 Đồ án } } void TempShow(unsigned char z) { LCD_Puts("T do: "); LCD_PutChar((z/100)+48); LCD_PutChar((z%100/10)+48); LCD_PutChar((z%10)+48); LCD_Puts("'C"); } void nhietkhongche(){ LCD_Puts("T dat: "); LCD_PutChar((nhiet_dat/100)+48); LCD_PutChar((nhiet_dat%100/10)+48); LCD_PutChar((nhiet_dat%10)+48); LCD_Puts("'C"); } unsigned char temp; void main() { nhiet_dat=25; LCD_Init(); LCD_Gotoxy(0,0); LCD_Puts("Vu Van Khai & "); delay_ms(500); LCD_Gotoxy(0,1); 36 Đồ án LCD_Puts("Hoang Xuan Trung"); delay_ms(1000); LCD_Clear(); while(1) { LCD_Gotoxy(0,0); kiemtra(); ReadTemperature(); TempShow(temp); LCD_Gotoxy(0,1); nhietkhongche() ; khong_che(); delay_ms(100); } } void kiemtra(void) { nhan_t=0; if(nhan_t==1) { nhiet_dat++; delay_ms(100); if(nhiet_dat>85) nhiet_dat=0; } nhan_g=0; 37 Đồ án if(nhan_g==1) { nhiet_dat ; delay_ms(100); if(nhiet_datnhiet_dat) { LED_1=0; LED_2=LED_3=1; } if(temp

Ngày đăng: 04/06/2023, 14:40

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

  • Đang cập nhật ...

Tài liệu liên quan