Tải bản đầy đủ (.doc) (52 trang)

nghiên cứu ứng dụng các cảm biến quang học

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 (922 KB, 52 trang )

Luận văn tốt nghiêp Cảm biến quang
MỞ ĐẦU
Ngày nay trên thế giới, cảm biến quang học đã được sử dụng rất nhiều trong đời
sống, nhất là trong lĩnh vực y học, một lĩnh vực đòi hỏi sự chính xác, nhanh chóng và
ít gây tổn thương cho bệnh nhân. Vì vậy cảm biến quang học là thiết bị dùng cho
những xét nghiệm và trong hỗ trợ trong điều trị cho bệnh nhân, là một lựa chọn hợp lý
và kinh tế. Trong khóa luận này, em sử dụng một đèn led có độ chiếu sáng mạnh chiếu
vào ngón tay của bệnh nhân và ánh sáng truyền qua được thu vào cảm biến quang học
TSL 230, với mục đích thu nhận những biến đổi trong máu qua đầu ngón tay người
bệnh.Cảm biến quang học TSL230 sẽ biến đổi tín hiệu đó tần số và đưa vào vi điều
khiển PIC 16F877A để xử lý tìm ra chính xác nhịp tim của bệnh nhân.
Nội dung của bản khóa luận “Nghiên cứu các ứng dụng cảm biến quang” gồm 3
chương :
Chương 1 : Giới thiệu về cảm biến quang học TSL230
Chương 2: Cấu trục vi điều khiển PIC 16F877A
Chương 3: Xây dựng hệ đo nhịp tim.
Sau một thời gian nghiên cứu, tìm hiểu và được sự giúp đỡ của GS TSKH
Nguyễn Phú Thùy em đã hoàn thành khóa luận trong thời gian ngắn. Em xin chân
thành cảm ơn sự giúp đỡ của Thầy Cô trong khoa điện tử -viễn thông và các cán bộ trẻ
trong phòng thí nghiệm MEMS bộ môn vi cơ điện tử và vi hệ thống và đặc biệt là
thầy Nguyễn Phú Thùy đã trực tiếp hướng dẫn em hoàn thành khóa luận này
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
1
Luận văn tốt nghiêp Cảm biến quang
CHƯƠNG 1 - GIỚI THIỆU VỀ CẢM BIẾN QUANG HỌC TSL230
1.1. Cấu tạo của cảm biến quang học TSL230.
1.1.1 Mô tả
Thiết bị TSL230 là một tập hợp các cảm biến quang học có khả năng chuyển ánh
sáng thành tín hiệu điện. Nó được tích hợp với khối CMOS và chuyển dòng điện thành
tần số.Đầu ra có thể là một chuỗi xung hoặc là sóng hình vuông (50% chu kỳ) với tần
số tỷ lệ với cường độ sáng. Độ nhạy cảm của thiết bị chúng ta có thể điều chỉnh được


qua các chân của thiết bị. Tất cả đầu vào và đầu ra đều ở mức TTL, cho phép đo thông
tin hai chiều của vi điều khiển của chương trình và đầu ra của cường độ ánh sáng. Đầu
ra được cho phép bởi chân (OE) nó cung cấp điều kiện đặc điểm của đầu ra trong tình
trạng trở kháng cao cho sự chia nhỏ tín hiệu vào vi điều khiển. Thiết bị có giá tri ra
hoàn toàn là tần số với hệ dung sai của TSL230 là 20% và là 5% so với TSL230A
Mỗi mạch điện có bề mặt phân cách nhiệt cho phép hoạt động trong dải ánh sáng
từ bức xạ tử ngoại đến ánh sáng nhìn thấy với cả với bước sóng từ 300nm đến 700nm.
Thiết bị có thể hoạt động tốt trong nhiệt độ cho phép từ -25
o
C đến 70
o
C.
1.1.2 Cấu tạo
Hình 1 là ảnh cụp của cảm biến quang học TL230.
Hình 1: Ảnh chụp của cảm biến quang học dùng trong khóa luận (TSL 230)
Đầu thu ánh sáng khả trình là một linh kiện rất thuận lợi cho ta trong quá trình đo
đạc, nó có khả năng biến ánh sáng nhận được theo tín hiệu tương tự và biến đổi nó
thành xung vuông ở lối ra.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
2
Luận văn tốt nghiêp Cảm biến quang
Ta có thể lập trình hay thiết lập được các thông số ví dụ như độ nhạy sáng , tỷ lệ
của xung lối ra. Ta có thể truyền trực tiếp đến vi xử lý và dùng để xử lý dữ liệu được
truyền tới.
Nguồn cung cấp cho cảm biến là 6V- 2,7V. Tỷ lệ sai số của xung lối ra vào cỡ
±5%
Cấu hình của TSL230 gồm có một loạt các photodiot được đóng gói trong một
vỏ nhựa trong suốt có hai hàng chân .
Dãy photodiot đặt bên trong có kích thước vào khoảng 1,36
2

mm
. Các chân
của TSL230 được trình bày trên hình 2.
Hình 2: Chân cụ thể của
TSL 230.
Chân số 1 : S0
(Chân dùng đặt
tỉ lệ độ nhạy của
photodiot)
Chân số 2 : S1
(Chân dùng đặt
tỉ lệ độ nhạy của photodiot)
Chân số 3 : OE (Enable for f0 , ative low)
Chân số 4 : GND (Chân nối đất )
Chân số 5 : VCC (Chân nối lên nguồn )
Chấn số 6 : OUT (Chân cho xung ra khi có ánh sáng đựơc thu trên
photodiot).
Chân số 7 : S2 (Chân chia tỉ lệ của tần số lối vào )
Chấn số 8 : S3 (Chân chia tỉ lệ của tần số lối vào )
1.2. Nguyên tắc hoạt động
1.2.1 Cấu hình đầu ra của TSL230
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
3
Luận văn tốt nghiêp Cảm biến quang
Cấu hình cho các chân của TSL 230 cho phép ta thu được một dãy các xung
vuông ra theo như ý muốn của chúng ta.
S1 S0 S3 S2 Độ nhạy Tần số chia
L L L L Power Down 1
H L L H 1x 2
H L H L 10x 10

H H H H 100x 100
Hình 3: Giản đồ xung tại chân ra.
1.2.2 chức năng các chân
Xung ra của TSL 230 sẽ tỉ lệ với cường độ ánh sáng nhận được trên bề mặt của
TSL 230. Xung sẽ đưa được trực tiếp đến vi điều khiển để xử lý dữ liệu vào và đưa ra
hiển thị kết quả trên LCD.
Bảng dưới là biểu đồ biểu thị các trường hợp cài đặt các chân và sự phối hợp các
chân như thế nào .
Tên chân Ký hiệu(số) I/O Chức năng
GND 4 Chân đất
OE 3 I Enable for f
O
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
4
Luận văn tốt nghiêp Cảm biến quang
OUT 6 O Chân cho xung ra
S0, S1 1, 2 I Chỉnh độ nhạy
S2, S3 7, 8 I Chân chia tỉ lệ tần số nối vào
1.2.3 Khối chức năng
Sơ đồ khối chức năng của thiết bị đo nhịp tim dùng trong khóa luận được trình bày
trong hình 4.
Hình 4 Sơ đồ khối chức năng.
1.2.4 Giới thiệu về điều kiện vận hành
1.2.4.1 Những đặc tính hoạt động khi V
DD
= 5V, T
A
=25
o
C

Bảng dưới trình bày đặc tính hoạt động của các cảm biến quang học khác nhau
khi hoạt động ở thế V
DD
= 5V và nhiệt độ T
A
= 25
o
C.
Tham số Điều kiện Chạy TSL230 TSL230A TSL230B Đơn vị
đo
Min Typ Max Min Typ Max Min Typ Max
S0=H,
S1=S2=S3=L
E
e
=130nW/cm
2
λ
P
=670 nm
0.8 1 1.2 0.9 1 1.1 0.95 1 1.05 MHz
S0=H,E
e
=0
S1=S2=S3=L
0.1 10 0.1 10 0.1 10 Hz
S1=H,
S0=S2=S3=L
E
e

=130nW/cm
2
0.8 1 1.2 0.9 1 1.1 0.95 1 1.05 MHz
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
5
Luận văn tốt nghiêp Cảm biến quang
λ
P
=670 nm
f
O
S1=H,E
e
=0
S0=S2=S3=L

0.13 10

0.13 10

0.13 10 Hz
S0=S1=H,
S2=S3=L
E
e
=130nW/cm
2
λ
P
=670 nm

0.8 1 1.2 0.9 1 1.1 0.95 1 1.05 MHz
S0=S1=H,
S2=S3=L
E
e
=0;

0.5 10

0.5 10

0.5 10 Hz
T
W
S2=S3 125 550 125 550 125 550 ns
S2orS3=H 1/2f
O
1/2f
O
1/2f
O
s
f
O
=0 to 10kHz ±0.1% ±0.1% ±0.1% %F.S
Dung sai f
O
=0 to 10kHz ±0.2% ±0.2% ±0.2% %F.S
f
O

=0 to 10kHz ±0.5% ±0.5% ±0.5% %F.S
Nguồn
Tắt
100 100 100 µs
Tỉ lệ Cho phép OE 50 150 50 150 50 150 ns
1.2.4.2 Điều kiện nguồn nuôi
Các dữ liệu đầu vào MIN NOM MAX Đơn vị
đo
Điện áp nguồn, Vdd 2.7 5 6 V
Mức cao input, V
IH
Vdd=4.5Vđến 5.5V 2 Vdd V
Mức thấp input, V
IL
Vdd=4.5Vđến 5.5V 0 0.8 V
Khoảng nhiệt độ hoạt động -25 70
o
C
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
6
Luận văn tốt nghiêp Cảm biến quang
1.2.4.3 Đặc trưng về điện tại T
A
= 25
o
C và Vdd= 5V
Thông số Điều kiện chạy thử Min Nom Max Đơn vị
đo
V
OH

I
OH
= -4mA 4 4.3 V
V
OL
I
OL
=4mA 0.17 0.28 V
I
IH
1 µA
I
IL
1 µA
I
DD
Nguồn mở 2 3 mA
Nguồn tắt 10 µA
Tần số cao nhất 1.1 ±100 MHz
Hệ số nhiệt độ của đầu
ra
λ ≤700nm
-25
o
C≤ T
A
≤70
o
C
Ppm/

o
C
K
SVS
độ nhạy nguồn V
DD
= 5V±10%
1.2.5 Biểu đồ đặc trưng
Dưới đây là một số biểu đồ đặc trưng của cảm biến loại TSL 230A sử dụng trong khóa
luận.
1.2.5.1 Tần số và độ sáng
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
7
Luận văn tốt nghiêp Cảm biến quang
Hình 5: biểu đồ tần số và độ sáng.
1.2.5.2 Độ nhạy đáp ứng phổ
Hình 6: Độ nhạy và đáp ứng phổ.
1.2.5.3 Tần số khi không có ánh sáng
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
8
Luận văn tốt nghiêp Cảm biến quang
Hình 7: Tần số và nhiệt độ.
1.2.5.4 Hệ số nhiệt độ và bước sóng của ánh sáng tới
Hình 8: hệ số nhiệt độ và chiều dài bước sóng.
1.2.5.5 Tần số đầu ra và nguồn nuôi
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
9
Luận văn tốt nghiêp Cảm biến quang
Hình 9: Tần số đầu ra và nguồn nuôi
1.3. Một số thông tin cho vấn đề ứng dụng

Trong việc sử dụng bộ cảm biến TSL 230 cần lưu ý các vấn đề sau đây.
1.3.1 Chú ý đến nguồn nuôi
Khi thiết bị làm việc ở điều kiện tốt nhất, nguồn nuôi được nối với một tụ 0.01µ
đến 0.1µ.
1.3.2 Đầu ra chung
Đầu ra của thiết bị được thiết kế theo định dạng TTL hoặc CMOS trên cơ sở đầu
vào khoảng cách ngắn. Nếu kết nối trên 30 cm thì sử dụng bên ngoài của đầu ra sử
dụng bộ đệm hoặc một thiết bị ngoài.
1.3.2.1 Sự hiệu chỉnh độ nhạy
Độ nhạy được điều khiển bởi hai nối vào S0, S1. Độ nhạy sử dụng điều chỉnh
được dòng điện một cách rất hiệu quả, bằng cách điều chỉnh độ mở và điều chỉnh bộ
đáp ứng của thiết bị đối với số lượng ánh sáng. Độ nhạy có thể chia thành 3 mức 1x,
10x, 100x. Với sự điều chỉnh này cho phép thiết bị hoạt động tối ưu hóa đối với những
sự thay đổi nhỏ mà vẫn giữ tín hiệu đầu ra trên giải tần số cho phép. Sự thay đổi độ
nhạy này rất có hiệu quả vì chúng ta có thể kiểm soát được hệ số nhân đó.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
10
Luận văn tốt nghiêp Cảm biến quang
1.3.1.2 Chia tần số đâu ra
Tỷ số chia tần số đầu ra được điều khiển bởi hai chân S2 và S3. Chia tần số bằng
cách đưa tần số tới bộ biến đổi và được cắt thành những xung theo tỉ lệ chia. Tỉ lệ chia
có sẵn ở tùy theo ta chọn 1, 2, 10, 100. Sự chia cắt đầu ra là 50% thành những sóng
vuông đưa ra trực tiếp và là nhưng sóng cố định có độ rộng xung được tính toán trước.
Đầu ra được hiệu chỉnh nhờ điều chỉnh các mức tại chân S0, S1, S2, S3, để cho
ra tần số tùy theo ý đồ của người thiết kế, hoặc có thể sử dụng chân tần số hoạt động ở
chân OE.
Sự chia cắt đầu ra làm tối ưu hóa về kĩ thuật đo tần số. Chia cắt bởi 1 hoặc đưa
thẳng qua đầu ra thì chỉ cần sử dụng máy đếm tần số hoặc ắc quy xung, hoặc thiết bị
bấm giờ cao tốc.
Chia cắt thấp hơn có thể dùng những thiết bị đo đơn giản hơn mà vẫn chính xác

mà chỉ cần những kỹ thuật đo đơn giản hơn.
1.3.1.3 Cách đo tần số
Việc lựa chọn kỹ thuật đo và giao diện phụ thuộc vào nhịp độ thu nhận quyết
định và dữ liệu mong muốn. Cho dữ liệu cực đại, nhịp độ thu nhận dữ liệu và kỹ thuất
đo được sử dụng. Nếu sử dụng hệ số chia 2, thì ta được dữ liệu có tân số băng một
nửa đầu ra hoặc một dữ liệu tại mọi thời điểm trong mỗi micro giây cho độ lớn tự
nhiên ở đầu ra.
Chúng ta có thể sử dụng trong phép đo có sự thay đổi của ánh sáng với hệ số chia
của đầu ra cao hơn để bắt kịp với sự thay đổi của đầu vào.
Ta dùng máy đếm và có thể quy định trước thời gian đếm khi đó ta có thể tính
được giá trị của tần số. Phép đo chỉ thực hiện tốt cho những thay đổi chậm chạp của tín
hiệu và mức ánh sáng trung bình trong những vùng ánh sáng nhìn thấy.
Định chuẩn:
Ưu điểm đầu tiên mà TSL230 cung cấp là đầu ra biến đổi được. Nếu ta lập trình
cho S1 ở mức cao chứ không phải ở mức thấp thì ta có kết quả đầu ra lớn gấp 100 lần
so với lúc đầu không chọn. Nếu lấy mẫu trong mỗi mili giây là 10000 lớn hơn là 1000,
chúng ta có thể tăng thêm cả thời gian lấy mẫu.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
11
Luận văn tốt nghiêp Cảm biến quang
CHƯƠNG 2 - CẤU TRÚC VI ĐIỀU KHIỂN PIC 16F877A
2.1 Mô tả khái quát chung về tính năng của vi điều khiển PIC 16F877A
+ Bộ xử lý trung tâm CPU RISC.
o Tập lệnh chỉ gồm 35 lệnh RISC.
o Các tập lệnh thực hiện trong 1 chu kỳ máy , trừ các lệnh rẽ nhánh
chiếm 2 chu kỳ .
o Tốc độ hoạt động : tần số xung nhịp từ 0 Hz đến 20 MHz nhờ
thiết kế hoàn toàn tĩnh.
o Bộ nhớ chương trình 8k x 14 bit.
o Bộ nhớ dữ liệu RAM 368 x b bít.

o Bộ nhớ dữ liệu EEPROM 256 x 8 bit.
+ Các thiết bị ngoại vi giao tiếp số
o Timer0: bộ đếm / timer 8 bit , có bộ chia trước 8 bit.
o Timer1: bộ đếm 16 bit, có bộ chia trước hệ số 1,4,16. đếm xung
được trong trạng thái SLEEP với xung đồng nhịp đưa từ bên ngoài .
o Timer2 : bộ đếm 8 bit chia trước ,chia sau.
o Hai khối compare/capture/PWM thực hiện chức năng so sánh/bắt
giữ số xung và điều chế độ rộng xung.
o Cổng nối tiếp đồng bộ theo chuẩn giao thức SPI và I2C.
o Bộ thu/phát đồng bộ vạn năng URAT có phần cứng phân biệt địa
chỉ.
o Cổng song song PSP 8bit có chan điều khiển RD,WR,CS.
o Có mạch phát hiện sự suy giảm điện áp nguồn, chức năng BOR.
+ Khả năng giao tiếp với tín hiệu tương tự.
Bộ biến đổi tương tự /số 10 bit, 8 kênh và có 2 bộ so sánh tương tự.
+ Khối tạo điện áp chuẩn bên trong lập trình được.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
12
Luận văn tốt nghiêp Cảm biến quang
+ Lối ra của so sánh có thể truy nhập từ bên ngoài.
+ Các đặc tính riêng
o Đảm bảo 100.000 lần ghi/xóa vào bộ nhớ chương trình
flash.
o Đảm bảo 1.000.000 lần ghi/xóa vào bộ nhớ dữ liệu
EEPROM.
o Bộ nhớ dữ liệu kiểu EEPROM lưu được dữ liệu trên 40
năm.
o Tự nạp trình dưới sự điều khiển của phần mềm bootstrap qua
giao diện nối tiếp.
o Nạp trình nối tiếp ICSP.

o Điện áp nạp trình 5 V ở chế độ LVP.
o Bộ đếm giám sát Watchdog có mạch tạo nhịp RC bên trong , độ
lập.
o Có cơ chế xóa chống sao chép chương trình.
o Chế độ SLEEP tiết kiệm năng lượng.
o Nhiều lựa chọn về bộ giao động tạo nhịp RC, LP, XT, HS.
o Chức năng gỡ rối chương trình ICD qua 2 chân.
o Chế tạo bằng công nghệ CMOS, tiêu thụ ít năng lượng, tốc độ
cao.
2.2 Sơ đồ khối chức năng và các chân vào ra
Vi điều khiển PIC có kiến trúc Harvard, trong đó CPU truy cập chương trình và
dữ liệu được trên hai bus riêng biệt, nên làm tăng đáng kể băng thông so với kiến trúc
Von Neumann trong đó CPU truy cập chương trình và dữ liệu trên cùng một bus.
Việc tách riêng bộ nhớ chương trình và bộ nhớ dữ liệu cho phép số bit của từ
lệnh có thể khác với số bit của dữ liệu. Ở PIC 16F877A, từ lệnh dài 14 bit , từ dữ liệu
8 bit.
PIC 16F877A chứa một bộ ALU 8 bit và thanh ghi làm việc WR (working
register). ALU là đơn vị tính toán số học và logic, nó thực hiên các phép tình số và đại
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
13
Luận văn tốt nghiêp Cảm biến quang
số Boole trên thanh ghi làm việc WR và các thanh ghi dữ liệu. ALU có thể thực hiện
các phép cộng, trừ, dịch bit và các phép toán logic.
Vi điều khiển PIC 16F877A được đóng trong vỏ nhựa hai hàng 40 chân DIP,
việc bố trí các lối ra mô tả trong hình10 :
Hinh10: Bố trí chân PIC 16F877A
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
14
Luận văn tốt nghiêp Cảm biến quang
Hình11 : Sơ đồ khối chức năng của PIC 16F877A.

Hình 11 là sơ đồ khối chức năng của các chân vào ra của vi điều khiển . Ở PIC
16F877A đa số các chân vào ra được sử dụng cho nhiều chức năng .
Các khối chức năng cụ thể cho từng chân vào ra được xác lập khi lập trình qua
các thanh ghi chức năng thuộc các khối liên quan chân này.
Tên Chân Loại Mô tả chức năng
OSC1/CLKI 13 I Dao động tinh thể lối vào dao động ngoài
OSC2/CLKO 14 O Dao động tinh thể hoặc lối ra xung nhịp
MCLR/Vpp 1 I/P Lối vào reset. Lối vào điện áp nạp trình
Vpp
RA0/AN0 2 I/O Vào/ ra số. Lối vào analog 0
RA1/AN1 3 I/O Vào/ ra số. Lối vào analog 1
RA2/AN2/V-reff/CVRef 4 I/O
Vào ra số. lối vào analog 2. Lối vào điện
áp chuẩn V-ref của ADC. Lối ra Vref so
sánh
RA3/AN3/V+Ref 5 I/O Vào/ ra số. Lối vào analog 3. Lối vào
điện áp chuẩn V-ref của ADC
RA4/TOCKI/C1OUT 6 I/O Vào/ra số cực máng ngỏ. Lối vào xung
ngoài cho timer. Lối ra bộ so sánh 1
RA5/SS/AN4/C2OUT 7 I/O Vào/ra số. lối vào chọn SOI. Lối vào
analog 4. lối ra bộ so sánh 2
RB0/INT 33 I/O Vào/ra số. Lối vào ngắt ngoài.
RB1 34 I/O Vào/ra số.
RB2 35 I/O Vào/ra số.
RB3/PGM 36 I/O Vào/ra số. Nạp trình LVP
RB4 37 I/O Vào/ra số
RB5 38 I/O Vào/ra số
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
15
Luận văn tốt nghiêp Cảm biến quang

RB6 39 I/O Vào/ra số. Xung nhịp nạp trình ICSP
RB7 40 I/O Vào/ra số. Dữ nạp trình ICSP
RC0/T1OSO/T1CKI 15 I/O Vào/ra số. Tạo dao động timer. Xung
nhịp ngoài cho timer 1
RC1/T1OSI/CCP2 16 I/O Vào/ra số. Tạo timer1. Lối vào Capture.
Lối ra Compare2. Lối ra PWM2
RC2/CCP1 17 I/O Vào/ra số. Lối vào Vào/ra số Capture1.
Lối ra PWM1
RC3/SCK/SCL 18 I/O Vào/ra số. Nhịp đồng bộ choSPI và I2C
RC4/SDI/SDA 23 I/O Vào/ra số. Vào dữ liệu SPI. Vào/ra dữ
liệu I2C
RC5/SDO 24 I/O Vào/ra số. Ra dữ liệu SPI
RC6/TX/CK 25 I/O Vào/ra số. Cổng truyền thông không
đồng bộ. Xung nhịp truyền đồng bộ
RC7/RX/DT 26 I/O Vào/ra số. Cổng nhận không đồng bộ.
Dữ liệu đồng bộ
RD0
RD1
RD2
RD3
RD4
RD5
RD6
RD7
19
20
21
22
27
28

29
30
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra số. Cổng song song tớ
Vào/ra sô. Cổng song song tớ
RE0/RD/AN5 7 I/O Vào/ra số. Điều khiển RD cổng song
song
RE1/WR/AN6 8 I/O Vào/ra số. Điều khiên WR cổng song
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
16
Luận văn tốt nghiêp Cảm biến quang
song
RE2/CS/AN7 9 I/O Vào/ra số. Điều khiển CS cổng song
song
Vss 12,31 I/O Đất chung cho lối vàp/ra và analog
Vdd 11,32 I/O Cấp nguồn dương
2.3 Tổ chức bộ nhớ và các thanh ghi chức năng đặc biệt

Tổ chức bộ nhớ của vi điều khiển PIC 16F877A được trình bày hình 12.
Hình 12: Tổ chức bộ nhớ
Có 3 loại bộ nhớ trong vi điều khiển 16F877A: bộ nhớ chương trình, bộ nhớ dữ
liệu RAM, bộ nhớ dữ liệu EEPROM. Bộ nhớ dữ liệu và bộ nhớ chương trình và bộ
nhớ dữ liệu có hai bus riêng lên có thể truy nhập đồng thời.
2.3.1 bộ nhớ chương trình Flash.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
17
Luận văn tốt nghiêp Cảm biến quang
Vi điều khiển 16F877A có bộ nhớ chương trình flash với dung lượng 8k x 14 bit,
chia thanh 4 bank. Thanh ghi của bộ đếm chương trinh PC (Program Counter ) 13 bit ,
đủ định nghĩa địa chỉ cho 8 k không gian bộ nhớ.
Khi khởi động, bộ đếm chương trình bắt đâu từ địa chỉ 0000h, vector ngắt có địa
chỉ 0004h.
Bộ nhớ dữ liệu được ghi vào trong khi lập trình cho vi điều khiển qua bộ nạp
trình. Do khả năng tự ghi vào bộ nhớ chương trình nên vi điều khiển 16F877A còn có
thể nạp chương trình qua cổng UART dưới sự điều khiển của chương trình Bootstrap.
2.3.2 Bộ nhớ dữ liệu RAM
Bộ nhớ dữ liệu được chia thanh 4 bank trong đó có các thanh ghi đa năng GPR
(General Purpose Register ) và các thanh ghi chức năng đặc biệt SER(Specail Function
Register). Việc lựa chon các bank được xác định bằng các bit RP1, RP0 của thanh ghi
STATUS.
Tổng dung lượng của các GPR RAM là 368 byte, lớn hơn nhiều so với vi điều
khiển khác như ở họ 8051 chỉ có 128 byte. Các thanh ghi GPR được sử dụng để lưu
giá trị các biến trong chương trình. Các thanh ghi đặc biệt SFR dùng để quản lý, điều
khiển chức năng của tất cả các khối thành phần bên trong vi điều khiển.
Tổ chức của các thanh ghi chức năng SFR được trình bày trên hình 13.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
18
Luận văn tốt nghiêp Cảm biến quang

Hình 13: Tổ chức thanh ghi chức năng SFR
2.3.3 Bộ nhớ dữ liệu EEPROM
Một bộ nhớ dữ liệu đặc biệt kiểu EEPROM dung lương 256 byte được tích hợp
trong PIC 16F877A và được xem như thiết bị ngoại vi được nối vào bus dữ liệu, bộ
nhớ này có thể ghi đọc trong quá trình hoạt động dưới sự điều khiển của chương trình.
Bộ nhớ EEPROM thường dùng các lưu trữ các chương trình không bị thay đổi như các
hằng chuẩn, các dữ liệu của người sử dụng. và không bị mất đi khi ngắt nguồn nuôi.
Các thanh ghi chức năng đặc biệt EECON, EECON2, EEADR, EEADRH được sử
dụng để truy cập đến bộ nhớ này.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
19
Luận văn tốt nghiêp Cảm biến quang
2.4 Các cổng vào/ra
2.4.1 Cổng A
Cổng A là cổng vào/ ra 6 bit, 2 hướng xem hình 14. Thanh ghi định hướng cổng
là TRISA. Bít “1” trong thanh ghi TRISA đặt bộ điều khiển lối ra tương ứng về trạng
thái trở kháng cao. Bít “0” trong thanh ghi TRISA đặt nội dung của thanh ghi chốt ra
lên chân tương ứng. Việc đọc cổng A là đọc mức logic của các chân vào bus. Việc ghi
ra cổng là ghi vào thanh ghi chốt lối ra PORTA.RA4 là lối vào trigger Schmitt và lối
ra cực máng ngỏ.
Hình 14:Cổng A
Chân RA4 dùng chung với lối vào xung nhịp cho timer0 khi dùng bộ đếm xung
từ bên ngoài.
Các chân khác của cổng A được ghép lối vào của các bộ so sánh tương tự và bộ
biến đổi ADC 8 kênh. Việc lựa chọn vào cho ADC được chọn bởi bit điều khiển trên
hai thanh ghi ADCON1 và ADCON2.
2.4.2 Cổng B
Cổng B là cổng 8 bit vào/ra hai hướng xem hình 15. Thanh ghi định hướng cổng
là TRISB. Thanh ghi chốt lối ra cổng B là PORTB.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT

20
Luận văn tốt nghiêp Cảm biến quang
Chân RB0 có thể lựa chọn là lối vào của ngắt ngoài Extint, lối vào này lập cờ
ngắt INTF khi có sườn lên hoặc sườn xuống của xung tùy thuộc vào giá trị bít
INTEDG trong thanh ghi OPTION.
Hình 15: Cổng RB<0:3> và RB<4:7>
Có 3 chân của cổng B được ghép lối với chức năng ICSP là RB6, RB7, RB3
tương ứng với lối vào PGC, PGD, LVP khi nạp trình. Mỗi chân trong cổng B được nối
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
21
Luận văn tốt nghiêp Cảm biến quang
tới một điện trở kéo lên (pull- up) có trị số 20kΩ bên trong. Việc lựa chọn dùng/không
dùng các điện trở này bằng cách xóa/đặt bít RBPU trong thanh ghi OPTION.
Lối vào RB4 và RB7 làm phát sinh ngắt RBIF khi thay đổi trạng thái khi các
chân này định nghĩa là các lối vào. Trạng thái hiện tại của lối vào này được so sánh với
trạng thái được chốt lại tại lần đọc trước đó. Khi có sự khác nhau thì cờ ngắt RBIF
được lập.
2.4.3 Cổng C
Hình 16 Cổng C.
Cổng C là cổng 8 bit vào/ra hai hướng xem hình 16. Thanh ghi định hướng cổng
là TRISC. Các chân của cổng C được ghép với các chức năng ngoại vi. Các lối vào
của cổng C có bộ đệm kiểu trigger Schmitt. Bảng dưới đây liệt kê các chức năng ghép
của cổng C.
Tên chân Bít Chức năng, ý nghĩa
RC0/T1OSO/T1CK1 Bit 0 Cổng vào/ra . lối tạo Timer 1.Lối vào xung
nhịp Timer1
RV1/T1OSI/CCP2 Bít 1 Cổng vào/ra. Lối vào dao động Timer
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
22
Luận văn tốt nghiêp Cảm biến quang

1. Lối vào Capture2/lối ra compảe2. Lối ra
PWM2
RC2/CPP1 Bit 2 Cổng vào/ra. Lối vào capture1/lối ra
compare1. Lối ra PWM1
RC3/SCK/SCL Bit 3 Lối ra xung nhịp của chế độ truyền
đồng bộ tuần tự SPI hoặc I2C
RC4/SDI/SDA Bit 4 Lối vào DATA của chế độ SPI, DATA
I/O của I2C
RC5/SD0 Bit 5 Cổng vào/ra. Lối ra của cổng truyền
đồng bộ tuần tự
RC6/TX/CK Bit 6 Cổng vào/ra. Lối ra Tx của USART.
Xung nhịp chế độ truyền đồng bộ
RC7/RX/DT Bit 7 Cổng vào/ra. Lối vào Rx của USART.
Dữ liệu chế độ truyền đồng bộ
2.4.4 Cổng D
Hình 17: Cổng D.
Cổng D là cổng 8 bit vào/ra hai hướng (xem hình 17). Thanh ghi định hướng
cổng là TRISD. Các lối vào của cổng D có bộ đệm trigger schmitt. Cổng D có thể định
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
23
Luận văn tốt nghiêp Cảm biến quang
dang là cổng song song 8 bit kiểu Slave, việc điều khiển các chức năng đọc/ghi/chọn
cổng sử dụng các chân RE0/RE1/RE2 của cổng E.
2.4.5 Cổng E
Cổng E là cổng vào ra hai hướng gồm các chân RE0/RD/AN5, RE1/WR/AN6,
RE2/CS/AN7 (xem hình 18). Thanh ghi TRISE định hướng cổng là vào/ra. Thanh ghi
PORTE ghi các giá trị cần đưa ra cổng. Cổng E còn là các lối vào/ra điều khiển cổng
vào/ra song song khi cổng D được thiết lập là cổng vào/ra song song. Các chân
RE0/RE1/RE2 còn kênh vào điện áp tương tự thứ 6,7,8 của bộ biến đổi ADC.
Hình 18: Cổng E.


2.5 Các khối TIMER
2.5.1 Khối timer0
Khối timer0 (xem hình 19) là bộ đếm thời gian các đặc tính sau:
o Bộ đếm 8 bit
o Ghi/đọc được.
o Có bộ chia 8 bit lập trình được.
o Chọn xung nhịp bên ngoài hoặc bên trong.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
24
Luận văn tốt nghiêp Cảm biến quang
o Sinh ngắt TOIF khi tràn chuyền từ FFh→ 00h.
o Chọn sườn xung khi lấy xung nhịp từ bên ngoài.
Timer0 dùng làm bộ đếm xung nhịp của vi điều khiển vể tạo ra một bộ đếm thời
gian. Chế độ đếm thời gian được chọn bằng cách đặt bit T0CS = 0 (bit OPTION<5>).
Trong các chế độ đếm thời gian, thanh ghi TMR0 tăng một đơn vị sau mỗi chu kỳ
máy. Thanh ghỉ TMR0 có thể được ghi đọc trong chương trình để xác lập hoặc lấy giá
trị hiện thời của timer0.
Hình 19: Sơ đồ khối Timer0.
Timer0 dùng để đếm các xung từ bên ngoài cấp vào chân RA4. Chế độ đếm
xung được chọn bằng cách đặt T0CS = 1. Trong chế độ này thanh ghi Timer0 tăng một
đơn vị sau mỗi sườn lên hoặc sườn xuống tùy thuộc vào trạng thái của bit T0SE.
Bộ chia trước được dùng chung cho hai khối watchdog và Timer0. Việc gắn bộ
chia trước cho khối nào được chọn bằng bít PSA(OPTION<3>). Hệ số chia phụ thuộc
giá trị của bit PS2:PS1:PS0 của thanh ghi OPTION.
Ngắt timer0 xảy ra khi thanh ghi TMR0 tràn, chuyển từ FFh→00h. Sự tràn này
sẽ đặt bít T0IF = 1. Ngắt T0IF có thể che bằng bit T0IE. Cờ T0IF phải được xóa bằng
phần mềm.
Trường ĐH Công Nghệ-DHQGHN Lương Quang Tuấn-K49ĐT
25

×