Ứng dụng vi điều khiển thiết kế volmet và bộ đếm tần số

84 353 0
Ứng dụng vi điều khiển thiết kế volmet và bộ đếm tần số

Đ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

MỤC LỤC 1.1.2. Kiến trúc của vi điều khiển PIC 9 1.1.3. Các dòng vi điều khiển PIC: 13 Nếu phân chia theo độ rộng bus dữ liệu thì có 3 dòng vi điều khiển PIC: 13 1.1.3.1.Các dòng PIC 8bit bao gồm: 14 1.1.3.2.Vi điều khiển 16bit 15 1.1.3.2.2. Bộ điều khiển xử lý tín hiệu số 16-bit (dsPIC) 18 1.1.3.3 Vi điều khiển 32bit 20 2.2.Tài nguyên về vi điều khiển Pic 16F877A 27 2.6.ADC 43 2.7.CCP 46 PHỤ LỤC………………………………………………………….……………………72 2 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Tiếng việt ADC Bộ chuyển đổi tương tự sang số. ALU Bộ xử lý số học và logic CISC Vi điều khiển có tập lệnh phức tạp. CPU Bộ vi xử lý trung tâm DMA Truy xuất bộ nhớ trực tiếp GPR Thanh ghi mục đích chung. MSSP Cổng giao tiếp nối tiếp đồng bộ chủ PC Thanh ghi bộ đếm chương trình Period Chu kỳ PSP Cổng song song hoạt động ở chế độ Slave PWM Điều chế độ rộng xung SFG Thanh ghi có chức năng đặc biệt SPI Giao diện ngoại vi nối tiếp RISC Vi điều khiển có tập lệnh đơn giản. RAM Bộ nhớ truy xuất ngẫu nhiên ROM Bộ nhớ chỉ đọc UART Bộ truyền thông bất đồng bộ nối tiếp. WDT Watchdog Timer. IR Thanh ghi lệnh 3 DANH MỤC CÁC BẢNG Bảng 2.1: Bit 5, 4 T1CKPS1:T1CKPS0 lựa chọn hệ số chia xung: 40 Bảng 2.2: Bảng các trường hợp đặc biệt trong ccp 47 Bảng 3.1: Bảng chức năng của LCD 16x2 54 Hình 3.12.Quan hệ giữa nhiệt độ và dữ liệu ra 63 Bảng 3.2: Một số mã lệnh thông dụng của DS18B20 66 4 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1.Kiến trúc Neuman 10 Hình 1.2.Kiến trúc Harvard 12 Hình 1.3.Các dòng vi điều khiển của Microchip 13 Hình 1.4.Sơ đồ khối vi điều khiển 8bit của Microchip 14 Hình 1.5.Sơ đồ khối của PIC24F 16 Hình 1.6.Sơ đồ khối của PIC24H 17 Hình 1.7.Sơ đồ khối của dsPIC 18 Hình 1.8.Sơ đồ khối củaPIC32 22 Hình 2.1.Sơ đồ bố trí chân 23 Hình 2.3.Sơ đồ bộ nhớ dữ liệu Pic16F877A 30 Hình 2.4.Sơ đồ khối Timer0 36 Hình 2.5:Thanh ghi OPTION_REG 38 Hình 2.6.Sơ đồ khối Timer1 39 Hình 2.8.Thanh ghi điều khiển Timer1 T1CON 40 Hình 2.7.Sơ đồ khối Timer2 42 Hình 2.9.Sơ khối bộ chuyển đổi ADC 45 Hình 2.10 :Các cách lưu kết quả chuyển đổi ADC 45 Hình 2.11.Sơ đồ khối ở chế độ Capture 47 Hình 2.12.Sơ đồ khối CCP(chế độ compare) 48 Hình 2.13.Sơ đồ khối CCP (PWM mode) 49 Hình 2.14.Các tham số chế độ pwm 49 Hình 2.15.Sơ đồ logic của tất cả các ngắt trong PIC 16F877A 51 Hình 3.1.Sơ đồ khối D_METER 52 Hình 3.2.Sơ đồ khối nguồn 52 5 Hình 3.3.Khối xử lý trung tâm 53 Hình 3.4.Khối hiển thị LCD 54 Hình 3.5.Khối đo điện áp 56 Hình 3.6.Khối tạo xung vuông 57 Hình 3.7.Khối đo nhiệt độ 58 Hình 3.8.IC DS18B20 59 Hình 3.9.Sơ đồ chân 60 Hình 3.10.Sơ đồ khối DS18B20 61 Hình 3.11.Format thanh ghi nhiệt độ ở chế độ 12 bit 62 Hình 3.13.Format thanh ghi TH và TL 63 Hình 3.14.Các kiểu cấp nguồn 65 Hình 3.16.Thanh ghi cấu hình 66 Hình 3.17.Thiết lập phần cứng 66 Hình 3.18.Dạng sóng khi giao tiếp 1 dây 68 6 LỜI NÓI ĐẦU Ngày nay, chúng ta thấy có rất nhiều sản phẩm điện tử được dùng trong công nghiệp và gia dụng như các bộ điều khiển từ xa, máy in hoá đơn điện thoại, bộ điều chỉnh công suất tự động, máy giặt tự động hay bán tự động, lò vi sóng, các thiết bị đo, các thiết bị hiển thị và các sản phẩm khác. Điểm chung của các thiết bị này là phải có một linh kiện gọi là ‘vi điều khiển’, cho phép điều khiển việc phân chia khoảng thời gian và sắp đặt trình tự của các cơ cấu và quá trình xử lý, lưu giữ và xử lý dữ liệu trong hệ thống điều khiển. Việc sử dụng vi điều khiển không chỉ giảm chi phí cho quá trình tự động hoá mà còn làm cho quá trình trở nên linh hoạt hơn. Nhà thiết kế bớt căng thẳng hơn do việc ghép nối phức tạp với các thiết bị ngoại vi như ADC/DAC … và có thể tập trung vào các đối tượng ứng dụng và nội dung phát triển. Linh kiện này có thể lập trình được để làm cho hệ thống trở nên thông minh. Điều này hoàn toàn là có thể bởi vì việc xử lý dữ liệu có liên quan đến dung lượng bộ nhớ của các vi điều khiển. Các vi điều khiển có nhiều khối chức năng, có thể đáp ứng toàn bộ các yêu cầu chung của kỹ thuật tự động hoá. Trong quá trình thực hiện đề tài, được sự hướng dẫn tận tình của thầy giáo Lê Mạnh Long và các thầy cô khác trong khoa em đã có cơ hội chuyển kiến thức lý thuyết thành sản phẩm thực tế qua đề tài:“Ứng dụng vi điều khiển thiết kế Volmet và bộ đếm tần số”, qua đó cũng đã hoàn thành được đề tài của mình. Tuy nhiên, với thời gian ngắn, trang thiết bị để phục vụ làm báo cáo chưa đầy đủ nên báo cáo không tránh khỏi những thiếu sót và hạn chế, em rất mong nhận được sự đóng góp, góp ý kiến của các thầy và các thầy,cô trong khoa điện tử và các bạn để đồ án tốt nghiệp của em thêm hoàn thiện. Em xin chân thành cảm ơn! 7 CHƯƠNG 1: TỔNG QUAN VI ĐIỀU KHIỂN PIC 1.1. Giới thiệu về vi điều khiển PIC của Microchip 1.1.1. Vài nét về lịch sử phát triển: PIC (Programmable Intelligent Computer) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên của họ là PIC1650. Vào thập kỷ 70 của thế kỷ 20, General Instrument và Honeywell kết hợp sản xuất ra bộ vi xử lý 16 bit CP1600. Đây là một bộ vi xử lý khá mạnh vào thời điểm đó nhưng lại hạn chế về hoạt động vào/ra. PIC1650 được sản xuất để hỗ trợ vi xử lý CP1600 trong các máy tính sử dụng bộ vi xử lý này. PIC1650 hoạt động với tập lệnh đơn giản nằm trong ROM. Vào thời điểm đó chưa có khái niệm về RISC (Reduced Instructions Set Code), tuy nhiên PIC1650 thực sự là một bộ vi điều khiển được thiết kế theo kiểu kiến trúc RISC. Tập lệnh của PIC1650 với khoảng 30 lệnh và độ dài của mỗi lệnh là 14 bit. Mỗi lệnh được PIC1650 thực hiện trong 1 chu kỳ máy (4 chu kỳ của bộ dao động). Năm 1985 General Instruments bán bộ phận sản xuất vi điện tử của họ và chủ sở hữu mới hủy bỏ hầu hết các dự án liên quan (do các dự án lúc đó đã quá lỗi thời). Năm 1989 Microchip Technology tiếp tục phát triển PIC, bắt đầu bằng việc thêm bộ nhớ EEPROM để tạo thành 1 bộ điều khiển vào ra khả trình. Tiếp đến là tích hợp các tính năng như ngắt , ADC (Analog Digital Converter) để tạo thành các bộ vi điều khiển (Micocontroller). Đến năm 1992 Microchip Technology đã cho ra đời 6 loại chip với 3 dòng khác nhau: - Dòng chip có độ dài mã lệnh bằng 12 bit gồm 4 chip PIC16C5x. Các chip này có từ 12 đến 28 chân vào/ra; - Dòng chip độ dài mã lệnh bằng 14 bit là PIC16C71. Bộ vi điều khiển này đã được tích hợp thêm hai tài nguyên là ngắt và ADC. 8 - Dòng chip độ dài mã lệnh bằng 16 bit là PIC17C41, tuy nhiên dòng chip này không được chú trọng phát triển vào thời điểm đó. Cùng thời gian này, hàng loạt các công cụ hỗ trợ cũng được các công ty khác nhau cho ra đời. Điển hình là PICMASTER emulator, PIC Pro II programmer và cả trình dịch C (C Compiler). Các công cụ này cùng với việc thay bộ nhớ OTP (one-time programmable parts) bằng bộ nhớ EEP (Electrically Erasable Parts) đã mang đến rất nhiều tiện lợi cho người lập trình, ví dụ như: người lập trình có thể nạp mà không cần gỡ chip ra khỏi mạch. PIC16C84 là bộ vi điều khiển đầu tiên có bộ nhớ kiểu EEP. Không lâu sau đó Microchip Technology tiếp tục đưa vào bộ vi điều khiển với mã lệnh dài 14 bit PIC16F877 tính năng gỡ rối (Flash debugging). Tính năng này cho phép người lập trình có thể kiểm soát từng thanh ghi, từng câu lệnh trong chương trình. Nhờ những cải tiến liên tiếp, PIC16F877 trở thành bộ vi điều khiển bán chạy nhất vào thời điểm đó (năm 1995 đến 1998). Đến năm 2000, Microchip Technology tái phát triển lại dòng chip có độ dài mã lệnh bằng 16 bit đã có trước đó 8 năm. Đại diện cho dòng chip này là PIC18F452 với tốc độ, dung lượng bộ nhớ được cải thiện và khá nhiều tính năng được bổ sung như các bộ định thời (Timer), truyền thông nối tiếp Dòng vi điều khiển PIC 8 bit đã dẫn đầu về số lượng bộ bán ra mỗi năm liên tục từ năm 2002 đến nay. Trước nhu cầu về tốc độ xử lý cũng như các tính năng đặc biệt khác, Microchip Technology tiếp tục cho ra đời các dòng vi điều khiển tiên tiến hơn như: PIC24, PIC33, dsPIC Ngày nay đã có đến hàng chục dòng PIC với hàng trăm loại chip khác nhau. Tại Việt Nam cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: Số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành công; dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó khăn,… 9 1.1.2. Kiến trúc của vi điều khiển PIC. Kiến trúc của một bộ vi điều khiển được thiết kế theo hai dạng cơ bản: Kiến trúc Von Neuman và kiến trúc Harvard. (hình 1.1 và hình 1.2) Von Neumann là một nhà toán học, vật lí người Mỹ, gốc Do thái. Năm 1944, Von Neumann làm cố vấn cho dự án chế tạo máy tính ENIAC, để phục vụ cho các mục đích quân sự của Mỹ. Năm 1945, Sau khi dự án ENIAC hoàn thành, Von Neumann cùng nhóm một vài thành viên trong nhóm làm việc của ông lại tiến hành một dự án mới, là xây dựng một máy tính hiện đại hơn. Năm 1945, Von Neumann đã viết một bài báo có tính bước ngoặc với tựa: "Bản thảo đầu tiên về máy tính EDVAC " ("The First Draft of a Report on the EDVAC "), chứa đựng những ý tưởng về cầu trúc cơ bản mà một máy tính cần có . Bài báo này được Von Neumann trao đổi giới hạn với các thành viên trong nhóm làm việc, tuy nhiên, sau đó đã được phổ biến rộng rãi và ảnh hưởng mạnh đến sự phát triển của máy tính ở Mỹ và thế giới. Theo đó, cấu trúc của máy tính là sự kết hợp của các thành phần sau: - Bộ xử lý số học và logic (ALU - Arithmetic-Logic Unit ) - Bộ nhớ (Memory) - Bộ điều khiển (Von Neumann Control Unit) - Các bộ phận vào/ra. Một điểm đáng chú ý nhất trong kiến trúc Von Neumann là dữ liệu (data) cùng với lệnh (instruction) được dùng để xử lí dữ liệu đó có thể được lưu giữ trên cùng một vùng nhớ của máy tính. Do dữ liệu và các lệnh được lưu trong cùng một vùng nhớ (vùng nhớ ở đây là RAM), nên cần thiết phải phân biệt chúng, khối điều khiển Von Neumann (Von Neumann Control Unit) sẽ thực hiện nhiệm vụ này. 10 Hình 1.1.Kiến trúc Neuman Với vi điều khiển 16 bit: - A: Thanh ghi tích lũy - Y,Z :Temporary Register (thanh ghi đệm) - Flags : Thanh ghi cờ - PC : Bộ đếm chương trình (program counter) - IR: Thanh ghi lệnh (Instruction Register) - ALU là khối tình logic. - CPU Data Bus: đương bus dữ liệu. - Data Buffer : vùng dữ liệu đệm. Khi khối điều khiển Von Neumann bắt đầu gọi một lệnh để xử lí, nó gọi tới bộ đếm chương trình (PC - Program Counter) để trỏ tới địa chỉ của lệnh trong bộ nhớ, rồi lệnh này sẽ được nạp và thực thi bởi CPU. Địa chỉ của dữ liệu cần xử lí được chứa trong chính lệnh cần thực thi. Khi thực thi các CP U Dat a Bu s A Y Z ALU IN OU T Flags PC IR MAR Data Buffer System Bus Data Line Addres Line Control Line [...]... byte Vi điều khiển được tổ chức theo kiến trúc Havard còn được gọi là vi điều khiển RISC (Reduced Instruction Set Computer- vi điều khiển có tập lệnh rút gọn) Vi điều khiển được thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiển CISC (Complex Instruction Set Computer - Vi điều khiển có tập lệnh phức tạp), mã lệnh của các bộ vi điều khiển này không phải là một số cố định mà luôn là bội số. .. này 1.1.3 Các dòng vi điều khiển PIC: Nếu phân chia theo độ rộng bus dữ liệu thì có 3 dòng vi điều khiển PIC: Vi điều khiển 32bit PIC32 Vi điều khiển 16bit dsPIC33 dsPIC30 PIC24H PIC24F Vi điều khiển 8bit PIC18 PIC16 PIC12 PIC10 Hình 1.3.Các dòng vi điều khiển của Microchip 14 Đây là dòng sản phẩm bán chạy nhất của Microchip, vi điều khiển 8bit có một số đặc điểm chính sau: - Thiết kế theo kiến trúc... 2.3.Tổ chức bộ nhớ Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory) 29 2.3.1 Bộ nhớ chương trình Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (Data Memory) Hình 2.2 .Bộ nhớ chương trình PIC16F877A Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash ,bộ nhớ chương... tới bộ nhớ chương trình + Dải nhiệt độ công nghiệp và thuận lợi + Công suất tiêu thụ thụ : - < 0.6 mA với 5v,4 Mhz 28 - 20 µA với nguồn 3V ,32 Mhz - < 1 µ A nguồn dự phỏng + Các đặc tính ngoại vi bao gồm các khối chức năng sau: - Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit - Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển. .. vi điều khiển dòng PIC cũng không có lệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởi CPU 2.4.Cổng vào ra Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng Một cổng xuất nhập của vi điều khiển. .. CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp + ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC 2.4.2.PortB PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISB Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trình cho vi điều khiển với các chế độ nạp khác nhau 35 PORTB còn liên quan đến ngắt ngoại vi và bộ Timer0 PORTB còn được tích... - Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler - Hai bộ Capture/so sánh /điều chế độ rông xung - Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C - Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ - Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài + Bên cạnh đó là một vài đặc tính khác của vi điều khiển như: - Bộ nhớ flash... năng: - Là chân vào ra số bình thường - Là chân điều khiển vi c chọn chip làm con tớ trong giao thức song song -Là ngõ vào tương tự thứ 7 + Chân 11: VDD là chân dương nguồn của vi điều khiển 25 + Chân 12 : VSS là chân nguồn của vi điều khiển ,chân này được nối xuống mass + Chân 13: OSC1/CLKI, chân này có hai chức năng: - Là chân nối với bộ giao động ngoài để cung cấp giao động cho vi điều khiển - Là chân... trong PORTE + TRISE: điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếp PSP + ADCON1: thanh ghi điều khiển khối ADC 2.5.Timer trong PIC Vi điều khiển PIC 16F8777A có 3 bộ Timer là : Timer0, Timer1, Timer2 2.5.1 Bộ Timer0 Hình 2.4.Sơ đồ khối Timer0 Là bộ định thời hoặc bộ đếm có những ưu điểm nổi bật sau: + 8 bit cho timer hoặc bộ đếm + Có khả năng đọc và ghi + Có thể dùng đồng hồ bên trong... Devices còn đưa ra một kiểu kiến trúc dựa trên kiến trúc Harvard, đó là SHARC (Super Harvard Architecture) Kiến trúc này được áp dụng cho các bộ xử lý số (DSP – Digital Signal Processing) của hãng (ví dụ như ADSP-2106x) Ngoài các đặc điểm như kiến trúc Harvard, SHARC được bổ sung thêm bộ nhớ đệm chỉ lệnh và điều khiển vào/ra nhằm cải thiện thông lượng dữ liệu Dòng vi điều khiển DsPIC được thiết kế . có 3 dòng vi điều khiển PIC: Hình 1.3.Các dòng vi điều khiển của Microchip PIC10 PIC12 PIC16 PIC18 PIC24F PIC24H dsPIC30 dsPIC33 PIC32 Vi điều khiển 8bit Vi điều khiển 32bit Vi điều khiển 16bit 14 Đây. thầy giáo Lê Mạnh Long và các thầy cô khác trong khoa em đã có cơ hội chuyển kiến thức lý thuyết thành sản phẩm thực tế qua đề tài: Ứng dụng vi điều khiển thiết kế Volmet và bộ đếm tần số , qua đó cũng. Set Computer- vi điều khiển có tập lệnh rút gọn). Vi điều khiển được thiết kế theo kiến trúc Von-Neuman còn được gọi là vi điều khiển CISC (Complex Instruction Set Computer - Vi điều khiển có tập lệnh

Ngày đăng: 08/05/2015, 01:11

Từ khóa liên quan

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

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

Tài liệu liên quan