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
53 trang |
Chia sẻ: oanhnt | Lượt xem: 1363 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu các ứng dụng cảm biến quang, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
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ừ -25oC đến 70oC.
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.
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. 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
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 fO
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 VDD= 5V, TA=25oC
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ế VDD= 5V và nhiệt độ TA= 25oC.
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
Ee=130nW/cm2
λ P =670 nm
0.8 1 1.2
0.9 1 1.1
0.95 1 1.05
MHz
S0=H,Ee=0 S1=S2=S3=L
0.1 10
0.1 10
0.1 10
Hz
S1=H, S0=S2=S3=L
Ee=130nW/cm2
λ P =670 nm
0.8 1 1.2
0.9 1 1.1
0.95 1 1.05
MHz
fO
S1=H,Ee=0
S0=S2=S3=L
0.13 10
0.13 10
0.13 10
Hz
S0=S1=H, S2=S3=L
Ee=130nW/cm2
λ 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
Ee=0;
0.5 10
0.5 10
0.5 10
Hz
TW
S2=S3
125 550
125 550
125 550
ns
S2orS3=H
1/2fO
1/2fO
1/2fO
s
fO=0 to 10kHz
±0.1%
±0.1%
±0.1%
%F.S
Dung sai
fO=0 to 10kHz
±0.2%
±0.2%
±0.2%
%F.S
fO=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, VIH
Vdd=4.5Vđến 5.5V
2
Vdd
V
Mức thấp input, VIL
Vdd=4.5Vđến 5.5V
0
0.8
V
Khoảng nhiệt độ
hoạt động
-25
70
oC
1.2.4.3 Đặc trưng về điện tại TA= 25oC và Vdd= 5V
Thông số
Điều kiện chạy thử
Min
Nom
Max
Đơn vị đo
VOH
IOH= -4mA
4
4.3
V
VOL
IOL=4mA
0.17
0.28
V
IIH
1
µA
IIL
1
µA
IDD
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
-25oC≤ TA≤70oC
Ppm/oC
KSVS độ nhạy nguồn
VDD= 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
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
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
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 đó.
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.
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.
Tập lệnh chỉ gồm 35 lệnh RISC.
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ỳ .
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.
Bộ nhớ chương trình 8k x 14 bit.
Bộ nhớ dữ liệu RAM 368 x b bít.
Bộ nhớ dữ liệu EEPROM 256 x 8 bit.
+ Các thiết bị ngoại vi giao tiếp số
Timer0: bộ đếm / timer 8 bit , có bộ chia trước 8 bit.
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 .
Timer2 : bộ đếm 8 bit chia trước ,chia sau.
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.
Cổng nối tiếp đồng bộ theo chuẩn giao thức SPI và I2C.
Bộ thu/phát đồng bộ vạn năng URAT có phần cứng phân biệt địa chỉ.
Cổng song song PSP 8bit có chan điều khiển RD,WR,CS.
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.
+ 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
Đảm bảo 100.000 lần ghi/xóa vào bộ nhớ chương trình flash.
Đảm bảo 1.000.000 lần ghi/xóa vào bộ nhớ dữ liệu EEPROM.
Bộ nhớ dữ liệu kiểu EEPROM lưu được dữ liệu trên 40 năm.
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.
Nạp trình nối tiếp ICSP.
Điện áp nạp trình 5 V ở chế độ LVP.
Bộ đếm giám sát Watchdog có mạch tạo nhịp RC bên trong , độ lập.
Có cơ chế xóa chống sao chép chương trình.
Chế độ SLEEP tiết kiệm năng lượng.
Nhiều lựa chọn về bộ giao động tạo nhịp RC, LP, XT, HS.
Chức năng gỡ rối chương trình ICD qua 2 chân.
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 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
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ố
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 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.
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.
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.
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.
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 và RB
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 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 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