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

Đồ án Thiết kế mạch hiển thị mức âm lượng qua LCD sử dụng PIC 16F877A

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.17 MB, 68 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!



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 PIC 16F877A” 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 đích và mục tiêu nghiên cứu.............................................................2
3. Khách thể và đối tượng nghiên cứu...........................................................2
4. Phạm vi và giới hạn đề tài.........................................................................2
5. Phương pháp nghiên cứu...........................................................................2
6. Cấu trúc của đề 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.3. Một số đặc điểm của vi điều khiển PIC16F877A......................7
1.1.2.4. Các cổng xuất/nhập....................................................................8

1.1.3. ADC...................................................................................................10
1.2. LCD..........................................................................................................12
1.3. TDA2030A...............................................................................................15
1.4. Phần mềm lập trình CCS..........................................................................16
1.4.1. Giới thiệu về trình dịch CCS.............................................................16
1.4.2. Chỉ thị tiền xử lý................................................................................17
1.4.3. Các hàm Delay..................................................................................18
1.4.4. Các hàm vào ra trong CCS................................................................18
1.4.5. Thư viện hàm LCD của CCS.............................................................18
1.4.5.1. Khai báo...................................................................................18
1.4.5.2. Các lệnh và ý nghĩa..................................................................19
1.4.6. Thư viện hàm ADC của CCS............................................................19
1.4.6.1. Khai báo...................................................................................19
1.4.6.2. Các hàm và ý nghĩa..................................................................19
1.4.7. Hàm Printf()......................................................................................21


Chương 2. Thiết kế mạch hiển thị mức âm thanh trên LCD sử dụng
PIC16F877A................................................................................................
2.1. Sơ đồ khối của mạch................................................................................23
2.2. Chức năng của các khối............................................................................23
2.2.1. Khối nguồn........................................................................................23
2.2.2. Khối khuếch đại.................................................................................24
2.2.2.1. Định nghĩa mạch khuếch đại....................................................24
2.2.2.2. Tầng khuếch đại công suất.......................................................25
2.2.2.3. Khối khuếch đại sử dụng TDA2030A......................................27
2.2.2.4. Nguồn âm thanh.......................................................................28
2.2.2.5. Loa............................................................................................28
2.2.4. Khối vi điều khiển.............................................................................29
2.2.5. Khối hiển thị......................................................................................30

Chương 3. Sơ đồ nguyên lý của mạch và cách xây dựng chương trình cho
PIC16F877A....................................................................................................
3.1. Sơ đồ nguyên lý của mạch........................................................................32
3.2. Nguyên lý hoạt của mạch.........................................................................33
3.3. Xây dựng chương trình cho PIC16F877A...............................................33
3.3.1. Lưu đồ thuật toán...............................................................................34
3.3.2. Đọc và chuyển đổi giá trị ADC.........................................................35
3.3.3. Thành lập chương trình.....................................................................36
3.3.3.1. Các tiền khai báo......................................................................36
3.3.3.2. Chương trình chính...................................................................37
3.4. Thi công và hoàn thành sản phẩm............................................................40
3.5. Nhận xét hoạt động của sản phẩm............................................................41
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỀN..........................................................42
TÀI LIỆU THAM KHẢO.................................................................................43
PHỤ LỤC


DANH MỤC HÌNH ẢNH
Hình 1.1. Sơ đồ chân PIC16F877A......................................................................5
Hình 1.2. Sơ đồ khối bộ chuyển đổi ADC..........................................................11
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 của LCD 16x2..................................................................12
Hình 1.6. Hình ảnh thực tế TDA2030A.............................................................15
Hình 1.7. Vị trí các chân của TDA2030A..........................................................16
Hình 2.1. Sơ đồ khối toàn mạch.........................................................................23
Hình 2.2. Mạch nguồn nuôi................................................................................24
Hình 2.3. Sơ đồ tổng quát của mạch khuếch đại................................................24
Hình 2.4. Mô tả việc phân loại các mạch khuếch đại công suất.........................26
Hình 2.5. Dạng sóng dòng điện của các chế độ khuếch đại...............................27

Hình 2.6. Mạch khuếch đại dùng TDA2030A....................................................27
Hình 2.7. Các thiết bị là nguồn âm thanh...........................................................28
Hình 2.8. Dây nối tính hiệu âm thanh.................................................................28
Hình 2.9. Jack mono audio 3.5mm.....................................................................28
Hình 2.10. Loa....................................................................................................28
Hình 2.11. Khối vi điều khiển............................................................................29
Hình 2.12. Khối hiển thị.....................................................................................30
Hình 2.13. Sơ đồ kết nối vi điều khiển với LCD................................................31
Hình 3.1. Sơ đồ nguyên lý toàn mạch................................................................32
Hình 3.2. Lưu đồ thuật toán của vi điều khiển...................................................34
Hình 3.3. Lưu đồ giải thuật đọc giá trị ADC......................................................35
Hình 3.4. Mạch in...............................................................................................40
Hình 3.5. Sản phẩm thực tế................................................................................40


DANH MỤC BẢN BIỂU
Bảng 1.1. Bảng tóm tắt đặc điểm của vi điều khiển PIC16F877A.......................8
Bảng 1.2. Chức năng các chân của LCD............................................................13
Bảng 1.3. Bảng tập lệnh LCD.............................................................................14
Bảng 1.4. Bảng thông số tối đa của TDA2030A................................................15
Bảng 1.5. Bảng thông số nhiệt của TDA2030A.................................................16
Bảng 1.6. Các hàm trong thư viện LCD của CCS..............................................19
Bảng 1.7. Mã định dạng dữ liệu của hàm printf()...............................................21
Bảng 3.1. Các tiền khai báo bắt buộc trong chương trình..................................36
Bảng 3.2. Ý nghĩa các config của Fuses trong CCS...........................................36
Bảng 3.3. Các khai báo biến toàn cục.................................................................37
Bảng 3.4. Các hàm liên quan đến bộ ADC trong chương trình..........................38
Bảng 3.5. Bảng lệnh chuyển đổi và hiển thị ADC lên LCD...............................38
Bảng 3.6. Bảng biểu thể hiển mức điện áp của từng mức âm lượng..................41



Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

A.

Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

MỞ ĐẦU

-9-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A
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ẻ đề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”.
2. Mục tiêu và nhiệm vụ nghiên cứu

Mục tiêu của đề tài là thiết kế mạch hiển thị mức âm thanh trên LCD sử
dụng PIC16F877A.
Để đạt được mục tiêu 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 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 lượng trên LCD.
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-10-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A


Khách thể nghiên cứu: Vi điều khiển PIC16F877A, TDA2030A, LCD.
4. Phạm vi và giới hạn đề tài

Phạm vi đề tài:
- Thiết kế mạch khuếch đại âm thanh 1 kênh.
- Sử dụng biến trở để điều chỉnh âm lượng.
- LCD có kích thước 16x2 và hiển thị 20 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ó 1 kênh âm thanh ngõ ra.
5. Phương pháp nghiên cứu
- Phân tích và tổng hợp lý thuyết.
- Phương pháp mô phỏng mạch điện trên máy tính.
- Thực nghiệm khoa học.
6. Cấu trúc của đề 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ế mạch hiển thị mức âm lượng trên LCD sử dụng
PIC16F877A.
Chương 3. Sơ đồ nguyên lý và cách xây dựng chương trình cho
PIC16F877A.
Kết luận và hướng phát triển


Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-11-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-12-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

B.

NỘI DUNG

Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-13-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A


Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-14-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-15-


GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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:
-

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
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-16-


GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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.
• 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.
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-17-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

-

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

Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-18-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A


Đặc điểm

PIC16F877A

Tần số hoạt động

DC-20MHz

Reset và Delay

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
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-19-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

ứ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:
- 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


Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-20-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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
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à V DD, 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).
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-21-

GVHD: Ths. Hoàng Hữu Duy



Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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.

Hình 1.2. Sơ đồ khối bộ chuyển đổi ADC.
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-22-

GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

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).

-

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
LCD là viết tắt của Liquid Crystal Display (màn hình tinh thể lỏng). Có
nhiều loại màn hình LCD khác nhau, ví dụ LCD 16x1, 16x2, 20x2,....
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-23-


GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

Hình 1.4. Hình dáng thực tế LCD 16x2.
Giống như led 7 đoạn, LCD là một thiết bị ngoại vi dùng để giao tiếp người
dùng, so với led 7 đoạn thì LCD có ưu điểm là hiển thị được tất cả các kí tự
trong bảng mã ASCII, trong khi đó led 7 đoạn 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.

Hình 1.5. Sơ đồ chân của LCD 16x2.
Bảng 1.2. Chức năng các chân của LCD
Chức năng

Chân

Ký hiệu

Mức logic

I/O

1
2

Vss
Vcc


-

-

Nguồn (GND)
Nguồn (+5V)

3

Vee

-

-

Chỉnh độ tương phản

4

RS

0/1

I

0= Nhấp lệnh 1=
Nhập dữ liệu

5


R/W

0/1

I

6

E

1, 1  0

I

7
8

DBO
DB1

0/1
0/1

Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

I/O
I/O
-24-

0= Ghi dữ liệu

1= Đọc dữ liệu
Tín hiệu cho phép
Bus dữ liệu 0
Bus dữ liệu 1
GVHD: Ths. Hoàng Hữu Duy


Thiết Kế Mạch Hiển Thị Mức Âm Thanh Trên LCD Sử Dụng PIC16F877A

9

DB2

0/1

I/O

Bus dữ liệu 2

10

DB3

0/1

I/O

Bus dữ liệu 3

11


DB4

0/1

I/O

12

DB5

0/1

I/O

Bus dữ liệu 4
Bus dữ liệu 5

13
14

DB6
DB7

0/1
0/1

I/O
I/O


Bus dữ liệu 6
Bus dữ liệu 7

15

A

-

-

Đèn LCD

16

K

-

-

Đèn LCD

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ỏ.
Huỳnh Minh Tuấn - Nguyễn Thanh Phúc

-25-

GVHD: Ths. Hoàng Hữu Duy



×