1. Trang chủ
  2. » Luận Văn - Báo Cáo

ĐỒ ÁN TỐT NGHIỆP CƠ ĐIỆN TỬ XỬ LÝ TÍN HIỆU ÂM THANH VỚI VI ĐIỀU KHIỂN PIC

65 1,8K 12

Đ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

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 1,63 MB

Nội dung

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢIKHOA CƠ KHÍ – BỘ MÔN KỸ THUẬT MÁY  ĐỀ TÀI: XỬ LÝ TÍN HIỆU ÂM THANH VỚI VI ĐIỀU KHIỂN PIC.. Nhiệm vụ của vi xử lí là thực hiện cáccông việc xử lý tín h

Trang 1

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

KHOA CƠ KHÍ – BỘ MÔN KỸ THUẬT MÁY



ĐỀ TÀI: XỬ LÝ TÍN HIỆU ÂM THANH VỚI VI ĐIỀU KHIỂN PIC.

Giáo viên hướng dẫn: Trịnh Tuấn Dương

Sinh viên thực hiện: Phạm Ngọc Ánh

Trang 2

Hà Nội, tháng 4 năm 2014

Trang 3

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Ngày …, tháng …, năm …

GIÁO VIÊN HƯỚNG DẪN

i

Trang 4

NHẬN XÉT CỦA GIÁO VIÊN ĐỌC DUYỆT

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

………

Ngày …, tháng …, năm … GIÁO VIÊN ĐỌC DUYỆT

Trang 5

LỜI CẢM ƠN

Sau những năm học tại trường, chúng em đã được học và tiếp thu nhiều kiến

thức mới từ sự chỉ bảo tận tình của Quý Thầy Cô và sự giúp đỡ của bạn bè Đây là

khoảng thời gian đầy ý nghĩa Đồ án tốt nghiệp ra trường là nền tảng quan trọng

và đánh dấu một bước ngoặt mới với cuộc đời chúng em.

Em xin gửi lời cảm ơn chân thành đến thầy Trịnh Tuấn Dương Thầy đã hướng

dẫn em thực hiện đồ án tốt nghiệp này.

Em xin chân chân thành cảm ơn Quý Thầy Cô thuộc bộ môn Kỹ Thuật Máy đã

tạo điều kiện để em hoàn thành đồ án này.

Sinh viên thực hiện

Phạm Ngọc Ánh

iii

Trang 6

LỜI NÓI ĐẦU

Ngày nay, cùng với sự phát triển không ngừng của khoa học kỹ thuật, nghành kỹ thuật điện tử cũng đã có những bước phát triển không ngừng Chúng đi sâu vào mọi mặt của đời sống hàng ngày của người dân Đặc biệt sử dụng vi điều khiển để điều khiển các ứng dụng trong đời sống cũng như công nghiệp ngày càng phổ biến.

Những kiến thức tiếp thu trong quá trình học tập tại trường sẽ được đánh giá qua đợt bảo vệ đồ án tốt nghiệp này Những kết quả những sản phẩm đạt được ngày hôm nay tuy không lớn lao những cũng là những thành quả bước đầu sau những năm học tại trường.

Do thời gian và kiến thức còn hạn chế, mặc dù đã cố gắng hoàn thành đồ án tốt nghiệp đúng thời han Nên không thể tránh khỏi những thiếu xót nhất định, mong Quý Thầy Cô thông cảm Em rất mong nhận được những ý kiến đóng góp của Thầy Cô và các bạn.

Em xin chân thành cảm ơn Thầy Cô và các bạn!

Trang 7

M c l cục lục ục lục

CHƯƠNG 1 GIỚI THIỆU CHUNG 1

1.1 Vi xử lý và vi điều khiển 1

1.2 Vi điều khiển PIC 1

1.3 Khái quát về vi điều khiển PIC16F877A 2

1.4 Sơ đồ chân PIC 16F877A 3

1.5 Một vài thanh ghi có chức năng đặc biệt 9

1.6 Các loại ngắt 15

1.7 Module CCP 15

1.7.1 PWM 17

1.8 Module ADC 18

1.8.1 Các thanh ghi điều khiển cơ bản 19

1.9 Lập trình cho vi điều khiển 22

1.9.1 Giới thiệu CCS 22

1.10 Chỉ thị tiền xử lý 23

1.10.1 #INCLUDE 23

1.10.2 #BIT 23

1.10.3 #BYTE 23

i

Trang 8

1.10.4 #DEFINE 24

1.10.5 #USE 24

1.11 Các hàm delay: 24

1.11.1 Delay_ms(time) 24

1.11.2 Delay_us(time) 24

1.12 Các hàm về PWM 25

1.12.1 SETUP_CCPX(MODE) 25

1.12.2 Set_CCPx_duty(value) 25

1.13 Các hàm về ADC 25

1.13.1 Setup_ADC(mode) 25

1.13.2 Setup_ADC_ports(value) 25

1.13.3 Set_ADC_channel (channel) 26

1.13.4 Value = read_ADC_(mode) 26

CHƯƠNG 2 CẢM BIẾN ÂM THANH 27

2.1 Khái niệm 27

2.1.1 Cảm biến 27

2.1.2 Âm thanh 27

2.2 Cảm biến âm thanh 27

2.2.1 Nguyên lý hoạt động 27

Trang 9

2.2.3 Module cảm biến âm thanh 29

CHƯƠNG 3 LÀM VIỆC VỚI CẢM BIẾN ÂM THANH VÀ PIC 16F877A 31 3.1 Sử dụng cảm biến âm thanh đóng mở động cơ 31

3.1.1 Lưu đồ thuật toán 31

3.2 Xử lý tín hiệu âm thanh 35

3.2.1 Cảm biến 35

3.2.2 Bộ khuếch đại 35

3.3 Đọc tín hiệu tương tự 38

3.3.1 Lấy mẫu ADC tín hiệu âm thanh 39

3.4 Điều khiển động cơ dc 41

3.4.1 Điều khiển tốc độ động cơ dc 41

3.4.2 Điều khiển động cơ bằng phương pháp PWM 42

3.4.3 Điều khiển chiều quay của động cơ 42

3.5 Sơ đồ khối chức năng 45

Tài liệu tham khảo 49

iii

Trang 10

DANH SÁCH HÌNH VẼ VÀ BẢNG BI

Hình 1 1 Sơ đồ chân của 16F877A 4

Hình 1 2 Chức năng của các cổng PORT A 5

Hình 1 3 Thanh ghi TRIS A 6

Hình 1 4 Chức năng của các cổng PORT B 6

Hình 1 5 Thanh ghi TRIS B 7

Hình 1 6 Chức năng của các chân thuộc PORT C 7

Hình 1 7 Địa chỉ thanh ghi TRIS C 8

Hình 1 8 Chức năng của các cổng PORT D 8

Hình 1 9 Các địa chỉ thanh ghi TRIS D 9

Hình 1 10 Chức năng của các cổng PORT E 9

Hình 1 11 Địa chỉ thanh ghi TRIS E 9

Hình 1 12 Bản đồ cấu trúc dữ liệu của 16F877A 10

Hình 1 13 Thanh ghi STATUS 11

Hình 1 14 Thanh ghi OPTION REG 12

Hình 1 15 Giá trị bộ chia tần 13

Hình 1 16 Thanh ghi INTCON 14

Hình 1 17 Thanh ghi điều khiển module CCP 16

Trang 11

Hình 1 18 Tín hiệu đầu ra của chân CCP 18

Hình 1 19 Thanh ghi ADCON0 20

Hình 1 20 Thanh ghi ADCON1 21

Hình 1 21Những lựa chọn cho Bit 6 của thanh ghi ADCON1 22

Hình 1 22 Cấu hình cho các bit 3-0 của ADCON1 22

Y Hình 2 1 Module cảm biến âm thanh sử dụng Microphone 31

Hình 3 1 Điều khiển tắt mở đông cơ 33

Hình 3 2 Mô phỏng điều khiển động cơ DC 34

Hình 3 3 Sơ đồ khối xử lý tín hiệu âm thanh 37

Hình 3 4 Khối khuếch đại 38

Hình 3 5 Mạch khuếch đại chế độ A 38

Hình 3 6 Sơ đồ mạch và dạng tín hiệu vào - ra 39

Hình 3 7 Sơ đồ khối của bộ chuyển đổi ADC 41

Hình 3 8 Mô tả quá trình lẫy mẫu 42

Hình 3 9 Tín hiệu và lấy mẫu tín hiệu 43

Hình 3 10 Sơ đồ khối của L298 45

v

Trang 12

Hình 3 11 Sơ đồ chân của L298 46

Hình 3 12 Chế độ hoạt động của L298 47

Hình 3 13 Sơ đồ khối chức năng 48

Hình 3 14 Mạch nguồn 5V 49

Bảng 3 1 Chức năng các chân của L298 47

Trang 13

CHƯƠNG 1 GIỚI THIỆU CHUNG

1.1.Vi xử lý và vi điều khiển

Vi xử lý (bộ vi xử lý) là một linh kiện điện tử được chế tạo từ các tranzito thunhỏ tích hợp trên một vi mạch tích hợp đơn Nhiệm vụ của vi xử lí là thực hiện cáccông việc xử lý tín hiệu hoặc điều khiển các thành phần trong hệ thống theochương trình, thuật toán do người dùng đặt ra

Bộ vi xử lý có khả năng vượt trội so với các hệ thống khác về khả năng tínhtoán, xử lý và thay đổi chương trình linh hoạt theo mục đích người dùng, đặc biệthiệu quả đối với những bài toán hoặc hệ thống lớn Tuy nhiên đối với các ứng dụngnhỏ, đơn giản thì việc ứng dụng vi xử lý là không hợp lý vì giá thành đắt cho một

hệ thống nhỏ

Vì vậy các nhà chế tạo đã tích hợp một chút bộ nhớ và một mạch giao tiếp ngoại

vi cùng với vi xử lý vào một IC duy nhất được gọi là Microcontroller –vi điềukhiển

Như vậy, vi điều khiển (VĐK) là một hệ thống bao gồm một vi xử lý có hiệusuất đủ dùng và giá thành thấp kết hợp với các khối ngoại vi như bộ nhớ, cácmodun vào/ra, các modun biến đổi số sang tương tự và tương tự sang số… Vi điềukhiển thường được dùng để điều khiển các thiết bị điện tử Nó được ứng dụng rộngrãi trong các dụng cụ điện tử ngày nay

1.2.Vi điều khiển PIC

1GVHD: Trịnh Tuấn Dương

Trang 14

Ngày nay, trên thị trường có nhiều loại vi điều khiển khác nhau như 8051, PIC,Motorola 68HC, AVR… Trong đề tài này sử dụng vi sử lý PIC vì có những ưuđiểm sau:

 VĐK PIC phổ biến ở Việt Nam, giá thành không quá đắt

 Có đầy đủ chức năng của một vi điều khiển khi hoạt động độc lập

 PIC là VĐK phổ biến ở Việt Nam cũng như trên thế giới Điều này tạothuận lợi trong quá trình tìm hiểu tài liệu và phát triển những ứng dụngcủa PIC

 Tính đa dạng và tính năng này vẫn còn được nghiên cứu và phát triển.1.3.Khái quát về vi điều khiển PIC16F877A

PIC 16F877A là dòng PIC phổ biến hiện nay ( có đủ các chức năng, 40 chân, bộnhớ đủ cho hầu hết các ứng dụng thông thường) Cấu trúc tổng quát:

 Bộ nhớ chương trình: 16F877A có 8192(8k)

 Bộ nhớ dữ liệu: 16F877A có 368 bytes (plus 256 bytes of nonvolatileEEROM)

 5 PORT (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập

 2 bộ định thời 8bits (timer 0 và timer 2)

 Một bộ định thời 8bits (timer 1) có thể hoạt động trong chế độ tiết kiệm nănglượng (SLEEP MODE) với nguồn xung Clock ngoài

 2 bộ CCP (Capture/Compare/PWM)

 Một bộ biến đổi AD 10bits, 8 ngõ vào

 2 bộ so sánh tương tự (Compartor)

 Một bộ định thời giám sát (WatchDog Timer)

Một cổng song song 8bits với các tín hiệu điều khiển

Trang 15

 Một cổng nối tiếp.

 15 nguồn ngắt

 Có chế độ tiết kiệm năng lượng

 Nạp chương trình bằng cổng nối tiếp ICSP (In-Circuit Sircuit Programming)

 Được chế tạo bằng công nghệ CMOS

 35 tập lệnh có độ dài 14 bits

 Tần số hoạt động tối đa là 20MHz

1.4.SƠ ĐỒ CHÂN CỦA 16F877A

PIC16F877A là họ vi điều khiển có 40 chân, mỗi chan có một chức năng khácnhau Trong đó có một số chân đa công dụng: mỗi chân có thể hoạt động như mộtđường xuất nhập hoặc là một chân chức năng đặc biệt dùng để giao tiếp với cácthiết bị ngoại vi

3GVHD: Trịnh Tuấn Dương

Trang 16

Hình 1 1Sơ đồ chân của 16F877A

• Chân cấp nguồn: như trên hình 2.1 ta thấy 16F877A có 4 chân dùng để cấp nguồn:

Chân dao động: chân 13 (OSC1) và chân 14 (OSC2) là 2 chân dao động,

tốc độ dao động được xác định thông qua tần số dao động của bộ tạo daođộng

 I/O PORT:

Trang 17

PORT A và thanh ghi TRIS A: gồm 6 chân từ RA0-RA5, cổng A

có 6 bit thực hiện chức năng vào và ra theo hai chiều (hình 2.2),

việc xác định hướng xuất nhập được thực hiện thông qua thanh ghi

TRIS A Chân 6 (RA4/TOCKI) là chân đa mục đích với việc vừa

là chân xuất nhập dữ liệu vừa là đầu vào của bộ đếm TIMER0 Các

chân khác trong PORT A còn là đầu vào của tín hiệu tương tự trong bộ chuyển đổi ADC Sự hoạt động của các chân trong chế độ này là việc điều khiển thích hợp các bit trong thanh ghi ADCON1

và CMCON (hình 2.3)

Hình 1 2 Chức năng của các cổng PORT A

5GVHD: Trịnh Tuấn Dương

Trang 18

Hình 1 3 Thanh ghi TRIS A

PORT B và thanh ghi TRIS B: gồm 8 chân từ RB0-RB7, cổng B có 8 bit

xuất nhập theo 2 chiều, việc chọn chức năng xuất nhập được điều khiển

thông qua thanh ghi TRIS B cũng tương tự như với PORT A

Hình 1 4 Chức năng của các cổng PORT B

Trang 19

Hình 1 5 Thanh ghi TRIS B

PORT C và thanh ghi TRIS C: PORT C gồm có 8 chân từ RC0-RC7, có

tất cả 8 chân đa mục đích với các chức năng như: xuất nhập dữ liệu, đặc biết

có chân 18(SCL) và 23(SDA) là hai chân thực hiện chức năng giao tiếp với ngoại vi thông qua chuẩn I2C Thanh ghi TRIS C cũng tương tự như các

thanh ghi trên, nó có nhiệm vụ định nghĩa các chân tương ứng là cổng ra hayvào

7GVHD: Trịnh Tuấn Dương

Trang 20

Hình 1 6 Chức năng của các chân thuộc PORT C

Hình 1 7 Địa chỉ thanh ghi TRIS C

PORT D và thanh ghi TRIS D, PORT E và thanh ghi TRIS E: hai PORT

này đều có tám chân đa mục đích nhưng chủ yếu vẫn là để xuất nhập

Trang 21

Hình 1 8 Chức năng của các cổng PORT D

Hình 1 9 Các địa chỉ thanh ghi TRIS D

9GVHD: Trịnh Tuấn Dương

Trang 22

Hình 1 10 Chức năng của các cổng PORT E

Hình 1 11 Địa chỉ thanh ghi TRIS E

1.5.một vài thanh ghi có chức năng đặc biệt

Bộ nhớ dữ liệu có 4 Bank: Bank 0, Bank 1, Bank 2, Bank 3 Mỗi thanh có dunglượng 128 Bytes, bao gồm vùng Ram đa mục đích (GPR) và vùng thanh ghi chứcnăng đặc biệt (SFR)

Các Bank này được lựa chọn bằng 2 bit ở thanh ghi STATUS là PR0 (status

<5>) và RP1 (status<6>)

Trang 23

Hình 1 12 Bản đồ cấu trúc dữ liệu của 16F877A

Thanh ghi STATUS:

Hình 1 13 Thanh ghi STATUS

Bit 7 IRP: Bit lựa chọn bank thanh ghi (sử dụng cho định địa chỉ gián tiếp)

11GVHD: Trịnh Tuấn Dương

Trang 24

Bit 4: Bit báo hiệu hoạt động của WDT

1: Xóa WDT hoặc Sleep xảy ra

0: WDT hoạt động

Bit 3: Bit báo công suất thấp (Power down bit)

1: Sau khi nguồn tăng hoặc có lệnh xóa WDT

0: Thực hiện lệnh Sleep

Bit 2: Bit Zero

1: Khi kết quả của một phép toán bằng 0

0: Khi kết quả của một phép toán khác 0

Bit 1: DC (Digit Carry)

Trang 25

1: Có một số nhớ được sinh ra bởi phép cộng hoặc phép trừ 4 bit thấp.0: Không có số nhớ sinh ra.

Bit 0 C: cờ nhớ (Carry Flag)

1: Có một số nhớ sinh ra bởi phép cộng hoặc phép trừ

0: Không có số nhớ sinh ra

Thanh ghi OPTION REG:

Hình 1 14 Thanh ghi OPTION REG

Bit 7: Bit cho phép PORT B được kéo lên nguồn

1: Không cho phép PORT kéo lên nguồn

0: Cho phép PORT kéo lên nguồn

Bit 6: Bit lựa chọn cạnh tác động ngắt (INTERRUT EDGE)

1: Ngắt sẽ được tác dộng bởi cạnh lên của chân RB0/INT

0: Ngắt sẽ được tác động bởi cạnh xuống của chân RB0/INT

Bit 5: Bit lựa chọn nguồn xung Clock cho Timer 0

1: Xung Clock cung cấp bởi nguồn ngoài qua chân RA4/T0CKI

13GVHD: Trịnh Tuấn Dương

Trang 26

0: Xung Clock cung cấp bởi nguồn dao động nội.

Bit 4: Bit lựa chọn cạnh nào của xung Clock tác động lên Timer 0

Trang 27

Bit 7: Bit cho phép ngắt toàn cục:

1: Cho phép ngắt toàn cục

0: Không cho phép ngắt

Bit 6: Bit cho phép ngắt khi vào EEEPROM hoàn tất

1: Cho phép ngắt khi vào EEPROM hoạt động

0: Không cho phép ngắt khi vào EEPROM hoạt động.Bit 5: Bit cho phép ngắt khi Timer 0 tràn:

1: Cho phép ngắt khi Timer 0 tràn

0: Không cho phép ngắt khi Timer 0 tràn

Bit 4: Bit cho phép ngắt ngoại vi trên chân RB0/INT:

1: Cho phép ngắt ngoại vi

0: Không cho phép ngắt ngoại vi

Bit 3: Cho phép ngắt khi trạng thái PORT B thay đổi:

Trang 28

Một số ngắt của PIC 16F877A:

 Ngắt tràn Timer 0

 Ngắt do chuyển đổi ADC đã hoàn tất

 Ngắt tràn Timer 1

 Ngắt tràn Timer 2

 Ngắt di cí capture hay compare trên chân CCP1, CPP2

 Ngắt xung dội bus

1.7.module CCP

Trang 29

Module CCP được xây dựng để hỗ trợ cho việc đo lường và điều khiển thời gianhoạt động của các tín hiệu, đo chu kỳ hoạt động của tín hiệu, tạo ra tín hiệu có tần

số khác nhua, điều khiển tốc độ động cơ …

PIC 16F877A có 2 module là CCP1 và CCP2:

Hình 1 17 Thanh ghi điều khiển module CCP

0100: Chế đội Capture hoạt động ở mỗi xung cạnh xuống

0101: Chế độ Capture hoạt động ở mỗi xung cạnh lên

0110: Chế độ Capture, hoạt động ở mỗi 4 xung cạnh lên

0111: Chế độ Capture, hoạt động ở mỗi 16 xung cạnh lên

17GVHD: Trịnh Tuấn Dương

Trang 30

1000: Chế độ Compare, ban đầu ngõ ra CCP ở mức thấp, khi điều kiện cânbằng xuất hiện nó lên mức cao ( cờ CCPIF được set).

1001: Chế độ Compare, ban đầu ngõ ra CCP ở mức cao, khi điều kiện cânbằng xuất hiện nó hạ xuống mức thấp (cờ CCPIF được set)

1010: Chế độ Compare, tạo ra một ngắt phần mềm khi điều kiện cân bằngxuất hiện (cờ CCPIF được set, chân CCP không đổi)

1011: Chế độ Compare, sự đặc biệt xảy ra (cờ CCPIF được set, chân CCPkhông đổi), CCP1 reset TMR1, CCP2 reset TMR2, bắt đầu chuyển đổi A/D (với điều kiện module ADC cho phép)

Một số khái niệm:

Trang 31

 Chu kỳ xung là khoảng thời gian để giá trị thanh ghi TMR2 tăngđến giá trị thanh ghi PR2.

 Khoảng xung dương là khoảng thời gian đề thanh ghi TMR2 tăng

lên đến giá trị thanh ghi CCPRx (xem hình 2.18)

Hình 1 18 Tín hiệu đầu ra của chân CCP

Chu kỳ PWM được chỉ định trong thanh ghi PR2 Chu kỳ có thể được tính bằngcông thức

Chu kỳ PWM = [(PR2+1)*4*Tosc*giá trị tỉ lệ Timer 2]

Tần số PWM = 1/(chu kỳ PWM)

Khi giá trị thanh ghi TMR2 và PR2 bằng nhau thì thanh ghi TMR2 bị xóa, chânCCPx được đưa lên mức 1, giá trị Duty cycle từ thanh ghi CCPRxL sẽ chuyển sangthanh ghi CCPRxH

1.8 module ADC

Module ADC là module duy nhất có khả năng hoạt động trong chế độ sleep.16F877A có bộ biến đổi ADC 10 bit, 8 ngõ vào Analog, 8 ngõ vào này được nốivới ngõ vào của bộ chuyển đổi Sau đó, bộ chuyển đổi sẽ tạo ra một kết quả 10 bit

19GVHD: Trịnh Tuấn Dương

Trang 32

tương ứng với giá trị đưa vào Điện thế tham chiếu đầu vào sẽ được lựa chọn bằngphần mềm (từ Vdd, Vss hoặc 2 chân AN2, AN3)

Module ADC gồm 4 thanh ghi:

Thanh ghi chứa byte cao của kết quả ADRESH.

Thanh ghi chứa byte thấp của kết quả ADRESL.

Thanh ghi chứa các bit điều khiển ADCON0.

Thanh ghi chứa các bit điều khiển ADCON1.

1.8.1 Các thanh ghi điều khiển cơ bản

Thanh ghi ADCON0:

Hình 1 19 Thanh ghi ADCON0 Bit 7,6: Các bit lựa chọn tần số chuyển đổi A/D

Ngày đăng: 12/01/2015, 09:37

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w