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
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
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,…
đ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í
ĐẠ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
+ 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:
+ 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.
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
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:
+ 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
độ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à:
+ 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.