ứng dụng ngôn ngữ lập trình c vào vi điều khiển thiết kế mạch đồng hồ điện tử led hiển thị thời gian thực rtc

105 956 0
ứng dụng ngôn ngữ lập trình c vào vi điều khiển thiết kế mạch đồng hồ điện tử led hiển thị thời gian thực rtc

Đ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

TRƢỜNG ĐẠI HỌC CẦN THƠ KHOA SƢ PHẠM BỘ MÔN SƢ PHẠM VẬT LÝ ỨNG DỤNG NGÔN NGỮ LẬP TRÌNH C VÀO VI ĐIỀU KHIỂN THIẾT KẾ MẠCH ĐỒNG HỒ ĐIỆN TỬ LED HIỂN THỊ THỜI GIAN THỰC RTC Luận văn tốt nghiệp Ngành: SƢ PHẠM VẬT LÝ GVHD: SVTH: Vƣơng Tấn Sĩ Nguyễn Long Phƣớc Đƣờng MSSV: 1110193 Lớp: Sƣ Phạm Vật Lý - TL11012A1 Khóa: 37 Cần Thơ, năm 2015 GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường LỜI CẢM ƠN Em xin bày tỏ lòng biết ơn chân thành sâu sắc đến Ban chủ nhiệm Khoa Sư Phạm toàn thể thầy (cô) Khoa giúp em có kiến thức đặc biệt thầy (cô) môn Vật Lý khoa Sư Phạm trường ĐH Cần Thơ truyền đạt kiến thức chuyên nghành tạo điều kiện em hoàn thành luận văn tốt nghiệp Và hành trang chuẩn bị cho em bước vào đời Em xin cám ơn thầy Vương Tấn Sĩ (giáo viên hướng dẫn) giúp đỡ bảo tận tình cho em suốt trình làm luận văn Tp Cần Thơ, ngày 24 tháng năm 2015 Sinh viên Nguyễn Long Phước Đường Luận văn tốt nghiệp GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu thực Các số liệu, kết phân tích luận văn hoàn toàn trung thực chưa công bố công trình nghiên cứu trước Mọi tham khảo, trích dẫn rõ nguồn danh mục tài liệu tham khảo luận văn Cần Thơ, ngày 24 tháng năm 2015 Tác giả Nguyễn Long Phƣớc Đƣờng Luận văn tốt nghiệp GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường MỤC LỤC Mục lục…………………………………………………………………………… i Danh mục ký hiệu, chữ viết tắt…………………………………………………….iii PHẦN 1: MỞ ĐẦU………………………………………………………………….1 Lý chọn đề tài…………………………………………………………1 Mục tiêu đề tài……………………………………………………….2 Giới hạn đề tài……………………………………………………………2 Phƣơng pháp phƣơng tiện thực đề tài…………………………2 4.1 Phƣơng pháp…………………………………………………………2 4.2 Phƣơng tiện………………………………………………………… PHẦN 2: NỘI DUNG……………………………………………………………….4 Chƣơng Giới thiệu chung họ vi điều khiển 8051……………… 1.1 Sơ lƣợc vi điều khiển…………………………………………… 1.2 Sơ lƣợc khối vi điều khiển…………………………… 1.3 Giới thiệu họ vi điều khiển 8051………………………………….7 Chƣơng Vi điều khiển IC 89S52……………………………………….9 2.1 Sơ lƣợc vi điều khiển 89S52………………………………………9 2.2 Sơ đồ chân chức IC 89S52…………………………… 2.3 Bộ nhớ liệu……………………………………………………… 14 2.4 Các bƣớc lập trình cho 89S52……………………………………… 15 2.5 Hoạt động ngắt……………………………………………………… 19 Chƣơng Lập trình nhúng ngôn ngữ C lập trình vi điều khiển……………………………………………………21 3.1 Ngôn ngữ lập trình…………………………………………………….21 3.2 Lập trình……………………………………………………………….21 3.3 Lập trình nhúng………………………………………………………21 Luận văn tốt nghiệp i GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường 3.4 Ngôn ngữ C ………………………………………………………… 22 Chƣơng Giới thiệu trình biên dịch Dev C++ trình biên dịch Keil C µVision (Compiler)……………………………34 4.1 Trình biên dịch Dev C++ ……………………………………………34 4.2 Trình biên dịch Keil C µVision (Compiler)……………………….41 PHẦN 3: THI CÔNG MẠCH THỰC TẾ………………………………………….47 Chƣơng Giới thiệu khối linh kiện mạch………… 47 1.1 Giới thiệu linh kiện mạch…………………………………47 1.2 Các khối mạch………………………………………………….62 Chƣơng Sơ đồ nguyên lý mạch mô phỏng………………………….67 2.1 Sơ đồ nguyên lý……………………………………………………… 67 2.2 Mạch in……………………………………………………………… 68 2.3 Mạch mô phỏng……………………………………………………….68 Chƣơng Lƣu đồ giải thuật chƣơng trình………………………… 70 3.1 Lƣu đồ giải thuật…………………………………………………… 70 3.2 Mã nguồn chƣơng trình…………………………………………… 77 PHẦN 4: KẾT LUẬN………………………………………………………………92 Kết đạt đƣợc đề tài…………………………………………… 92 Đề nghị……………………………………………………………………93 Hƣớng phát triển…………………………………………………………93 Danh mục tài liệu tham khảo……………………………………………………….94 Phụ lục……………………………………………………………………………….95 Phụ lục 1…………………………………………………………………………… 95 Phụ lục 2…………………………………………………………………………… 96 Phụ lục 3…………………………………………………………………………… 97 Luận văn tốt nghiệp ii GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường DANH MỤC KÍ HIỆU, CHỮ VIẾT TẮT AC Auxiliary Carry Flag Cờ nhớ phụ A/D Analog/Digital Tương tự/số ALE Address Latch Enable Tín hiệu điều khiển chốt địa CLK Clock Xung đồng hồ CP/RL2 Capture/ Reload Select Chế độ thu nhận CPU Central Processing Unit Đơn vị xử lý trung tâm CS Chip Select Chọn chip CTS Clear to Send Xoá để gửi C/T Timer/Counter Bộ định thời/ đếm DCD Data Carrier Detect Tách tín hiệu mang liệu DCE Data Comnication Equipment Thiết bị tiếp nhận DPTR Data Pointer Con trỏ ngăn xếp DTR Data Terminal Realy Đầu cuối liệu DSR Data Set Realy Dữ liệu sẵn sàng DTE Data Terminal Equipment Thiết bị đầu cuối EA External Access Tín hiệu cho phép chọn nhớ EIA Electronics Industry Asscociation Hiệp hội công nghiệp điện tử EN Enable Chân cho phép Luận văn tốt nghiệp iii GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường GND Ground Đất I2C Intergrated Circuit Chuẩn giao tiếp I2C IE Interupt Enable Thanh ghi cho phép ngắt I/O Input/Output Vào/Ra INT Interrrupt Ngắt IP Interrupt priority Thanh ghi ưu tiên ngắt ISR Interrupt Service Routine Chương trình phục vụ ngắt LCHCLK Latch Clock Xung cock chốt liệu Luận văn tốt nghiệp iv GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường PHẦN 1: MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI Ngày công nghệ kỹ thuật vi điều khiển lập trình nhúng trở nên quen thuộc ngành kỹ thuật dân dụng từ dây truyền sản xuất lớn đến thiết bị gia dụng nhỏ thấy diện vi điều khiển Các vi điều khiển có khả xử lý nhiều hoạt động phức tạp mà cần sử dụng chip vi mạch nhỏ, thay hệ thống điều khiển lớn phức tạp mạch điện nhỏ gọn nhẹ, dễ dàng thao tác sử dụng Lâp trình nhúng ứng dụng vào vi điều khiển góp phần vào kỹ thuật điều khiển mà góp phần to lớn vào việc phát triển thông tin, giáo dục v.v Đó đời hàng loạt thiết bị đại ngành viễn thông, truyền hình, giáo dục, đặc biệt đời phát triển Internet góp phần phát triển phương pháp – phương tiện giáo dục trở nên tiện lợi hơn, lý việc tìm hiểu lập trình nhúng khảo sát vi điều khiển, chế tạo mạch điện tử ứng dụng giảng dạy điều mà sinh viên ngành Sư Phạm đặc biệt ngành Sư Phạm Vật Lý quan tâm Đó nhu cầu cần thiết cấp bách sinh viên Luận văn thực đáp ứng nhu cầu Các điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng chúng điều phức tạp Các vi điều khiển chủ yếu phụ thuộc vào người chương trình hay phần mềm Hiện có loại máy tính thông minh giải toán phức tạp vài phần triệu giây thành đạt dựa hiểu biết người Nếu tham gia người hệ thống vật vô tri Khi nói đến vi điều khiển giống máy tính bao gồm hai phần: phần cứng phần mềm Các vi điều khiển phát triển theo thời gian với phát triển công nghệ bán dẫn phát triển nhanh Từ vi điều khiển bit đơn giản phát triển lên vi điều khiển 32 bit Với công nghệ tiên tiến máy tính suy nghĩ hành động gần giống người để tiếp cận hiểu công nghệ cần phải nghiên cứu thời gian dài Để tìm hiểu vi điều khiển cách khoa học mang lại hiệu làm tảng cho phát triển sau việc trang bị kiến thức vi điều khiển ngôn ngữ lập trình cho sinh viên cần thiết Luận văn tốt nghiệp GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường Một ứng dụng thiết thực lâp trình nhúng vào vi điều khiển thiết kế đồng hồ hiển thị thời gian Đây ứng dụng thường thấy sống Qua môn học: kỹ thuật điện tử 1, thực tập kỹ thuật điện tử 1, CAD, cảm biến….Với mục đích kiểm tra lại kiến thức điện tử nên luận văn này, em chọn thi công mạch đồng hồ số thời gian thực dùng DS1307 để vận dụng tất kiến thức học Ở đây, học AT89S52 nên sử dụng vi xử lý AT89S52 để thi công mạch Về phần hiển thị thời gian dùng led đoạn, led đơn,led ma trận, hay LCD để hiển thị Đối với led ma trận phức tạp cho việc hiển thị, em sử dụng led đoạn cho việc hiển thị Xuất phát từ thực tiễn em chọn đề tài “Ứng dụng ngôn ngữ lập trình C vào vi điều khiển thiết kế mạch đồng hồ Led đoạn hiển thị thời gian thực RTC” MỤC TIÊU CỦA ĐỀ TÀI Kiến thức vật lý phần quan trọng môn khoa học tự nhiên ngành kỹ thuật – đời sống, tảng cho ngành công nghiệp đại tin học, điện tử,… Việc ứng dụng kiến thức vào việc chế tạo thiết bị phục vụ đời sống thường ngày nghiên cứu dạy học nói chung nhằm đáp ứng yêu cầu việc dạy học điện tử cho sinh viên ngành Sư Phạm Vật Lý Thực nghiên cứu chế tạo mạch đồng hồ Led ứng dụng kiến thức vật lý vào sống thường ngày, qua cho thấy Vật Lý không đơn định luật khô khan hàn lâm mà diện xung quanh ta khía cạnh GIỚI HẠN ĐỀ TÀI Trước phát triển mạnh mẽ công nghệ phần cứng công nghệ phần mềm có nhiều vi điều khiển phần mềm hỗ trợ lập trình biên dịch đề tài em nghiên cứu vi điều khiển AT89S52 ngôn ngữ lập trình C mà PHƢƠNG PHÁP VÀ PHƢƠNG TIỆN THỰC HIỆN ĐỀ TÀI 4.1 Phƣơng pháp - Nghiên cứu lý thuyết: Vi điều khiển AT89S52 vi điều khiển có cấu tạo tương đối phức tạp có nguyên tắc làm việc xuất nhập liệu tương đối đơn giản Tìm hiểu lập trình nhúng ngôn ngữ lập trình C Luận văn tốt nghiệp GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường Sử dụng trình biên dịch phần mềm mô trước ráp mạch thực tế giúp giảm thiểu tối đa sai sót tổn hao thiết bị ráp mạch thực tế - Thực hành: Thực thi công ráp mạch thực tế 4.2 Phƣơng tiện - Vi điều khiển AT89S52 - Các linh kiện điện tử khác cần thiết cho luận văn như: thạch anh 12MHz, DS 1307, tụ hóa, pin CMOS 3V, v.v… - Ngôn ngữ lập trình C phần mềm viết code Dev C ++ - Các bo mạch, mạch nạp số phần mềm mô phỏng, nạp mạch, biên dịch, v.v… Luận văn tốt nghiệp GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường hour = DS1307_read(HOUR); } void Write_DS1307() { DS1307_Write(SEC,sec); DS1307_Write(MIN,min); DS1307_Write(HOUR,hour); } void Write_Alarm() { DS1307_Write(A_MIN,a_min); DS1307_Write(A_HOUR,a_hour); } //************************************************************************* ***** void delay(unsigned int time) { while(time ); } void set_main(void) // Chuong trinh khoi tao main { Luận văn tốt nghiệp 84 GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phước Đường P1=0xFF; P0=P2=P3=0x00; } void setup_timer(void) // Setup timer va timer { TMOD=0x11; // timer0 & timer1 set che ET1=1; ET0=1; EA=1; TF0=0; TF1=0; TR0=1; TR1=1; } void Set_Clock(void) // Kiem tra va hieu chinh gia tri cua gio,phut,giay { unsigned char y; y=(year%4)*100; //Tang if(min>59) { min=0; } if(hour>23){ hour=0; } //Giam if(min[...]... kiện điện tử thụ động (như điện trở) đư c kết nối với nhau, kích thư c nhỏ và chế tạo bởi c ng nghệ silicon cho lĩnh v c điện tử Vi điều khiển là những vi mạch điện tử tích hợp (chip) mà chúng ta c thể lập trình để th c hiện những nhiệm vụ mà bạn muốn Kh c với vi xử lý, c c vi điều khiển ngoài ch c năng xử lý dữ liệu thuật toán nó c n đư c tích hợp c c bộ ch c năng đ c biệt kh c, c c vi điều khiển. .. với ngôn ngữ Tiếng Anh Chương trình vi t trên ngôn ngữ b c cao phải đư c chuyển đổi thành chương trình trên ngôn ngữ máy mới c thể th c hiện đư c Lập trình bằng ngôn ngữ b c cao dễ vi t hơn vì c c lệnh đư c mã hóa gần với ngôn ngữ tự nhiên Lập trình trên ngôn ngữ máy rất khó, thường c c chuyên gia lập trình mới lập trình đư c 3.2 Lập trình Lập trình là vi c sử dụng c u tr c dữ liệu và c c lệnh c a ngôn. .. họ MCS-48 đã đư c sử dụng phổ biến trong c c ứng dụng hướng điều khiển như máy giặt, ôtô, c c thiết bị ngoại vi c a máy tính… Sau 8748, c c bộ vi điều khiển mới liên t c đư c c c hãng sản xuất như Intel, Atmel, Siemens… giới thiệu cho c c ứng dụng nhúng Vi mạch tích hợp, hay vi mạch, hay mạch tích hợp (integrated circuit) hay vi điều khiển, gọi tắt IC, hay chip là c c mạch điện chứa c c linh kiện bán... Ngôn ngữ C [5] 3.4.1 Giới thiệu C nhiều ngôn ngữ b c cao như C/ C++, Basic, Pascal… Trong đó C là ngôn ngữ thông dụng hơn c trong kỹ thuật vi điều khiển Khi sử dụng ngôn ngữ C người lập trình không c n hiểu sâu s c về c u tr c của bộ vi điều khiển C nghĩa là với 1 người chưa quen với 1 vi điều khiển cho trư c vẫn c thể xây dựng đư c chương trình và thuật toán hợp lý mà không mất quá nhiều thời gian. .. trong c c máy tính c n c c bộ vi điều khiển dùng làm trong c c ứng dụng hướng điều khiển + Về c c đ c trưng tập lệnh: Do ứng dụng kh c nhau nên c c bộ vi xử lý và vi điều khiển c ng c những yêu c u kh c nhau đối với tập lệnh c a chúng Tập lệnh c a c c vi xử lý thường Luận văn tốt nghiệp 4 GVHD: Thầy Vương Tấn Sĩ SVTH: Nguyễn Long Phư c Đường mạnh về c c kiểu địa chỉ với c c lệnh cung c p c c hoạt... bằng ngôn ngữ máy là c thể đư c th c thi một c ch nhanh chóng (nhờ vi xử lí c thể xử lí c c chỉ thị vi t bằng ngôn ngữ máy một c ch tr c tiếp) + Hợp ngữ (assembly language) là một ngôn ngữ c p thấp dùng để vi t c c chương trình máy tính C ch dùng c c thuật nhớ thân thiện để vi t chương trình đã thay thế c ch lập trình tr c tiếp lên máy tính bằng mã máy dạng số (numberic machine code) - từng áp dụng cho... IC là vi c thiết kế c c thuật toán bằng c ch sử dụng c c tập lệnh để IC giải quyết c c nhiệm vụ c thể tùy theo yêu c u c a mạch điện tử Vì mạch đồng hồ c a luận văn đặt ra đa phần liên quan đến vi c định thời và đếm sự kiện nên ở đây đi sau phân tích c c vấn đề liên quan đến vi c định thời và đếm sự kiện 2.4.2 Hoạt động định thời C c bộ định thời (Timer) đư c sử dụng rất rộng rãi trong c c ứng dụng. .. nh c, dễ gây lỗi và tốn nhiều thời giờ Một chương trình vi t bằng hợp ngữ sẽ đư c dịch sang ngôn ngữ máy bằng một tiện ích gọi là trình hợp dịch Lưu ý rằng, trình hợp dịch kh c hoàn toàn với trình biên dịch, vốn dùng để biên dịch c c ngôn ngữ b c cao sang c c chỉ thị lệnh c p thấp mà sau đó sẽ đư c trình hợp dịch chuyển đổi sang ngôn ngữ máy + Ngôn ngữ b c cao là c c lệnh đư c mã hóa bằng một ngôn ngữ. .. địa chỉ để truyền địa chỉ từ CPU tới bộ nhớ c n bus dữ liệu để kết nối tất c c c khối trong vi điều khiển 1.2.4 Khối vào và ra C ba loại c ng là vào, ra, c ng hai chiều Khi làm vi c với c ng trư c tiên ta phải chọn c ng c n giao tiếp sau đó truyền dữ liệu tới ho c nhận dữ liệu từ c ng Khi làm vi c cổng đóng vai trò như một ô nhớ ghi vào ho c đ c ra từ c c cổng nó đư c chỉ ra trên c c chân c a vi điều. .. với vi xử lý ở những điểm sau: + Về phần c ng: Vi xử lý c n ghép thêm c c thiết bị ngoại vi bên ngoài như bộ nhớ và c c thiết bị ngoại vi kh c để c thể tạo thành một bản mạch hoàn chỉnh Với vi điều khiển bản thân nó là một hệ máy tính hoàn chỉnh với CPU, bộ nhớ, mạch giao tiếp, c c bộ định thời và mạch điều khiển ngắt đư c tích hợp bên trong + Về ứng dụng: C c bộ vi xử lý chủ yếu đư c dùng làm CPU ... nhu c u c n thiết c p bách sinh vi n Luận văn th c đáp ứng nhu c u C c điều khiển sử dụng vi điều khiển đơn giản để vận hành sử dụng chúng điều ph c tạp C c vi điều khiển chủ yếu phụ thu c vào. .. LCD để hiển thị Đối với led ma trận ph c tạp cho vi c hiển thị, em sử dụng led đoạn cho vi c hiển thị Xuất phát từ th c tiễn em chọn đề tài Ứng dụng ngôn ngữ lập trình C vào vi điều khiển thiết. .. v c điện tử Vi điều khiển vi mạch điện tử tích hợp (chip) mà lập trình để th c nhiệm vụ mà bạn muốn Kh c với vi xử lý, vi điều khiển ch c xử lý liệu thuật toán tích hợp ch c đ c biệt kh c, vi điều

Ngày đăng: 08/12/2015, 15:34

Từ khóa liên quan

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

Tài liệu liên quan