Tải bản đầy đủ (.docx) (83 trang)

Volume số qua Bluetooth trên điện thoại Android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.89 MB, 83 trang )

LỜI CẢM ƠN
Lời nói đầu tiên chúng em xin chân thành cảm ơn và gửi lời chúc sức khỏe đến
Quý Thầy Cô trường Đại học Tiền Giang, Quý Thầy Cô Khoa Kỹ thuật Công Nghiệp
cùng Quý Thầy Cô bộ môn Điện - Điện Tử đã không ngại những khó khăn và tận tâm
với nghề để truyền đạt những kiến thức quý báu cho chúng em trong suốt khoảng thời
gian chúng em học tại Trường. Với những kiến thức quý báu đó sẽ là một trong những
nền tảng cơ bản và vững chắc giúp cho chúng em trên con đường lập nghiệp sau này.
Đồng thời chúng em cũng gửi lời cảm ơn thân mến đến tập thể sinh viên lớp Cao
đẳng Điện - Điện tử 13 đã cùng chúng em trao đổi, học tập và giải quyết những khó
khăn trong suốt quá trình thực hiện đề tài.
Chúng em xin trân trọng gửi đến thầy Hoàng Hữu Duy lời cảm ơn chân thành
và lòng biết ơn sâu sắc nhất. Chúng em cũng rất mong nhận được những lời nhận xét
tận tình và sự đóng góp ý kiến quý báu của thầy Hoàng Hữu Duy, Quý Thầy Cô
Trường Đại học Tiền Giang và Quý Thầy Cô Khoa Kỹ Thuật Công Nghiệp để đề tài
của chúng em được tốt hơn.
Chúng em xin chân thành cảm ơn!

Tiền Giang, ngày….tháng….năm 2015
Sinh viên thực hiện

Trương Minh Trí
Nguyễn Thanh Phúc


LỜI NÓI ĐẦU
Hiện nay kỹ thuật vi điều khiển đã trở nên quen thuộc trong các ngành kỹ thuật
và trong dân dụng. Các bộ vi điều khiển có khả năng xử lý nhiều hoạt động phức tạp
mà chỉ cần một chip vi mạch nhỏ, nó đã thay thế các mạch điều khiển lớn và phức tạp
bằng những mạch điện gọn nhẹ, dễ dàng thao tác sử dụng.
Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to
lớn vào việc phát triển thông tin. Chính vì các lý do trên, việc tìm hiểu, khảo sát vi


điều khiển là điều mà các sinh viên ngành điện mà đặc biệt là chuyên ngành kỹ thuật
điện – điện tử phải hết sức quan tâm.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử
dụng được lại là một điều rất phức tạp. Phần công việc xử lý chính vẫn phụ thuộc vào
con người, đó chính là chương trình hay phần mềm. Nếu không có sự tham gia của con
người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri. Do vậy khi nói đến vi điều
khiển cũng giống như máy tính bao gồm 2 phần là phần cứng và phần mềm.
Mặc dù vi điều khiển đã đi được những bước dài như vậy nhưng để tiếp cận được
với kỹ thuật này không thể là một việc có được trong một sớm một chiều. Để tìm hiểu
bộ vi điều khiển một cách khoa học và mang lại hiệu quả cao cho công việc về sau
nhóm em đã đi đến quyết định “Thiết kế mạch hiển thị mức âm thanh trên LCD sử
dụng PIC16F877A với điều khiển từ xa qua điện thoại hệ điều hành android”
nhằm đáp ứng nhu cầu học hỏi, tìm hiểu của bản thân và giúp cho các bạn sinh viên dễ
tiếp cận và hiểu sâu hơn về vi điều khiển PIC.


MỤC LỤC
A. MỞ ĐẦU..................................................................................................................1
1. Lý do chọn đề tài.......................................................................................................2
2. Mục tiêu và nhiệm vụ nghiên cứu..............................................................................2
3. Khách thể và đối tượng nghiên cứu...........................................................................2
4. Phạm vi nghiên cứu và giới hạn của đề tài.................................................................2
5. Phương pháp nghiên cứu............................................................................................3
6. Cấu trúc đề tài............................................................................................................3
B. NỘI DUNG...............................................................................................................4
CHƯƠNG 1. TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT...............................................5
1.1. Vi điều khiển PIC16F877A....................................................................................5
1.1.1. Giới thiệu về họ vi điều khiển PIC.................................................................5
1.1.2. Cấu trúc phần cứng của PIC16F877A...........................................................5
1.1.2.1. Sơ đồ chân.............................................................................................5

1.1.2.2. Một số đặc điểm của vi điều khiển PIC16F877A...................................7
1.1.2.3. Các cổng xuất, nhập...............................................................................8
1.1.3. ADC................................................................................................................9
1.2. LCD...................................................................................................................... 11
1.2.1. Sơ lược về LCD............................................................................................11
1.2.2. Sơ đồ chân LCD...........................................................................................12
1.3. TDA 2030A...........................................................................................................14
1.4. Điều khiển từ xa bằng Bluetooth...........................................................................15
1.4.1. Khái niệm.....................................................................................................15
1.4.2. Ứng dụng......................................................................................................16
1.4.3. Sơ đồ chân....................................................................................................16
1.4.4. Các chế độ hoạt động....................................................................................16
1.4.5. Tập lệnh AT..................................................................................................17
1.5. EEPROM 24C04...................................................................................................18
1.6. Phần mềm lập trình CCS.......................................................................................21
1.6.1. Giới thiệu về CCS C.....................................................................................21
1.6.2. Chỉ thị tiền xử lý...........................................................................................21
1.6.3. Các hàm Delay.............................................................................................22
1.6.4. Các hàm vào ra trong CCS C........................................................................22
1.6.5. Thư viện hàm LCD của CCS........................................................................23
-3-


1.6.5.1. Khai báo...............................................................................................23
1.6.5.2. Các lệnh và ý nghĩa..............................................................................23
1.6.6. Hàm Printf ()................................................................................................23
1.6.7. Các hàm giao tiếp EEFROM 24C04.............................................................24
CHƯƠNG 2.THIẾT KẾ GIAO DIỆN VÀ LẬP TRÌNH ĐIỀU KHIỂN CHO THIẾT
BỊ ANDROID..............................................................................................................26
2.1. Tổng quan về phần mềm lập trình ứng dụng Android...........................................26

2.1.1. Lịch sử phát triển Eclipse.............................................................................26
2.1.2. Các bước tạo môi trường lập trình Android..................................................26
2.1.3. Android Virtual Device (AVD).....................................................................26
2.2. Cấu trúc bên trong của một ứng dụng...................................................................27
2.2.1. Tập tin Activity_main.xml............................................................................28
2.2.2. Tập tin MainActivity.java.............................................................................28
2.2.3. Thư mục Package Explorer...........................................................................29
2.3. Các đối tượng cơ bản trong ứng dụng...................................................................30
2.3.1. Layout...........................................................................................................30
2.3.2. TextView.......................................................................................................32
2.3.3. EditText........................................................................................................32
2.3.4. Button...........................................................................................................33
2.4. Các thành phần cơ bản và vòng đời của một ứng dụng.........................................33
2.4.1. Applications..................................................................................................33
2.4.2. Activity.........................................................................................................33
2.4.3. Vòng đời của một ứng dụng.........................................................................33
2.5. Các hàm và các lệnh cơ bản trong Java Android...................................................35
2.6. Thiết kế giao diện điều khiển................................................................................35
2.6.1. Khai báo giao diện........................................................................................35
2.6.2. Canh chỉnh giao diện người dùng.................................................................36
2.6.3. Cài đặt ứng dụng lên thiết bị Android...........................................................37
2.6.4. Thuật toán.....................................................................................................38
2.6.4.1. Lưu đồ giải thuật..................................................................................38
2.6.4.2. Giải thích thuật toán.............................................................................39
CHƯƠNG 3. THIẾT KẾ MẠCH HIỂN THỊ MỨC ÂM THANH TRÊN LCD SỬ
DỤNG PIC16F877A VỚI ĐIỀU KHIỂN TỪ XA QUA ĐIỆN THOẠI HỆ ĐIỀU
HÀNH ANDROID.......................................................................................................40
3.1. Sơ đồ khối của mạch.............................................................................................40
-4-



3.2. Chức năng các khối...............................................................................................40
3.2.1. Khối nguồn...................................................................................................40
3.2.2. Khối khuếch đại............................................................................................41
3.2.2.1. Định nghĩa mạch khuếch đại................................................................41
3.2.2.2. Tầng khuếch đại công suất...................................................................42
3.2.2.3. Mạch khuếch đại sử dụng trong sản phẩm...........................................44
3.2.2.4. Nguồn âm thanh...................................................................................45
3.2.2.5. Loa.......................................................................................................46
3.2.3. Khối vi điều khiển........................................................................................46
3.2.4. Khối hiển thị.................................................................................................47
3.2.5. Khối Bluetooth.............................................................................................48
3.2.6. Khối điều chuyển đổi mức âm lượng............................................................49
3.3. Sơ đồ và nguyên lý hoạt động toàn mạch..............................................................51
3.3.1. Sơ đồ mạch nguyên lý..................................................................................51
3.3.2. Nguyên lý hoạt động của mạch.....................................................................52
3.4. Thi công và hoàn thành sản phẩm.........................................................................52
3.5. Nhận xét hoạt động của sản phẩm.........................................................................53
CHƯƠNG 4. XÂY DỰNG CHƯƠNG TRÌNH CHO PIC16F877A............................54
4.1. Lưu đồ thuật toán..................................................................................................54
4.2. Giải thích lưu đồ thuật toán...................................................................................54
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN....................................................................56
TÀI LIỆU THAM KHẢO............................................................................................57

-5-


DANH MỤC BẢNG
Bảng 1.1. Bảng tóm tắt đặc điểm của vi điều khiển PIC 16F877A................................7
Bảng 1.2. Thể hiện ý nghĩa của các chân LCD............................................................12

Bảng 1.3. Mã lệnh điều khiển sự hoạt động của LCD..................................................13
Bảng 1.4. Bảng thông số tối đa của TDA2030A..........................................................14
Bảng 1.5. Bảng thông số nhiệt của TDA2030A...........................................................15
Bảng 1.6. Tên và chức năng các chân EEPROM 24C04..............................................18
Bảng 1.7. Các bit thiết lập của EEPROM 24C04.........................................................20
Bảng 1.8. Các hàm trong thư viện LCD của CCS........................................................23
Bảng 1.9. Mã định dạng dữ liệu của hàm printf()........................................................23
Bảng 1.10. Tên và chức năng các hàm giao tiếp EEFROM 24C04..............................24
Bảng 2.1. Các hàm và lệnh trong Java Android...........................................................35
Bảng 2.2. Khai báo thuộc tính đối tượng Imagebutton đối với nút nhấn loa trái..........36
Bảng 2.3. Khai báo thuộc tính đối tượng Imagebutton với 3 nút nhấn còn lại.............36
Bảng 2.4. Khai báo thuộc tính cho đối tượng LinearLayout........................................36
Bảng 3.1. Giá trị điện trở của khối chuyển đổi mức âm lượng.....................................50
Bảng 3.2. Bảng biểu thể hiển mức điện áp của từng mức âm lượng............................53

-6-


DANH MỤC HÌNH
Hình 1.1. Sơ đồ chân PIC 16F877A...............................................................................5
Hình 1.2. Sơ đồ khối bộ chuyển đổi ADC....................................................................10
Hình 1.3. Các cách lưu kết quả chuyển đổi ADC.........................................................11
Hình 1.4. Hình dáng thực tế LCD 16x2.......................................................................12
Hình 1.5. Sơ đồ chân LCD 16x2..................................................................................12
Hình 1.6. Hình ảnh thực tế TDA2030A.......................................................................14
Hình 1.7. Vị trí các chân của TDA 2030A...................................................................15
Hình 1.8. Sơ đồ chân Bluetooth HC-05.......................................................................16
Hình 1.9. Module Bluetooth HC-05.............................................................................16
Hình 1.10. Sơ đồ chân của EEPROM 24C04...............................................................18
Hình 1.11. Các bước ghi dữ liệu vào 24C04................................................................19

Hình 1.12. Các bước đọc dữ liệu từ 24C04..................................................................20
Hình 2.1. Giao diện máy ảo sau khi khởi động............................................................27
Hình 2.2. Cấu trúc của một ứng dụng..........................................................................27
Hình 2.3. Phần Graphical Layout.................................................................................28
Hình 2.4. Phần MainActivity dùng để lập trình cho ứng dụng.....................................29
Hình 2.5. Phần Package Explorer................................................................................29
Hình 2.6. Cấu trúc bên trong của AndroidManifest.xml.............................................30
Hình 2.7. Ví dụ FrameLayout......................................................................................31
Hình 2.8. Ví dụ LinearLayout......................................................................................31
Hình 2.9. Ví dụ RelativeLayout...................................................................................32
Hình 2.10. Vòng đời của một ứng dụng.......................................................................34
Hình 2.11. Giao diện người dùng.................................................................................37
Hình 2.12. Biểu tượng của chương trình điều khiển trên thiết bị Android...................37
Hình 2.13. Lưu đồ giải thuật........................................................................................38
Hình 3.1. Sơ đồ khối toàn mạch...................................................................................40
Hình 3.2. Mạch nguồn nuôi.........................................................................................41
Hình 3.3. Sơ đồ tổng quát của mạch khuếch đại..........................................................42
Hình 3.4. Mô tả việc phân loại các mạch khuếch đại công suất...................................44
Hình 3.5. Dạng sóng dòng điện của các chế độ khuếch đại.........................................44
Hình 3.6. Mạch khuếch đại dùng TDA2030A..............................................................45
Hình 3.7. Các thiết bị là nguồn âm thanh.....................................................................45
Hình 3.8. Dây nối tín hiệu âm thanh............................................................................45
-7-


Hình 3.9. Jack hoa sen.................................................................................................45
Hình 3.10. Loa.............................................................................................................46
Hình 3.11. Khối vi điều khiển......................................................................................46
Hình 3.12. Khối hiển thị..............................................................................................47
Hình 3.13. Sơ đồ kết nối vi điều khiển với LCD..........................................................48

Hình 3.14. Khối Bluetooth...........................................................................................49
Hình 3.15. Điều chỉnh điện áp ra bằng biến trở...........................................................49
Hình 3.16. Điều chỉnh âm lượng không dùng biến trở.................................................49
Hình 3.17. Khối điều chỉnh mức âm lượng..................................................................51
Hình 3.18. Sơ đồ mạch nguyên lý................................................................................51
Hình 3.19. Mạch in......................................................................................................52
Hình 3.20. Sản phẩm thực tế........................................................................................53
Hình 4.1. Lưu đồ thuật toán của vi điều khiển.............................................................54

-8-


A. MỞ ĐẦU

9


1. Lý do chọn đề tài
Ngày nay, sự phát triển mạnh mẽ của khoa học công nghệ, cuộc sống của con
người đã có những thay đổi ngày càng tốt hơn, mang lại sự tiện lợi tối ưu phục vụ
công cuộc công nghiệp hoá, hiện đại hoá đất nước. Góp phần vào sự phát triển đó là sự
tích hợp các mạch điện – điện tử. Trong đó các bộ vi xử lý – vi điều khiển có vai trò
rất quan trọng. Vi xử lý – vi điều khiển ra đời đã và đang làm nên một cuộc cách mạng
trong mọi lĩnh vực của đời sống hiện đại từ chiếc máy giặt, điện thoại… đến máy thu
hình, máy ảnh, loa, máy khuếch đại âm thanh,.... Những thành tựu này đã biến những
cái tưởng chừng như không thể thành những cái có thể.
Với nhu cầu giải trí về mặt tinh thần ngày càng cao hơn của con người đã thúc đẩy
các hệ thống vui chơi, giải trí như máy thu hình, điện thoại di động, máy tính xách tay,
hệ thống chiếu phim, âm thanh, hình ảnh... ngày càng phát triển hơn. Mỗi người, nhất
là giới trẻ điều muốn có một hệ thống âm thanh cho riêng mình với chi phí thấp.

Dựa vào nhu cầu này, nhóm quyết định “Thiết kế mạch hiển thị mức âm thanh
trên LCD sử dụng PIC16F877A với điều khiển từ xa qua điện thoại hệ điều hành
android”.
2. Mục tiêu và nhiệm vụ nghiên cứu
Mục đích của đề tài là thiết kế mạch hiển thị mức âm thanh trên LCD sử dụng
PIC16F877A điều khiển từ xa bằng hệ điều hành android thông qua sóng bluetooth.
Để đạt được mục đích này, các nhiệm vụ sau đây phải được thực hiện:
- Nghiên cứu và sử dụng phần mềm lập trình CCS.
- Nghiên cứu vi điều khiển PIC16F877A và các lập lệnh có liên quan trong CCS.
- Nghiên cứu sử dụng LCD 16x2.
- Nghiên cứu mạch khuếch đại âm thanh sử dụng TDA2030A.
- Nghiên cứu hệ thống Android điều khiển bằng sóng bluetooth sử dụng module
Bluetooth HC-05.
- Nghiên cứu một số linh kiện mới như IC74LS06, IC74HC238, eeprom 24C04.
- Nghiên cứu cơ chế hoạt động của bộ ADC trong PIC16F877A.
- Mô phỏng mạch trong Proteus.
- Xây dựng chương trình cho vi điều khiển PIC16F877A.
- Thiết kế và thi công phần cứng.
3. Khách thể và đối tượng nghiên cứu
- Đối tượng nghiên cứu: Mạch hiển thị mức âm thanh trên LCD sử dụng
PIC16F877A điều khiển từ xa bằng hệ điều hành android thông qua sóng bluetooth.
- Khách thể nghiên cứu: Vi điều khiển PIC16F877A, TDA2030A, IC74LS06,
IC74HC238, eeprom 24C04, module Bluetooth HC-05, LCD.
4. Phạm vi nghiên cứu và giới hạn của đề tài
- Phạm vi đề tài:
10


+ Thiết kế mạch khuếch đại âm thanh 2 kênh.
+ Sử dụng 5 nút nhấn tay để điều chỉnh mức âm lượng của 2 kênh loa.

+ Sử dụng hệ điều hành android điều khiển bằng sóng bluetooth để điều chỉnh
mức âm lượng của 2 kênh loa.
+ LCD có kích thước 16x2 và hiển thị mỗi kênh là 10 mức âm lượng.
+ Không thiết kế mạch nguồn từ 220VAC xuống 12VDC.
+ Công suất âm thanh 1W.
- Giới hạn của đề tài:
+ Không tính toán hệ số khuếch đại của mạch.
+ Mạch chỉ có 2 kênh âm thanh ngõ ra.
+ Có thể điều chỉnh âm lượng bằng 2 cách như sau:
• Điều chỉnh bằng nút nhấn.
• Điều chỉnh âm lượng trên điện thoại thông qua sóng bluetooth sử dụng hệ

điều hành anddroid.
5. Phương pháp nghiên cứu
- Tổng hợp lý thuyết và phân tích tài liệu.
- Quan sát khoa học.
- Tiến hành thực nghiệm.
- Kiểm tra và chỉnh sửa cho hoàn chỉnh.
6. Cấu trúc đề tài
Đề tài gồm:
A. Mở đầu
B.Nội dung
Chương 1. Tổng quan và cơ sở lý thuyết.
Chương 2. Thiết kế giao diện và lập trình điều khiển cho thiết bị android.
Chương 3. Thiết kế mạch hiển thị mức âm thanh trên LCD sử dụng PIC16F877A
với điều khiển từ xa qua điện thoại hệ điều hành android.
Chương 4. Xây dựng chương trình cho PIC16F877A.
Kết luận và hướng phát triển

11



B. NỘI DUNG

12


CHƯƠNG 1.
TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT
1.1. Vi điều khiển PIC16F877A
1.1.1. Giới thiệu về họ vi điều khiển PIC
PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch là
“máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho vi điều
khiển đầu tiên của họ: PIC1650 được thiết kế để dùng làm các thiết bị ngoại vi cho
vi điều khiển CP1600. Về sau được hãng Microchip mua lại, vi điều khiển này
sau đó được nghiên cứu phát triển thêm và từ đó hình thành nên dòng vi điều
khiển PIC ngày nay.
1.1.2. Cấu trúc phần cứng của PIC16F877A
1.1.2.1. Sơ đồ chân

Hình 1.1. Sơ đồ chân PIC 16F877A


Chân VDD (11, 32): Là các chân nguồn (+5V) của PIC.



Chân VSS (12, 31): Là các chân mass (0V) của PIC.




Chân OSC1/CLK1 (13): Ngõ vào kết nối với dao động thạch anh hoặc ngõ vào nhận
xung clock từ bên ngoài.



Chân OSC2/CLK2 (14): Ngõ ra dao động thạch anh hoặc ngõ ra cấp xung clock.



Chân MCLR /VPP (1) có 2 chức năng:
13

MCLR : Ngõ vào reset tích cực ở mức thấp.


- Vpp: Ngõ vào nhận điện áp lập trình khi lập trình cho PIC.


Chân RA0/AN0 (2), RA1/AN1 (3), RA2/AN2 (3) có 2 chức năng:



RA0, 1, 2: Xuất/ nhập số.



AN0, 1, 2: Ngõ vào tương tự của kênh thứ 0, 1, 2.




Chân RA2/AN2/VREF-/CVREF+ (4): Xuất nhập số/ ngõ vào tương tự của kênh thứ 2/
ngõ vào điện áp chuẩn thấp của bộ ADC/ ngõ vào điện áp chuẩn cao của bộ ADC.



Chân RA3/AN3/VREF+ (5): Xuất nhập số/ ngõ vào tương tự kênh 3/ ngõ vào điện áp
chuẩn (cao) của bộ ADC.



Chân RA4/TOCK1/C1OUT (6): Xuất nhập số/ ngõ vào xung clock bên ngoài cho
Timer 0/ ngõ ra bộ so sánh 1.



Chân RA5/AN4/ SS /C2OUT (7): Xuất nhập số/ ngõ vào tương tự kênh 4/ ngõ vào
chọn lựa SPI phụ/ ngõ ra bộ so sánh 2.



Chân RB0/INT (33): Xuất nhập số/ ngõ vào tín hiệu ngắt ngoài.



Chân RB1 (34), RB2 (35): Xuất nhập số.



Chân RB3/PGM (36): Xuất nhập số/ cho phép lập trình điện áp thấp ICSP.




Chân RB4 (37), RB5 (38): Xuất nhập số.



Chân RB6/PGC (39): Xuất nhập số/ mạch gỡ rối và xung clock lập trình ICSP.



Chân RB7/PGD (40): Xuất nhập số/ mạch gỡ rối và dữ liệu lập trình ICSP.



Chân RC0/T1OCO/T1CKI (15): Xuất nhập số/ ngõ vào bộ giao động Timer1/ ngõ vào
xung clock bên ngoài Timer 1.



Chân RC1/T1OSI/CCP2 (16): Xuất nhập số/ ngõ vào bộ dao động Timer 1/ ngõ vào
Capture2, ngõ ra compare2, ngõ ra PWM2.



Chân RC2/CCP1 (17): Xuất nhập số/ ngõ vào Capture1, ngõ ra compare1, ngõ ra
PWM1.




Chân RC3/SCK/SCL (18): Xuất nhập số/ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra
chế độ SPI/ ngõ vào xung clock nối tiếp đồng bộ, ngõ ra của chế độ I2C.



Chân RC4/SDI/SDA (23): Xuất nhập số/ dữ liệu vào SPI/ xuất nhập dữ liệu I2C.



Chân RC5/SDO (24): Xuất nhập số/ dữ liệu ra SPI.



Chân RC6/TX/CK (25): Xuất nhập số/ truyền bất đồng bộ USART/ xung đồng bộ
USART.



Chân RC7/RX/DT (26): Xuất nhập số/ nhận bất đồng bộ USART.



Chân RD0-7/PSP0-7 (19-30): Xuất nhập số/ dữ liệu port song song.



Chân RE0/ RD /AN5 (8): Xuất nhập số/ điều khiển port song song/ ngõ vào tương tự
kênh thứ 5.




Chân RE1/ WR /AN6 (9): Xuất nhập số/ điều khiển ghi port song song/ ngõ vào tương
tự kênh thứ 6.
14




Chân RE2/ CS /AN7 (10): Xuất nhấp số/ Chân chọn lụa điều khiển port song song/
ngõ vào tương tự kênh thứ 7.
1.1.2.2. Một số đặc điểm của vi điều khiển PIC16F877A
Vi điều khiển PIC16F877A thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có
độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt
động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình
8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung
lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O. Có 8 kênh chuyển đổi ADC.
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
- Timer 0: Bộ đếm 8 bit với bộ chia tần số 8 bit.
- Timer 1: 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 hoạt động ở chế độ sleep.
- Timer 2: 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.
- 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 với khả năng ghi xóa được 100.000 lần.
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

- Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial Programming)
thông qua 2 chân.
- Watchdog Timer với bộ dao động trong.
- Chức năng bảo mật mã chương trình.
- Chế độ Sleep.
- Có thể hoạt động với nhiều dạng Oscillator khác nhau.
Bảng 1.1. Bảng tóm tắt đặc điểm của vi điều khiển PIC 16F877A

15


Đặc điểm
Tần số hoạt động
Reset và Delay

PIC16F877A
DC-20MHz
FOR, BOR (PWRT, OST)

Bộ nhớ chương trình (14bit word)

8k

Bộ nhớ dữ liệu (byte)

368

Bộ nhớ dữ liệu EEPROM (byte)

256


Các nguồn ngắt

15

Các port xuất nhập

Các port A, B, C, D, E

Timer

3

Các module capture/compare/PWM

2

Giao tiếp nối tiếp

MSSP, USART

Giao tiếp song song

PSP

Module A/D 10bit

8 kênh ngõ vào

Bộ so sánh tương tự


2

Tập lệnh

35 lệnh

Số chân

40 chân PDIP, 44 chân PLCC, 44
chân TQFP, 44 chân QFN

1.1.2.3. Các cổng xuất, nhập
Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB,
PORTC, PORTD và PORTE. Dưới đây là chi tiết cụ thể từng Port.
PORT A
PORT A (RPA) bao gồm 6 I/O pin. Đây là các chân “hai chiều”, nghĩa là có thể
xuất và nhập được. Chức năng I/O này được điều khiển bởi thanh ghi TRISA (địa chỉ
85h). Muốn xác lập chức năng của một chân trong PORT A là input thì phải “set” bit
điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốn xác lập
chức năng của một chân trong PORT A là output thì phải “clear” bit điều khiển tương
ứng với chân đó trong thanh ghi TRIS A. Thao tác này hoàn toàn tương tự đối với các
PORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORT A là TRIS A, đối
với PORT B là TRIS B, đối với PORT C là TRIS C, đối với PORT D là TRIS D và đối
với PORT E là TRIS E).
Bên cạnh đó PORT A còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog
ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master
Synchronous Serial Port).
Các thanh ghi SFR liên quan đến PORT A bao gồm:
16



- PORT A (địa chỉ 05h): Chứa giá trị các pin trong PORT A.
- TRIS A (địa chỉ 85h): Chứa giá trị các pin trong PORT A.
- CMCON (địa chỉ 9Ch): Thanh ghi điều khiển bộ so sánh.
- 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.
PORT B
PORT B (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 PORT B 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. PORT B còn liên quan
đến ngắt ngoại vi và bộ Timer0. PORT B còn được tích hợp chức năng điện trở kéo
lên được điều khiển bởi chương trình.
Các thanh ghi SFR liên quan đến PORT B bao gồm:
- PORT B (địa chỉ 06h, 106h): Chứa giá trị các pin trong PORT B.
- TRIS B (địa chỉ 86h, 186h): Điều khiển xuất nhập.
- OPTION_REG (địa chỉ 81h, 181h): Điều khiển ngắt ngoại vi và bộ Timer0.
PORT C
PORT C (RPC) gồm 8 pin I/O. Thanh ghi điều khiển xuất nhập tương ứng là
TRIS C. Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ
Timer1, bộ PWM và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART.
Các thanh ghi điều khiển liên quan đến PORT C:
- PORT C (địa chỉ 07h): Chứa giá trị các pin trong PORT C.
- TRIS C (địa chỉ 87h): Điều khiển xuất nhập.
PORT D
PORT D (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng là TRIS
D. PORT D còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port).
Các thanh ghi liên quan đến PORT D bao gồm:
- Thanh ghi PORT D: Chứa giá trị các pin trong PORT D.
- Thanh ghi TRIS D: Điều khiển xuất nhập.

PORT E
PORT E (RPE) gồm 3 chân I/O. Thanh ghi điều khiển xuất nhập tương ứng là
TRIS E. Các chân của PORT E có ngõ vào analog. Bên cạnh đó PORT E còn là các
chân điều khiển của chuẩn giao tiếp PSP.
Các thanh ghi liên quan đến PORT E bao gồm:
- PORT E: Chứa giá trị các chân trong PORT E.
- TRIS E: Đ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.
1.1.3. ADC
17


ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng
tương tự và số. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0). Hiệu điện
thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thế chuẩn được xác
lập trên hai chân RA2 và RA3. Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu
số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH: ADRESL. Khi
không sử dụng bộ chuyển đổi ADC, các thanh ghi này có thể được sử dụng như các
thanh ghi thông thường khác. Khi quá trình chuyển đổi hoàn tất, kết quả sẽ được lưu
vào hai thanh ghi ADRESH:ADRESL, bit CS (ADCON0<2>) được xóa về 0 và cờ
ngắt ADIF được set.
Quy trình chuyển đổi từ tương tự sang số bao gồm các bước sau:
Bước 1: Thiết lập các thông số cho bộ chuyển đổi ADC:
- Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi
ADCON1).
- Chọn kênh chuyển đổi ADC (thanh ghi ADCON0).
- Chọn xung clock cho kênh chuyển đổi ADC (thanh ghi ADCON0).
- Cho phép bộ chuyển đổi ADC hoạt động (thanh ghi ADCON0).
Bước 2: Thiết lập các cờ ngắt cho bộ ADC:
- Clear bit ADIF.

- Set bit ADIE.
- Set bit PEIE.
- Set bit GIE.
Bước 3: Đợi cho tới khi quá trình lấy mẫu hoàn tất.
Bước 4: Bắt đầu quá trình chuyển đổi (set bit GO / DONE ).
Bước 5: Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:
- Kiểm tra bit GO / DONE . Nếu GO / DONE = 0, quá trình chuyển đổi đã hoàn tất.
- Kiểm tra cờ ngắt.
Bước 6: Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit GO / DONE (nếu cần tiếp
tục chuyển đổi).
Bước 7: Tiếp tục thực hiện các bước 1 và 2 cho quá trình chuyển đổi tiếp theo.

18


Hình 1.2. Sơ đồ khối bộ chuyển đổi ADC
Cần chú ý là có hai cách lưu kết quả chuyển đổi ADC, việc lựa chọn cách lưu
được điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau:

Hình 1.3. Các cách lưu kết quả chuyển đổi ADC
Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:
- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE,
PEIE).
- PIR1 (địa chỉ 0Ch): Chứa cờ ngắt ADC (bit ADIF).
- PIE1 (địa chỉ 8Ch): Chứa bit điều khiển ADC (ADIE).
19


- ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): Các thanh ghi chứa kết
quả chuyển đổi ADC.

- ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): Xác lập các thông số cho
bộ chuyển đổi ADC.
- PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): Liên quan đến các ngõ vào
analog ở PORTA.
- PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): Liên quan đến các ngõ vào
analog ở PORTE.
Ngoài các chức năng trên, vi điều khiển còn rất nhiều chức năng khác.
1.2. LCD
1.2.1. Sơ lược về LCD
Giống như led 7 thanh, LCD là một thiết bị ngoại vi dùng để giao tiếp với
người dùng, so với led 7 thanh thì LCD có những ưu điểm là hiển thị được tất cả các
ký tự trong bảng mã ascci, trong khi đó led 7 thanh chỉ hiển thị được một số ký tự,
nhưng LCD lại có nhược điểm là giá thành cao và khoảng cách nhìn gần.
LCD là viết tắt của Liquid Crytal Display là một loại màn hình hiển thị tinh thể
lỏng dùng để hiển thị thông tin, đặc biệt là cho phép hiển thị số, hiển thị dòng ký tự và
hiển thị hình ảnh đồ họa. LCD có nhiều loại ví dụ như LCD 16x1, 16x2, 20x2,…trong
đó loại thông dụng nhất là LCD 16x2 gồm có 16 cột và 2 hàng, cho phép hiển thị đồng
thời 32 ký tự.

Hình 1.4. Hình dáng thực tế LCD 16x2
1.2.2. Sơ đồ chân LCD

Hình 1.5. Sơ đồ chân LCD 16x2
Bảng 1.2. Thể hiện ý nghĩa của các chân LCD
20


Chân Ký hiệu

21


I/O

Mô tả

1

Vss

-

Mass (GND)

2

Vcc

-

Nguồn (+5v)

3

VEE

-

Cấp nguồn điều khiển tương phản

4


RS

I

5

R/W

I

6

E

I

Tín hiệu cho phép hoạt động

7

DB0

I/O

Đường dữ liệu thứ 0 (LSB)

8

DB1


I/O

Đường dữ liệu thứ 1

9

DB2

I/O

Đường dữ liệu thứ 2

RS=0 ngõ vào thanh ghi lệnh
RS=1 ngõ vào thanh ghi dữ liệu
R/W=0 ghi dữ liệu vào LCD
R/W=1 đọc dữ liệu từ LCD ra


10

DB3

I/O

Đường dữ liệu thứ 3

11

DB4


I/O

Đường dữ liệu thứ 4

12

DB5

I/O

Đường dữ liệu thứ 5

13

DB6

I/O

Đường dữ liệu thứ 6

14

DB7

I/O

Đường dữ liệu thứ 7 (MSB)

15


A

-

Đèn LCD (dương)

16

K

-

Đèn LCD (âm)

Chức năng các chân:
- Các chân Vcc, Vss và Vee: Chân Vcc cấp nguồn 5V, chân Vss nối đất, chân
Vee dùng để điều khiển độ tương phản của màn hình LCD.
- Chân RS (Regster select): Khi ở mức thấp, chỉ thị được truyền đến LCD như
xóa màn hình, vị trí con trỏ,…. Khi ở mức cao, ký tự được truyền đến LCD.
- Chân R/W (Read/ Write): Dùng để phát hiện hướng của dữ liệu được truyền
giữa LCD và vi điều khiển. Khi nó ở mức thấp dữ liệu được ghi đến LCD và khi ở mức
cao dữ liệu được đọc từ LCD. Nếu chỉ cần ghi dữ liệu lên thì nối chân này xuống GND
để tiết kiệm chân.
- Chân E (Enable): Cho phép truy nhập/xuất lên LCD thông qua chân RS và
R/W. Khi chân E ở mức cao (1) LCD sẽ kiểm tra trang thái của 2 chân RS và R/W và
đáp ứng cho phù hợp. Khi dữ liệu được cấp đến chân dữ liệu thì một xung ở mức cao
xuống thấp phải được cấp đến chân này để LCD chốt dữ liệu trên các chân dữ liệu.
Xung này phải rộng tối thiểu 450ns. Còn khi chân E ở mức thấp (0), LCD sẽ vô hiệu
hóa hoặc bỏ qua tín hiệu 2 chân RS và R/W.

- Các chân D0 - D7: Đây là 8 chân dữ liệu 8 bit, được dung để gửi lên LCD hoặc
đọc nội dung của các thanh ghi trong LCD. Các ký tự được truyền theo mã tương ứng
trong mã ASCII. Cũng có các mã lệnh mà có thể gửi đến LCD để xóa màn hình hoặc
đưa ra con trỏ về đầu dòng hoặc nhấp nháy con trỏ.
Trước khi truyền ký tự ra màn hình LCD cần phải thiết lập LCD như chọn chế độ
4bit hay 8bit, 1 dòng hay 2 dòng, bật/tắt con trỏ…
Bảng 1.3. Mã lệnh điều khiển sự hoạt động của LCD

22

STT

Mã (HEX)

Lệnh đến thanh ghi của LCD

1

0x01

Xoá màn hình hiển thị

2

0x02

Trở về đầu dòng

3


0x04

Giảm con trỏ (dịch con trỏ sang trái )

4

0x06

Tăng con trỏ (dịch con trỏ sang phải)

5

0x05

Dịch hiển thị sang phải

6

0x07

Dịch hiển thị sang trái

7

0x08

Tắt con trỏ, tắt hiển thị


8


0x0A

Tắt hiển thị, bật con trỏ

9

0x0C

Bật hiển thi, tắt con trỏ

10

0x0E

Bật hiển thị, nhấp nháy con trỏ

11

0x0F

Tắt con trỏ, nhấp nháy con trỏ

12

0x10

Dịch vị trí con trỏ sang trái

13


0x14

Dịch vị trí con trỏ sang phải

14

0x18

Dịch toàn bộ hiển thị sang trái

15

0x1C

Dịch toàn bộ hiển thị sang phải

16

0x80

Ép con trỏ về đầu dòng thứ nhất

17

0xC0

Ép con trỏ về đầu dòng thứ 2

18


0x30

LCD chế độ 1dòng, 8bit, ma trận 5x7

19

0x38

LCD chế độ 2dòng, 8bit, ma trận 5x7

20

0x20

LCD chế độ 1dòng, 4bit, ma trận 5x7

21

0x28

LCD chế độ 2dòng, 4bit, ma trận 5x7

22

0x40

Địa chỉ dòng 2

Để đọc thanh ghi lệnh, phải đặt RS = 0 và R/W = 1 và xung cao xuống thấp

cho bit E. Sau khi đọc thanh ghi lệnh, nếu bit D7 (cờ bận) ở mức cao thì LCD
bận, không có thông tin hay lệnh nào được xuất đến nó. Khi D7 = 0 mới có thể gửi
lệnh hay dữ liệu đến LCD. Cần kiểm tra bit cờ bận trước khi ghi thông tin lên LCD.
1.3. TDA 2030A
TDA2030A là một mạch nguyên khối tích hợp sẵn nằm trong gói Pentawatt ®,
nhằm sử dụng như một bộ khuếch đại lớp AB tần số thấp. Thông thường nó cung cấp
một công suất đầu ra 14W (d=0.5%) tại 14V/4; 14V hoặc 28V, công suất đầu ra đảm
bảo 12W trên tải 4 Ω và 8W trên tải 8 Ω .

Hình 1.6. Hình ảnh thực tế TDA2030A
TDA2030A cho dòng ra cao có hài và méo chéo rất thấp. Hơn nữa thiết bị kết
hợp với một hệ thống bảo vệ ngắn mạch có khả năng tự động giới hạn công suất tiêu
tán để giữ điểm làm việc trong vùng hoạt động an toàn. Một hệ thống ngắt nhiệt thông
thường cũng được đi kèm.
23


Bảng 1.4. Bảng thông số tối đa của TDA2030A
Ký hiệu

Thông số

Vs

Điện áp cung cấp

Vi

Điện áp vào


Vi

Điện áp của tín hiệu vào

I
Ptot
Tstg , Tj

Giá trị

Đơn vị

± 18 (36)

V

Vs
± 15

V

Dòng ra tối đa (giới hạn nội bộ)

3.5

A

Công suất tiêu tán tại Tcase = 90oC

20


W

Nhiệt độ lưu trữ và điểm nối

- 40 đến 150

Thông số nhiệt của TDA2030A:
Bảng 1.5. Bảng thông số nhiệt của TDA2030A
Ký hiệu
Thông số
Giá trị
Đơn vị
Rth

case

Nhiệt
kháng của junction-case
3
o

Vị trí chân:

24

C/W

max


o

C


Hình 1.7. Vị trí các chân của TDA 2030A
Chức năng các chân:
Chân 1: Chân không đảo ngược tín hiệu đầu vào.
Chân 2: Chân đảo ngược tín hiệu đầu vào.
Chân 3: Năng lượng đầu vào cuối (điện áp âm).
Chân 4: Điện đầu ra cuối cùng.
Chân 5: Năng lượng đầu vào cuối (điện áp dương).
1.4. Điều khiển từ xa bằng Bluetooth
1.4.1. Khái niệm
Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện tử giao tiếp
với nhau trong khoảng cách ngắn thông qua sóng vô tuyến với băng tần 2.40-2.48
GHz. Đây là dãy băng tần không cần đăng ký được dành riêng cho các thiết bị không
dây trong công nghiệp, khoa học, y tế. Bluetooth có những đặc điểm sau:
+ Tiêu thụ năng lượng thấp.
+ Giao tiếp được với nhiều thiết bị cầm tay khác nhau.
+ Giá thành thấp.
+ Tốc độ truyền dữ liệu có thể đạt đến 1Mbps (do sử dụng tần số cao) mà các
thiết bị không cần thấy trực tiếp nhau.
1.4.2. Ứng dụng
Sử dụng truyền dữ liệu giữa các thiết bị thông minh, truyền thanh, thiết bị truyền
dữ liệu điều khiển như chuột, bàn phím…
Các ứng dụng nhúng điều khiển nguồn năng lượng trong xe hơi, các loại nhạc cụ,
trong công nghiệp, y tế.
1.4.3. Sơ đồ chân


Hình 1.8. Sơ đồ chân Bluetooth HC-05
25


×