Xem mẫu
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
----------
Đề Tài: Kit Thực Tập Vi Điều Khiển Pic
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 4
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
MỤC LỤC
CHƯƠNG 0 DẪN NHẬP ........................................................................................trang 9
PHẦN I : KHẢO SÁT VI ĐIỀU KHIỂN PIC 16F877A .....................................trang 10
CHƯƠNG I: CẤU TRÚC PHẦN CỨNG CỦA 16F877A ...................................trang 11
1.1 Sơ lượt về vi điều khiển PIC 16F877A...............................................................trang 11
1.2 Sơ lượt về các chân của PIC 16F877A ...............................................................trang 17
1.3 Một số điểm đặc biệt của CPU ...........................................................................trang 17
1.3.1 Dao động..................................................................................................trang 17
1.3.2 Reset ........................................................................................................trang 18
1.3.3 MCLR (Master clear) ..............................................................................trang 18
1.3.4 Interrupts ..................................................................................................trang 19
1.3.5 Chế độ nguồn thấp Sleep (Power down Mode) .......................................trang 20
1.3.6 Bộ định thời giám sát (Watch Dog Timer – WDT).................................trang 20
1.4 Tổ chức bộ nhớ ...................................................................................................trang 21
1.4.1 Bộ nhớ chương trình ................................................................................trang 21
1.4.2 Bộ nhớ dữ liệu .........................................................................................trang 22
1.4.2.1Vùng Ram Đa Mục Đích...............................................................trang 24
1.4.2.2. Vùng thanh ghi chức năng đặt biệt..............................................trang 24
1.4.3. Các thanh ghi chức năng đặc biệt ...........................................................trang 27
1.4.3.1.Thanh ghi trạng thái (Status register) ...........................................trang 27
1.4.3.2. Thanh ghi tùy chọn (Option Reg_Register) ................................trang 28
1.4.3.3. Thanh ghi điều khiển ngắt INTCON ...........................................trang 29
1.4.3.4. Thanh ghi cho phép ngắt ngoại vi 1 ............................................trang 30
1.4.3.5. Thanh ghi cờ của các ngắt ngoại vi 1 ..........................................trang 30
1.4.3.6. Thanh ghi cho phép ngắt ngoại vi 2 ............................................trang 31
1.4.3.7. Thanh ghi cờ của các ngắt ngoại vi 2 ..........................................trang 32
1.4.4. PCL và PCLATH....................................................................................trang 32
1.4.5. Ngăn xếp Stack .......................................................................................trang 33
1.4.6. Định địa chỉ trực tiếp và địa chỉ gián tiếp, thanh ghi INF và FSR .........trang 33
1.5. I/O port ...............................................................................................................trang 34
1.5.1. Port A và thanh ghi TRIS A ...................................................................trang 35
1.5.2. Port B và thanh ghi TRIS B ....................................................................trang 36
1.5.3. Port C và thanh ghi TRIS C ....................................................................trang 38
1.5.4. Port D và thanh ghi TRIS D ...................................................................trang 39
1.5.5. Port E và thanh ghi TRIS E ....................................................................trang 39
CHƯƠNG II: BỘ ĐỊNH THỜI .............................................................................trang 41
2.1. Bộ định thời timer 0 ...........................................................................................trang 41
2.1.1. Giới thiệu ................................................................................................trang 41
2.1.2. Hoạt động của bộ định thời ....................................................................trang 41
2.1.3. Ngắt Timer 0 ...........................................................................................trang 41
2.1.4. Sử dụng Timer 0 với nguồn xung clock ngoài .......................................trang 42
2.1.5. Bộ tiền định tỉ lệ 8 bit của Timer 0 .........................................................trang 42
2.2. Bộ định thời Timer 1..........................................................................................trang 42
2.2.1. Giới thiệu ................................................................................................trang 42
2.2.2. Thanh ghi điều khiển Timer 1 ................................................................trang 43
2.2.3. Chế độ định thời trong hoạt động của Timer 1.......................................trang 43
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 4
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
2.2.4. Chế độ đếm .............................................................................................trang 43
2.2.5. Giao động riêng của Timer 1 ..................................................................trang 44
2.2.6. Ngắt Timer 1 ...........................................................................................trang 44
2.3. Bộ định thời Timer 2..........................................................................................trang 44
2.3.1. Giới thiệu ................................................................................................trang 44
2.3.2. Thanh ghi điều khiển T2CON ................................................................trang 45
2.3.3. Xóa các bộ tỉ lệ .......................................................................................trang 45
2.3.4. Nguồn xung clock cho Timer 2 ..............................................................trang 45
2.3.5. Thanh ghi TMR2 và PR2 .......................................................................trang 46
2.3.6. Tín hiệu báo trạng thái cân bằng ............................................................trang 46
2.3.7. Chế độ ngủ ..............................................................................................trang 46
CHƯƠNG III: MODULE CCP ............................................................................trang 47
3.1. Giới thiệu ...........................................................................................................trang 47
3.2. Thanh ghi điều khiển module CCP ....................................................................trang 47
3.3. Chế độ Capture ..................................................................................................trang 48
3.3.1. Bộ định tỉ lệ của CCP .............................................................................trang 48
3.4. Chế độ Compare ................................................................................................trang 48
3.5. Chế độ điều biến xung PWM .............................................................................trang 49
3.5.1. Chu kỳ PWM ..........................................................................................trang 49
3.5.2.Chu kỳ nhiệm vụ của PWM ....................................................................trang 50
3.5.3. Cài đặt hoạt động cho PWM ..................................................................trang 50
3.5.4. Module MSSP.........................................................................................trang 51
CHƯƠNG IV: BỘ BIẾN ĐỔI ADC 10 BIT ........................................................trang 53
4.1. Giới thiệu module ADC 10 bit...........................................................................trang 53
4.2. Các thanh ghi điều khiển ...................................................................................trang 53
4.3. Hoạt động của Module ADC .............................................................................trang 54
4.4.Thời gian lấy mẫu ...............................................................................................trang 55
4.5. Lựa chọn xung clock cho biến đổi ADC ...........................................................trang 56
4.6. Cấu hình các chân Analog .................................................................................trang 57
4.7. Chuyển đổi ADC................................................................................................trang 57
4.8. Hoạt động của module ADC trong chế độ ngủ..................................................trang 58
4.9. Ảnh hưởng của Reset .........................................................................................trang 58
CHƯƠNG V: ĐIỆN THẾ THAM CHIẾU VÀ CÁC BỘ SO SÁNH ĐIỆN .....trang 59
5.1. Module Comparator ...........................................................................................trang 59
5.1.1. Giới thiệu về module comparator ...........................................................trang 59
5.1.2. Cài đặt chế độ cho bộ so sánh ................................................................trang 59
5.1.3. Nguồn tham chiếu của bộ so sánh ..........................................................trang 61
5.1.3.1. Tín hiệu điện áp tham chiếu ngoại ............................................. trang 61
5.1.3.2. Tín hiệu điện áp tham chiếu nội ..................................................trang 61
5.1.4. Thời gian đáp ứng ...................................................................................trang 61
5.1.5. Tín hiệu ngõ ra của bộ so sánh ...............................................................trang 61
5.1.6. Ngắt của các bộ so sánh..........................................................................trang 62
5.1.7. Hoạt động của các bộ so sánh trong chế độ ngủ.....................................trang 62
5.1.8. Ảnh hưởng của Reset..............................................................................trang 62
5.2. Module điện áp tham chiếu ................................................................................trang 62
5.2.1. Giới thiệu module điện áp tham chiếu....................................................trang 62
5.2.2. Thanh ghi điều khiển CVRCON ............................................................trang 63
5.2.3. Độ chính xác của điện áp tham chiếu .....................................................trang 63
5.2.4. Hoạt động của module VREF trong chế độ ngủ ....................................trang 63
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 5
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
5.2.5. Trạng thái của module khi Reset .........................................................trang 63
5.2.6. Sử dụng module với các mạch ngoài......................................................trang 64
5.3 Giao Tieáp Noái Tieáp........................................................................................ trang 64
5.3.1 Usart ...................... ............................................................................. trang 64
5.3.1.1 Usart baát ñoàng boä ..................................................................... trang 65
5.3.1.2 Truyeàn Döõ Lieäu Qua Chuaån Giao Tieáp Usart Baát Ñoàng Boä ... trang 65
5.3.1.3 Nhaän Döõ Lieäu Qua Chuaån Giao Tieáp Usart Baát Ñoàng Boä ...... trang 66
5.3.2 Usart Ñoàng Boä ...... ............................................................................. trang 68
5.4.2.1 Truyeàn döõ lieäu qua chuaån giao tieáp usart ñoàng boä master mode .... trang 68
5.3.2.2 Nhaän döõ lieäu qua chuaån giao tieáp usart ñoàng boä master mode ....... trang 69
5.3.3 Truyeàn döõ lieäu qua chuaån giao tieáp usart ñoàng boä slave mode.......... trang 69
5.3.4 Nhaän döõ lieäu qua chuaån giao tieáp usart ñoàng boä slave mode............. trang 70
5.4 MSSP......... ...................... ............................................................................. trang 71
5.5 SPI ............ ...................... ............................................................................. trang 71
5.6 I2C ............. ...................... ............................................................................. trang 74
5.6.1 I2C Slave Mode. ... ............................................................................. trang 75
5.6.2 I2C Master Mode . ............................................................................. trang 81
5.7 Coång Giao Tieáp Song Song Psp (Parallel Slave Port) ................................... trang 86
5.8 Caùc Ñaëc Tính Cuûa Oscillator ......................................................................... trang 87
CHƯƠNG VI: TÂP LỆNH SỬ DUNG TRONG CCS ........................................trang 88
PHẦN II: CÁC THÀNH PHẦN CỦA KIT THỰC TÂP PIC 16F877A ......... trang 113
CHƯƠNG I: HIỂN THỊ LED ĐƠN................................................................... trang 114
1.1. Giới thiệu chung ..........................................................................................trang 114
1.2. Mạch nguyên lý ...........................................................................................trang 114
CHƯƠNG II: HIỂN THỊ LED 7 ĐOẠN ............................................................trang 115
2.1. Các khái niệm cơ bản .......................................................................................trang 115
2.2. Kết nối với vi điều khiển .................................................................................trang 116
2.3. Giao tiếp vi điều khiển với nhiều led 7 đoạn ...................................................trang 117
2.4. Lưu đồ giải thuật ..............................................................................................trang 118
2.5.Mạch nguyên lý.................................................................................................trang 119
CHƯƠNG III: ĐÈN GIAO THÔNG ..................................................................trang 120
3.1. Giới thiệu .........................................................................................................trang 120
3.2. Sơ đồ nguyên lý ...............................................................................................trang 120
3.3. Lưu đồ giải thuật ..............................................................................................trang 121
CHƯƠNG IV: LED MA TRẬN ..........................................................................trang 122
4.1. Hiện thị led ma trận..........................................................................................trang 122
4.1.1. Giới thiệu ..............................................................................................trang 122
4.1.2. Led ma trận 8x8 ....................................................................................trang 122
4.2. Phương pháp hiển thị bằng IC chốt .................................................................trang 123
4.2.1. Chốt hàng ..............................................................................................trang 124
4.2.2. Chốt cột.................................................................................................trang 124
4.3. Phương pháp dùng thanh ghi dịch ...................................................................trang 125
4.3.1. Quét hàng ............................................................................................. trang 125
4.3.1.1. Giới thiệu chung về phương pháp quét hàng ............................trang 125
4.3.1.2. Quá trình thực hiện quét hàng ...................................................trang 126
4.3.1.3. Ví dụ ..........................................................................................trang 127
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 6
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
4.3.2. Quét cột.................................................................................................trang 127
4.3.2.1. Giới thiệu chung về phương pháp quét cột ...............................trang 127
4.3.2.2. Quá trình thực hiện quét cột ......................................................trang 127
4.3.2.3. Ví dụ ..........................................................................................trang 127
4.4. Mạch nguyên lý................................................................................................trang 128
CHƯƠNG V: LCD................................................................................................trang 129
5.1. Giới thiệu chung về LCD .................................................................................trang 129
5.1.1. Các thanh ghi ........................................................................................trang 131
5.1.2. Cờ báo bận BF ......................................................................................trang 131
5.1.3. Bộ đếm địa chỉ AC ...............................................................................trang 131
5.1.4. Vùng RAM hiển thị DDRAM ..............................................................trang 132
5.1.5. Vùng ROM chứa ký tự CGROM .........................................................trang 132
5.1.6. Vùng RAM chứa ký tự đồ họa CGRAM..............................................trang 133
5.2. Tập lệnh của LCD ............................................................................................trang 135
5.3. Khởi tạo LCD...................................................................................................trang 137
5.3.1. Mạch khởi tạo bên trong chip HD44780 ..............................................trang 137
5.3.2. Khởi tạo bằng lệnh................................................................................trang 138
5.4. Lưu đồ giải thuật ..............................................................................................trang 139
5.5. Mạch nguyên lý................................................................................................trang 140
CHƯƠNG VI: ADC ..............................................................................................trang 140
6.1. Giới thiệu về module ADC ..............................................................................trang 141
6.1.1. Cơ bản về ADC ....................................................................................trang 141
6.1.2. ADC trong PIC 16F877A .................................................................... trang 142
6.2. Sơ đồ nguyên lý ...............................................................................................trang 142
CHƯƠNG VII: BÀN PHÍM GIAO TIẾP LCD .................................................trang 143
7.1. Keypad và nguyên lý hoạt động ......................................................................trang 143
7.2. Keypad giao tiếp với LCD ................................................................................trang143
7.3. Sơ đồ giải thuật .................................................................................................trang143
CHƯƠNG VIII: EEPROM 24C04 ......................................................................trang 144
8.1 Giới Thiệu .........................................................................................................trang 145
8.2 Hình dạng ..........................................................................................................trang 145
8.3 Sơ đồ cấu tạo .....................................................................................................trang 145
8.4 Sơ đồ chân ......................................................................................................trang 145
8.5 Mạch nguyên lý................................................................................................trang 146
CHƯƠNG IX: ĐO NHIỆT ĐỘ DÙNG LM35 ...................................................trang 147
9.1. Giới thiệu .........................................................................................................trang 147
9.2. Một số đặc tính cơ bản của LM35 ...................................................................trang 147
9.3. Mạch nguyên lý .............................................................................................trang 148
PHẦN III: CÁC BÀI TẬP THỰC HÀNH ........................................................ trang 150
Bài 1: hiển thị trạng thái port trên led ....................................................................trang 151
Bài 2: hiển thị trạng thái các port và thay đổi thời gian delay ................................trang 152
Bài 3: hiển thị ngày tháng năm sinh trên led 7 .......................................................trang 153
Bài 4: hiển thị đồng hồ trên led 7............................................................................trang 154
Bài 5: chương trình đèn giao thông ........................................................................trang 155
Bài 6: chẠy chữ led ma trận ...................................................................................trang 156
Bài 7: hiển thỊ ký tự trên lcd ...................................................................................trang 157
Bài 8: giao tiếp bàn phím số hex hiển thị lcd..........................................................trang 158
Bài 9: điều chỉnh adc hiển thị led đơn ....................................................................trang 159
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 7
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Bài 10: đo nhiệt độ ..................................................................................................trang 160
PHẦN VI: GIẢI CÁC BÀI TẬP THỰC HÀNH................................................trang 161
Bài 1: hiển thị trạng thái port trên led đơn .............................................................trang 162
Bài 2: hiển thị trạng thái các port và thay đổi thời gian delay ................................trang 164
Bài 3: hiển thị ngày tháng năm sinh trên led 7 .......................................................trang 165
Bài 4: hiển thị đồng hồ trên led 7...........................................................................trang 171
Bài 5: chương trình đèn giao thông ........................................................................trang 173
Bài 6: chạy chữ led ma trận ....................................................................................trang 175
Bài 7: hiển thị ký tự trên lcd ...................................................................................trang 178
Bài 8: giao tiếp bàn phím số hex hiển thị lcd..........................................................trang 182
Bài 9: điều chỉnh adc hiển thị led đơn ....................................................................trang 186
Bài 10: đo nhiệt độ ..................................................................................................trang 187
Bài 11: quét bàn phím hiển thị led 7 đoạn ............................................................. trang 191
Bài 12: giao tiếp eeprom 24c04 ..............................................................................trang 196
PHẦN VI: PHỤ LỤC............................................................................................trang 198
Phụ lục 1: 16F877A ................................................................................................trang 199
Phụ lục 2: DEFS_16F877A ....................................................................................trang 205
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 8
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
I. ĐẶT VẤN ĐỀ:
Ngày nay với sự phát triển của công nghiệp vi điện tử, kỹ thuật số các hệ thống điều
khiển dần được tự động hóa. Với các kỹ thuật tiên tiến như vi xử lý, vi mạch số…được
ứng dụng vào lãnh vực điều khiển, thì các hệ thống điều khiển cơ khí thô sơ, với tốc độ
xử lý chậm chạm ít chính xác được thay thế bằng các hệ thống điều khiển tự động với
các lệnh chương trình đã được thiết lập trước.
Để có thể học tốt môn vi điều khiển chúng ta phải có thiết bị học tập một trong
những thiết bị đó là kit thực tập, và được sự đồng ý của khoa Điện Tử - Tin Học Trường
Cao Đẳng Kỹ Thuật Cao Thắng. Nhóm chúng em quyết định làm đề tài tốt nghiệp: “Kit
Thực Tập Vi Điều Khiển Pic”.
II. GIỚI HẠN ĐỀ TÀI:
Với thời gian gần năm tuần thực hiện đề tài cũng như trình độ chuyên môn có hạn,
chúng em đã cố gắng hết sức để hoàn thành đồ án này nhưng chỉ giải quyết được những
vấn đề sau:
Led đơn.
Hiển thị Led 7 đoạn.
Đèn giao thông .
Chạy chữ led ma trận.
Hiển thị LCD.
ADC
Giao tiếp bàn phím.
Đo nhiệt độ dùng LM35.
III. MỤC ĐÍCH NGHIÊN CỨU :
Mục đích trước hết khi thực hiện đề tài này là để hoàn tất chương trình môn học để
đủ điều kiện ra trường. Cụ thể khi nghiên cứu đề tài là chúng em muốn phát huy những
thành quả ứng dụng của vi điều khiển để tạo ra những sản phẩm cho các bạn sinh viên
khóa sau. Không những thế nó còn là tập tài liệu cho các bạn sinh viên tham khảo
Ngoài ra quá trình thực hiện đề tài là một cơ hội để chúng em tự kiểm tra lại những
kiến thức đã học ở trường. Đồng thời phát huy tính sáng tạo, khả năng giải quyết một vấn
đề theo nhu cầu đặt ra. Và đây cũng là dịp để chúng em khẳng định mình trước khi ra
trường để tham gia vào các hoạt động sản xuất của xã hội.
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 9
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 10
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.1 SƠ LƯỢC VỀ VI ĐIỀU KHIỂN PIC16F877A
Ñaây laø vi ñieàu khieån thuoäc hoï PIC16Fxxx vôùi taäp leänh goàm 35 leänh coù ñoä daøi
14 bit. Moãi leänh ñeàu ñöôïc thöïc thi trong moät chu kì xung clock. Toác ñoä hoaït ñoäng toái
ña cho pheùp laø 20 MHz.
PIC 16F877A là dòng PIC phổ biến nhất hiện nay (đủ 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). Cấu trúc tổng quát của PIC16F877A
như sau:
- 8 K Flash ROM.
- 368 Bytes RAM.
- 256 Bytes EEPROM.
- 5 ports (A, B, C, D, E) vào ra với tín hiệu điều khiển độc lập.
- 2 bộ định thời 8 bits (Timer 0 và Timer 2).
- Một bộ định thời 16 bits (Timer 1) có thể hoạt động trong chế độ tiết
kiệm năng lượng (SLEEP MODE) với nguồn xung Clock ngoài.
- 2 bô CCP( Capture / Compare/ PWM).
- 1 bộ biến đổi AD 10 bits, 8 ngõ vào.
- 2 bộ so sánh tương tự (Compartor).
- 1 bộ định thời giám sát (WatchDog Timer).
- Một cổng song song 8 bits với các tín hiệu điều khiển.
- Một cổng nối tiếp.
- 15 nguồn ngắt.
- Có chế độ tiết kiệm năng lượng.
- Nạp chương trình bằng cổng nối tiếp ICSP(In-Circuit Serial Programming)
- Được chế tạo bằng công nghệ CMOS
- 35 tập lệnh có độ dài 14 bits.
- Tần số hoạt động tối đa 20MHz.
CAÙC ÑAËC TÍNH NGOAÏI VI BAO GOÀM CAÙC KHOÁI CHÖÙC NAÊNG SAU
Timer0: boä ñeám 8 bit vôùi boä chia taàn soá 8 bit.
Timer1: boä ñeám 16 bit vôùi boä chia taàn soá, coù theå thöïc hieän chöùc naêng ñeám
döïa vaøo xung clock ngoaïi vi ngay khi vi ñieàu khieån hoaït ñoäng ôû cheá ñoä
sleep.
Timer2: boä ñeám 8 bit vôùi boä chia taàn soá, boä postcaler.
Hai boä Capture/so saùnh/ñieàu cheá ñoä roâng xung.
Caùc chuaån giao tieáp noái tieáp SSP (Synchronous Serial Port), SPI vaø I2C.
Chuaån giao tieáp noái tieáp USART vôùi 9 bit ñòa chæ.
Coång giao tieáp song song PSP (Parallel Slave Port) vôùi caùc chaân ñieàu
khieån RD, WR,
CS ôû beân ngoaøi.
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 11
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Caùc ñaëc tính Analog:
8 keânh chuyeån ñoåi ADC 10 bit.
Hai boä so saùnh.
Beân caïnh ñoù laø moät vaøi ñaëc tính khaùc cuûa vi ñieàu khieån nhö:
Boä nhôù flash vôùi khaû naêng ghi xoùa ñöôïc 100.000 laàn.
Boä nhôù EEPROM vôùi khaû naêng ghi xoùa ñöôïc 1.000.000 laàn.
Döõ lieäu boä nhôù EEPROM coù theå löu tröõ treân 40 naêm.
Khaû naêng töï naïp chöông trình vôùi söï ñieàu khieån cuûa phaàn meàm. Naïp ñöôïc
chöông trình ngay treân maïch ñieän ICSP (In Circuit Serial Programming)
thoâng qua 2 chaân. Watchdog Timer vôùi boä dao ñoäng trong.
Chöùc naêng baûo maät maõ chöông trình.
Cheá ñoä Sleep.
Coù theå hoaït ñoäng vôùi nhieàu daïng Oscillator khaùc nhau.
1.2 SƠ LƯỢC VỀ CÁC CHÂN CỦA PIC16F877A
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 12
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 13
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 14
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 15
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
PIC16F877A là họ vi điều khiển có 40 chân, mỗi chân có một chức năng khác nhau.
Trong đó có một số chân đa công dụng: mỗi chân có thể hoạt động như 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ác thiết bị ngoại vi.
SƠ ĐỒ KHỐI PIC16F877A
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 16
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.3 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:
LP low-power crystal
XT crystal/resonatpor
HS high-speed crystal/resonatpor
RC resistor/capacitor
Trong các chế độ LP, XT và HS chúng ta
sử dụng thạch anh dao động nố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ẽ tang tính ổn Chế độ dao động RC được sử dụng như
định của dao động nhưng cũng làm tăng một giải pháp tiết kiệm trong các ứng
thời gian khởi độ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 → Chu kỳ dao động của thạch anh là Tosc = 1/Fosc= 1/10*10 (s)
6
Chu kỳ máy: T_instruction = 4*Tosc = 4/10*10 (s) = 0.4 µs = 400 ns
6
1.3.2 RESET
PIC16F877A có thể bị reset bởi nhiều nguyên nhân khác nhau như:
Power-on Reset (POR)
MCLR Reset during sleep
MCLR Reset during normal operation
WDT Reset (during normal operation)
WDT Wake-up (during sleep)
Brown-out Reset (BOR)
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 17
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.3.3 MCLR
PIC16F877A có một bộ lọc nhiễu ở phần MCLR . Bộ lọc nhiễu này sẽ phát hiện và
bỏ qua các tín hiệu nhiễu. Ngõ vào MCLR trên chân 4 của PIC16F877A. Khi đưa chân
này xuống thấp thì các thanh ghi bên trong VĐK sẽ được tải những giá trị thích hợp để
khởi động lại hệ thống. (Lưu ý: Reset do WDT không làm chân MCLR xuống mức thấp).
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 18
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.3.4 INTERRUPTS
PIC16F877A có nhiều nguồn ngắt khác nhau. Đây là một số ngắt tiêu biểu :
- Ngắt ngoài xảy ra trên chân INT.
- Ngắt do Timer0.
- Ngắt do Timer1.
- Ngắt do Timer2.
- Ngắt do thay đổi trạng thái trên các chân PortB.
- Ngắt so sánh điện thế.
- Ngắt do Port song song.
- Ngắt USART.
- Ngắt nhận dữ liệu.
- Ngắt truyền dữ liệu .
- Ngắt chuyển đổi ADC.
- Ngắt màn hình LCD.
- Ngắt hoàn tất ghi EEPROM.
- Ngắt module CCP.
- Ngắt Module SSP.
* Các thanh ghi chức năng ngắt: INTCON, PIE1, PIR1, PIE2, PIR2 (các thanh ghi
này sẽ được nghiên cứu ở các phần sau).
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 19
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
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ục hoạt động bit
PD (STATUS ) được reset về không, bit TO được set, oscillator ngư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ện các
bước sau trước khi VĐK thực thi lệnh sleep.
• Đưa tất cả các chân về trạng thái V hoặc V
DD SS.
• Cần đảm bảo rằng không có mạch ngoại vi nào được điều khiển bởi dòng
điện của VĐK vì dòng điện nhỏ không đủ khả năng cung cấp cho các mạch
ngoại vi hoạt động.
• Tạm ngưng hoạt động của khối A/D và không cho phép các xung clock bên
ngoài tác dụng vào VĐK.
• Để ý chức năng điện trở kéo lên của PORTB.
• Pin MCLR 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ạy nế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ạn phả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ểm tra một chân input, nếu
nó lên mức cao thì Pic16f877A sẽ tiếp tục kiểm tra một chân input thứ hai có lên mức cao
hay không, nếu chân input thứ hai không lên mức cao, con Pic sẽ ngồi đó chờ và nó sẽ
chỉ thoát ra khỏi chỗ ngồi của nó nếu chân input 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 đều tố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ẹt và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 vi xử lí Pic có một mạch RC, mạch này cung cấp 1 xung Clock độc lậ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 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 Pic16F877A bị kẹt không thể thoát ra khỏi tình trạng hiện tại thì WDT vẫn tiế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 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
• Thứ nhất, cần thời gian bao lâu để reset WDT ?
• Thứ hai, làm sao xoá WDT ?
• Cuối cùng, chúng ta phải nói cho Pic biết chương trình cho phép WDT hoạt động.
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 20
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.4 TỔ CHỨC BỘ NHỚ
Caáu truùc boä nhôù cuûa vi ñieàu khieån PIC16F877A bao goàm boä nhôù chöông trình
(Program memory) vaø boä nhôù döõ lieäu (Data Memory).
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 chia là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.
Boä nhôù chöông trình cuûa vi ñieàu khieån PIC16F877A laø boä nhôù flash, dung
löôïng boä nhôù 8K word (1 word = 14 bit) vaø ñöôïc phaân thaønh nhieàu trang (töø page0
ñeán page 3). Nhö vaäy boä nhôù chöông trình coù khaû naêng chöùa ñöôïc 8*1024 = 8192
leänh (vì moät leänh sau khi maõ hoùa seõ coù dung löôïng 1 word (14 bit).
Ñeå maõ hoùa ñöôïc ñòa chæ cuûa 8K word boä nhôù chöông trình, boä ñeám chöông
trình coù dung löôïng 13 bit (PC). Khi vi ñieàu khieån ñöôïc reset, boä ñeám
chöông trình seõ chæ ñeán ñòa chæ 0000h (Reset vector). Khi coù ngaét xaûy ra, boä ñeám
chöông trình seõ chæ ñeán ñòa chæ 0004h (Interrupt vector).
Boä nhôù chöông trình khoâng bao goàm:
Boä nhôù stack vaø khoâng ñöôïc ñòa chæ hoùa bôûi boä ñeám chöông trình. Boä nhôù stack
seõ ñöôïc ñeà caäp cuï theå trong phaàn sau.
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 21
- Đồ Án Tốt Nghiệp Khóa 2006-2009 GVHD: Thạc Sỹ LÊ ĐÌNH KHA
1.4.2 Bộ Nhớ Dữ Liệu:
Boä nhôù döõ lieäu cuûa PIC laø boä nhôù EEPROM ñöôïc chia ra laøm nhieàu bank. Ñoái
vôùi PIC16F877A boä nhôù döõ lieäu ñöôïc chia ra laøm 4 bank. Moãi bank coù dung löôïng 128
byte, bao goàm caùc thanh ghi coù chöùc naêng ñaëc bieät SFG (Special Function Register)
naèm ôû caùc vuøng ñòa chæ thaáp vaø caùc thanh ghi muïc ñích chung GPR (General Purpose
Register) naèm ôû vuøng ñòa chæ coøn laïi trong bank. Caùc thanh ghi SFR thöôøng xuyeân
ñöôïc söû duïng (ví duï nhö thanh ghi STATUS) seõ ñöôïc ñaët ôû taát caø caùc bank cuûa boä nhôù
döõ lieäu giuùp thuaän tieän trong quaù trình truy xuaát vaø laøm giaûm bôùt leänh cuûa chöông
trình. Sô ñoà cuï theå cuûa boä nhôù döõ lieäu PIC16F877A nhö sau:
Ngô Ngọc Huynh & Nguyễn Duy Hiến trang 22
nguon tai.lieu . vn