1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Do nhiet do dieu khien dong co DC

100 199 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 100
Dung lượng 3,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi đó nếuđược cho phép hoạt động, bộ đếm của WDT sẽ bị xóa nhưng WDT vẫn tiếp tụchoạt động bit PD STATUS được reset về không, bit TO được set, oscillatorngưng hoạt động và các PORT giữ

Trang 1

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

-o0o -

Tp Hồ Chí Minh, ngày… tháng …năm 2009

Tô Hoàng Lộc

Trang 2

NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN



Tp HCM, ngày… tháng… năm 2010

Trương Hoàng Hoa Thám

Trang 3

1 Sơ lược về vi điều khiển PIC16f877A

2 Sơ lược về các chân của PIC16f877A

3 Một số đặc điểm của CPU

4.2.2 Vùng thanh ghi chức năng đặc biệt

4.2.3 Các chức năng thanh ghi đặc biệt

4.2.3.1Thanh ghi trạng thái(status register)

4.2.3.2Thanh ghi tùy chọn(option_reg register)

4.2.3.3 Thanh ghi điều khiển ngắt INTCON(interput control register) 4.2.3.4 Thanh ghi cho phép ngắt ngoại vi 1

Trang 4

4.2.3.5 Thanh ghi cờ của các ngắt ngoại vi 1

4.2.3.6 Thanh ghi cho phép ngắt ngoại vi 2

4.2.3.7 Thanh ghi cờ của các ngắt ngoại vi 2

4.2.3.8 Thanh ghi điều khiển nguồn(power control register) 4.2.4 PLC và PCLATH

4.2.5 Ngăn xếp stack

4.2.6 Địa chỉ trực tiếp và địa chỉ gián tiếp,thanh ghi INF và FSR

5 Data eeprom và flash program memory

6.I/O ports

6.1 Porta và thanh ghi TRISA

6.2 Portb và thanh ghi TRISB

6.3 Portc và thanh ghi TRISC

6.4 Porte và thanh ghi TRISE

6.5 Portd và thanh ghi TRISD

Trang 5

7.2.3 Bộ định thời hoạt động trong timer 1

8.7.2 Chu kỳ nhiệu vụ của PWM

8.7.3 Cài đặt hoạt động cho PWM

9 Module MSSP(master synchonous serial port)

9.1 Giới thiệu

Trang 6

9.2 Thanh ghi điều khiển

10 Bộ biến đổi ADC

10.1 Các thanh ghi điều khiển

10.1.1 Thanh ghi ADCON0

10.1.2 Thanh ghi điều khiển ADCON1

10.2 Hoạt động

10.3 Thời gian lấy mẫu

10.4 Lựa chọn xung clock cho biến đổi A/D

10.5 Cấu hình các chân anolog

10.6 Chuyển đổi ADC

10.7 Hoat động của ADC trong chế độ ngủ

10.8 ảnh hưởng của reset

11 module comparator

11.1 cài đặt chế độ choo bộ so sánh

11.2 nguồn tham chiếu cho chế độ so sánh

11.2.1 tín hiệu điện thế tham chiếu ngoại

11.2.2 tín hiệu điện thế tham chiêu nội

11.3 thời gian đáp ứng

11.4 tín hiệu ngõ ra của các bộ so sánh

11.5 Ngắt của các bộ so sánh

11.6 hoat động của bộ so sánh trong chế độ ngủ

11.7 ảnh hưởng của reset

12 module điện áp tham chiếu

12.1 thanh ghi diều khiển CVRCON

Trang 7

12.2 các thanh ghi liên quan đến diện áp tham chiếu so sánh

CHƯƠNG 2: GIỚI THIỆU LINH KIỆN

Trang 8

Với su phát triển không ngừng của khoa học công nghệ, cuộc sống con ngườingày càng trở nên tiện nghi và hiện đại hơn Điều đó đem lại cho chúng ta nhiềugiải pháp tốt hơn, đa dạng hơn trong việc xử lý những vấn đề tưởng chừng như rấtphức tạp gặp phải trong cuộc sống Việc ứng dụng các thành tựu khoa học kỹ thuậthiện đại trong tất cả các lĩnh vực đã và đang rất phổ biến trên toàn thế giới, thay thếdần những phương thức thủ công , lạc hậu và ngày càng được cải tiến hiện đại hơn,hoàn mỹ hơn.

Cùng với sự phát triển chung đó, nước ta cũng đang mạnh mẽ tiến hành côngcuộc công nghiệp hóa và hiện đại hóa đất nước để theo kịp sự phát triển của cácnước trong khu vực và trên thế giới Trong đó lĩnh vực điện tử đang ngày càng đóngvai trò quan trọng trong việc phát triển kinh tế và đời sống con người Sự phổ biếncủa nó đóng góp không nhỏ tới sự phát triển của tất cả các ngành sản xuất, giải

trí, trong những năm gần đây đặc biệt trong lĩnh vực vi sử lý đã có sự phát triển

mạnh mẽ, phục vụ những đòi hỏi không ngừng của con người về một cuộc sống tiệnnghi hiện đại

Với lòng đam mê, yêu thích của mình trong lĩnh vực này, nhóm đã quyết

định chọn đề tài “ĐO NHIỆT ĐỘ VÀ ĐIỀU KHIỂN ĐỘNG CƠ DC” làm đề tài

tốt nghiệp

Trong thời gian ngắn thực hiện đề tài cộng với kiến thức còn nhiều hạn chế,nên trong tập đồ án này không tránh khỏi thiếu sót, nhóm thực hiện rất mong được

sự đóng góp ý kiến của thầy cô và các bạn sinh viên

Nhóm sinh viên thực hiện đề tài

Vũ Đức HuyPhạm Văn Thái

Trang 9

LỜI CẢM ƠN

Trong suốt khóa học tại Trường Cao Đẳng Kỹ

Thuật Cao Thắng, với sự giúp đỡ của quý Thầy Cô và

giáo viên hướng dẫn về mọi mặt từ nhiều phía và nhất

là trong thời gian thực hiện đề tài, Nhóm thực hiện xinchân thành cảm ơn đến :

Quí Thầy Cô trong khoa Điện tử -Tin học đã giảngdạy những kiến thức chuyên môn làm cơ sở để thựchiện tốt luận văn tốt nghiệp và đã tạo điều kiện thuận lợicho chúng em thực hiện hoàn tất khóa học

Đặc biệt, thầy Tô Hoàng Lộc – giáo viên hướng dẫn

đề tài đã nhiệt tình giúp đỡ và cho chúng em những lờichỉ dạy quý báu, giúp chúng em định hướng tốt trongkhi thực hiện luận văn

Tất cả bạn bè đã giúp đỡ và động viên trong suốt

quá trình làm đồ án tốt nghiệp.

Trang 10

CHƯƠNG 1:

Trang 11

Phần 1:

VI ĐIỀU KHIỂN PIC16F877A

I : CẤU TRÚC PHẦNN CỨNG CỦA PIC 16F877A

1

21.1 Sơ lược về vi điều khiển PIC16F877A:

PIC 16F877A là dòng PIC phổ biến nhất hiện nay (đủ mạnh về tính năng, 40chân, bộ nhớ đủ cho hầu hết các ứng dụng thông thường) Cấu trúc tổng quát củaPIC 16F877A như sau:

0 - 8 K Flash ROM

1 - 368 Bytes RAM

2 - 256 Bytes EEPROM

3 - 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập

4 - 2 bộ định thời 8 bits (Timer 0 và Timer 2)

5 - Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết kiệmnăng lượng (SLEEP MODE) với nguồn xung Clock ngoài

6 - 2 bô CCP( Capture / Compare/ PWM)

7 - 1 bộ biến đổi AD 10 bits, 8 ngõ vào

8 - 2 bộ so sánh tương tự (Compartor)

9 - 1 bộ định thời giám sát (WatchDog Timer)

10 - Một cổng song song 8 bits với các tín hiệu điều khiển

11 - Một cổng nối tiếp

12 - 15 nguồn ngắt

13 - Có chế độ tiết kiệm năng lượng

14 - Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)

15 - Được chế tạo bằng công nghệ CMOS

16 - 35 tập lệnh có độ dài 14 bits

Trang 12

17 - Tần số hoạt động tối đa 20MHz

Sơ lược chân PIC 16f877A:

PIC16F877A là họ vi điều khiển có 40 chân, mỗi chân có một chức năngkhác nhau.Trong đó có một số chân đa công dụng: mỗi chân có thể hoạt động như

Trang 13

một đường xuất nhập hoặc là một chân chức năng đặc biệt dùng để giao tiếp với cácthiết bị ngoại vi.

Trang 14

Sơ đồ Khối PIC

Trang 15

1.2 Một số điểm đặc biệt của CPU:

1.3.1 Dao động:

PIC16F877A có thể hoạt động trong bốn chế độ dao động khác nhau:

Trong các chế độ LP, XT và HSchúng ta sử dụng thạch anh dao độngnối vào các chân OSC1 và OSC2 đểtạo dao động

Việc lựa chọn tụ trong dao động thạch anh dựa vào bảng sau:

Lưu ý: Tụ có giá trị lớn sẽ tăngtính ổn định của dao động nhưngcũng làm tăng thời gian khởiđộng

Chế độ dao động RC được sửdụng như một giải pháp tiết kiệmtrong các ứng dụng không cần sựchính xác về thời gian

* Cách tính chu kì máy:

Ví dụ ta sử dụng thạch anh 10Mhz Khi đó:

Tần số dao động của thạch anh là Fosc = 10Mhz

Trang 17

(Lưu ý: Reset do WDT không làm chân xuống mức thấp).

Trang 19

1.3.5 Chế độ nguồn thấp Sleep (Power down Mode) :

Đây là chế độ hoạt động của VĐK khi lệnh sleep được thực thi Khi đó nếuđược cho phép hoạt động, bộ đếm của WDT sẽ bị xóa nhưng WDT vẫn tiếp tụchoạt động bit PD (STATUS <3>) được reset về không, bit TO được set, oscillatorngưng hoạt động và các PORT giữ nguyên trạng thái như trước khi lệnh sleepđược thực thi

Do khi chế độ sleep dòng cung cấp cho VĐK là rất nhỏ nên ta cần thực hiệncác bước sau trước khi VĐK thực thi lệnh sleep

1• Đưa tất cả các chân về trạng thái VDD hoặc VSS

2• Cần đảm bảo rằng không có mạch ngoại vi nào được điều khiển bởidòng điện của VĐK vì dòng điện nhỏ không đủ khả năng cung cấpcho các mạch ngoại vi hoạt động

3• Tạm ngưng hoạt động của khối A/D và không cho phép các xung clockbên ngoài tác dụng vào VĐK

4• Để ý chức năng điện trở kéo lên của PORTB

5• Pin phải ở mức logic cao

1.3.6 Bộ định thời giám sát (Watch Dog Timer -WDT):

Giả sử bạn viết một chương trình, bạn mong đợi chương trình này sẽ chạynếu không có gì trục trặc xảy ra thì nó sẽ không bao giờ dừng lại, như vậy bạnphải làm một vòng lặp để khi chương trình chạy đến điểm cuối thì nó lại quay trở

về điểm bắt đầu Nhưng mà hãy xem một trường hợp: Giả sử chương trình kiểmtra một chân input, nếu nó lên mức cao thì con Pic sẽ tiếp tục kiểm tra một châninput thứ hai có lên mức cao hay không, nếu chân input thứ hai không lên mứccao, con Pic sẽ ngồi đó chờ và nó sẽ chỉ thoát ra khỏi chỗ ngồi của nó nếu châninput thứ hai lên mức cao

Bây giờ hãy xem một trường hợp khác, giả sử như bạn viết một chương trình,bạn compiled nó thành công, và ngay cả bạn đã cho chạy mô phỏng từng bước,từng bước một trên máy tính, bằng MPLAB chẳng hạn, có vẻ như mọi chuyện đềutốt, bạn đem nạp vào con Pic Sau một thời gian chạy thử, con Pic thình lình bị kẹtvào nơi nào đó trong chương trình mà không thể thoát ra được trạng thái hiện tại.Điều gì là cần thiết để giải quyết hai trường hợp trên, reset lại hay vẫn để cho nó bịkẹt không thoát ra được, đó là mục đích của mạch Watchdog

Mạch Watchdog thì không phải là mới mẽ gì, có rất nhiều microprocessors vàmicrocontrollers đã có mạch Watchdog, nhưng mà nó làm việc ra sao ?

Bên trong con Pic có một mạch RC, mạch này cung cấp 1 xung Clock độclập với bất kỳ xung Clock nào cung cấp cho Pic Khi Watchdog Timer (viết tắt làWDT) được cho phép (enabled), nó sẽ đếm bắt đầu từ 00 và tăng lên 1 cho đến

Trang 20

FFh, khi nó tăng từ FFh đến 00 ( FFh+1) thì con Pic sẽ bị Reset bất kể đang làm

gì, chỉ có 1 cách là ngăn không cho WDT đếm tới 00

Khi con Pic bị kẹt không thể thoát ra khỏi tình trạng hiện tại thì WDT vẫntiếp tục đếm mà không bị bất kỳ điều gì ngăn cấm nó đếm tới FF và đến FF+1, vìvậy nó sẽ reset con Pic làm cho chương trình phải khởi động lại từ đầu

Để sử dụng WDT chúng ta cần làm 3 việc

1• Thứ nhất, cần thời gian bao lâu để reset WDT ?

2• Thứ hai, làm sao xoá WDT ?

3• Cuối cùng, chúng ta phải nói cho con Pic biết chương trình cho phép WDT hoạtđộn

1.4 Tổ chức bộ nhớ:

PIC16F877A có tất cả 3 khối bộ nhớ riêng biệt bao gồm: Bộ

nhớ chương trình, bộ nhớ dữ liệu và bộ nhớ EEPROM

1.4.1 Bộ nhớ chương trình:

PIC16F877A có bộ đếm chương trình dài 13 bits có thể định

địa chỉ cho khoảng không gian nhớ 8K x 14bits Không gian bộ nhớ này được chialàm 8 trang, có địa chỉ từ 0005h đến 1FFFh

Mọi sự truy cập ngoài vùng không gian nhớ này sẽ không có tác dụng

Ngoài ra, bộ nhớ chương trình còn bao gồm một ngăn xếp (Stack) 8 mức.Vector Reset được đặt tại địa chỉ 0000h và vector ngắt được đặt tại địa chỉ 0004h

Trang 21

1.4.2 Bộ nhớ dữ liệu:

Bản đồ cấu trúc PIC 16F877A

Trang 22

Bộ nhớ dữ liệu bao gồm 4 Bank: Bank 0, Bank1, Bank2 và Bank3 Mỗi bank

có dung lượng 128 Bytes, bao gồm vùng Ram đa mục đích (GPR) và vùng thanhghi chức năng đặc biệt (SFR)

Các Bank này được lựa chọn bằng 2 bit ở thanh ghi STATUS làRP0(Status<5>) và RP1(Status<6>)

1.4.2.1 Vùng Ram đa mục đích:

Vùng RAM đa mục đích có chiều rộng 8 bit và có thể được truy nhập trựctiếp hoặc gián tiếp thông qua thanh ghi FSR Vùng RAM đa mục đích được phânphối ở các Bank như sau:

1- Bank 0: 96 Bytes từ địa chỉ 20h đến địa chỉ 7Fh

2- Bank 1: 80 Bytes từ địa chỉ A0h đến địa chỉ EFh

3- Bank 2: 96 Bytes từ địa chỉ 110h đến địa chỉ 16Fh

4- Bank 3: 96 Bytes từ địa chỉ 190h đến địa chỉ 1EFh

1.4.2.2 Vùng thanh ghi chức năng đặc biệt:

Các thanh ghi chức năng đặc biệt được sử dụng bởi bộ xử lý trung tâm CPUhoặc các module ngoại vi để điều khiển hoạt động của VĐK Các thanh ghi chứcnăng đặc biệt này được chia làm 2 loại: loại thứ nhất dùng cho các chức năng củaCPU, loại thứ 2 dùng cho các chức năng ngoại vi

Trang 23

Bảng tóm tắt các chức năng đặc biệt:

Trang 25

1.4.3 Các thanh ghi chức năng đặc biệt:

1.4.3.1 Thanh ghi trạng thái ( Status Register):

Thanh ghi trạng thái chứa các trạng thái số học của bộ ALU, trạng thái Reset

và các bit chọn Bank của bộ nhớ dữ liệu

Bit 7 IRP: Bit lựa chọn bank thanh ghi (Sử dụng cho định địa chỉ gián tiếp)

Each bank is 128 bytes

Bit 4 TO: Bit báo hiệu hoạt động của WDT

1: Lệnh xóa WDT hoặc Sleep xảy ra

0: WDT hoạt động

Bit 3 PD: Bit báo công suất thấp ( Power down bit)

1: Sau khi nguồn tăng hoặc có lệnh xóa WDT

0: Thực thi lệnh Sleep

Bit 2 Z: bit Zero

1: Khi kết quả của một phép toán bằng 0

0: Khi kết quả của một phép toán khác 0

Bit 1 DC: Digit Carry

1: Có một số nhớ được sinh ra bởi phép cộng hoặc phép trừ 4 bit thấp

0: Không có số nhớ sinh ra

Bit 0 C: cờ nhớ (Carry Flag)

1: Có một số nhớ sinh ra bởi phép cộng hoặc phép trừ

0: Không có số nhớ sinh ra

Trang 26

1.4.3.2 Thanh ghi tùy chọn (Option _Reg Register):

Thanh ghi tùy chọn chứa các bit điều khiển để cấu hình cho các chứa năngnhư: ngắt ngoài, Timer 0 chức năng kéo lên Vdd của các chân Port B, và thời gianchờ của WDT

Bit 7 : Bit cho phép PORTB được kéo lên nguồn

1: Không cho phép PORTB kéo lên nguồn

0:ChophépPORTBkéolênnguồn

Bit 6 INTEDG: Bit lựa chọn cạnh tác động ngắt (INTERRUPT EDGE)

1: Ngắt sẽ được tác động bởi cạnh lên của chân RB0/INT

0: Ngắt sẽ được tác động bởi cạnh xuống của chân RB0/INT

Bit 5 T0CS: Bit lựa chọn nguồn xung Clock cho Timer 0

1: Xung Clock cung cấp bởi nguồn ngoài qua chân RA4/T0CKI

0: Xung Clock cung cấp bởi nguồn dao động nội

Bit 4 T0SE: Bit lựa chọn cạnh nào của xung clock tác động lên timer 0

1: Cạnh xuống

0: Cạnh lên

Bit 3 PSA: Bit quyết định tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0 hay

WDT 1: Tốc độ đếm PS2:PS0 sẽ tác động lên WDT

0: Tốc độ đếm PS2:PS0 sẽ tác động lên Timer 0

Bit 2-0 PS2:PS0: Dùng để lựa chọn tốc độ đếm của timer hay WDT

Trang 27

1.4.3.3 Thanh ghi điều khiển ngắt INTCON (Interrupt Control Register):

Bit 7 GIE: Bit cho phép ngắt toàn cục

1: Cho phép ngắt toàn cục

0: Không cho phép ngắt

Bit 6 PEIE: Bit cho phép ngắt khi ghi vào EEPROM hoàn tất

1: Cho phép ngắt ghi vào EEPROM hoạt động

0:KhôngchophépngắtghivàoEEPROMhoạtđộng

Bit 5 TMR0IE: Bit cho phép ngắt khi timer 0 tràn

1: Cho phép ngắt khi timer 0 tràn

0: Không cho phép ngắt khi timer 0 tràn

Bit 4 INTE: Bit cho phép ngắt ngoại vi trên chân RB0/INT

1: Cho phép ngắt ngoại vi

0: Không cho phép ngắt ngoại vi

Bit 3 RBIE: Cho phép ngắt khi trạng thái PORTB thay đổi

Trang 28

1.4.3.4 Thanh ghi cho phép ngắt ngoại vi 1(PIE1 Register):

Chú ý: Bit PEIE (INTCON<6>) phải được set để cho phép bất kì ngắt ngọai vi

nào xảy ra

Bit 7 PSPIE: Bit cho phép ngắt đọc/ ghi Port song song

Trang 29

1: Cho phép

0: Không cho phép

1.4.3.5 Thanh ghi cờ của các ngắt ngoại vi 1:

Bit 7 PSPIF: Cờ ngắt đọc/ ghi của Port song song

1: Một hoạt động đọc/ghi đã diễn ra (phải xóa bằng phần mềm)

0: Không có hoạt động đọc/ghi

Bit 6 ADIF: Cờ báo ngắt chuyển đổi A/D

1: Một quá trình chuyển đổi A/D đã hoàn thành

0: Chuyển đổi A/D chưa hoàn tất

Bit 5 RCIF: Cờ báo ngắt nhận USART

1: Buffer nhận USART đầy

0: Buffer nhận USART trống

Bit 4 TXIF: Cờ báo ngắt phát USART

1: Buffer truyền USART trống

0: Buffer truyền USART đầy

Bit 3 SSPIF: Cờ báo ngắt port nối tiếp đồng bộ (ngắt SSP)

1: Ngắt SSP xảy ra và phải được xóa bằng phần mềm trước khi trở lại chươngtrình chính từ chương trình phục vụ ngắt

0: Không có ngắt xảy ra

Bit2 CCP1IF:Cờ báo ngắt CCP1

Chế độ Capture (Bắt giữ):

1: Một Capture thanh ghi TMR1 xảy ra( phải được xóa bằng phần mềm)

0: Không xảy ra Capture thanh ghi TMR1

Chế độ Compare ( So sánh):

1: Khi các giá trị so sánh trong thanh ghi TMR1 được thỏa ( phải được xóa bằngphần mềm)

0: Khi các giá trị so sánh trong thanh ghi TMR1 không được thỏa

Chế độ PWM: Không sử dụng trong chế độ này

Trang 30

Bit 1 TMR2IF: Cờ báo ngắt xảy ra khi giá trị trong thanh ghi TMR2 bằng

trong thanh ghi PR2 1: Giá trị trong thanh ghi TMR2 bằng thanh ghi PR2 (phải được xóa bằng phầnmềm)

0: Giá trị trong thanh ghi TMR2 chưa bằng thanh ghi PR2

Bit 0 TMR1IF: Cờ báo tràn thanh ghi TMR1

1: Thanh ghi TMR1 tràn (phải được xóa bắng phần mềm)

0: Thanh ghi TMR1 chưa tràn

1.4.3.6 Thanh ghi cho phép ngắt ngoại vi 2:

Chú ý: Bit PEIE (INTCON<6>) phải được set để cho phép bất kì ngắt ngọai vi nàoxảy ra

Bit 7,5,2,1 Unimplemented : read as ‘0’

Bit 6 CMIE: Bit cho phép ngắt do bộ so sánh điện thế

Trang 31

Bit 7,5,2,1 Unimplemented : read as ‘0’

Bit 6 CMIF: Cờ báo ngắt do bộ so sánh

1: Ngõ vào bộ so sánh đã thay đổi (phải được xóa bằng phần mềm)

0: Ngõ vào bộ so sánh không thay đổi

Bit 4 EEIF: Cờ báo ngắt ghi EEPROM

1: Ghi EEPROM hoàn tất (phải được xóa bằng phần mềm)

0: Ghi EEPROM chưa hoàn tất

Bit 3 BCLIF: Cờ báo ngắt do xung đột bus

1: Xung đột bus đã xuất hiện trong chế độ SSP

0: Không có xung đột bus xảy ra

Bit 0 CCP2IF: Cờ báo ngắt CPP2

Các bit cao (bit 12:8) chứa trong thanh

ghi PCLATH, không thể đọc nhưng có

thể ghi gián tiếp bằng cách sử dụng

thanh ghi PCLATH Khi có bất kỳ sự

Reset nào xảy ra, các bit cao của bộ

Trang 32

đếm chương trình PC sẽ bị xóa Xem thêm hai ví dụ sau đây để hiểu thêm về hoạtđộng của bộ đếm chương trình PC

1.4.5 Ngăn xếp Stack:

Stack cho phép 8 lệnh gọi chương trình con và ngắt hoạt động Stack chứađịa chỉ mà chương trình chính sẽ quay về thực hiện từ sau chương trình con hayngắt Đối với PIC16F877A Stack có độ sâu 8 lớp Stack không nằm trong cả bộnhớ chương trình lẫn bộ nhớ dữ liệu

1.4.6 Địa chỉ trực tiếp và địa chỉ gián tiếp, thanh ghi INF và thanh ghi FSR:

Thanh ghi INF không phải là một thanh ghi vật lí Nó chứa giá trị của thanhghi có địa chỉ nằm ở thanh ghi FSR

Ví dụ:

Thanh ghi tại địa chỉ 10h có giá trị 5Ah

Nếu ta đưa 10h vào thanh ghi FSR thì khi đọc thanh ghi INF ta sẽ có giá trị5Ah

Data EEPROM và Flash Program Memory:

Trang 33

EEPROM là bộ nhớ có khả năng đọc và ghi trong điều kiện làm việc bìnhthường (khi nguồn Vdd không đổi) Bộ nhớ này không được định địa chỉ trực tiếptrong bản đồ bộ nhớ mà được định địa chỉ gián tiếp thông qua các thanh ghi chứcnăng đặc biệt:

Trang 34

1.5 I/O ports:

1.5.1 Port A và thanh ghi TRISA:

Port A gồm 6 chân từ RA0 đến RA5

Việc ghi giá trị vào thanh ghi TRISA sẽ qui

định các chân của Port A là input hay output

(nếu là 1 thì là input, là output nếu là 0) Việc

đọc thanh ghi Port A sẽ đọc trạng thái của các

chân ở Port A Việc ghi giá trị vào thanh ghi

Port A sẽ thay đổi trạng thái của các chân Port

A

Riêng chân RA4 được tích hợp chức

năng là chân cung cấp xung clock ngoài cho

Timer 0 (RA4/T0CKI) Những chân khác của

Port A được đa hợp với các chân ngõ vào

Analog của ADC và chân ngõ vào điện thế so

sánh của bộ so sánh Comparator Hoạt động của những chân này được quy địnhbằng những bit tương ứng trong các thanh ghi ADCCON1 và CMCON1 Khi các

Trang 35

chân của Port A được sử dụng làm ngõ vào Analog thì các bit trong thanh ghiTRISA phải được set bằng 1

ChứcnăngcủacácchânPortA

Bảng tóm tắt các thanh ghi liên quan đến Port A

[

Trang 37

1.5.2 Port B và thanh ghi TRISB:

Port B gồm 8 chân từ chân RB0-RB7 Việc ghi giá trị vào thanh ghi TRISB

sẽ quy định các chân của Port B là input hay output (1: input, 0: output) Việc đọcthanh ghi Port B sẽ đọc trạng thái của các chân ở Port B Việc ghi giá trị vào thanhghi Port B sẽ thay đổi trạng thái của các chân Port B

Ba chân của Port B được đa hợp với chức năng In-Circuit Debugger và LowVoltage Programming function: RB3/PGM, RB6/PGC, RB7/PGD

Mỗi chân Port B có một transistor kéo lên Vdd Chức năng này hoạt động khi bitRBPU (Option <7>) được xóa Chức năng này sẽ tự động được xóa khi Port Bđược quy định là input

Bốn chân của Port B từ RB7 đến RB4 có chức năng ngắt khi trạng thái chânPort B thay đổi (Khi Port B được quy định là output thì chức năng này không hoạtđộng Giá trị chân của Port được so sánh với giá trị đã được lưu trước đó, khi có sựsai lệch giữa 2 giá trị này ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON<0) sẽ bật lên.Ngắt có thể làm cho VĐK thoát khỏi trạng thái SLEEP

Bất cứ sự truy xuất nào trên PortB sẽ xóa trạng thái sai lệch, kết thúc ngắt vàcho phép xóa cờ ngắt RBIF

Trang 38

Bảng chức năng PortB :

Bảng tóm tắt các thanh ghi liên quan đến Port B :

Trang 39

1.5.3 Port C và thanh ghi TRISC:

Port C gồm 8 chân từ chân RC0-RC7 Việc ghi giá trị vào thanh ghi TRISC

sẽ quy định các chân của Port C là input hay output (1: input, 0: output) Việc đọcthanh ghi Port C sẽ đọc trạng thái của các chân ở Port C Việc ghi giá trị vào thanhghi Port C sẽ thay đổi trạng thái của các chân Port C

Các chân của Port C được đa hợp với các chức năng ngoại vi

Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giátrị các bit của thanh ghi TRISC Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lêncác bit của thanh ghi TRISC và mặc định các chân này là output, ngoài ra một sốchức năng ngoại vi khác sẽ tự động mặc định một số chân là ngõ vào Do đó cầnxem xét kĩ các tính năng của các hàm ngoại vi để thiết lập giá trị các bit trongthanh ghi TRISC cho thích hợp

Trang 40

Bảng chức năng Port C :

Bảng tóm tắt các thanh ghi lien quan đến PortC

Ngày đăng: 07/09/2017, 11:03

TỪ KHÓA LIÊN QUAN

w