Tải bản đầy đủ (.docx) (79 trang)

thiết kế robot tự động dò đường sử dụng vi điều khiển (pic8f4431)

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 (2.55 MB, 79 trang )

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

Hưng Yên, Ngày….tháng… năm 2010
Giáo Viên Hướng Dẫn :
Nguyễn Ngọc Minh
Môc lôc
Môc lôc
Néi dung Trang
PHẦN I : GIỚI THIỆU ĐỀ TÀI
A: Mục tiêu của đề tài
B: Chủ đề và luật thi
I : Giới thiệu về sân thi đấu, kích thước sân
II : Chủ đề và luật thi
PHẦN I I : Ý TƯỞNG VÀ PHƯƠNG ÁN CHẾ TẠO RÔBÔT


A: Phương án về mảng cơ khí
B. Phương án lập trình điều khiển cho robot.
1.Vi điều khiển 89C51
2.Vi điều khiển PIC.
3. Một số giải thuật phương án lập trình
PHẦN III : THIẾT KẾ VÀ THI CÔNG LẮP RÁP RÔBÔT
CHƯƠNG 1. CẢM BIẾN TRONG ROBOT
1. Cảm biến dò đường
2.Công tắc hành trình
3.Cảm biến quang
CHƯƠNG 2. MẠCH CÔNG SUẤT ĐIỀU KHIỂN ĐỘNG CƠ
1.Động cơ điện 1 chiều sử dụng trong robot
2.Điều khiển chiều quay động cơ (đảo chiều động cơ)
3.Điều khiển tốc độ động cơ 1 chiều
CHƯƠNG 3. MẠCH ĐIỀU KHIỂN CHO ROBOT
1.Thiết kế mạch tổng quát điều khiển Robot
2.Thiết kế mạch điện tử cụ thể cho từng môdul
CHƯƠNG 4. LẬP TRÌNH ĐIỀU KHIỂN ROBOT

1.Giới thiệu phần mềm CCS C
2. Các hàm cơ bản trong CCS C
3. Thuật toán điều khiển RôBôt
a.Lưu đồ thuật toán
b.Chương trình lập trình

LỜI MỞ ĐẦU
Cùng với sự phát triển của xã hội loài người, các ngành khoa học - kỹ thuật không
ngừng đi đến những thành công mới. Nhiều công trình khoa học, những phát minh của
các nhà khoa học đã đi vào cuộc sống, phục vụ lợi ích của con người. Với sự phát triển
mạnh mẽ của các ngành công nghiệp, máy móc đã dần thay thế cho sức lao động của con

người. Đặc biệt những thập niên gần đây với sự xuất hiện và phát triển nhanh chóng của
công nghệ robot, những dây chuyền tự động chủ yếu thực hiện bằng hệ thống cánh tay
robot linh hoạt. Robot được ứng dụng rộng rãi trong các ngành công nghiệp, thay thế cho
các hoạt động của con người trong các môi trường độc hại, nguy hiểm như thám hiểm.
Robot không những được sử dụng nhằm mục đích tăng năng suất lao động mà dần đi vào
đời sống sinh hoạt của chúng ta. Ban đầu từ con robot lau sàn, những chú chó trông nhà,
… mục đích của chúng ta là tạo ra những con robot ngày càng trở nên thân thiện hơn nữa
với con người.
Cùng với sự phát động phong trào Rôbôt mạnh mẽ của trường Đại học sư phạm kĩ
thuật Hưng Yên trong những năm gần đây khoa Điện – Điện Tử đã phát động cuộc thi
Racing ( Rôbôt đua) nhằm khuyến khích niềm đam mê Rôbôt của sinh viên khoa Điện –
Điện Tử nói riêng và nhà trường nói chung chúng em đã bắt tay vào nghiên cứu ngay từ
những ngày đầu tiên và phát triển lên thành đề tài đồ án môn học này.
Sau một thời gian tập trung nghiên cứu, tìm tòi, học hỏi, đặc biệt dưới sự chỉ bảo,
hướng dẫn nhiệt tình của thầy: Nguyễn Ngọc Minh cùng các thầy cô trong khoa đã giúp
đỡ, tạo điều kiện cho chúng em hoàn thành đồ án môn học này.
Chúng em xin chân thành cảm ơn thầy giáo: Nguyễn Ngọc Minh, cùng các thầy,cô
đã giúp đỡ chúng em hoàn thành đồ án môn học này!
Nhóm sinh viên thực hiện :


PHẦN I : GIỚI THIỆU ĐỀ TÀI
A: Mục tiêu của đề tài :
* Thiết kế và chế tạo hoàn thiện robot Racing tham gia cuộc thi Rôbôt Racing
khoa Điện -Điện Tử
- Thiết kế và chế tạo phần cơ khí.
- Thiết kế và chế tạo mạch điện điều khiển robot.
- Lập trình điều khiển robot.
- Khơi dậy niềm đam mê cho sinh viên và khả năng sáng tạo cho sinh viên, vận dụng
những kiến thức được trang bị trong nhà trường vào trong thực tế, khả năng làm việc theo

nhóm.
B. Chủ đề và luật chơi
I: Giới thiệu về sân thi đấu và kích thước
* Sân thi đấu:
a. Sân thi đấu với màu sắc và kích thước được thể hiện trên Hình số 1. Sân được
chia làm 2 vùng: vùng màu xanh cho Robot của đội 1; vùng màu đỏ cho Robot của đội 2.
b. Chất liệu của sân thi đấu bằng nhựa, mặt sân bằng phẳng.
Sân thi đấu
II : Chủ đề và luật thi
* Giới thiệu cuộc thi ROBOT RACING CONTEST
1.Đội thi đấu: Mỗi đội thi đấu không quá 03 thành viên
2. Đối tượng tham dự: Sinh viên Khoa Điện – Điện tử, Trường Đại học Sư phạm Kỹ
thuật Hưng Yên
3. Thời gian thi đấu: Mỗi trận đấu kéo dài 03 phút
4. Quy định về Robot
a. Mỗi đội sử dụng một Robot duy nhất
b. Khối lượng Robot không quá 2kg
c. Kích thước Robot (dài x rộng x cao) không vượt quá 300 x 200 x 200 mm
d. Nguồn điện sử dụng cho Robot không vượt quá 09V (DC)
e. Robot không được sử dụng sóng vô tuyến hoặc các phương tiện truyền dẫn
không dây khác
5. Cách tính điểm
a. Các Robot thực hiện đi từ điểm xuất phát (START) đến điểm đích (FINISH) với
hành trình 02 vòng liên tiếp theo hướng được quy định như trên Hình số 1. Hành trình
vòng 1 được xác định khi Robot lần lượt đi qua các điểm Checkpoint 1, Checkpoint 2,
Checkpoint 3, Checkpoint 4 và trở về điểm xuất phát (START). Hành trình vòng 2 được
xác định khi Robot lần lượt đi qua các điểm Checkpoint 1, Checkpoint 2, Checkpoint 3,
Checkpoint 4 và điểm đích (FINISH). Mỗi một điểm Checkpoint và điểm xuất phát
(START), đích (FINISH) mà Robot đi qua được tính 10 điểm. Số điểm tối đa mà một
Robot đạt được trong một trận đấu là 100 điểm. Khi có một đội về đích, trận đấu được kết

thúc (KNOCK-OUT).
b. Thứ tự ưu tiên sẽ là: điểm trận (đội thắng được 3 điểm, đội hòa được 1 điểm, đội
thua được 0 điểm), điểm hành trình (từ 0 đến 100 điểm), và điểm thời gian (từ 0 đến 180
giây). Khi hai đội có cùng số điểm có số điểm hành trình cao hơn sẽ là đội thắng cuộc.
Khi hai đội có cùng số
điểm trận và điểm hành trình, đội có thời gian thực hiện hành trình ngắn hơn sẽ là đội
thắng cuộc.
c. Các đội được phép retry Robot với số lần retry không hạn chế, việc retry Robot
được thực hiện tại điểm Checkpoint gần nhất mà Robot vượt qua được. Trong trường hợp
Robot bị phạm luật bởi Robot đối phương, Robot bị phạm luật được phép retry.
6. Phạm luật
Các trường hợp sau được cho là phạm luật và Robot bị truất quyền thi đấu:
a. Robot đi không theo hướng hành trình quy định.
c. Robot hai đội chạm nhau, Robot gây va chạm trên phần sân của đổi phương là
Robot phạm luật.
d. Robot dừng quá 10 giây.
PHẦN II : Ý TƯỞNG VÀ PHƯƠNG ÁN CHẾ TẠO RÔBÔT
* Sau một thời gian nghiên cứu và phân tích yêu cầu của luật thi do khoa phát
động chúng em đã đưa ra những ý tưởng và phương án chế tạo robot để giải quyết đề tài
của cuộc thi như sau:
A. Phương án về mảng cơ khí
• Giải pháp thiết kế cơ cấu cơ khí:
Để phù hợp với yêu cầu luật thi cuộc thi yêu cầu Rôbôt có tốc độ cao trong suốt quá trình
đua nên cơ cấu phải gọn nhẹ bám đường tốt bẻ lái góc cua thật tốt và tăng tốc độ trên
những đoạn đường thẳng.
- Qua nhiều ngày họp bàn ý tưởng và tham khảo các video cũng như những mô hình
Rôbôt Racing BKIT chúng em đã thiết kế và test thử tất các mô hình. Ban đầu từ những
mô hình thứ nhất và được tối ưu qua các lần chế tạo tiếp theo cuối cùng đã thông nhất ra
một mô hình tối ưu và đã thử nghiệm thành công
- Mô hình của bọn em như sau : mô hình Rôbôt đua xe F1,bẻ lái bánh trước nhằm đạt

tốc độ cao trên suốt quãng đường đua
- Động cơ bẻ lái là động cơ RC Servo
- Chuyển động hai bánh sau bằng động cơ điện một chiều tỉ số truyền được thay đổi
qua cơ cấu truyền đai
* Yêu cầu chế tạo Rôbôt kích thước phù hợp luật thi chiều dài nhỏ hơn 30cm, chiều rộng
nhỏ hơn 20cm, chiều cao nhỏ hơn 20cm, khối lượng nhỏ hơn 2kg
 Chúng em đã chế tạo thành công mô hình Rôbôt Racing tham gia cuộc đua Racing do
khoa Điện – Điện Tử tổ chức với nhưng thành tích cao như sau:
+ IT02 : giải nhất
+ IT01 : giải nhì
+ IT03 : giải ba
+ IT04 : giải ba
+ IT05 : giải khuyến khích
B. Phương án lập trình điều khiển cho robot.
Vi điều khiển PIC.
Vi điều khiển PIC của microchip là một sự lựa chọn rất tốt cho các đội robocon do
những tính năng vượt trội của nó so với các loại vi điều khiển khác như bộ nhớ flash lớn
và có nhiều modul như : PWM, ADC,Timer, ngắt đặc biệt với sự hỗ trợ của trình dịch
như CCS C và bằng việc viết bằng ngôn ngữ C người lập trình sẽ rất mềm rẻo trong việc
khai triển thuật toán . Hiện nay trên thị trường có khá nhiều dòng vi điều khiển PIC.VD:
pic16f877, pic16f84, pic16f828, PIC18F4x31 v.v.v
Đánh giá các dòng PIC
- Dòng PIC nhiều chân nhất là dòng PIC18Fxxxx, có những số chân lên đến 80 chân.
- Dòng PIC ít chân nhất là dòng PIC10Fxxx, chỉ có 6 chân
- Dòng PIC phổ biến nhất là dòng PIC16F877A (đủ mạnh về tính năng,40 chân, bộ
nhớ đủ cho hầu hết các ứng dụng thông thường).
- Dòng PIC hỗ trợ giao tiếp USB là dòng PIC18F2550 và PIC18F4550
- Dòng PIC điều khiển động cơ mạnh nhất là dòng PIC18F4x31
Vi điều khiển PIC 18F4431
Kết Luận:

Qua phân tích các loại dòng vi điều khiển, chúng em đã lựa chọn vi điều khiển loại
PIC18F4431chuyên dụng điều khiển động cơ với các ưu điểm nổi bật so với các loại vi
điều khiển khác:
• Dung lượng bộ nhớ lớn hơn: PIC18F4431 có 16 Kbyte Flash nội trú bên
trong, trong khi đó họ 80C51 chỉ có 4Kbyte. Trong bộ nhớ dữ liệu RAM, PIC18F4431 có
vùng RAM mở rộng gồm 768 Byte , 256 byte EPROM
• PIC18F4431 có 3 bộ Timer/Counter.
• 2 module Capture/Compare/PWM (CCP)
• 9 kênh chuyển đổi ADC 10bit
• Đặc biệt PIC18F4431 modul control power PWM (14 bit) từ pwm0 đến
Pwm7 sử dụng rất đơn giản và linh hoạt cho việc điều xung (rất thuận tiện cho mạch điều
khiển động cơ sử dụng phương pháp PWM để điều chỉnh tốc độ động cơ).
2.Giới thiệu VĐK PIC18F4431
2.1.Những đặc điểm của PIC18F4431
2.1.1 Đặc điểm nổi bật PIC18F4431:
• 33 Đầu vào ra output ,input
• 14-Bit Power Control PWM Module:
- Có 4 kênh (mỗi kênh gồm 1 cặp xung đối nghịch)
- Thời gian dead time linh hoạt
- Update từng duty cycle => ngõ ra PWM đáp ứng nhanh

• Motion Feefblack Module
+ Có 3 kênh capture độc lập:
- Các chế độ hoạt động linh hoạt cho việc đo đạc độ rộng xung
- Module hỗ trợ Hall sensor
+ Quadrature encoder interface:
- 2 pha vào và 1 ngõ vào index từ encoder
- Hỗ trợ đo đạc vận tốc
• High speed, 200Ksps 10 bit A/D converter
+ Có 9 kênh A/D

+ 2 kênh lấy mẫu tức thời
+ Lấy mẫu lien tục:1, 2 hay 4 kênh lựa chọn
• Flexible Oscillator structure :
+ 4 chế độ thạch anh ( hỗ trợ đến 40MHz)
+ 2 nguồn xung clock ngoài lên đến 40MHz
+ Chế độ thạch anh nội:
- Có 8 tần số người dùng có thể lựa chọn từ 31KHz -> 8MHz
- OSctune có thể dùng bù cho sự lệch tần số
• Peripheral Highlights:
+ Chịu dòng cao : sink/source (25mA/25ma)
+ 3 nguồn ngắt ngoài
+ 2 modul capture /compare/pwm ( CCP)
- Capture 16 bit độ phân giải tối đa 6.25 ns (Tcy/6)
- Compare 16 bit , độ phân giải tối đa 100ns(Tcy)
- PWM output: độ phân giải từ 1 ->10 bit
+ Modul USART :
- Hỗ trợ RS -485,RS-232 và LIN1.2
- Auto weak-up on start bit
- Auto-Bound detect
+RS232 sử dụng khối dao động nội( không cần thạch anh ngoài)
2.1.2 Đặc điểm PIC18F4431:
- Là CPU sử dụng tập lệnh RISC và có tốc độ xử lý cao và công suất nhờ sử dụng
công nghệ CMOS FLASH/EFPROM
- Tập lệnh có 75 lệnh
- Một chu kì lệnh bằng 4 chu kì xung. Sử dụng bộ dao động 40MHz thì chu kì lệnh
là 0.1us
- Tần số bộ dao động cho phép tới 40MHz
- 8Kx14 word bộ nhớ FLASH lập trình
- 768 bytes bộ nhớ Ram, trong đó bộ nhớ EFPROM lên đến 256 bytes
- Trang bị đến 34 ngắt với8 cấp độ ngắt

- 5 port I/O
- Trang bị 3 bộ định thời, 1 bộ 8 bit, 2 bộ 16 bit
- 2 modul Capture/compare/pwm
- Bộ chuyển đổi 10 bít ADC với tốc độ 5 ->10 us
- Cổng serian đồng bộ với chế độ SPI và I2C (master/slaver) thực hiện bằng phần
cứng
- Chế độ truyền nhận động bộ /bất đồng bộ với 9 bit địa chỉ kiểm tra
- Cổng song song (PSP) 8 bit
- Các chế độ định địa chỉ trực tiếp, gián tiếp, tướng đối
- Cho phép đọc/ghi bộ nhớ chương trình
- Có chế độ bảo vệ mã lập trình
- Chế độ SLEEP (tạm nghỉ) để tiết kiệm điện năng
- Cho phép chọn lựa chế độ dao động(nội , ngoại)
- Được sản xuất với nhiều loại khác nhau với cùng 1 mã vi điều khiển, tùy thuộc số
tính năng được trang bị them, các kiểu đế cắm: PDIP(40 chân),PLCC và QFP(cùng
44 chân)
2.2.Sơ đồ khối của PIC18F4431
Hình 8: Sơ đồ khối của PIC18F4431
2.3.Sơ đồ chức năng chân của PIC 18F4431
2.3.1.Sơ đồ chân:
Hình 9: Sơ đồ chức năng chân của PIC 18F4431
2.3.2.Chức năng các chân của Pic 18F4431
a. Port A (RA0 – RA5) : chân 2 –> chân 7
- chân chức I/O năng output ,input
- Đầu vào các kênh chuyển đổi ADC
- Có tất cả 6 chân, từ RA0 -> RA5. Trong đó RA2 và RA3 dùng để tiếp nhận
điện áp so sánh Vref+ và Vref-
- RA2 ,RA3,RA4 là chân đầu vào module feedback chuyên đọc ecoder tần số
cao
- RA4 còn là ngõ vào của xung clock cho timer0. RA5 có thể làm chân chọn

slave cho port serial đồng bộ
b.Port B (RB0 – RB7) : chân 33 –> chân 40
- Các chân đầu vào ,ra input output
- chân ra cuả các modul điều xung power pwm (RB0->PWM0, RB1-
>PWM1, RB3->PWM3, RB4->PWM5
- RB7 và RB6 chân nạp chương trình trực tiếp PGC,PGD
c.Port C (RC0 – RC7) : chân 15,16,17,18 và chân 23,24,25,26
- Là port I/O có 8 chân input,output
- RC0 dùng làm đầu vào bộ dao động xung clock cho Timer1.
- RC1 và RC2 là 2 chân của bộ CCP1 và CCP2
- RC3 là chân ngắt ngoài INT0 và đầu vào xung clock cho bộ Timer 0
- RC4 chân ngắt ngoài INT1 và còn là chân SDI serial data in của modul
truyền thông SPI
- RC5 chân ngắt ngoài INT2, và chân SCK serial clock của module truyền
thông SPI
- RC6 và RC7 là chân TX và RX của modul truyền thông USART chuẩn
RS232 ,chân SDO serial data out module SPI
d.Port D (RD0 – RD7) : chân 19.20.21.22 và chân 27,28,29,30
- Là port I/O
- RD1 đầu vào xung clock ngoài của bộ timer 5
- RD2, RD3 là các chân SDA, SCL của truyền thong I2C
- RD5, RD6,RD7 là đầu ra của modul power Pwm4,pwm6,pwm7
e.Port E (RE0 – RE2) : chân 8 –> chân 10
- Là các chân I/O
- Đầu vào các kênh ADC AN6, AN7, AN8
f.Nguồn :
- VDD : chân 32
- VSS : chân 31
- AVDD : chân 11
- AVSS : chân 12

g.Dao đông ngoài :
- chân OSC1 : chân 13
+ chân OSC2 : chân 14
Hình 10: Mạch dao động
h.Chân RESET: chân 1
2.3.3 Bộ định thời trong PIC
Pic 18f4431 có 4 bộ định thời:
a. Timer0
Có các chức năng sau:
• Bộ timer/couter 8bit hoặc 16 bit
• Có thể đọc hoặc ghi được
• Nguồn xung clock có thể lấy từ bên trong hoặc bên ngoài
• Ngắt tràn từ ffh->00 với 8 bit và từ ffffh ->0000h với chế độ 16 bit
• Chọn cạnh cho xung clock ngoài
• Thanh ghi điều khiển T0CON
• Sơ đồ thanh ghi T0CON
Bảng 02: Thanh ghi T0CON
Bit 7 : TMR0ON bit điều khiển cho phép on/off
1= cho phép timer0 hoạt động
0 = không cho phép timer0 hoạt động
Bit6 T016BIT : chọn chế độ 16 bit timer0
1 = timer0 chế độ 8 bit timer/counter
0 = timer0 chế độ 16 bit timer/counter
Bit5 T0CS : timer0 bit chọn nguồn xung clock cho timer
1 = nguồn xung clock ngoài lấy từ pin T0CKI
0 = lấy từ dao động nội (CLK0)
Bit 4 T0SE : timer0 bit chọn cạnh xung clock ngoài
1 = cạnh xung HIGH_TO_LOW trên pin T0CKI
0 = cạnh xung LOW_TO_HIGH on pin T0CKI
Bit 3 PSA : bit cho phép chia tần trước của timer0

1 = cho phép chia tần trước
0 = cho phép chia tần trước và đầu vào clock của timer0 lấy từ đầu ra prescale
Bit 2 T0PS2:T0PS0: Timer0 chọn hệ số chia tần lock cho timer
111 = 1:256 Prescale value // chia trước 256
110 = 1:128 Prescale value // chia trước 128
101 = 1:64 Prescale value
100 = 1:32 Prescale value
011 = 1:16 Prescale value
010 = 1:8 Prescale value
001 = 1:4 Prescale value
000 = 1:2 Prescale value
b. Timer1
Có các chức năng sau :
• timer/counter 16 bit
• có thể đọc ghi và xóa được
• xung clock cho timer có thể chọn bên ngoài hay bên trong
• ngắt tràn từ ffffh ->0000h
• thanh ghi điều khiển T1CON
Sơ đồ thanh ghi điều khiển khiển T1CON

REGISTER 12-1: T1CON: TIMER1 CONTROL REGISTER
R/W-0 R-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
RD16 T1RUN T1CKP
S
1
T
1CKPS
0
T1OSC
E

N
T1SYN
C
TMR1
C
S
TMR1
O
N
bit 7 bit 0
Thanh ghi T1CON
bit 7 RD16: 16-Bit định chế độ hoạt động 8 hay16 bit
1 = cho phép timer 1 hoạt động ở chế độ 16 bit
0 = cho phép timer 1 hoạt động ở chế độ 8 bit
bit 6 T1RUN: Timer1 Clock
1 = nguồn clock được lấy từ dao động timer1
0 = nguồn clock lấy từ nguồn khác
bit 5-4 T1CKPS1:T1CKPS0: lựa chon tỉ lệ chia clock đầu vào cho timer 1
11 = 1:8 Prescale value // chia trước 8 lần
10 = 1:4 Prescale value
01 = 1:2 Prescale value
00 = 1:1 Prescale value
bit 3 T1OSCEN: bit cho phép
dao động timer1
1 = cho phép bộ dao động Timer1
0 = khóa bộ dao động timer1
bit 2 T1SYNC: bit chọn đồng bộ ngoài xung clock của timer1
When TMR1CS = 1 (dùng dao động nội):
1 = không đồng bộ với clock ngoài ở chân input
0 = đồng bộ với clock ngoài

Sử dụng khi TMR1CS = 0 (clock nội):
Bit 1 TMR1CS : chọn nguồn xung clockcho timer 1
1 = nguồn xung clock ngoài từ chân RC0/T1OSO/T13CKI
0 = clock nội lấy từ thạch anh (FOSC/4)
c. Timer2
• hoạt động ở chế độ 8 bit
• Có thể đọc hoặc ghi
• Co thể lập trình chia tần trước prescaler (1:1, 1:4, 1:16) postscaler (1:1 to 1:16)
• Thanh ghi điều khiển T2CON
Sơ đồ thanh ghi điều khiển T2CON
REGISTER 13-1: T2CON: TIMER2 CONTROL REGISTER
U-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
— TOUT
P
S3
TOUT
P
S2
TOUT
P
S1
TOUT
P
S0
TMR2
O
N
T2CK
P
S1

T2CK
P
S0
bit 7 bit 0
Legend:
R = Readable
bit
W = Writable
bit
U = Unimplemented bit, read as ‘0’
-n = Value at
POR
‘1’ = Bit is set ‘0’ = Bit is cleared x = Bit is unknown
Thanh ghi T2CON
bit 7 không sử dụng để dự trữ
bit 6-3 TOUTPS3:TOUTPS0: lựa chọn số lần timer tràn xẩy ra ngắt
0000 = 1:1 Postscale // tràn 1 lần
0001 = 1:2 Postscale // tràn 2 lần
……
1111 = 1:16 Postscale
Bit 2 TMR2ON : cho phép timer2 hoạt động
1 = Timer2 is on
0 = Timer2 is off
bit 1-0 T2CKPS1:T2CKPS0: lựa chọn tỉ lệ chia clock đầu vào timer2
00 = Prescaler is 1 // chia trước 1
01 = Prescaler is 4 // cứ 4 clock thì co 1 clock được đưa vào timer2
1x = Prescaler is 16
d. Timer 5
Có các chức năng sau:
• Hoạt động chế độ timer/counter 16 bit

• Bộ đếm có chế độ đồng bộ và không đồng bộ
• Cho phép chọn tỉ lệ chia tần
• Thanh nghi điều khiển T5CON
REGISTER 14-1: T5CON: TIMER5 CONTROL REGISTER
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
T5SEN RE
SEN
(1)
T5MO
D
T5PS1 T5PS0
T5SYNC
(
2)
TMR
5
CS
TMR5
O
N
bit 7 bit 0
Thanh ghi T5CON
bit 7 T5SEN: Timer5 chế độ ngủ
1 = cho phép timer5 ở chế độ sleep
0 = không cho phép Timer5 Sleep
Bit 6 RESEN: reset bit 1 bằng sự kiện
1 = không cho phép sự kiện reset bit 1
0 = cho phép reset đặc biệt với bit 1
bit 5 T5MOD: bit chọn chế độ hoạt động
1 = cho phép chế độ hoạt động không liên tục

0 = cho phép chế độ hoạt động liên tục
bit 4-3 T5PS1:T5PS0: bit chọn chia tần trước cho timer5
11 = 1:8
10 = 1:4
01 = 1:2
00 = 1:1
Bit 2 T5SYNC: chọn xung clock đồng bộ ngoài cho timer 5
Khi TMR5CS = 1:
1 = không đồng bộ với nguồn xung ngoài vào
0 = đồng bộ với nguồn xung ngoài vào
Khi TMR5CS = 0:
Timer 5 sử dụng clock từ bộ dao động thạch anh
bit 1 TMR5CS: lựa chọn nguồn xung clock cho timer 5
1 = xung đếm timer ngoài ở chân T5CKI
0 = xung clock nội từ thạch anh (TCY)
bit 0 TMR5ON: bit cho phép timer 5 hoạt động
1 = cho phép timer 5 hoạt động
0 = không cho phép timer 5 hoạt động
4.3.4 Ngắt (interrupts)
Pic18F4431 có nhiều nguồn ngắt khác nhau .có mức độ ưu tiên khác nhau ,vector
ngắt có ưu tiên cao nhất ở địa chỉ 000008h , vector ngắt có địa chỉ thấp nhất ở địa chỉ
0000018h . mổi khi có sự kiện ngắt thì vi điều khiển sẽ dừng chương trình chính để thực
hiên chương trinh ngắt.
Có 10 thanh ghi điều khiển ngắt: RCON, INTCON,INTCON2,INTCON3,
PIR1,PIR2,PIR3, PIE1,PIE2,PIE3,IPR1,IPR2,IPR3
mỗi nguồn ngắt có 3 bít điều khiển ngắt :
• Bit cờ chỉ sự kiện ngắt suất hiện
• Bit cho phép thực thi chương trình rẽ nhánh đến địa chỉ vector ngắt khi cờ ngắt đã
bật
• Bit ưu tiên để chọn mức ưu tiên cao hay thấp

Sơ đồ thanh ghi INTCON
REGISTER 9-1: INTCON: INTERRUPT CONTROL REGISTER
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-x
GIE/G
IE
H
PEIE/G
I
EL
TM
R0I
E
INT0IE RBIE TM
R0I
F
INT0IF
RBIF
(
1
)
bit 7 bit 0
Thanh ghi INTCON
2.4. Các modul cơ bản của PIC18F4431
2.4.1 Power control PWM modul
- Power control PWM modul đơn giản là tạo ra nhiều xung động bộ có độ rộng xung thay
đổi được( PWM: pulse Width Modulation). Các ngõ ra của PWM ứng dụng trong điều
khiển động cơ và các ứng dụng điều khiển công suất. Modul PWM này hỗ trợ điều khiển
các ứng dụng sau:

×