TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA CƠ KHÍ – BỘ MÔN KỸ THUẬT MÁY
∗∗∗
ĐỒ ÁN TỐT NGHIỆP
ĐỀ 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
Lớp: Cơ Điện Tử
Khóa: 51
Hà Nội, tháng 4 năm 2014
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
……………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
Ngày …, tháng …, năm …
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
5
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!
6
Mục lục
7
DANH SÁCH HÌNH VẼ VÀ BẢNG BIỂU
8
CHƯƠNG 1. GIỚI THIỆU CHUNG
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 nonvolatile
EEROM).
− 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ăng
lượ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.
− 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.
10
GVHD: Trịnh Tuấn Dương
− 35 tập lệnh có độ dài 14 bits.
− Tần số hoạt động tối đa là 20MHz.
!"#$%&'()
PIC16F877A là họ vi điều khiển có 40 chân, mỗi chan có một chức năng khác
nhau. 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ác
thiết bị ngoại vi.
Hình 1. 1Sơ đồ chân của 16F877A
GVHD: Trịnh Tuấn Dương
Hình 1. 4 Chức năng của các cổng PORT B
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
14
GVHD: Trịnh Tuấn Dương
thanh ghi trên, nó có nhiệm vụ định nghĩa các chân tương ứng là cổng ra hay
vào.
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
15
GVHD: Trịnh Tuấn Dương
+ 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.
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
16
GVHD: Trịnh Tuấn Dương
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
L@C6/,8,H,N/O,P?
Bộ nhớ dữ liệu có 4 Bank: Bank 0, Bank 1, Bank 2, Bank 3. Mỗi thanh có dung
lượng 128 Bytes, bao gồm vùng Ram đa mục đích (GPR) và vùng thanh ghi chức
nă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>).
17
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.
* Q6/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.
20
GVHD: Trịnh Tuấn Dương
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
1: Cạnh xuống.
0: Cạnh lên.
Bit 3: Bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 hay WDT
1: Tốc độ đếm PS2:PS0 sẽ tác động lên WDT.
0: Tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0.
Bit 2-0: Dùng để lựa chọn tốc độ đếm của Timer hay WDT
Hình 1. 15 Giá trị bộ chia tần
* Q6/INTCON
Hình 1. 16 Thanh ghi INTCON
21
GVHD: Trịnh Tuấn Dương
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.
− 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.
@R9;
23
GVHD: Trịnh Tuấn Dương
Module CCP được xây dựng để hỗ trợ cho việc đo lường và điều khiển thời gian
hoạ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
Bit 7,6: không sử dụng.
Bit 5,4: Bit 0 và bit 1 của chế dộ PWM (không sử dụng đối với chế độ Capture
và chế độ Compare).
Chế độ PWM: trong chế độ này có 10 bit dùng để định chu kỳ nhiệm vụ cho
PWM, đây là 2 trong số 10 bit đó, 8 bit còn lại nằm trong thanh ghi CCPRxL.
Bit 3: các bit chọn chế độ cho Module CCPx
0000: Tắt tất cả các chức năng 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.
24
GVHD: Trịnh Tuấn Dương
1000: Chế độ Compare, ban đầu ngõ ra CCP ở mức thấp, khi điều kiện cân
bằ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ân
bằng xuất hiện nó hạ xuống mức thấp (cờ CCPIF được set).