Tải bản đầy đủ (.pdf) (49 trang)

thiết kế bộ thí nghiệm pic 18f2455255055554550

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 (3.14 MB, 49 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỀ TÀI NCKH CẤP SINH VIÊN

THIẾT KẾ BỘ THÍ NGHIỆM
PIC 18F2455/2550/5555/4550
S

K

C

0

0

3

9

5

9

MÃ SỐ: SV56 - 2008

S KC 0 0 2 2 9 3

Tp. Hồ Chí Minh, 2008




BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP.HCM



NGHIÊN CỨU KHOA HỌC CẤP TRƢỜNG
ÑEÀ TAØI:

MÃ SỐ: SV56 – 2008

GIÁO VIÊN HƢỚNG DẪN
CHỦ NHIỆM ĐỀ TÀI
MSSV
ĐƠN VỊ

: Ths. NGUYỄN ĐÌNH PHÚ
: Sinh viên PHẠM VĂN KHÍCH
: 04101079
: KHOA ĐIỆN TỬ

TP. HỒ CHÍ MINH
THÁNG 10 NĂM 2008


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM


MỤC LỤC
PHẦN 1: ĐẶT VẤN ĐỀ --------------------------------------------------I.

3

LÝ DO CHỌN ĐỀ TÀI ---------------------------------------------- ---------- 3

II. ĐỐI TƢỢNG NGHIÊN CỨU -------------------------------------- ---------- 4
III. TÌNH HÌNH NGHIÊN CỨU CỦA ĐỀ TÀI --------------------- ---------- 4

PHẦN 2: GIẢI QUYẾT VẤN ĐỀ ------------------------- ---------I.

5

MỤC ĐÍCH NGHIÊN CỨU ---------------------------------------- ---------- 5

II. PHƢƠNG PHÁP NGHIÊN CỨU ---------------------------------- ---------- 5
III. NỘI DUNG NGHIÊN CỨU ----------------------------------------- ---------- 6
3.1. Tổng quan về họ vi điều khiển PIC18 ------------------------ ---------- 6
3.2. Cấu trúc của vi điều khiển PIC 18F4550 -------------------- ---------- 6
3.2.1. Sơ đồ chân --------------------------------------------------- ------------ 6
3.2.2. Bộ dao động-------------------------------------------------- ------------ 6
3.2.3. Reset----------------------------------------------------------- ------------ 9
3.2.4. Bộ nhớ -------------------------------------------------------- ------------ 9
3.2.5. Các Port xuất nhập (I/O) --------------------------------- ------------ 11
3.2.6. Hoạt động ngắt ---------------------------------------------- ------------ 13
3.2.7. Các bộ định thời (Timer) --------------------------------- ------------ 13
a. Timer 0 ------------------------------------------------------ ------------ 13
b. Timer 1 ------------------------------------------------------ ------------ 14
c. Timer 2 ------------------------------------------------------ ------------ 15

d. Timer 3 ------------------------------------------------------ ------------ 15
3.2.8. Khối Capture/Compare/PWM (CCP) ----------------- ------------ 16
3.2.9. Khối ADC 10 bit -------------------------------------------- ------------ 17
3.2.10. Khối phát hiện điện áp Cao/Thấp (HLVD)---------- ------------ 19
1


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

3.2.11. Đƣờng truyền tuần tự đa năng (USB) ---------------- ------------ 20
3.2.12. Port dòng song song (SPP) ------------------------------ ------------ 21
3.2.13. Khối Port nối tiếp đồng bộ chính (MSSP) ----------- ------------ 22
3.2.14. Bộ thu phát đồng bộ đa năng mở rộng (EUSART) ------------ 23
3.2.15. Một số đặc tính đáng chú ý khác của CPU ---------- ------------ 24
a. Các bít định cấu hình và ID vủa thiết bị ------------ ------------ 24
b. Watchdog Timer (WDT) ------------------------------ ------------ 24
c. Bộ giám sát xung clock sai lệch (SFCM) ------------ ------------ 24

3.3. Tập lệnh của vi điều khiển PIC 18F4550 -------------------- ---------- 26
3.4. Module kết nối vi điều khiển PIC 18F4550 với bộ thí nghiệm ----- 31
3.5. Bộ thí nghiệm ----------------------------------------------------- ---------- 31
3.6. Phần mềm soạn,biên dịch và phần mềm nạp chƣơng trình -------- 36
3.7. Một số chƣơng trình thí nghiệm ------------------------------ ---------- 36
IV. KẾT QUẢ ĐẠT ĐƢỢC ---------------------------------------------- ---------- 44
4.1. Tính khoa học ----------------------------------------------------- ---------- 44
4.2. Tính thực tiễn ----------------------------------------------------- ---------- 44
4.3. Hiệu quả kinh tế -------------------------------------------------- ---------- 44


PHẦN 3: KẾT LUẬN VÀ KHUYẾN NGHỊ --------- ---------I.

45

KẾT LUẬN ------------------------------------------------------------- ---------- 45

II. KHUYẾN NGHỊ------------------------------------------------------- ---------- 45

PHẦN 4: TÀI LIỆU THAM KHẢO --------------------- ----------

46

2


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

PHẦN 1

ĐẶT VẤN ĐỀ
I. LÝ DO CHỌN ĐỀ TÀI
Vi điều khiển là một thiết bị điều khiển có nhiều ưu điểm hơn hẳn so với IC số như:
thiết kế board mạch đơn giản, điều khiển dễ dàng và linh hoạt hơn, chống nhiễu tôt,…,
từ đó nó đã mang lại cho người sử dụng nhiều tiện ích. Chúng ta thấy rằng trong những
thập niên gần đây, các dòng vi điều khiển được phát triển một cách mạnh mẽ. Các nhà
sản xuất chip điện tử đã cho ra đời những dòng vi điều khiển khá mạnh với những tính
năng mới đáp ứng nhu cầu phát triển ngày càng cao của khoa học kỹ thuật như: giao
tiếp qua cổng USB, tích hợp ADC, tăng dung lượng bộ nhớ nội,…

Microchip là một nhà sản xuất chip điên tử hàng đầu trên thế giới, trong những năm
gần đây họ đã cho ra đời những dòng vi điều khiển cực mạnh như dòng PIC, dòng
dsPIC. Trong dòng vi điều khiển PIC thì họ PIC18 là một họ vi điều khiển 8bit khá
mạnh và còn khá mới đối với nhiều người.
Với mong muốn có được kiến thức về họ vi điều khiển PIC18 cho bản thân mình và
phần nào giúp mọi người cảm thấy dễ dàng hơn khi tìm hiểu về họ vi điều khiển này,
bên cạnh sự hướng dẫn của Thầy Ths. NGUYỄN ĐÌNH PHÚ và những kiến thức về
vi điều khiển đã được học ở trường, em đã chọn đề tài nghiên cứu khoa học cấp trường
là: “Thiết kế bộ thí nghiệm PIC 18F2455/2550/5555/4550”.

3


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

II. ĐỐI TƢỢNG NGHIÊN CỨU
- Vi điều khiển PIC 18F4550.
- Bộ thí nghiệm cho PIC 18F4550.
- Một số chương trình thí nghiệm cho PIC 18F4550.
- Phần mềm biên dịch và sọan chương trình cho PIC 18F4550: MPLAB, PIC C
Compiler (CCS).
- Phần mềm nạp chương trình cho PIC 18F 4550: WinPic 800.

III. TÌNH HÌNH NGHIÊN CỨU CỦA ĐỀ TÀI
Hiện nay ở nước ta, dòng vi điều khiển PIC18 chưa được nhiều người quan tâm đến
như dòng vi điều khiển 89S hay 89C. Đồng thời cũng chưa có một tài liệu bằng tiếng
Việt chính thức nào về dòng vi điều khiển này. Nhưng tài liệu bằng tiếng Anh thì có rất
nhiều trên mạng internet và chúng ta có thể tải về để tham khảo. Trong các diễn đàn

điện tử trên mạng internet, mọi người đang bàn tán rất nhiều về vi điều khiển PIC. Điều
này chứng tỏ rằng số người quan tâm đến vi điều khiển PIC sẽ có xu hướng ngày một
tăng. Có một số mạch nạp cho vi điều khiển PIC cũng được giao bán trên mạng internet
như mạch nạp PIC qua cổng LPT, mạch nạp PIC qua cổng USB.

4


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

PHẦN 2

GIẢI QUYẾT VẤN ĐỀ
I. MỤC ĐÍCH NGHIÊN CỨU
- Xây dựng được hệ thống kiến thức cơ bản bằng tiếng Việt về vi điều khiển PIC
18F4550.
- Thiết kế module kết nối vi điều khiển PIC 18F4550 với bộ thí nghiệm và cách kết
nối module này với các module khác trên bộ thí nghiệm.
- Sử dụng được phần mềm MPLAB và phần mềm PIC C Compiler (CCS) để soạn
và biên dich chương trình cho PIC 18F4550.
- Sử dụng được phần mềm WinPic 800 để nạp chương trình cho PIC 18F4550.
- Viết được một số chương trình thí nghiệm cho PIC 18F4550 bằng cả hai ngôn ngữ
Assembly và C.

II. PHƢƠNG PHÁP NGHIÊN CỨU
- Tham khảo và dịch tài liệu: tìm hiểu kiến thức cơ bản về PIC 18F4550.
- Thi công mạch và thực hành: thiết kế, thi công module kết nối vi điều khiển
PIC18F4550 với bộ thí nghiệm và viết một số chương trình thí nghiệm chạy trên bộ thí

nghiệm.

5


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

III. NỘI DUNG NGHIÊN CỨU
3.1. Tổng quan về họ vi điều khiển PIC18
Họ vi điều khiển PIC18 được sản xuất bởi Microchip. Đây là một họ vi điều khiển 8
bit khá mạnh có tích hợp trên chip một số module ngoại vi ( như: PWM, ADC, CCP,
REAL TIME,… ). Ngoài ra, PIC18 còn hỗ trợ điều khiển mạng Ethernet, hỗ trợ giao
tiếp CAN, hỗ trợ giao tiếp USB.
PIC18 có CPU RISC 8 bit hiệu năng cao và bộ nhớ Flash rất ổn định. CPU RISC là
CPU có tập lệnh xử lý được giảm đến cực tiểu và tối ưu hóa chúng để thực thi với khả
năng nhanh nhất và hiệu quả nhất.

3.2. Cấu trúc của vi điều khiển PIC 18F4550
3.2.1. Sơ đồ chân
- PIC 18F4550/4455 loại PDIP có 40 chân.

3.2.2. Bộ dao động
- Hoạt động của bộ dao động được điều khiển qua hai thanh ghi cấu hình
(CONFIG1L và CONFIG1H ) và hai thanh ghi điều khiển (OSCCON và OSCTUNE).
6


NGHIÊN CỨU KHOA HỌC


ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- PIC 18F4550 có thể hoạt động trong 12 chế độ dao động riêng biệt.
1. XT: Thạch anh / Bộ cộng hưởng.
2. XTPLL: Thạch anh / Bộ cộng hưởng và cho phép PLL.
3. HS: Thạch anh / Bộ cộng hưởng tốc độ cao.
4. HSPLL : Thạch anh / Bộ cộng hưởng tốc độ cao và cho phép PLL.
5. EC: Nguồn xung clock bên ngoài với ngõ ra FOSC/4.
6. ECIO: Nguồn xung clock bên ngoài với I/O ở RA6.
7. ECPLL: Nguồn xung clock bên ngoài với ngõ ra FOSC/4 ở RA6.
8. ECPIO: Nguồn xung clock bên ngoài, cho phép PLL và I/O ở RA6.
9. INTHS: Bộ dao động bên trong đã sử dụng như là nguồn xung clock
của vi điều khiển. Bộ dao động HS đã sử dụng như là nguồn xung clock USB.
10. INTXT: Bộ dao động bên trong đã sử dụng như là nguồn xung clock của vi
điều khiển. Bộ dao động XT đã sử dụng như là nguồn xung clock USB.
11. INTIO: Bộ dao động bên trong đã sử dụng như là nguồn xung clock của vi
điều khiển. Bộ dao động EC đã sử dụng như là nguồn xung clock USB, I/O số ở RA6.
12. INTCKO: Bộ dao động bên trong đã sử dụng như là nguồn xung clock của vi
điều khiển. Bộ dao động EC đã sử dụng như là nguồn xung clock USB, ngõ ra FOSC/4
ở RA6.
- Bộ dao động thạch anh: trong những chế độ dao động HS, HSPLL, XT, XTPLL
một tụ dao động thạch anh được kết nối đến hai chân OSC1 và OSC2.

7


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM


- Tụ điện được chọn cho bộ dao động thạch anh:

- Bộ nhân tần số PLL ( Phase Locked Loop) : Mạch PLL được thiết kế để tạo ra tần
số 96Mhz từ nguồn tần số 4Mhz. Ngõ ra của PLL được chia ra làm xung clock cho
USB và lõi vi điều khiển.
- Sơ đồ khối PLL:

- PIC 18F4550 còn tích hợp một khối dao động bên trong, khối này tạo ra hai tín
hiệu xung clock khác nhau; cả hai đều có thể được sử dụng làm nguồn xung clock cho
vi điều khiển. Khi bộ dao động bên trong được sử dụng làm nguồn xung clock cho vi
điều khiển thì mọt trong những chế độ dao động khác ( nguồn xung clock bên ngoài,
dao động thạch anh hay bộ cộng hưởng bên ngoài) phải được sử dụng cho nguồn xung
clock USB.
- PIC 18F4550 cho phép chuyển nguồn xung clock từ bộ dao động chính một nguồn
xung clock tần số thấp thay thế.
8


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

3.2.3. Reset
- PIC 18F4550 phân biệt nhiều trạng thái Reset khác nhau:
+ Reset khởi động ( POR)
+ Reset trong khi hoạt động bình thường ( MCLR ).
+ Reset trong những chế độ quản lý nguồn ( MCLR ).
+ Watchdog Timer ( WDT) Reset ( Reset trong khi thực thi).
+ Có thể lập trình Reset khi sụt áp ( BOR).

+ Lệnh Reset.
+ Reset đầy ngăn xếp.
+ Reset tràn dưới ngăn xếp.
- Các sự kiện reset được kiếm soát qua thanh ghi RCON.
3.2.4. Bộ nhớ.
- Bộ nhớ chương trình: PIC 18F4550 có bộ nhớ Flash 32Kbyte, có thể chứa được
16384 lệnh đơn.
+ Vectơ Reset có địa chỉ là 0000h
+ Hai vectơ ngắt có địa chỉ là: 0008h và 0018h.
+ Thanh ghi PC có 21bit chia là 3 thanh ghi 8bit:
 PCL: có thể ghi và đọc – PC (7:0).
 PCH : không thể ghi và đọc trực tiếp – PC(15:8), cập nhật qua thanh ghi
PCLATH.
 PCU: không thể ghi đọc trực tiếp –PC(20:16), cập nhật qua thanh ghi
PCLATHU.
- Bộ nhớ dữ liệu: bộ nhớ dữ liệu trong PIC18 được cài đặt như là RAM động.
- Mỗi thanh ghi trong bộ nhớ dữ liệu có địa chỉ là 12bit cho phép nhớ được
4096byte dữ liệu. Không gian bộ nhớ được chia là 16bank, mỗi bank nhớ 256byte dữ
liệu.
- Bộ nhớ dữ liệu của PIC18F4550 được cài đặt 8 bank hoàn chỉnh và nhớ được 2048
byte dữ liệu.
9


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- Biểu đồ vùng nhớ dữ liệu:


10


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- Các thanh ghi có chức năng đặc biệt trong bộ nhớ dữ liệu:
+ SFRs: được sử dụng cho việc điều khiển và trạng thái của bộ điều khiển và chức
năng ngoại vi.
+ GPRs: được sử dụng cho việc chứa dữ liệu và những vùng toán hạng tạm thời
trong ứng dụng của người dùng.
- Thanh ghi lựa chọn bank trong vùng nhớ dữ liệu là BSR. Chọn bank bằng 4bit
thấp (BSR3:BSR0).
- Vùng nhớ dữ liệu xác định một vùng bank truy xuất ( Access Bank). Khi người
dùng không sử dụng thanh ghi BSR để chọn bank thì vùng nhớ này sẽ được chọn. Vùng
Access Bank gồm 96byte ở vùng nhớ 00h – 5Fh trong bank 0 và 160byte ở vùng nhớ
60h – FFh trong bank 15.
3.2.5. Các Port xuất nhập (I/O)
- PIC 18F4550 có 5 Port I/O. Mỗi Port có 3 thanh ghi: TRIS, PORT, LAT.
- Sơ đồ hoạt động chung của Port I/O:

11


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- Tóm tắt các thanh ghi tích hợp ở các Port:

+ Port A:

+ Port B:

+ Port C:

+ Port D:

12


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

+ Port E:

3.2.6. Hoạt động ngắt
- Có 10 thanh ghi được sử dụng để điều khiển ngắt:
+ RCON
+ INTCON
+ INTCON2
+ INTCON3
+ PIR1, PIR2
+ PIE1, PIE2
+ IRR1, IRR2
- Mỗi nguồn ngắt có 3 bit để điều khiển hoạt động của nó:
+ Bit cờ ( Flag bit): báo khi có sự kiện ngắt xảy ra.
+ Bit cho phép ( Enable bit): cho phép chương trình thực hiện rẽ nhánh đến địa chỉ
của vectơ ngắt khi cờ ngắt được set.

+ Bit ưu tiên ( Priority bit): lựa chọn ưu tiên ngắt cao hay thấp.
3.2.7. Các bộ định thời (Timer)
a. Timer 0
- Timer 0 có một số đặc điểm đáng chú ý sau:
+ Có thể được lựa chọn là Timer hay Counter ở cả hai chế độ 8 bit hay 16 bit.
+ Có bộ chia trước 8 bit riêng có thể lập trình bằng phần mềm.
+ Có thể lựa chọn nguồn xung clock từ bên ngoài hay bên trong.
+ Ngắt xảy ra khi tràn.
13


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- Các thanh ghi tích hợp với T0:

b. Timer 1
- Timer 1 có một số đặc điểm đáng chú ý sau:
+ Có thể được lựa chọn là Timer hay Counter 16 bit bằng phần mềm.
+ Có hai thanh ghi có thể ghi đọc: TMR1H và TMR1L.
+ Có thể lựa chọn nguồn xung clock (bên trong hay bên ngoài) với xung clock của
thiết bị hay bộ dao động Timer1 bên trong.
+ Ngắt xảy ra khi tràn.
+ Có thể được sử dụng như để đáp ứng chức năng đồng hồ thực.
- Timer 1 có thể hoạt động ở một trong những chế độ sau:
+ Timer.
+ Counter đồng bộ.
+ Counter bất đồng bộ
- Các thanh ghi tích hợp với T1:


14


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

c. Timer 2
- Timer 2 là timer 8bit và có thanh ghi chu kỳ (TMR2 và PR2), cả hai thanh ghi này
đều có thể đọc/ghi.
- Có bộ chia trước có thể lập trình bằng phần mềm (1:1, 1:4 và 1:16).
- Có Postscaler có thể lập trình bằng phần mềm (1:1 đến 1:16).
- Ngắt Timer 2 xảy ra khi TMR2 tương ứng với PR2.
- Các thanh ghi tích hợp với Timer 2:

d. Timer 3.
- Timer 1 có một số đặc điểm đáng chú ý sau:
+ Có thể được lựa chọn là Timer hay Counter 16 bit bằng phần mềm.
+ Có hai thanh ghi 8bit có thể ghi đọc: TMR3H và TMR3L.
+ Có thể lựa chọn nguồn xung clock (bên trong hay bên ngoài) với xung clock của
thiết bị hay bộ dao động Timer 1 bên trong.
+ Ngắt xảy ra khi tràn.
- Timer 3 có thể hoạt động ở một trong những chế độ sau:
+ Timer.
+ Counter đồng bộ.
+Counter bất đồng bộ

15



NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

- Các thanh ghi tích hợp với Timer 3:

3.2.8. Khối Capture/Compare/PWM ( CCP)
- PIC 18F4550 có hai module CCP ( CCP1 và CCP2). Mỗi module có một thanh ghi
16 bit, nó có thể hoạt động như một thanh ghi capture 16 bit, hay một thanh ghi
compare 16 bit, hay một thanh ghi chu kỳ làm việc Master/Slave của PWM.
- Mỗi module CCP được tích hợp một thanh ghi điều khiển (CCPxCON) và một
thanh ghi dữ liệu (CCPRx). Thanh ghi dữ liệu được ghép từ hai thanh ghi 8 bit
(CCPRxH và CCPRxL). Tất cả các thanh ghi đều có thể đọc/ghi.
 Chế độ capture:
- Cặp thanh ghi CCPRxH:CCPRxL giữ lại giá trị 16 bit của thanh ghi TMR1 hay
TMR3 khi có sự kiện xảy ra trên chân CCPx (chân này nên được định cấu hình là ngõ
vào) . Sự kiện được xác định là một trong những sự kiện sau:
+ Mỗi khi có cạnh xuống.
+ Mỗi khi có cạnh lên.
+ Mỗi khi có 4 cạnh lên.
+ Mỗi khi có 16 cạnh lên.
- Sự kiện được lựa chọn bằng những bit lựa chọn chế độ CCPxM3:CCPxM0
(CCPxCON<3:0>). Khi một giá trị được giữ, nguồn ngắt yêu cầu set bit cờ CCPxIF, nó
phải được xóa trong phần mềm. Nếu một giá trị giữ lại khác xảy ra trước khi giá trị
trong thanh ghi CCPRx được đọc thì giá trị được giữ lại cũ bị ghi đè lên bởi giá trị được
giữ lại mới.
- Timer phải hoạt động ở chế độ Timer hay Counter đồng bộ.
16



NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

 Chế độ compare:
- Giá trị trong thanh ghi 16 bit CCPRx được so sánh một cách thường xuyên với một
trong hai cặp giá trị của TMR1 hay TMR3. Khi một sự kiện tương ứng xảy ra, chân
CCPx có thể là:
+ Đưa lên mức cao.
+ Đưa xuống mức thấp.
+ Lật trạng thái ( thấp lên cao hay cao xuống thấp).
+ Duy trì không thay đổi.
- Sự kiện trên chân CCPx phụ thuộc vào giá trị của những bit lựa chọn chế độ
CCPxM3:CCPxM0 (CCPxCON<3:0>). Tại cùng thời điểm sự kiện xảy ra, cờ báo ngắt
CCPxIF được set. Chân CCPx phải được định cấu hình là ngõ ra.
- Timer phải hoạt động ở chế độ Timer hay Counter đồng bộ.
 Chế độ PWM ( Pulse Width Modulation):
- Chân CCPx điều chế một PWM có ngõ ra với độ chính xác tới 10 bit.
- Các bước định cấu hình module CCP cho hoạt động PWM:
+ Đặt chu kỳ PWM bằng cách ghi vào thanh ghi PR2.
+ Đặt chu trình làm việc PWM bằng cách ghi vào thanh ghi CCPRxL và các bit
CCPxCON<5:4>.
+ Tạo chân CCPx là ngõ ra bằng cách xóa TRIS bit tương ứng.
+ Đặt giá trị chia trước của TMR2, rồi cho phép Timer2 bằng cách ghi vào thanh
ghi T2CON.
3.2.9. Khối ADC 10 bit
- PIC 18F4550 ( 40/44 chân) có module ADC có 13 ngõ vào và chuyển đổi tín hiệu
tương tự ngõ vào thành tín hiệu số 10bit.
- Module ADC có 5 thanh ghi:

+ Thanh ghi kết quả byte cao (ADRESH).
+ Thanh ghi kết quả byte thấp (ADRESL).
+ Thanh ghi điều khiển 0 (ADCON0).
+ Thanh ghi điều khiển 1 (ADCON1).
17


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

+ Thanh ghi điều khiển 2 (ADCON2).
- Sơ đồ khối A/D:

- Các bước thành lập một kênh ADC:
1. Định cấu hình khối ADC
+ Định cấu hình chân tương tự, điện áp tham chiếu, I/O số (ADCON1).
+ Chọn ngõ vào kênh A/D (ADCON0).
+ Chọn thời gian thu nhận A/D (ADCON2).
+ Chọn nguồn xung clock cho chuyển đổi A/D (ADCON2).
+ Mở module A/D (ADCON0).
2. Định cấu hình ngắt A/D (nếu muốn).
18


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

+ Xóa bit ADIF.

+ Set bit ADIE.
+ Set bit GIE.
3. Đợi thời gian thu nhận được yêu cầu (nếu có yêu cầu).
4. Bắt đầu chuyển đổi.
+ Set bit GO/ DONE (ADCON0).
5. Đợi chuyển đổi A/D xong, bằng một trong hai cách sau:
+ Kiểm tra khi bit GO/ DONE bị xóa.
+ Đợi ngắt A/D.
6. Đọc thanh ghi kết quả A/D (ADRESH:ADRESL), xóa bit ADIF, nếu có yêu cầu.
7. Chuyển đổi tiếp theo. Thời gian chuyển đổi mỗi bit được xác định bằng TAD. Giá
trị thời gian đợi nhỏ nhất là 3TAD trước khi việc thu nhận tiếp theo bắt đầu.
3.2.10. Khối phát hiện điện áp Cao/Thấp.
- Khối phát hiện điện áp cao/thấp ( High/Low – Voltage Detect: HLVD) là một
mạch điện có thể lập trình, cho phép người sử dụng xác định một điểm ngắt điện áp
thiết bị và hướng thay đổi từ điểm ngắt đó. Nếu thiết bị có một sự kiện sai lệch qua
điểm ngắt theo hướng được lập trình thì một cờ ngắt được set. Nếu ngắt được cho phép
thì chương trình xử lý sẽ rẽ nhánh tới địa chỉ vectơ ngắt và sau đó phần có thể đáp ứng
ngắt đó.
- Các bước cài đặt module HLVD:
1. Không cho phép module HLVD,

bằng cách

xóa

bit HLVDEN

(HLVDCON<4>).
2. Ghi giá trị điểm ngắt HLVD mong muốn vào các bit HLVDL3:HLVDL0.
3. Cài đặt bit VDIRMAG để phát hiện điện áp cao (VDIRMAG =’1’) hay điện áp

thấp (VDIRMAG =’0’).
4. Cho phép module HLVD bằng cách set bit HLVDEN.
5. Xóa cờ báo ngắt HLVD ( HLVDIF).

19


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

6. Cho phép ngắt HLVD, nếu các ngắt được yêu cầu, bằng cách set các bit
HLVDIE và GIE/GIEH ( PIE2<2> và INTCON<7>). Ngắt sẽ không được phát
sinh cho đến khi bit IRVST được set.
3.2.11. Đƣờng truyền tuần tự đa năng (USB)
- PIC 18F4550 có Cơ cấu Giao tiếp Nối tiếp (SIE) USB có thể thích hợp truyền tốc
độ cao nhất hay tốc độ thấp. Nó cho phép truyền thông nhanh giữa bất kỳ ổ USB nào
với vi điều khiển PIC.
- SIE có thể được giao tiếp một cách trực tiếp với USB dùng bộ thu phát bên trong
hoặc nó có thể được kết nối qua bộ thu phát bên ngoài.
- Có một bộ ổn áp 3.3V bên trong để điều khiển bộ thu nhận bên trong với những
ứng dụng 5V.
- Một vài đặc tính đặc biệt của phần cứng cũng được tích hợp để nâng cao chất
lượng xử lý. Bộ nhớ Port kép được tích hợp trong bộ nhớ dữ liệu của thiết bị (USB
RAM) để chia sẻ bộ nhớ truy xuất trực tiếp giữa lõi vi điều khiển và SIE. Các bộ mô tả
bộ đệm cũng được cung cấp cho phép người dùng lập trình sử dụng bộ nhớ điểm cuối
với RAM USB một cách tự do. Một Port truyền song song cũng được cung cấp để hỗ
trợ truyền không ngắt đối với lượng dữ liệu lớn (như dữ liệu không đồng bộ) đến bộ
nhớ đệm bên ngoài.
- Điều khiển và trạng thái USB: có tất cả 19 thanh ghi được sử dụng để quản lý hoạt

động truyền của USB.
+ Thanh ghi điều khiển USB (UCON).
+ Thanh ghi cấu hình USB (UCFG).
+ Thanh ghi trạng thái truyền USB (USTAT).
+ Thanh ghi định địa chỉ thiết bị USB (UADDR).
+ Các thanh ghi số khung (UFRMH:UFRML).
+ Các thanh ghi cho phép điểm cuối từ 0 đến 15 (UEPn).
- Dữ liệu USB di chuyển giữa lõi vi điều khiển và SIE qua một vùng nhớ gọi là
vùng RAM USB. Nó là một vùng nhớ Port kép đặc biệt nằm trong vùng nhớ dữ liệu từ
20


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

Bank 4 đến Bank 7 (400h đến 7FFh), toàn bộ là 1Kbyte. Bank 4 được sử dụng cho việc
điều khiển bộ đệm điểm cuối, bank 5 đến bank 7 dùng cho dữ liệu USB.
3.2.12. Port dòng song song (Streaming Parallel Port – SPP)
- PIC18F4550 có Port dòng song song going như một giao diện tốc độ cao cho việc
di chuyển dữ liệu đến hoặc từ một hệ thống bên ngoài. Nó hoạt động như một Port
chính.
- Việc điều khiển truyền dữ liệu tới thiết bị tớ hoàn toàn do việc lựa chọn trên chip
và nguồn clock bên ngoài. Dữ liệu có thể được định kênh dẫn một cách trực tiếp đến
một trong hai là lõi vi điều khiển hoặc SIE.
- Đường dẫn dữ liệu SPP:

- Hoạt động của SPP được điều khiển bằng hai thanh ghi SPPCON và SPPCFG.
- Để cho phép SPP, set bit SPPEN ( SPPCON<0>). Đồng thời các bit TRIS tương
ứng với các chân SPP cũng phải đựơc định cấu hình riêng, ít nhất là:

+ TRISD<7:0> phải được set (=1).
+ TRISE<2:1> phải được xóa (=0).
- Nếu CK1SPP được sử dụng:
+ Bit TRISE<0> phải được xóa ( =0).
- Nếu CSPP được sử dụng:
+ Bit TRISB<4> phải được xóa (=0).
21


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

3.2.13. Khối Port nối tiếp đồng bộ chủ (Master Synchronous Serial Port –
MSSP)
- Khối MSSP có thể hoạt động ở một trong hai chế độ sau:
+ Serial Peripheral Interface (SPI).
+ Inter – Intergrate Curcuit (I2C).
- Khối MSSP có 3 thanh ghi là: thanh ghi trạng thái (SSPSTAT), hai thanh ghi điều
khiển (SPPCON1 và SPPCON2).
 Chế độ SPI:
- Chế độ SPI cho phép 8bit dữ liệu được truyền và phát đồng bộ một cách đồng thời.
- Để thành lập truyền thông các chân sau được sử dụng:
+ Ngõ ra dữ liệu nối tiếp (SDO): RC7/RX/DT/SDO.
+ Ngõ vào dữ liệu nối tiếp (SDI): RB0/AN12/INT0/FLT0/SDI/SDA.
+ Xung clock nối tiếp (SCK): RB1/AN10/INT1/SCK/SCL.
- Khi hoạt động trong chế độ slave, chân thứ tư có thể được sử dụng:
+ Lựa chọn slave ( SS ): RA5/AN4/ SS /HLVDIN/C2OUT.
- Có 4 thanh ghi cần quan tâm trong chế độ SPI:
+ Thanh ghi điều khiển 1 MSSP (SSPCON1).

+ Thanh ghi trạng thái MSSP (SSPSTAT).
+ Thanh ghi nhận nối tiếp/ đệm phát (SSPBUF).
+ Thanh ghi dịch MSSP (SSPSR) – không thể truy xuất trực tiếp.
 Chế độ I2C: hai chân đƣợc sử dụng để truyền:
+ Xung clock nối tiếp (SCL): RB1/AN10/INT1/SCK/SCL.
+ Dữ liệu nối tiếp (SDA): RB0/AN12/INT0/FLT0/SDI/SDA.
- Có 6 thanh ghi cần quan tâm trong chế độ hoạt động I2C:
+ Thanh ghi điều khiển 1 MSSP (SSPCON1).
+ Thanh ghi điều khiển 2 MSSP (SSPCON2).
+ Thanh ghi trạng thái MSSP (SSPSTAT).
+ Thanh ghi nhận nối tiếp/ đệm phát (SSPBUF).
22


NGHIÊN CỨU KHOA HỌC

ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM

+ Thanh ghi dịch MSSP (SSPSR) – không thể truy xuất trực tiếp.
+ Thanh ghi định địa chỉ MSSP (SSPADD).
3.2.14. Bộ thu phát đồng bộ đa năng mở rộng (EUSART)
- Module EUSART có thêm một số đặc tính so với module USART, bao gồm: tự
động phát hiện và điều chỉnh tốc độ Baud, tự động đánh thức khi ngắt nhận đồng bộ và
truyền ký tự ngắt 12 bit.
- Module EUSART có thể được định cấu hình trong các chế độ sau:
+ Không đồng bộ ( toàn phần), gồm:
 Tự động đánh thức khi nhận ký tự.
 Tự động điều chỉnh tốc độ Baud.
 Truyền ký tự ngắt 12 bit.
+ Đồng bộ - Chủ (bán phần) với cực tính xung clock có thể lựa chọn.

+ Đồng bộ - Tớ (bán phần) với cực tính xung clock có thể lựa chọn.
- Các chân của khối EUSART được đa hợp với Port C. Để định cấu hình chân
RC6/TX/CK và chân RC7/RX/DT/SDO cho một USART thì:
+ bit SPEN (RCSTA<7>) phải được set (=1).
+ bit TRISC<7> phải được set (=1).
+ bit TRISC<6> phải được xóa (=0) cho chế độ không đồng bộ và chế độ
đồng bộ chủ hoặc được set (=1) cho chế độ đồng bộ tớ.
- Hoạt động của EUSART được điều khiển qua 3 thanh ghi:
+ Thanh ghi trạng thái và điều khiển truyền ( TXSTA).
+ Thanh ghi trạng thái và điều khiển nhận ( RCSTA).
+ Thanh ghi điều khiển tốc độ Baud (BAUDCON).

23


×