Lời mở đầu .......................................................................................... 5Lời cảm ơn.......................................................................................... 6Chương 1 : Họ vi điều khiển PIC và vi điều khiển PIC18F4520 .........................71.1 Giới thiệu chung .......................................................................................... 71.2 . Vi điều khiển Pic18F4520 ......................................................................... 81.2.1. Tổ chức bộ nhớ (Memory Organization) ........................................... 131.2.2. 8 x 8 HARDWARE MULTIPLIER ................................................... 221.2.3. Ngắt (Interrupts) ................................................................................. 231.2.4. Cổng vào ra (IO Port)....................................................................... 321.2.5. Bộ định thời (Timer) .......................................................................... 331.2.6. Bộ truyền nhận dữ liệu đồng bộ (EUSARTEnhanced UniversalSynchronous Asynchronous Receiver Transmitter).................................... 371.2.7. Module chuyển đổi tưong tự sang số 10 bit (AD) ............................ 50Chương 2 : Thiết kế bộ điều khiển PID số..........................................................572.1 Thiết kế mô hình phần cứng mạch điều khiển.......................................... 572.1.1. Yêu cầu thiết kế .................................................................................. 572.1.2. Các khối chức năng trên kit điều khiển ............................................. 58a) Khối vi điều khiển trung tâm...................................................................................58b) Khối giao tiếp máy tính qua cổng nối tiếp ..............................................................59c) Khối bàn phím .........................................................................................................60d) Khối hiển thị LCD 2x16(2 dòng, 16cột) .................................................................61e) Khối mạch động lực điều khiển...............................................................................62f) Khối nguồn 12V5V.................................................................................................62g) Các khối khác ..........................................................................................................632.2 Thiết kế phần mềm trên nền vi điều khiển PIC ......................................... 642.2.1. Yêu cầu phần mềm ............................................................................. 642.2.2. Giải thuật chương trình ...................................................................... 65a) Loop điều khiển .......................................................................................................65b) Thuật toán PID số....................................................................................................662.2.3. Thiết kế phần mềm điều khiển và giám sát trên máy tính ................. 692.3 Kit điều khiển............................................................................................ 71Chương 3 : Ứng dụng bộ điều khiển PID số điều khiển động cơ một chiều ......723.1 Đối tượng điều khiển ................................................................................. 723.1.1. Thông số kĩ thuật ................................................................................ 72Phạm Văn Cường Hoàng Văn Quân. Lớp ĐKTĐ1K491 3.1.2. Nhận dạng mô hình động học của động cơ điện một chiều ............... 723.1.3. Thu thập dừ liệu vàora của động cơ điện một chiều từ thựcnghiệm. 723.1.4. Nhận dạng động cơ điên một chiều bằng Toolbox Identification cảuMatlab .......................................................................................................... 743.1.5. Đánh giá chất lượng mô hình ............................................................. 763.2 Thiết kế luật điều khiển PID ..................................................................... 773.2.1. Phương pháp ZieglerNichols1 .......................................................... 773.2.2. Phương pháp IMC .............................................................................. 773.2.3. Mô phỏng và đánh giá chất lượng bộ điều khiển ............................... 783.3 Thiết bị chấp hành(IC L298) ..................................................................... 783.4 Cảm biến (Encoder) ................................................................................... 813.5 Hệ thống điều khiển .................................................................................. 843.6 Một số hình ảnh về Kit điều khiển động cơ sử dụng vi điều khiển PIC .. 863.7 :Kết quả thực nghiệm................................................................................ 873.8 So sánh kết quả mô phỏng và thực tế ........................................................ 88Kết luận ............................................................................................. 89Tài liệu tham khảo ............................................................................. 91Phụ lục Code phần mềm ................................................................... 92 Phạm Văn Cường Hoàng Văn Quân. Lớp ĐKTĐ1K492 MỤC LỤC HÌNH VẼHình 1.1 Sơ đồ khối kiến trúc vi điều khiển PIC18F4520 ............................................. 9Hình 1.2 Sơ đồ chân vi điều khiển Pic18F4520 ........................................................... 10Hình 1.3: Tổ chức bộ nhớ chương trình ....................................................................... 13Hình 1.5: ClockInstruction Cycle............................................................................... 15Hình 1.6 Instruction Pipeline Flow .............................................................................. 15Hình 1.7 Instruction In Program Memory ................................................................... 16Hình 1.8 Sơ đồ cấu trúc bộ nhớ dữ liệu Pic18F4520 ................................................... 16Hình 1.9 Sơ đồ cấu trúc thanh ghi của Pic18F4520 ..................................................... 17Hình 1.10 Pic 18 Interrup logic .................................................................................... 23Hình 2.1 Mô hình khối mạch điều khiển ..................................................................... 57Hinh 2.2.Sơ đồ khối vi điều khiển trung tâm ............................................................... 58Hinh 2.3 Mạch nạp cho vi điều khiển trung tâm .......................................................... 58Hinh 2.4 Khối giao tiếp máy tính Max232.................................................................. 59Hình 2.5 : Cấu tạo cổng COM..................................................................................... 59Hinh 2.6 Modul bàn phím ............................................................................................ 60Bảng sơ lược chức năng LCD 2x16 ............................................................................. 61Hình 2.7 Khối hiển thị LCD ......................................................................................... 62Hinh 2.8 Khối thiết bị chấp hành................................................................................. 62Hình 2.9 Sơ đồ khối nguồn.......................................................................................... 62Sơ đồ nguyên lý kit điều khiển .................................................................................... 63Sơ đồ mạch in hai lớp ................................................................................................... 64Hình 2.10 Lưu đồ loop điều khiển............................................................................... 65Hình 2.11 Lưu đồ hàm ngắt dùng tạo chu lì trích mẫu................................................ 66Hình 2.12 Sơ đồ bộ điều khiển PID số ......................................................................... 67Hình 2.13 Chống bão hào tích phân ............................................................................. 68Hình 2.14. Giao diện giao tiếp PC............................................................................... 69Hình 3.1 Động cơ sủ dụng trong đồ án........................................................................ 72Hinh 3.2 Sơ đồ thu thập dữ liệu nhận dạng .................................................................. 72Hình 3.2 Đặc tính thu thập dữ liệu nhận dạng............................................................ 73Hình 3.3Chọn đầu vào và mô hình nhận dạng của đối tượng ...................................... 75Hình 3.4Phương thức nhận dạng và đánh giá mô hình thu được ................................. 75Hình 3.5 Đặc tính quá độ đối tượng sau khi nhận dang ............................................... 76Hình 3.6 Sai lệch mô hình nhận dạng.......................................................................... 76Phạm Văn Cường Hoàng Văn Quân. Lớp ĐKTĐ1K493 Hình 3.7 Mô phỏng trên Simulink các phương pháp điều khiển ................................ 78Hình 3.9 Đặc tính mô phỏng ........................................................................................ 78Hình 3.10 Sơ đồ chân L298......................................................................................... 79Hình 3.11: Các chế độ của L298 .................................................................................. 80Hình 3.12 : Sơ đồ giải pháp .......................................................................................... 81Hình 3.13 : Mô hình1 En coder quang tương đối ...................................................... 81Hình 3.14 : Phương thức hoạt động Encoder quang tương đối................................... 82Hình 3.15 : Mô hình 2 En coder quang tương đối ...................................................... 82Hình 3.16 : Sơ đồ xung của En coder quang tương đối(mô hình 2) ............................ 83Hình 3.17 Sơ đồ hệ thốngđiều khiển động cơ .............................................................. 84Hình 3.18 Cấu trúc hệ thống điều khiển...................................................................... 84Hình 3.19 Cấu trúc khối điều khiển động cơ................................................................ 85Một số hình ảnh mạch điều khiển động cơ một chiều................................................. 86Hình 3.20 Đặc tính với bộ điều khiển PI ..................................................................... 87Hình 3.21 Đặc tính với bộ đièu khiển PID ................................................................... 87Hình 3.22 Hệ thống khi có nhiễu................................................................................ 88Hình 3.23 Đặc tính khi hệ thống có thay đỏi giá trị đặt ............................................... 88 Phạm Văn Cường Hoàng Văn Quân. Lớp ĐKTĐ1K494 Lời mở đầuKhoa học công nghệ hiện đại đã có những bước tiến nhanh và xa đi theo đó lànhững thành tựu ứng dụng trong mọi lĩnh vực dời sống, công nghiệp. Kĩ thuật điềukhiển trong tiến trình hoàn thiện lý thuyết cũng tạo cho mình nhiều phát triển có ýnghĩa. Bây giờ khi nhắc tới điều khiển con người dưòng như hình dung đến sự chínhxác, tốc độ xử lý và thuật toán thông minh đồng nghĩa là lượng chất xám cao hơn.Có thể nói trong lĩnh vực điều khiển và trong công nghiệp thì bộ điều khiển PIDcó ứng dụng kha rộng rãi, một giả pháp đa năng chocác ứng dụng cả Analog cũng nhưDigital. Thống kê cho thấy có tới hơn 90% các bộ điều khiển sử dụng trong thực tế làPID. Rõ ràng nếu có thiết kế và chọn lựa các thông số hợp lý cho bộ điều khiển PIDthì việc đạt được các chỉ tiêu chất lượng mong muốn là khả thi Bộ điều khiển PIDcũng giúp người sử dụng dễ dàng tích hợp cũng như chọn các luật điều khiển như : tỉlệ(P), tích phân(I), tỉ lệ tích phân(PI), tỉ lệ vi phân(PD)… sao cho phù hợp đối với cácđối tượng điều khiển. Nhiều quá trình trong công nghiệp việc sử dụng bộ điều khiểnPID là không thể thay thế như khống chế nhiệt độ, mức, tốc độ…? Ngay cả những lýthuyết điều khiển hiện đại cũng không cho ta những hiệu quả cao như bộ điều khiểnPID mang lại.Ngoài ra bộ điều khiển PID còn ứng dụng nhiều trong điều khiển thíchnghi,bền vững vẫn mang lại hiệu quả cao trong các cơ cấu chỉnh định.Bài toán thiết kế và điều khiển động cơ một chiều là bài toán cơ bản và quen thuộctrong ngành điều khiển tự động. Có thể thiết kế điều khiển cho đối tượng độngcơ điệnmột chiều theo nhiều phương pháp như :dùng PLC biến tần, điện tử công suất, viđiều khiển… Mỗi phương pháp có ưu và nhược điểm khác nhau nhưng đều có mụcđích ổn định và điều khiển được tốc độ động cơ. Ngày nay vi điều khiển phát triển sâurộng và ngày càng ứng dụng nhiều trong cài đặt thiết kế bộ điều khiển cho các đốitượng công nghiệp. Trên cơ sở muốn tìm hiểu về lĩnh vực vi điều khiển chúng emchọn đề tài: Thiết kế bộ điều khiển PID số trên nền vi điều khiểnPIC. Vì khả năngvà thời gian có hạn nên không thể tránh khỏi những thiếu sót trong đồ án. Do vậychúng em rất mong được thầy cô và bạn bè đóng góp xây dựng để đồ án của chúng emđược hoàn thiện hơn.Hà Nội, ngàythángnăm 2009Sinh viênPhạm Văn CườngHoàng Văn QuânLớp ĐKT1 K49 Phạm Văn Cường Hoàng Văn Quân. Lớp ĐKTĐ1K495 Lời cảm ơnĐầu tiên chúng em xin chân thành gửi lời cảm ơn tới nhà truờng, khoa điện, bộmôn ĐKTĐ, các thầy cô đã dạy dỗ và dìu dắt chúng em trong suốt 5 năm học vừa quađể có được những kiến thức chuyên môn cơ sở sau này chúng em có thể vào đời làmviệc, sử dụng có ích cho xã hội.Để thực hiện thành công đồ án là sự hướng dẫn, chỉ bảo tận tình của PGS.TS PhanXuân Minh, Người đã hướng dẫn tận tình , giúp chúng em định hướng, góp ý và cungcấp ý tưởng cũng như chỉ dẫn tài liệu và các tiến trình thực hiện đồ án .Sự hướng dẫncủa cô là một yếu tố quan trọng để chúng em có thể hoàn thành đồ án này .Cuối cùng chúng em xin chân thành gửi những lời cảm ơn sâu sắc đến cha mẹ vàgia đình, những người luôn sát cánh cùng chúng em, nuôi dưỡng chăm sóc chúng emtạo điều kiện tốt nhất cho chúng em học tập để có kết quả như ngày hôm nay.Chúng em xin chân thành cảm ơn
Trang 1Trường đại học bách khoa hμ nội
Khoa điện
Bộ môn điều khiển tự động
ĐỒ ÁN TỐT NGHIỆP
Đề tài:Thiết kế bộ điều khiển PID số trờn nền
vi điều khiển PIC
Giỏo viờn hướng dẫn : PGS.TS Phan Xuõn MinhSinh viờn thực hiện : Phạm Văn Cường
Hoàng Văn Quõn
Hà Nội 5 - 2009
Trang 2Mục lục
Lời mở đầu
5
Lời cảm ơn
7
1.2 Vi đ i ề u khi ể n Pic18F4520
8
1.2.1 T ổ ch ứ c b ộ nh ớ (Memory Organization)
13
1.2.2 8 x 8 HARDWARE MULTIPLIER
22
1.2.3 Ng ắ t (Interrupts)
23
1.2.4 C ổ ng vào ra (I/O Port)
32
Trang 31.2.5 B ộ định th ờ i (Timer)
33
1.2.6 ộ B truy ề n nh ậ n d ữ li ệ u đồ ng b ộ (EUSART-Enhanced Un iversal
Synchronous Asynchronous Receiver Transmitter)
Trang 4c) Kh ố i bàn phím
60
d) Kh ố i hiể n thị LCD 2x16(2 dòng, 16c ột)
61
e) Kh ố im ạch độ ngl ự cđ i ề u ểkhi n
62
f) Kh ố i nguồ n 12V/5V
62
g) Các khố i khác
64
2.2.2 Gi ả i thu ậ t ươ ch ng trình
65
a) Loop đ i ề ukhi ển
65
b) Thuậ t toán PID s ố
66
Trang 52.2.3 Thi ế t k ế ầ n ph m ề m đ i ề u khi ể n và giám sát trên máy tính
69
2.3 Kit đ i ề u khiển
72
3.1.1 Thông s ố k ĩ ậ t thu .
72
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
1
3.1.2 Nh ậ n d ạ ng mô hình động h ọ c c ủ a độ ng c ơ đ i ệ n ộ t m chi ề u .
74
Trang 63.1.5 Đánh giá chất lượng mô hình
78
3.4 Cảm biến (Encoder)
81
3.5 Hệ thống điều khiển
84
3.6 Một số hình ảnh về Kit điều khiển động cơ sử dụng vi điều khiển PI
C 86
3.7 :Kết quả thực nghiệm
87
3.8 So sánh kết quả mô phỏng và thực tế
Trang 7Kết luận
92
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
2
Trang 8Hình 1.5: Clock/Instruction Cycle
Trang 9Hình 2.1 Mô hình khối mạch điều khiển
Trang 10Hinh 3.2 Sơ đồ thu thập dữ liệu nhận dạng
72
Trang 11Hình 3.2 Đặc tính thu thập dữ liệu nhận dạng
78
Hình 3.10 Sơ đồ chân L298
79
Hình 3.11: Các chế độ của L298
Trang 12Hình 3.12 : Sơ đồ giải pháp
Trang 13Hình 3.20 Đặc tính với bộ điều khiển PI
Trang 15Bài toán thiết kế và điều khiển động cơ một chiều là bài toán cơ bản và que
được hoàn thiện hơn
Hà Nội, ngày tháng năm 2009
Sinh viênPhạm Văn CườngHoàng Văn QuânLớp ĐKT1 - K49
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
Trang 16để có được những kiến thức chuyên môn cơ sở sau này chúng em có thể vào đ
ời làm
việc, sử dụng có ích cho xã hội
Để thực hiện thành công đồ án là sự hướng dẫn, chỉ bảo tận tình của PGS.T
Trang 17Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
6
Vi điều kh iển Pic
Chương 1: Họ vi điều khiển PIC và vi điều
khiển PIC18F4520 1.1 Giới thiệu chung
Ngày nay, những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh hoạt và
sản xuất của con người Thực tế hiện nay là hầu hết các thiết bị điện hiện nay đều có
sự góp mặt của vi điều khiển và vi xử lí Ứng dụng vi điều khiển trong thiế
Pic để thực hiện ứng dụng và phát triển không ngoài những nguyên nhân sau:
- Họ vi điều khiển Pic phát triển và sử dụng phổ biến ở nước ta => việc tìm
mua và trao đổi kinh nghiệm là hết sức thuận lợi
- Giá thành các dòng Pic là không quá mắc
- Các dòng Pic có đầy đủ tính năng để hoạt động độc lập
- Là sự bổ sung hợp lý về kiến thức cũng như ứng dụng cho họ vi điều khiển
8051
- Có sự hỗ trợ cao của nhà sản xuất về các công cụ lập trình, trình biên dịch,
Trang 18mạch nạp Pic từ đơn giản tới phức tạp Không những vậy các tính năng đa
dạng của các đòng Pic không ngừng được phát triển
- Có nhiều bộ phận ngoại vi ngay trên chip, bao gồm: Cổng và/ra số,
xuất Microchip với đặc điểm 28/40/44 -Pin Enhanced Flash Microcontrollers with 10-
Bit A/D and nanoWatt Technology Dòng sản phẩm này có nhiều cải tiến đán
g kể về
tính năng so các dòng Pic trước đó như :
- Bộ nhớ chương trình được tăng cường (16Kbytes for PIC18F2420/4420
devices and 32Kbytes for PIC18F2520/4520 devices)
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
7
Vi điều kh iển Pic
- I/O ports (3 bidirectional ports on 28-pin devices, 5 bidirectional ports on
40/44-pin devices)
- Tăng cường modul CCP
- Sử dụng công nghệ nanoWatl
Trang 19Dòng sản phẩm này nói chung có nhiều sự tương đồng về tính năng nhưn
1.2 Vi điều khiển Pic18F4520
Vi điều khiển Pic18F4520 có các đặc điểm cơ bản:
- Sử dụng công nghệ nanoWatl: Hiệu năng cao, tiêu thụ năng lượng ít
thể thực hiện được 100.000 lần ghi/xóa
256 bytes EEPROM có thể thực hiện được 1.000.000 lần ghi/xóa-
256 bytes SRAM
- Những ngoại vi tiêu biểu
4 bộ định thời/bộ đếm 8 bit với các chế độ tỉ lệ đặt trước và chế độ
so sánh
Bộ đếm thời gian thực với bộ tạo dao động riêng biệt
2 kênh PWM
13 kênh ADC 10 bit
Bộ truyền tin nối tiếp USART khả trình
Trang 20Watchdog Timer khả trình với bộ tạo dao động bên trong riê
ng biệt
Bộ so sánh tương tự
- Các đặc điểm đặc biệt khác
Power on Reset và dò Brown out khả trình
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
8
Vi điều kh iển Pic
Bộ tạo dao động RC được định cỡ bên trongCác nguồn ngắt bên trong và bên ngoài
- I/O và các kiểu đóng gói
32 đường I/O khả trìnhĐóng gói 40-pin PDIP, 44-lead TQFP, và 44-pad MLF
Trang 21Hình 1.1 Sơ đồ khối kiến trúc vi điều khiển PIC18F4520
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
9
Vi điều kh iển Pic
Sơ đồ chân của các vi điều khiển Pic18F4420/4520
Hình 1.2 Sơ đồ chân vi điều khiển Pic18F4520
Sau đây là giới thiệu cấu tạo chân loại 40 chân (40 Pin PDIP):
Chân 1( MCLR /VPP/RE3) :
Trang 22- MCLR là đầu vào Master Clear (reset) hoạt động ở mức thấp dể reset toàn bộ
thiết bị
- VPP dùng để thay đổi điện áp đầu vào
- RE3 đầu vào số
Các chân thuộc cổng vào ra Port A
Chân 2(RA0/AN0):với RA0 là cổng vào ra số, AN0 là đầu vào tương tự Input0
Chân 3(RA1/AN1): RA1 là cổng vào ra số, AN1 là đầu vào tương tự Input1
Chân 4(RA2/AN2/VREF+): RA2 là cổng vào ra số, AN2 là đầu vào tương tự
Input2 VREF+ đầu vào tương tự chuyển đổi A/D điện áp tham chiếu(mứ
c thấp),
còn CVREF là đầu ra tương tự để so sánh điện áp chuẩn
Chân 5(RA3/AN3/VREF-/CVREF ): RA3 là cổng vào ra số, AN3 là đầu và
ngoài của Timer0, C1OUT là đầu ra bộ so sánh 1
Chân 7(RA5/AN4/ SS /HLVDIN/C2OUT): trong đó RA5 là cổng vào ra
só, AN4
là đầu vào tương tự Input 4, SS chọn đầu vào phụ thuộc SPI, HLVDINđ
ầu vào
tương tự để dò điện áp, C2OUT đầu ra bộ so sánh 2
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
10
Vi điều kh iển Pic
Chân 13(OSC1/CLKI/RA7): với OSC1là đầu vào bộ dao động thạch anh hoặc là
Trang 23đầu vào nguồn xung từ bên ngoài, khi ta nối dây với các thiết bị tương tự thì đầu
vào này dạng ST( Schmitt Trigger input ưith CMOS levels).CLKI là đ
ầu vào
CMOS cho nguồn xung bên ngoài và luôn được ghép nối với chân OSC
1 Còn
RA7 là chân vào ra sử dụng chung
Chân 14(OSC2/CLKO/RA6): OSC2 là đầu ra bộ dao động thạch anh được nối
với thạch anh hoặc bộ công hưởng dể lựa chọn dạng bộ dao động thạ
cho kéo đầu vào bên trong yếu lên trên toàn bộ đầu vào
Chân 33(RB0/INT0/FLT0/AN12): Với RB0 là cổng vào ra số, INT0 là đầu vào
ngắt ngoài Interrup 0, FLT0 là đầu vào báo lỗi PWM được tăng cường CCP1,
AN12 đầu vào tương tự Input 12
Chân 34(RB1/INT1/AN10): RB1 là đầu vào ra số, INT1 đầu vào ng
ắt ngoài
Interrup1, AN10 đầu tương tự Input 10
Chân 35(RB2/INT2/AN8): RB2 là đầu vào ra số, INT2 đầu vào ng
ắt ngoài
Interrup2, AN8 đầu tương tự Input 8
Chân 36 (RB3/AN9/ccp2): RB3 là đầu vào ra số, AN9 đầu tương tự Input 9,
CCP2 ( Capture 2 input/Compare 2 output/PWM2 output.)
Chân 37(RB4/KBI0/AN11):): RB4 là đầu vào ra số, KBI0 thay đổi
mở ngắt,
AN11 đầu tương tự Input 9
Chân 38(RB5/KBI1/PGM): RB5 đầu vào ra số, KBI1 thay đổi mở ngắ
t, PGM
cho phép có thể lập trình ISCPTM ở điện áp thấp
Chân 39(RB6/KBI2/PGC): RB6 là đầu vào ra số, KBI2 thay đổi mở ng
ắt, PGC
Trang 24chân dùng trong mạch chạy và xung lập trình ICSP.
Chân 40(RB7/KBI3/PGD): RB7 đầu vào ra số, KBI3 thay đổi mở ng
ắt, PGD
chân dùng trong mạch chạy và xung lập trình ICSP
Các chân công Port C
Chân 15(RC0/T1OSO/T13CKI):RC0 đầu vào ra số, T1OSO đầu ra bộ d
ao động
Timer1, T13CKI đầu vào xung bên ngoài Timer1/Timer3
Chân 16(RC1/T1OSI/CCP2): RC1 đầu vào ra số, T1OSI đầu vào bộ d
ao động
Timer1, CCP2(Capture 2 input/Compare 2 output/PWM2 output.)
Chân 17(RC2/CCP1/P1A): RC2 lầ đầu vào ra số, CCP1(Capture1 input/Compare
1 output/PWM1 output.), P1A đầu ra tăng cường CCP1
Chân 18(RC3/SCK/SCL): RC3 là đầu vào ra số, SCK đầu vào ra đư chu
Chân 23(RC4/SDI/SDA): RC4 là đầu vào ra số, SDI đầu vào dữ liệu A
PI, SDA
đầu vào ra dữ liệu cho I2C
Chân 24(RC5/SDO): RC5 đầu vào ra số, SDO đầu ra dữ liệu SPI
Chân 25(RC6/TX/CK): RC6 đầu vào ra số, TX đầu ra chuyển đổ
i dị bộ
EUSARRT, CK dầu vào ra xung đồng bộ EUSART
Chân 26(RC7/RX/DT): RC7 đầu vào ra số, RX đầu vào nhận dị bộ EUSA
RT, DT
đầu vào ra dữ liệu đồng bộ EUSART
Trang 25Các chân cổng Port D( Port D có thể vào ra hai hướng hoặc cổng song so
ng phụ
thuộc(PSP) cho giao diên vi xử lý và khi đó các đầu vào phải là TTL
Chân 19(RD0/PSP0): RD0 đầu vào ra số, PSP0 cổng dữ liệu song song phụ
thuộc, P1B đầu ra được tăng cường CCP1
Chân 29(RD6/PSP6/P1C): RD6 đầu vào ra số, PSP6 cổng dữ liệu song song phụ
thuộc, P1C đầu ra được tăng cường CCP1
Chân 30(RD7/PSP7/P1D): RD7 đầu vào ra số, PSP7 cổng dữ liệu song song phụ
thuộc, P1D đầu ra được tăng cường CCP1
Các chân cổng Port E
Chân 8(RE0/ RD /AN5): RE0 đầu vào ra số, RD đầu vào điều khiển đọc c
ho cổng
PSP, AN5 đầu vào tương tự Input5
Chân 9(RE1/ WR /AN6): RE1 đầu vào ra số, WR đầu vào điều khiển viết
dữ liệu
cổng PSP, AN6 đầu vào tương tự Input6
Chân 10(RE2/ CS /AN7): RE2 đầu vào ra số, CS điều khiển chọn Chip c
ho cổng
PSP, AN7 đầu vào tương tự Input7
- Đầu RE3 nằm ở chân 1
Trang 26Các chân khác
Chân 12,31(VSS): nối đất chuẩn cho I/O và logic
Chân 11,32(VDD): cungcấp nguồn dương cho I/O và logic
Loại 44 chân có thêm một số chân phụ khác khi cần thiết ta có thể dễ dàng tra
trong DataSheet Chi tiết hơn chúng ta có thể thấy qua sơ đồ kh
ối của
Pic18F4420/4520 trong tài liệu do microchip cung cấp sẽ có hoàn toàn đầy đ
ủ thông
tin đặc điểm cấu tạo
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
12
Vi điều kh iển Pic
1.2.1 Tổ chức bộ nhớ (Memory Organization)
Dòng Pic18Fxxxx được tổ chức bộ nhớ thành ba loại:
• Bộ nhớ chương trình (Program Memory)
• Bộ nớ dữ liệu RAM (Data RAM)
• Bộ nhớ dữ liệu EEPROM (Data EEPROM )
Tổ chức các bộ nhớ chương trình theo kiến trúc Harvard được sắp xếp theo s
ơ đồ:
Trang 27Hình 1.3: Tổ chức bộ nhớ chương trình
Tổ chức bộ nhớ chương trình(Program Memory Organization)
Dòng vi điều khiển Pic18xxxx là thiết bị với 21bit bộ đếm chương trinh PC
(Program counter) có thể quản lý 2Mbyte bộ nhớ chương trình Với Pic18F4
Bộ đếm chương trình – PC (Program Counter)
PC có độ rộng 21 bits phân chia trên 3 thanh ghi 8 bits: thanh ghi PCL, thanh ghi
PCH, thanh ghi PCU Dữ liệu bytes địa chỉ của PC được lưu trong bộ nhớ chương
trình Khi sử dung cần lưu ý tới cấu trúc lệnh có làm thay đổi giá trị PC hay không
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
13
Vi điều kh iển Pic
Khôi phục dịa chỉ ngăn xếp (RETURN ADDRESS STACK)
Ở đây ta có thể cho phép lưu trữ gọi 31 chương trình và các ngắt xảy ra Trong
thực thi ngăn xếp cấu trúc lệnh CALL và RCALL là được quan tâm Sơ đ
ồ ngăn
xếp dạng:
Trang 28Hình 1.4: Sơ đồ địa chỉ ngăn xếp
Trong vùng ngăn xếp này cần quan tâm tới::
- Top-of-Stack Access
- Return Stack Pointer (STKPTR)
- Stack Full and Underflow Resets
Khi chúng ta lập trình cần thiết chính xác khi gọi chương trình qua lệnh Call và
Rcall nên khi tác động cần quan tâm sự thay đổi các ngăn xếp cũng như quản lý
con trỏ (Pointer) Ta có thể dùng các lệnh Push và Pop để điều khiển con tr
ỏ Một
quan tâm khác nữa đó là Stack Pointer Register (STKPTR) - thanh ghi con trỏ
ngăn xếp:
Bit 7 (STKFUL): bit cờ báo ngăn xếp đầy
− Giá tri 1 có nghĩa là ngăn xếp đã đầy hoặc tràn
− Giá trị 0 thì ngăn xếp vẫn chưa bị đầy hoặc trànBit 6 (STKUNF): bit cờ báo tràn dưới
− Giá trị 1: xảy ra tràn dưới
− Giá trị 0: không có tràn dướiBit 5 (Unimplementad): mang giá trị “0”
Bit 4-0 (SP<4:0>:Các bit xác định con trỏ ngăn xếp
Chúng ta có thể xóa bit 6 và bit 7 nhờ phần mềm hoạc bởi một POR
FAST REGISTER STACK
Nhóm thanh ghi này gồm có các thanh ghi: Status, WREG, BSR giúp vi
ệc khôi
phục nhanh lựu chọn cho các ngắt Ví dụ một chương trình:
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
14
Trang 29Vi điều kh iển Pic
Việc quản lý tốt bộ nhớ chương trình sẽ giúp ta thực hiện chương trình tốt hơn
cũng như tối ưu câu lệnh
Trang 30Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
15
Vi điều kh iển Pic
Hình 1.7 Instruction In Program Memory
Tổ chức dữ liệu bộ nhớ(Data Memory Organization)
Pic18Fxxxx là họ Statis Ram mỗi thanh ghi bộ nhớ dữ liệu có 12 bit địa chỉ,
cho phép truy nhập tới 4096 bytes dữ liệu bộ nhớ Không gian bộ nhớ chia làm
16 bank gồm 256 byte mỗi bank Pic18F4520 như sơ đồ phía sau
Bộ nhớ dữ liệu bao gồm : thanh ghi chức năng đặc biệt (SFRs), thanh g
Trang 31Hình 1.8 Sơ đồ cấu trúc bộ nhớ dữ liệu Pic18F4520
Theo cấu trúc lệnh và kiến trúc dòng Pic18Fxxxx cho phép các bank ho
đơn Pic 18Fxxxx cung cấp một AccesBank gồm 256 byte bộ nhớ cho phép tr
uy cập
nhanh tới SFRs và phần Bank0 của GPR nếu không sử dụng BSR
Chi tiết các bank thanh ghi và chức năng ta có thể theo dõi kĩ hơ
n trong
dataSheet
Sau đây là một số cấu trúc các thanh ghi điển hình:
Trang 32Hình 1.9 Sơ đồ cấu trúc thanh ghi của Pic18F4520 Thanh ghi Status (Status Register)
Bit 7-5 (Unimplemented): mang giá trị “0”
Bit 4 (N): bit xác định dấu(Negative bit) dược sử dụng cho số có dấu(số b
ù 2), nó
được xác dịnh khi kết quả mang dấu âm(ALU MSB=1)
− Giá trị 1: kết quả là âm
− Giá trị 0: kết quả là dươngBit 3 (OV): bít báo tràn(overflow bit) được sử dụng cho số có dấu (số b
− Giá trụ 1: kết quả các phép toán số học và logic là bằng “0”
− Giá trị 0 : kết quả các phép toán khác “0”
Bit 1 (DC): Digit Carry/ borrow bit Sử dụng cho các lệnh ADDWF, A DDLW,
− Giá trụ 1: xảy ra việc thao tác 4 bit thấp
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
17
Vi điều kh iển Pic
− Giá trị 0 : không xảy ra việc thao tác 4 bit thấp
Bit 1 (DC): Carry/ borrow bit Sử dụng cho các lệnh ADDWF, A DDLW,
− Giá trụ 1: xảy ra việc thao tác bit quan trọng
Trang 33− Giá trị 0 : không xảy ra việc thao tác với bit quan trọng.
Các kiểu địa chỉ dữ liệu(Data Addressing Modes)
Có bốn kiểu địư chỉ như sau:
• Địa chỉ có sẵn (Inherent addressing)
• Địa chỉ bằng chữ (Literal addressing)
• Địa chỉ có hướng (Direct addressing)
• Địa chỉ vô hướng (Indirect addressing)
Các chế độ này có chế độ địa chỉ theo hướng khi sử dụng có liên hệ thanh ghi
FSR
Bộ nhớ dữ liệu và cấu trúc lệnh được mở rộng(Data Memory and the
Extended Instruction Set)
Pic 18 có khả năng cho ta mở rộng cấu trúc lệnh nhờ Access Bank và cho
Trang 34Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
18
Vi điều kh iển Pic
Bộ nhớ chương trình Flash (Flash Program Memory)
Đặc điểm bộ nhớ Flash là có khả năng đọc viết và xoá trong thời gian ho
ạt động
dựa vào khoảng điện áp VDD một cách dễ dàng
Tại một thời điểm chúng ta có thể thực hiện đọc một byte, Viết một khối 3
liệu Sẽ có một bộ đếm thời gian khi có hoạt động xoá hoặc viết
Sau đây chúng ta sẽ tìm hiểu một số thuộc tính cơ bản khi thao tác bộ nhớ Flash
Table Reads and Table Writes
Theo thứ tự đọc và viết dữ liệu cho phép vi xử lý di chuyển các byte giữa không
gian bộ nhớ chương trình và dữ liệu trong RAM thông qua: Table Reads an
nhớ của RAM.:
Trang 35Bảng viết hoạt động lưu trữ dữ liệu từ bộ nhớ dữ liệu htông qua đó giữ trong bộ
nhớ chương trình:
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
19
Vi điều kh iển Pic
Control Registers
Có bốn thanh ghi điều khiển:
• EECON1 register
• EECON2 register
• TABLAT (TABLE LATCH ) register
• TBLPTR(TABLE POINTER) registers
Ta đưa ra thanh ghi EECON1 ví dụ:
Bit 7 (EEPGD): bit lựa chọn bộ nhớ Flash và bộ nhớ dữ liệu EEPROM
− Giá trị 1:Cổng vào cho bộ nhớ Flash
− Giá trị 0: Cổng vào cho bộ nhớ EEPROM
Trang 36Bit 6 (CFGS): bit lựa chọn bộ nhớ Flash , bộ nhớ dữ liệu EEPROM hoặ
c thanh
ghi cấu hình (Configuration register):
− Giá trị 1:Cổng vào cho thanh ghi cấu hình
− Giá trị 0: Cổng vào cho bộ nhớ EEPROM hoặc bộ nhớ Flash
Bit 5 (Unimplemented): mang giá trị “0”
Bit 4 (FREE): bit cho phép xóa bộ nhớ Flash theo hàng:
− Giá trị 1: Xoá bộ nhớ chương trình theo địa chỉ hà
ng bởi
TBLPTR trên cơ sỏ lệnh WR kế tiếp
− Giá trị 0: Chỉ thực hiện hoạt động viết
Bit 3 (WRERR): bit cờ để báo lỗi trren bộ nhớ Flash và bộ nhớ
dữ liệu
EEPROM − Giá trị 1: Một hoạt động viết kết thúc sớm
− Giá trị 0: Hoạt động viết được hoàn tất
Bit 2 (WREN): bít cho phép hoạt động viết trên bộ nhớ Flash và bộ nhớ
Bit 1 (WR): bit điều khiển hoạt động viết
− Giá trị 1: Bắt đầu chu kỳ xóa/viết dữ liệu trên bộ nhớ
dữ liệu
EEPROM hoặc bộ nhớ chương trình
− Giá trị 0: Chu kỳ viết trên bộ nhớ EEPROM hoàn tất
Bit 0 (RD): Bit điều khiển hoạt động đọc
− Giá trị 1: Bắt đầu hoạt động đọc dữ liệu EEPROM
− Giá trị 0: Chưa bắt đầu hoạt động đọc dữ liệu
Ta có thể xác định hoặc điều khiển các bit 0 và bit 1 nhờ phần mềm
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
20
Vi điều kh iển Pic
Reading the Flash Program Memory
Khi đọc dữ liệu chúng ta sử dụng cấu trúc lệnh TBLRD để lấy dữ liệu từ
bộ nhớ
tới bộ nhớ RAM Hoạt động theo hình sau:
Trang 37Erasing Flash Program Memory
Việc thực hiện xoá dữ liệu có thể thông qua người lập trình hoặc thông q
thanh ghi EECON1
Writing to Flash Program Memory
Ta có thể thực hiện viết dữ liệu từ bên trong để tải dữ liệu cần thiết tới
Trang 38Flash Program Operation During Code Protection
Phạm Văn Cường - Hoàng Văn Quân Lớp ĐKTĐ1-K49
21
Vi điều kh iển Pic
Bộ nhớ dữ liệu EEPROM (Data EEPROM Memory)
Dữ liệu EEPROM là một mảng bộ nhớ bất biến được phân chia từ bộ nh
hoạt đông thông qua khoảng điên áp VDD
Năm thanh ghi SFRs được sử dụng để đọc và viết dữ liệu bộ nhớ EEPRO
M gồm:
EECON1, EECON2, EEDATA, EEADR
Khi có giao diện tới khối dữ liệu bộ nhớ thì EEDATA nhiệm vụ giữ dữ liệu 8bit để
đọc viết còn thanh ghi EEADR là để chốt địa chỉ EEPROM cho phép truy nhập
Một byte được viết ngay lập tức xoá tai vị trí đó và viết dữ liệu mới, quá trì
nh này
được điều khiển bới bộ đếm thời gian on-Chip
Thanh ghi EEADR (EEADR Register)
Chức năng thanh ghi này dùng dể đưa địa chỉ dữ liệu trong hoạt động đọc/viết
Thanh ghi này độ rộng 8 bit có khả năng quản lý bộnhớ rộng FFh)
EECON1 and EECON2 Registers
Cả hai thanh ghi này dùng để điều khiển truy nhập dữ liệu EEPROM, ho
Trang 39Quá trình đọc dữ liệu nhờ thanh ghi EEDATA, thanh ghi này sẽ giữ giá trị cần đọc
tới khi nó được viết bới người sử dụng Nhưng để đọc dược dữ liệu người s
ử dụng
phải viết dữ liệu lên thanh ghi EEADR, xoá bit điều khiển EEPGD Thuộc thanh gi
EECON1<7>, sau dó set bit điều khiển EECON<0>
Writing to the Data EEPROM Memory
Quá trình viết dữ liệu vào bộ nhớ EEPROM trước tiên là nạp địa chỉ vào thanh ghi
EEADR, sau đó viết dữ liệu lên thanh ghi EEDATA
Kiểm tra lại quá trình viết dữ liệu (Write Verify)
Hoạt đông này phụ thuộc vào từng ứng dụng và nó đảm bảo ta có bài lập trìn
h tốt
Operation During Code-Protect
Protection Against Spurious Write
Using the Data EEPROM
1.2.3 Ngắt (Interrupts)
Dòng Pic18Fxxxx này cung cấp cho người sử dụng nhiều nguồn ngắt và một đăc
Trang 40trưng ưu tiên ngắt là hầu hết các ngắt đều có cả mức ưu tiên cao và thấp Ngắt
ưu tiên
cao ở địa chỉ 0008h, ngắt ưu tiên thấp ở địa chỉ 0018h Những ngắt ưu tiên c
ao thực
hiện ngắt còn các ngắt ưu tiên thấp phải được gọi trong chương trình
Có tất cả mười thanh ghi sử dụng dể điều khiển hoạt dộng ngắt gồm:
Nói chung các nguồn ngắt có 3 bit dể điều khiển hoạt động ngắt;
• Flag bit : để xác định sự kiện ngắt xảy ra
• Enable bit : Cho phép thực hiện ngắt tại địa chỉ Flag bit trỏ tới
• Priority bit : Để chọn mức ưu tiên cho ngắt
Ngoài ra ở các thanh ghi chức năng cụ thể phục vụ cho các ngắt thì có các b