Sử dụng vi điều khiển pic16f877A dùng phương pháp đo nhịp tim bằng hấp thụ quang học . Khi tim đập, máu sẽ được dồn đi khắp cơ thể qua động mạch, tạo ra sự thay đổi về áp suất trên thành động mạch và lượng máu chảy qua động mạch. Vì vậy, ta có thể đo nhịp tim bằng cách đo những sự thay đổi đó.
Trang 1NHẬN XÉT VÀ ĐIỂM CỦA GIÁO VIÊN HƯỚNG DẪN
Ngày tháng 07 năm 2014 GIÁO VIÊN HƯỚNG DẪN
(ký tên)
Trang 2NHẬN XÉT VÀ ĐIỂM CỦA GIÁO VIÊN PHẢN BIỆN
Ngày tháng 07 năm 2014 GIÁO VIÊN PHẢN BIỆN
(ký tên)
Trang 3LỜI NÓI ĐẦU
Trong sự phát triển nhanh chóng của kỹ thuật điện tử ngày nay, các hệ thốngthiết bị ngày càng phong phú hiện đại đáp ứng mọi nhu cầu của người sử dụng, giúpcuộc sống trở nên tiện nghi, an toàn và hiện đại hơn Trong số đó phải kể đến các vimạch tích hợp có tốc độ xử lý nhanh, chính xác được áp dụng trong các thiết bịchuyên dùng của gia đình Giúp người sử dụng quản lý, điều khiển các thiết bị mộtcách dễ dàng Bên cạnh đó cùng với xu hướng hiện đại hóa và sự phát triển nhanhchóng trong lĩnh vực viễn thông, các thiết bị điều khiển tự động ngày càng đượctăng cao như việc ứng dụng các thành tựu của công nghệ điện tử giám sát chăm sócsức khỏe của con người
Từ những nhu cầu thực tế đó, chúng em đã lựa chọn đề tài " Thiết kế mạch đonhịp tim từ ngón tay" Đây là một trong những ứng dụng ngày càng phổ biến và được
áp dụng nhiều trong các hộ gia đình, mà người sử dụng có thể dễ dàng giám sát đượcnhịp tim của mình Góp phần vào sự tiến bộ, văn minh, hiện đại của nước nhà
Trang 4LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗtrợ, giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốtthời gian từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rấtnhiều sự quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất nhóm chúng em xin gửi lời cám ơn chân thànhnhất đến Ban Giám Hiệu trường ĐẠI HỌC CÔNG NGHIỆP TP HCM, ban chủnhiệm khoa Điện – Điện Tử, quý Thầy Cô của khoa đã chỉ dạy cho chúng em kiếnthức, những kĩ năng, môi trường học tập tốt trong thời gian qua và đặc biệt nhóm
em xin gửi lời cám ơn đến thầy hướng dẫn NCS Lê Văn Hùng đã hết lòng giúp đỡ
và tạo mọi điều kiện thuận lợi nhất để nhóm em hoàn thành đề tài này
Sau khoảng thời gian tìm hiểu, thiết kế và thi công đồ án 2, với đề tài" Thiết kếmạch đo nhịp tim từ ngón tay" Cuối cùng nhóm chúng em cũng đã hoàn thành côngviệc Những kết quả mà nhóm có được là nhờ những kiến thức đã tiếp thu được trongcác năm học, bên cạnh đó là sự chỉ dẫn, hướng dẫn tận tình của thầy LÊ VĂNHÙNG Tuy nhiên, do trình độ chuyên môn còn hạn chế nên đồ án của em khôngthể tránh khỏi thiếu sót Rất mong nhận được sự giúp đỡ của thầy để đồ án củachúng em được hoàn chỉnh hơn
Chúng em xin chân thành cảm ơn !
Trang 5MỤC LỤC
LỜI NÓI ĐẦU 3
LỜI CẢM ƠN 4
CHƯƠNG 1: TÌM HIỂU VỀ NHỊP TIM VÀ PHƯƠNG PHÁP ĐO NHỊP TIM BẰNG HẤP THỤ QUANG HỌC 9
1.1 Giới thiệu chương 9
1.2 Tìm hiểu về nhịp tim 9
1.3 Đo nhịp tim bằng phương pháp hấp thụ quang học 9
1.3.1 Cơ sở lý thuyết 9
1.3.2 Vị trí đặt cảm biến 11
CHƯƠNG 2:TỔNG QUAN VỀ LED THU PHÁT HỒNG NGOẠI 12
2.1 Khái niệm về tia hồng ngoại 12
2.2 LED phát hồng ngoại 12
2.2 LED thu hồng ngoại 14
CHƯƠNG 3:VI ĐIỀU KHIỂN PIC 16F877A 16
3.1 Một vài thông số của vi điều khiển PIC16F877A 18
3.2 Sơ đồ khối của vi điều khiển PIC 16F877A 19
3.3 Tổ chức bộ nhớ 19
3.3.1 Bộ nhớ chương trình 23
3.3.1 Bộ nhớ dữ liệu 23
3.4 Các cổng xuất nhập của PIC 16F877A 24
3.4.1 PORTA 24
3.4.2 PORTB 24
3.4.3 PORTC 24
3.4.4 PORTD 24
3.4.5 PORTE 24
3.5 Timer 25
3.5.1 Timer0 25
3.5.2 Timer1 26
3.5.3 Timer2 27
Trang 63.7 Giao tiếp nối tiếp USART 29
CHƯƠNG 4: IC KHUẾCH ĐẠI THUẬT TOÁN LM324 32
4.1 Tìm hiểu về IC LM324 32
4.2 Thông số kỹ thuật 32
CHƯƠNG 5: THIẾT KẾ VÀ THI CÔNG MẠCH 34
5.1 Sơ đồ khối hệ thống 34
5.2 Sơ đồ nguyên lý 35
5.2.1 Khối nguồn 35
5.2.2 Sơ đồ khối vi xử lý 35
5.2.3 Sơ đồ khối LCD 36
5.2.4 Khối cảm biến nhịp tim 36
5.2.5 Khối lọc và khuếch đại 37
5.2.6 Sơ đồ mạch in 37
5.3 Lưu đồ giải thuật 39
PHỤ LỤC 44
TÀI LIỆU THAM KHẢO 48
Trang 822 Hình 5.8 Sơ đồ 3D của layout 38
Trang 9CHƯƠNG 1: TÌM HIỂU VỀ NHỊP TIM VÀ PHƯƠNG PHÁP ĐO NHỊP TIM BẰNG HẤP THỤ QUANG HỌC
1.1 Giới thiệu chương
Chương này sẽ tìm hiểu về nhịp tim và đo nhịp bằng phương pháp hấp thụquang học
1.2 Tìm hiểu về nhịp tim
Khái niệm: Nhịp tim là số nhịp đập của tim trên một đơn vị thời gian, thườngđược tính và nhịp/phút Nhịp tim có thể thay đổi theo nhu cầu hấp thụ Oxi và bàitiết CO2 của cơ thể, ví dụ như lúc tập thể dục và lúc ngủ
Bảng thông số đánh giá nhịp tim ở trạng thái nghỉ ngơi:
Bảng 1.1 : Thông số đánh giá nhịp tim người ở trạng thái nghỉ ngơi
1.3 Đo nhịp tim bằng phương pháp hấp thụ quang học:
1.3.1 Cơ sở lý thuyết:
Khi tim đập, máu sẽ được dồn đi khắp cơ thể qua động mạch, tạo ra sự thay đổi
về áp suất trên thành động mạch và lượng máu chảy qua động mạch Vì vậy, ta cóthể đo nhịp tim bằng cách đo những sự thay đổi đó
Trang 10Hình 1.1: Dạng tín hiệu nhịp tim Khi lượng máu trong thành động mạch thay đổi sẽ làm thay đổi mức độ hấp thụánh sáng của động mạch, do đó khi một tia sáng được truyền qua động mạch thìcường độ ánh sáng sau khi truyền qua sẽ biến thiên đồng bộ với nhịp tim.
Khi tim giãn ra, lượng máu qua động mạch nhỏ nên hấp thụ ít ánh sáng, ánhsáng sau khi truyền qua động mạch có cường độ lớn, ngược lại khi tim co vào,lượng máu qua động mạch lớn hơn, ánh sáng sau khi truyền qua động mạch sẽ cócường độ nhỏ hơn
Hình 1.2: Sự hấp thụ ánh sáng của động mạch khi truyền qua ngón tay
Ánh sáng sau khi truyền qua ngón tay gồm 2 thành phần AC và DC:
+ Thành phần DC đặc trưng cho cường độ ánh sáng cố định truyền qua mô,xương và tĩnh mạch
+ Thành phần AC đặc trưng cho cường độ ánh sáng thay đổi khi lượng máuthay đổi truyền qua động mạch, tần số của tín hiệu này đồng bộ với tần số nhịp tim
Trang 11=> Nếu ta lọc bỏ thành phần DC sẽ thu được tín hiệu AC đồng bộ với tín hiệu nhịptim.
1.3.2 Vị trí đặt cảm biến:
* Yêu cầu:
- Phải đặt nguồn phát và nguồn thu để thu được kết quả tốt nhất
- Vị trí dễ dàng đặt cảm biến, khoảng cách thu phát không quá gần cũng khôngquá xa
=> Chọn ngón tay là nơi đặt cảm biến
Hình 1.3: Vị trí đặt cảm biến
Trang 12CHƯƠNG 2:TỔNG QUAN VỀ LED THU PHÁT HỒNG NGOẠI
2.1 Khái niệm về tia hồng ngoại
Ánh sáng hồng ngoại (tia hồng ngoại) là ánh sáng không thể nhìn thấy đượcbằng mắt thường , có bước sóng khoảng từ 0.86μm đến 0.98μm Tia hồng ngoại cóm đến 0.98μm đến 0.98μm Tia hồng ngoại cóm Tia hồng ngoại cóvận tốc truyền bằng vận tốc ánh sáng
Tia hồng ngoại có thể truyền đi được nhiều kênh tín hiệu Nó được ứng dụngrộng rãi trong công nghiệp Lượng thông tin có thể đạt 3 mega bit/s Lượng thôngtin được truyền đi với ánh sáng hồng ngoại lớn gấp nhiều lần so với sóng điện từ màngười ta vẫn dùng
Tia hồng ngoại dễ bị hấp thụ , khả năng xuyên thấu kém Trong điều khiển từ
xa bằng tia hồng ngoại , chùm tia hồng ngoại phát đi hẹp, có hướng, do đó khi thuphải đúng hướng
Sóng hồng ngoại có những đặc tính quan trọng giống như ánh sáng ( sự hội tụqua thấu kính , tiêu cự …) Ánh sáng thường và ánh sáng hồng ngoại khác nhau rất
rõ trong sự xuyên suốt qua vật chất Có những vật chất ta thấy nó dưới một màuxám đục nhưng với ánh sáng hồng ngoại nó trở nên xuyên suốt Vì vật liệu bán dẫn
“trong suốt” đối với ánh sáng hồng ngoại , tia hồng ngoại không bị yếu đi khi nóvượt qua các lớp bán dẫn để đi ra ngoài
2.2 LED phát hồng ngoại
Đối với các hệ thống thông tin quang yêu cầu tốc độ bit xấp xỉ 100 đến 200Mbit/scùng sợi quang đa mốt với công suất quang khoảng vài chục μm đến 0.98μm Tia hồng ngoại ców, các điôt phátquang bán dẫn thường là các nguồn sáng tốt nhất
Cấu tạo:
Ánh sáng hồng ngoại ( tia hồng ngoại ) được phát ra từ Led là ánh sáng khôngthể nhìn thấy được bằng mắt thường, có bước sóng khoảng từ 0.86μm đến 0.98μm Tia hồng ngoại cóm đến 0.98μm đến 0.98μm Tia hồng ngoại cóm.Tia hồng ngoại có vận tốc truyền bằng vận tốc ánh sáng
Cấu tạo của LED hồng ngoại cơ bản là giống các LED chỉ thị Để bức xạ ánhsáng hồng ngoại, LED hồng ngoại được chế tạo từ vật liệu Galium Asenit (GaAs)với độ rộng vùng cấm EG = 1,43 eV tương ứng với bức xạ bước sóng khoảng900nm
Trang 13Hình dưới mô tả cấu trúc của một LED hồng ngoại bức xạ ánh sáng 950nm
Hình 2.1: Cấu trúc của led phát hồng ngoạiCấu trúc của LED hồng ngoại bức xạ bước sóng 950nm
Trong phần epitaxy lỏng trong suốt GaAs (N) tạo một lớp tinh thể có tính chấtlưỡng tính với tạp chất Silic là GaAsSi (N) và một tiếp xúc P-N được hình thành.Với sự phatạp chất Silic ta có bức xạ với bước sóng 950 nm Mặt dưới của LEDđược mài nhẵn tạothành một gương phản chiếu tia hồng ngoại phát ra từ lớp tiếpxúc P-N
Nguyên lý làm việc:
Khi phân cực thuận cho điôt, các hạt dẫn đa số sẽ khuếch tán qua tiếp xúc P-N,chúng tái hợp với nhau và phát ra bức xạ hồng ngoại Các tia hồng ngoại bức xạ ratheo nhiều hướng khác nhau Những tia hồng ngoại có hướng đi vào trong các lớpchất bán dẫn, gặp gương phản chiếu sẽ được phản xạ trở lại để đi ra ngoài theo cùnghướng với các tia khác Điều này làm tăng hiệu suất của LED
Ánh sáng hồng ngoại có đặc tính quang học giống như ánh sáng nhìn thấy, nghĩa
là nó có khả năng hội tụ, phân kỳ qua thấu kính, có tiêu cự Tuy nhiên, ánh sánghồng ngoại rất khác ánh sáng nhìn thấy ở khả năng xuyên suốt qua vật chất, trong
đó có chất bán dẫn Điều này giải thích tại sao LED hồng ngoại có hiệu suất caohơn LED chỉ thị vì tia hồng ngoại không bị yếu đi khi vượt qua các lớp bán dẫn để
ra ngoài
Trang 14Tuổi thọ của LED hồng ngoại dài đến 100000 giờ LED hồng ngoại không phát
ra ánhsáng nhìn thấy nên rất có lợi trong các thiết bị kiểm soát vì không gây sự chúý
2.3 LED thu hồng ngoại
Cấu tạo
Photo diode, hay diode hồng ngoại vốn là một mối nối bán dẫn PN, nó có đặc tính làm thay đổi cường độ dòng điện mỗi khi mối nối PN bị kích sáng.
Hình 2.2: Cấu trúc của led thu hồng ngoại
Nguyên lý làm việc
Trong mạch, photo diode thường cho ghép với một điện trở lớn ohm, nó đặt ở trạng thái phân cực nghịch Khi bị che sáng, photo diode dẫn điện yếu và khi bị chiếu sáng, nó sẽ dẫn điện mạnh hơn Ở trạng thái phân cực thuận, nó cũng có tính ghim áp như các diode thông thường khác Photo diode có hoán tính nhỏ, cho thay đổi nhanh, nên người ta thích dùng photo diode trong các thiết bị điều khiển hồng ngoại, dùng trong các thiết bị điều khiển tốc độ quay của các motor, dùng trong mạch đo tốc Bạn cũng có thể dùng ohm kế thông thường để kiểm tra các photo diode, dùng thang đo Rx10K, lúc này điện áp có trên 2 dây đo là 12V, đặt photo diode vào dây đo theo kiểu phân cực nghịch, dùng một hộp điều khiển Remote thông dụng, cho phát lệnh điều khiển, chiếu remote vào photo diode, Bạn sẽ thấy kim máy đo rung theo xung lệnh, dấu hiệu này cho biết photo diode còn tốt Photo diode có rất nhiều trong các đầu máy hát băng hình.
Trang 15CHƯƠNG 3:VI ĐIỀU KHIỂN PIC 16F877A
PIC là tên viết tắt của “Programable Intelligent Computer” (Máy tính khả trìnhthông minh) và là một vi điều khiển với kiến trúc RISC, chạy một lệnh một chu kỳmáy (4 chu kỳ của bộ dao động) PIC16F877A là họ vi điều khiển có 40 chân, mỗichân có một chức năng khác nhau Trong đó có một số chân đa công dụng (đa hợp),mỗi chân có thể hoạt động như một đường xuất/nhập (I/O) độc lập hoặc là một chứcnăng đặc biệt dùng để giao tiếp với các thiết bị ngoại vi
3.1 Một vài thông số của vi điều khiển PIC16F877A
Hình 3.1 Sơ đồ chân của PIC 16F877A
Vi điều khiển PIC 16F877A là vi điều khiển thuộc họ PIC 16Fxxx với tập lệnhgồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong một chu kỳ xungclock Tốc độ hoạt động tối đa cho phép là 20Mhz với một chu kì lệnh là 200ns Bộnhớ chương trình 8K x 14bit, bộ nhớ dữ liệu 368 x 8 byte RAM và bộ nhớ dữ liệuEEPROM với dung lượng 256 x 8 byte Số PORT I/O là 5 với 33 chân I/O
Các đặc tính ngoại vi bao gồm các khối chức năng:
- Timer 0: bộ định thời 8 bit với bộ chia tần số 8 bit
Trang 16- Timer 1: bộ định thời 16 bit với bộ chia tần số, có thể thực hiện chứcnă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ộ định thời 8 bit với bộ chia tần số, bộ postcaler
- Hai bộ Bắt giữ/ 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ềukhiển RD, WD, CS ở bên ngoài
Các đặc tính analog:
- 8 kênh chuyển đổi ADC 10 bit
- 2 bộ so sánh
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 Cicuit SerialProgramming) thông qua 2 chân
- Bộ định thời giám sát (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
Trang 173.2 Sơ đồ khối của vi điều khiển PIC 16F877A
Hình 3.2 Sơ đồ khối vi điều khiển PIC 16F877A
Trang 183.3 Tổ chức bộ nhớ
Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình(Program memory) và bộ nhớ dữ liệu ( Data memory)
3.3.1 Bộ nhớ chương trình
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ flash, dunglượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page 0đến page 3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024=8192lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng một word (14 bits)
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình
có dung lượng 13 bit(PC<12:0>)
Hình3.3 Bộ nhớ chương trình PIC 16F877A
3.3.2 Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đốivới PIC16F877A bộ nhớ dữ liệu được chia ra làm bốn bank Mỗi bank có dunglượng 128 bytes, bao gồm các thanh ghi có chức năng đặc biệt SFG (SpecialFunction Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chungGPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong bank Các thanhghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở
Trang 19tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làmgiảm bớt lệnh của chương trình Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A nhưsau:
Hình3.4 Sơ đồ bộ nhớ dữ liệu PIC 16F877A
Các thanh ghi chức năng đặc biệt (SFR)
Trang 20Các thanh ghi chức năng đặc biệt được sử dụng bởi CPU hoặc được dùng đểthiết lập và điều khiển các khối chức năng được tích hợp bên trong vi điều khiển.
Có thể phân thanh ghi SFR ra làm hai loại: thanh ghi SFR liên quan đến chức năngbên trong (CPU) và thanh ghi SFR dùng để thiết lập và điều khiển các khối chứcnăng bên ngoài (ví dụ như ADC, PWM,…) Phần này sẽ đề cập đến các thanh ghiliên quan đến các chức năng bên trong
- Thanh ghi STATUS (03h,83h,103h,183h): thanh ghi chứa kết quảthực hiện phép toán của khối ALU, trạng thái reset và các bit chọn bank cần truyxuất trong bộ nhớ dữ liệu
- Thanh ghi OPTION_REG(81h,181h): thanh ghi này cho phép đọc vàghi, cho phép điều khiển chức năng pull-up của các chân trong PORTB, xác lập cáctham số về xung tác động, cạnh tác động của ngắt ngoại vi và bộ đếm của Timer0
- Thanh ghi INTCON (0Bh,8Bh,10Bh,18Bh): thanh ghi cho phép đọc
và ghi, chứa các bit điều khiển và các bit cờ hiệu khi timer0 bị tràn, ngắt ngoại viRB0/INT và ngắt interrupt-on-change tại các chân của PORTB
- Thanh ghi PIE1 (8Ch): chứa các bit điều khiển chi tiết các ngắt củacác khối chức năng ngoại vi
- Thanh ghi PIR1 (0Ch) chứa cờ ngắt của các khối chức năng ngoại vi,các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1
Trang 21- Thanh ghi PIE2(8Dh): chứa các bit điều khiển các ngắt của các khốichức năng CCP2, SSP bus, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.
- Thanh ghi PIR2 (0Dh): chứa các cờ ngắt của các khối chức năngngoại vi, các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghiPIE2
- Thanh ghi PCON (8Eh): chứa các cờ hiệu cho biết trạng thái các chế
độ reset của vi điều khiển
Các thanh ghi mục đích dùng chung (GPR)
Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông quathanh ghi FSG (File Select Register) Đây là các thanh ghi dữ liệu thông thường,người sử dụng có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghinày để chứa các biến số, hằng số, kết quả hoặc các tham số phục vụ cho chươngtrình
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là mộtvùng nhớ đặc biệt không cho phép đọc hay ghi Khi lệnh CALL được thực hiện haykhi một ngắt xảy ra làm chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình
PC tự động được vi điều khiển cất vào trong stack Khi một lệnh RETURN,RETLW hay RETFIE được thực thi, giá trị PC sẽ tự động được lấy ra từ trongstack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúng qui trình định trước
Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8địa chỉ và theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10
sẽ ghi đè lên giá trị cất vào Stack lần thứ hai
Trang 22Cần chú ý là không có cờ hiệu nào cho biết trạng thái Stack, do đó ta khôngbiết được khi nào Stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũngkhông có lệnh POP hay PUSH, các thao tác với bộ nhớ Stack sẽ hoàn toàn đượcđiều khiển bởi CPU.
3.4 Các cổng xuất nhập của PIC 16F877A
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin), tùy theocách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượngchân của mỗi cổng có thể khác nhau Một số chân xuất nhập còn có thêm chức năngkhác để thể hiện sự tác động của các đặc tính nêu trên đối với thế giới bên ngoài.Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập
và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó
Vi điều khiển PIC16F877A có 5 cổng xuất nhập với 33 pin I/O, bao gồmPORTA (6 pin), PORTB (8 pin), PORTC (8 pin), PORTD (8 pin) và PORTE (3pin)
3.4.1 PORTA
PORTA gồm 6 pin I/O Đây là các chân hai chiều (bidirectional pin), nghĩa
là có thể là xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghiTRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA làoutput, ta “ clear” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA.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ểntương ứng TRIS (đối với PORTA là TRISA, đối với PORTB là TRISB, đối vớiPORTC là TRISC, đối với PORTD là TRISD và đối với PORTE là TRISE) Bêncạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào analog ngõ vàoxung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (Master SynchronousSerial Port )
Các thanh ghi SFR liên quan đến PORTA bao gồm:
- PORTA (05h) : chứa giá trị các pin trong PORTA
- TRISA (85h): điều khiển xuất nhập
- CMCON (9Ch): thanh ghi điều khiển bộ so sánh
- CVRCON (9Dh): thanh ghi điều khiển bộ so sánh điện áp
- ADCON1 (9Fh): thanh ghi điều khiển bộ ADC
Trang 233.4.2 PORTB
PORTB 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 PORTB còn được sử dụng trong quá trình nạp chươngtrình cho vi điều khiển với chế độ nạp khác nhau PORTB còn liên quan ngắt ngoại
vi và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điềukhiển bởi chương trình
Các thanh ghi SFR liên quan đến PORTB bao gồm:
- PORTB (06h,106h): chứa giá trị các pin trong PORTB
- TRISB (86h,186h): điều khiển xuất nhập
- OPTION_REG (81h, 181h): điều khiển ngắt ngoại vi và bộ Timer0
3.4.3 PORTC
PORTC gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISC Bên cạnh đó PORTC còn chứa các chức năng của bộ so sánh, bộ Timer1,
bộ PWM và các chuẩn giao tiếp I2C, SPI, SSP, USART
Các thanh ghi điều khiển liên quan đến PORTC:
- PORTC (07h): chứa giá trị các pin trong PORTC
- TRISC (87h): điều khiển xuất nhập
3.4.4 PORTD
PORTD gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng làTRISD PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel SlavePort)
Các thanh ghi liên quan đến PORTD bao gồm:
- PORTD (08h): chứa giá trị các pin trong PORTD
- TRISD (88h): điều khiển xuất nhập
3.4.5 PORTE
PORTE gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISE Các chân của PORTE có ngõ vào là analog Bên cạnh đó còn có các chânđiều khiển của chuẩn giao tiếp PSP
Các thanh ghi liên quan đến PORTE bao gồm:
- PORTE (09h): chứa giá trị các pin trong PORTE
- TRISE (89h): điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP