Hiện nay, ngành kỹ thuật điện tử và công nghệ thông tin tiến bộ không ngừng. Chúng đang ngày càng phát triển và được ứng dụng trong tất cả các mặt của đời sống. Các thiết bị điện tử dùng Vi Điều Khiển được sử dụng rộng rãi khắp trong các ứng dụng tự động. Nó giúp chúng ta trong mọi công việc cũng như giải trí. Các bộ Vi Điều Khiển ngày càng hiện đại, tốc độ xử lý nhanh hơn, và có ứng dụng rộng hơn.
Một trong những ứng dụng quan trọng của Vi Điển Khiển đó là dùng trong đo lường và điều khiển. Nhờ các loại cảm biến, ứng dụng của đo lường bằng Vi Điều Khiển không chỉ giới hạn trong các đại lượng điện mà còn mở rộng ra các tín hiệu không phải điện. Sử dụng Vi Điều Khiển chúng ta thu thập các đại lượng cần đo dễ dàng hơn, có thể xử lý ngay các đại lượng đó và đưa ra được những kết quả như mong muốn.
Với tầm quan trọng của đo lường bằng Vi Điều Khiển nên, em đã nhận đề tài này làm đồ án tốt nghiệp để nghiên cứu, và hiểu biết thêm về Vi Điều Khiển và các ứng dụng hay của nó trong cuộc sống thường ngày của chúng ta.
Trong quá trình làm đồ án tốt nghiệp, do sự hạn chế về thời gian, tài liệu và trình độ có hạn nên không tránh khỏi có thiếu sót. Em rất mong được sự đóng góp ý kiến của thầy cô và các bạn để đồ án tốt nghiệp của em được hoàn thiện hơn.
Em xin gửi lời cảm ơn chân thành đến các thầy cô trong Khoa Điện-Điện tử, đặc biệt là thầy Nguyễn Văn Dương đã giúp đỡ em hoàn thành tốt đồ án này.
80 trang |
Chia sẻ: ngtr9097 | Lượt xem: 1862 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đồ án Thiết kế và thi công hệ thống điều khiển nhiệt độ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC DÂN LẬP HẢI PHÒNG
KHOA ĐIỆN - ĐIỆN TỬ
NGÀNH ĐIỆN TỬ - VIỄN THÔNG
LUẬN VĂN TỐT NGHIỆP.
ĐỀ TÀI: Thiết kế và thi công hệ thống điều khiển nhiệt độ.
Sinh viên thực hiện: ĐỖ VĂN ĐẠT.
Giáo viên hướng dẫn: NGUYỄN VĂN DƯƠNG.
LỜI MỞ ĐẦU
Hiện nay, ngành kỹ thuật điện tử và công nghệ thông tin tiến bộ không ngừng. Chúng đang ngày càng phát triển và được ứng dụng trong tất cả các mặt của đời sống. Các thiết bị điện tử dùng Vi Điều Khiển được sử dụng rộng rãi khắp trong các ứng dụng tự động. Nó giúp chúng ta trong mọi công việc cũng như giải trí. Các bộ Vi Điều Khiển ngày càng hiện đại, tốc độ xử lý nhanh hơn, và có ứng dụng rộng hơn.
Một trong những ứng dụng quan trọng của Vi Điển Khiển đó là dùng trong đo lường và điều khiển. Nhờ các loại cảm biến, ứng dụng của đo lường bằng Vi Điều Khiển không chỉ giới hạn trong các đại lượng điện mà còn mở rộng ra các tín hiệu không phải điện. Sử dụng Vi Điều Khiển chúng ta thu thập các đại lượng cần đo dễ dàng hơn, có thể xử lý ngay các đại lượng đó và đưa ra được những kết quả như mong muốn.
Với tầm quan trọng của đo lường bằng Vi Điều Khiển nên, em đã nhận đề tài này làm đồ án tốt nghiệp để nghiên cứu, và hiểu biết thêm về Vi Điều Khiển và các ứng dụng hay của nó trong cuộc sống thường ngày của chúng ta.
Trong quá trình làm đồ án tốt nghiệp, do sự hạn chế về thời gian, tài liệu và trình độ có hạn nên không tránh khỏi có thiếu sót. Em rất mong được sự đóng góp ý kiến của thầy cô và các bạn để đồ án tốt nghiệp của em được hoàn thiện hơn.
Em xin gửi lời cảm ơn chân thành đến các thầy cô trong Khoa Điện-Điện tử, đặc biệt là thầy Nguyễn Văn Dương đã giúp đỡ em hoàn thành tốt đồ án này.
Hải phòng, 8 tháng 7 năm2009
Sinh viên thực hiện
ĐỖ VĂN ĐẠT
Mục lục
Chương 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN 6
1.1. Bộ vi điều khiển 8051 7
1.2. Bộ vi điều khiển 8052 13
1.3. Bộ vi điều khiển 8031 13
Chương 2:VI ĐIỀU KHIỂN PIC16F877A 15
2.1. Tổng quan về thiết bị 15
2.1.1. Hình dạng và bố trí chân của Pic16F877A 15
2.1.2. Đặc tính nổi bật của bộ xử lý 15
2.1.3. Sơ đồ khối bộ vi điều khiển Pic16F877A 16
2.2. Mô tả các chân chức năng của Pic16F877A 17
2.3. Tổ chức bộ nhớ 19
2.3.1. Tổ chức bộ nhớ chương trình Flash 19
2.3.2. Tổ chức bộ nhớ dữ liệu RAM 21
2.3.3. Bộ nhớ dữ liệu EEPROM 24
2.3.4. Đọc và ghi vào bộ nhớ dữ liệu EEPROM .16
2.3.5. Đọc và ghi chương trình FLASH .26
2.4. Cổng vào ra 26
2.4.1. Cổng A và thanh ghi TRISA 27
2.4.2. Cổng B và thanh ghi TRISB 28
2.4.3. Cổng C và thanh ghi TRISC 29
2.4.4. Cổng D và thanh ghi TRISD 31
2.4.5. Cổng E và thanh ghi TRISE 31
2.5. Các bộ Timer của chip. 33
2.5.1. Bộ Timer0 33
2.5.2. Bộ Timer1 36
2.5.3. Bộ Timer2 39
2.6. Bộ chuyển đổi tương tự sang số. 41
2.6.1. Bộ chuyển đổi tương tự sang số 41
2.6.2. Lựa chọn tốc độ chuyển đổi. 43
2.7. Các ngắt của PIC16F877 44
2.8. So sánh với Vi Điều Khiển 8051 44
Chương 3:THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ 45
3.1. Sơ đồ khối tổng quát. 45
3.2. Khối cảm biến. 46
3.3. Khối chuyển đổi tương tự sang số 47
3.4. Khối điều khiển. 52
3.5. Khối chuyển đổi số sang tương tự. 52
3.6. Khối điều khiển thyristor. 54
3.6.1. Sơ đồ cấu trúc 54
3.6.2. Nguyên tắc điều khiển 55
3.6.3. Sơ đồ nguyên lý 56
3.7. Khối hiển thị LCD. 57
3.7.1. Các chân chức năng. 58
3.7.2. Sơ đồ khối của HD44780. 59
3.7.3. Tập lệnh của LCD. 63
3.8. Sơ đồ mạch hệ thống điều khiển nhiệt độ. 69
3.9. Phần mềm điều khiển 70
3.9.1. Lưu đồ thuật toán. 70
3.9.2. Chương trình. 72
Kêt luân 77
Tài liệu tham khảo 78
Chương 1
TỔNG QUAN VỀ VI ĐIỀU KHIỂN
Có 4 bộ vi điều khiển 8 bit chính. Đó là 6811 của Motorola, 8051 của Intel, z8 của Xilog và Pic 16 của Microchip Technology. Mỗi một kiểu loại trên đây đều có một tập lệnh và thanh ghi riêng duy nhất, nếu chúng đều không tương thích lẫn nhau. Cũng có những bộ vi điều khiển 16 bit và 32 bit được sản xuất bởi các hãng sản xuất chíp khác nhau. Với tất cả những bộ vi điều khiển khác nhau thì tiêu chuẩn để lựa chọn các bộ vi điều khiển là:
*) Đáp ứng được nhu cầu tính toán của bài toán một cách hiệu quả về mặt giá thành và đầy đủ chức năng có thể nhìn thấy được. Trong khi phân tích các nhu cầu của một dự án dựa trên bộ vi điều khiển chúng ta phải biết bộ vi điều khiển nào là 8 bit, 16 bit hay 32 bit có thể đáp ứng tôt nhất nhu cầu của bài toán một cách hiệu quả. Nhứng tiêu chuẩn đó là:
- Tốc độ: tốc độ lớn nhất mà vi điều khiển hỗ trợ lạ bao nhiêu.
- Kiểu đóng vỏ: Đóng vỏ kiểu DIP 40 chân hay QFP. Đây là yêu cầu quan trọng đối với yêu cầu về không gian, kiểu láp ráp và tạo mẫu thử cho sản phẩm cuối cùng.
- Công suất tiêu thụ: Điều này đặc biệt khắt khe đối với các sản phẩm dùng pin, ắc quy.
- dung lượng bộ nhớ Rom và Ram trên chíp.
- Số chân vào ra và bộ định thời trên chíp.
- Khả năng dễ dàng nângh cấp cho hiệu suất cao hoặc giảm công suất tiêu thụ.
- Giá thành cho một đơn vị: Điều này quan trọng quyết định giá thành sản phẩm mà một bộ vi điều khiển được sử dụng.
*) Cóp sẵn các công cụ phát triển phần mềm như các trình biên dịch, trình hợp ngữ và gỡ rối.
*) Nguồn các bộ vi điều khiển có sẵn nhiều và tin cậy. Khả năng sẵn sàng đáp ứng về số lượng trong hiện tại tương lai. Hiện nay các bộ vi điều khiển 8 bit họ 8051 là có số lượng lớn nhất các nhà cung cấp đa dạng như Intel, Atmel, Philip…
1.1. Bộ vi điều khiển 8051
Vào năm 1981 hãng Intel giới thiệu một số bộ vi điều khiển được gọi là 8051. Bộ vi điều khiển này có 128 byte RAM, 4K byte ROM trên chíp, hai bộ định thời, một cổng nối tiếp và 4 cổng (đều rộng 8 bit) vào ra tất cả được đặt trên một chíp. Lúc ấy nó được coi là một ‘hệ thống trên chíp’. 8051 là một bộ xử lý 8 bit có nghĩa là CPU chỉ có thẻ làm việc với 8 bit dữ liệu tại một thời điểm. Dữ liệu lớn hơn 8 bit được chia ra thành các dữ liệu 8 bit để cho xử lý. 8051 có tất cả 4 cổng vào ra I/O mỗi cổng rộng 8 bit (hình vẽ). Mặc dù 8051 có một ROM trên chíp cực đại là 64Kbyte, nhưng các nhà sản xuất lúc đó đã xuất xưởng chỉ với 4Kbyte Rom trên chíp.
8051 đã trở nên phổ biến sau khi Intel cho phép các nhà sản xuất khác nhau sản xuất và bán bất kỳ dạng biến thể nào của 8051 mà họ thích với điều kiện họ phải để lại mã tương thích với 8051. Điều này dẫn đến sự ra đời nhiều phiên bản của 8051 với các tốc độ khác nhau và dung lượng Rom trên chíp khác nhau. Điều này quan trọng là mặc dù có nhiều biến thể khác nhau của 8051 về tốc độ và dung lượng nhớ ROM trên chíp nhưng tất cả chúng đều tương thích với 8051 ban đầu về các lệnh. Điều này có nghĩa là nếu ta viết chương trình cho một phiên bản nào đó thì nó cũng sẽ chạy với mọi phiên bản bất kỳ khác mà không phân biệt nó từ hãng sản xuất nào.
Bảng 1.1. Các đặc tính của 8051 đầu tiên.
Đặc tính
Số lượng
ROM trên chíp
RAM
Bộ định thời
Các chân vào ra
Cổng nối tiếp
Nguồn ngắt
4Kbyte
128 byte
2
32
1
6
Bộ vi điều khiển 8051 là thành viên đầu tiên của họ 8051, hãng Intel ký hiệu nó là MSC51. Bảng trên là các đặc tính của họ 8051.
COUNTER INPUTS
OSC
INTERRUPT
CONTROL
4 I/O
PORTS
BUS
CONTROL
SERIAL
PORT
EXTERNAL
INTERRUPTS
CPU
ON - CHIP
RAM
ETC
TIMER 0
TIMER 1
ADDRESS/DATA
TXD
RXD
P0
P1
P2
P3
Hình 1.1. Bố trí bên trong của 8051
Mô tả chân của 8051như hình 1.2. Các thành viên của họ 8051( ví dụ 8751, 89C51, DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP dạng vỏ dẹp vuông QFP và dạng chip không có chân đỡ LLC thì chúng đều có 40 chân cho các chức năng khác nhau như vào ra I/O, đọc , ghi , địa chỉ, dữ liệu và ngắt. Cần lưu ý rằng một số hãng cung cấp phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên, vì hầu hết các nhà phát triển chính sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập chung mô tả phiên bản này.
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
RST
P0.0 (AD0)
Vcc
1
2
3
5
6
4
7
8
9
11
12
10
13
14
15
17
18
16
19
20
40
39
38
35
37
34
33
32
30
29
31
28
27
26
24
23
25
22
21
8051
(8031)
P0.1 (AD1)
P0.2 (AD2)
P0.4 (AD4)
P0.5 (AD5)
P0.3 (AD3)
PSEN
P0.6 (AD6)
P2.5 (A13)
P2.3 (A11)
P2.1 (A9)
P2.7 (A15)
P2.4(A12)
P2.6 (A14)
P2.0 (AB)
P2.2 (A10)
(RXD) P3.0
(TXD) P3.1
(NT0) P3.2
(NT1) P3.3
(T0) P3.4
(T1) P3.5
(WR) P3.6
(RD) P3.7
XTAL2
XTAL1
GND
P0.6 (AD6)
EA/CPP
ALE/PROG
36
Hình 1.2. Sơ đồ chân của 8051
Từ hình 1.2. ta thấy trong 40 chân có 32 chân dùng cho các cổng P0, P1, P2, P3 với mỗi cổng có 8 chân. Các chân còn lại dành cho nguồn Vcc, đất GND, các chân dao động XTAL1 và XTAL2, khởi động lại RST cho phép chốt địa chỉ ngoài , cho ngắt cất chương trình . Trong 8 chân này thì 6 chân Vcc, GND, XTAL1, XTAL2, RST và được các họ 8031 và 8051 sử dụng. Hay nói cách khác là chúng phải được nối để cho hệ thống làm việc mà không cần biết bộ vi điều khiển thuộc họ 8051 hay 8031. Còn chân và chân ALE được sử dụng trong các hệ thống dựa trên 8031.
Chân Vcc và chân GND tương ứng với chân số 40 và chân số 20 cung cấp nguồn (+5V) và nối mass.
Chân XTAL1 (chân 19) và XTAL2 (chân 18): 8051 có bộ dao động trên chíp nhưng nó yêu cầu có một xung đồng hồ ngoài để chạy nó. Bộ dao động thạch anh được nối với XTAL1 và XTAL2 cùng hai tụ điện có giá trị 30pF. Một phía tụ được nối xuống đất như hình 1.3.
Cần phải lưu ý rằng có nhiều tốc độ khác nhau của họ 8051. Tốc độ được coi như là tần số cực đại của bộ giao động được nối tới chân XTAL. Ta có thể sử dụng một nguồn tần số khác dao động thạch anh chẳng hạn như bộ dao động TTL thì nó sẽ được nối tới chân XTAL1 còn chân XTAL2 để hở như hình 1.4.
C2
C1
30pF
XTAL2
XTAL1
GND
XTAL2
XTAL1
GND
NC
EXTERRNAL
OSCILLATAOR
SIGNAL
Hình 1.3. XTAL nối với 8051 Hình 1.4. XTAL nối với dao đông ngoài
Chân RST: Chân số 9 là chân tái lập RESET. Nó là chân đầu vào có mức tích cực cao. Khi cấp xung cao tới chân này thì bộ vi điều khiển sẽ tái lập và kết thúc mọi hoạt động. Nó có thể coi như sự tái bật nguồn.
Vcc
Vcc
10mF
8.2K
RST
30mF
X2
31
EA/Vpp
19
9
18
+
30mF
31
9
EA/Vpp
X1
X1
X2
RST
8.2K
10mF
11.0592 MHz
Hình 1.5. Mạch tái bật nguồn RESET
Hình 1.6. Mạch tái bật nguồn với Debounce.
Muốn mạch RESET làm việc có hiệu quả thì nó phải có tối thiểu 2 chu kì máy. Hay nói cách khác, xung cao phải kéo dài tối thiểu 2 chu kì máy trước khi nó xuống thấp.
Chân (là chân IN): Truy cập bộ nhớ ngoài, chân số 31 trên vỏ chíp như 8751, 89C51 hoặc DS5000 thì chân được nối với nguồn Vcc. Trường hợp không có ROM trên chíp như 8031 và 8051 thì mã chương trình được lưu cất ở bộ nhớ ngoài, khi đó chân được nối đất. Như vậy chân này không bao giờ được để hở.
Chân là chân có chức năng cho phép lưu chương trình. Ở hệ thống 8031, khi chương trình cất ở bộ nhớ ROM ngoài thì chân này được nối tới chân OE của ROM.
ALE cho phép chốt địa chỉ là chân có mức tích cực cao. Khi nối 8031 tới bộ nhớ ngoài thì cổng 0 cũng được cấp địa chỉ và dữ liệu. Hay nói cách khác, 8031 dồn địa chỉ và dữ liệu qua cổng 0 để tiết kiệm số chân. Chân ALE được sử dụng để phân kênh địa chỉ và dữ liệu bằng cách nối tới chân G của của chíp 73LS373.
Nhóm chân cổng vào ra I/O: bốn cổng P0, P1, P2, P3 đều có 8 chân và tạo thành cổng 8 bít. Tất cả các cổng khi RESET đều được cấu hình làm cổng ra. Để làm đầu vào thì cần được lập trình.
Các cổng bình thường là cổng ra. Cổng P0 có thể vừa làm đầu ra, vừa làm đầu vào cổng P0 từ chân 32 đến 39 phải được nối với điện trở kéo 10K bên ngoài. Cổng P1 cũng có 8 chân, từ chân 1 đến chân 8, và có thể sử dụng làm đầu vào hoặc ra. Khác với cổng P0, cổng P1 không cần đến điện trở kéo bên ngoài vì nó đã có điện trở kéo bên trong. Cổng P2 cũng có 8 chân từ chân 21đến 28, và có thể sử dụng làm đầu vào hoặc ra. Cũng giống như cổng P1, cổng P2 không cần điện trở kéo vì bên trong đã có các điện trở kéo. Cổng P3 có 8 chân từ chân 10 đến chân 17. Cổng này có thể sử dụng làm đầu vào hoặc ra. Cũng như chân P1và P2, cổng P3 cũng không cần điện trở kéo.
Bảng 1.2. Chức năng các chân cổng P3.
Bít cổng P3
Chức năng
Chân số
P3.0
P3.1
P3.2
P3.3
P3.4
P3.5
P3.6
P3.7
Nhận dữ liệu (RXD)
Phát dữ liệu (TXD)
Ngắt 0(INT0)
Ngắt 1(INT1)
Bộ định thời 0 (TO)
Bộ định thời 1(T1)
Ghi (WR)
Đọc (RD)
10
11
12
13
14
15
16
17
Có hai bộ vi điều khiển thành viên khác của họ 8051 là 8052 và 8031.
1.2. Bộ vi điều khiển 8052
Bộ vi điều khiển 8052 là thành viên khác của họ 8051, 8052 có tất cả các đặc tính chuẩn của 8051 ngoài ra nó có thêm 128 byte RAM và một bộ định thời nữa. Hay nói cách khác là 8052 có 256 byte RAM và 3 bộ định thời, nó cũng có 8K byte ROM trên chíp thay vì 4K byte như 8051.
Bảng 1.3. So sánh các đặc tính của các thành viên họ 8051.
Đặc tính
8051
8052
8031
ROM trên chíp
4K byte
8K byte
OK
RAM
128 byte
256 byte
128 byte
Bộ định thời
2
3
2
Chân vào - ra
32
32
32
Cổng nối tiếp
1
1
1
Nguồn ngắt
6
8
6
Qua bảng trên ta thấy thì 8051 là tập con của 8052, nên mọi chương trình viết cho 8051 đều chạy được trên 8052 nhưng điều ngược lại là không đúng.
1.3. Bộ vi điều khiển 8031
Một thành viên khác của 8051 là chíp 8031. Chíp này không có ROM trên chíp nên để sử dụng chíp này ta phải bổ sung ROM ngoài cho nó, ROM ngoài phải chứa chương trình mà 8031 sẽ nạp và thực hiện. So với 8051 mà chương trình được chứa trong ROM trên chíp bị giới hạn bởi 4K byte, còn ROM ngoài chứa chương trình được gắn vào 8031 thì có thể lớn đến 64K byte. Khi bổ xung cổng, như vậy chỉ còn lại hai cổng để thao tác. Để giải quyết vấn đề này ta có thể bổ xung cổng vào ra cho 8031 bằng cách phối ghép 8031 với bộ nhớ và cổng vào ra chẳng hạn với chíp 8255. Ngoài ra còn có các phiên bản khác nhau về tốc độ của 8031 từ các hãng sản xuất khác nhau.
Bảng 1.4. Các phiên bản của 8051 từ Atmel
Số linh kiện
ROM
RAM
Chân I/O
Timer
Ngắt
Vcc
Đóng vỏ
AT89C51
4K
128
32
2
6
5V
40
AT89LV51
4K
128
32
2
6
3V
40
AT89C1051
1K
64
15
1
3
3V
20
AT89C2051
2K
128
15
2
6
3V
20
AT89C52
8K
128
32
3
8
5V
40
AT89LV52
8K
128
32
3
8
3V
40
Chương 2.
VI ĐIỀU KHIỂN PIC16F877A
Ngày nay, các bộ điều khiển đang có ứng dụng rộng rãi trong các lĩnh vực khoa học kỹ thuật và đời sống xã hội, đặc biệt là trong tự động hoá và điều khiển. Giờ đây với nhu cầu chuyên dụng hoá, tối ưu hoá về thời gian không gian giá thành, bảo mật, tính chủ động trong công việc, ... ngày càng đòi hỏi khắt khe. Và dòng vi điều khiển Pic đã đáp ứng tốt các yêu cầu đó.
2.1. Tổng quan về thiết bị
2.1.1. Hình dạng và bố trí chân của Pic16F877A
Hình 2.1. Hình dạng Pic16F877A
2.1.2. Đặc tính nổi bật của bộ xử lý.
Sử dụng công nghệ tích hợp cao RICSC CPU
Người sử dụng có thể lập trình với các câu lệnh đơn giản
Tất cả các câu lệnh thực hiện trong 1 chu kì ngoại trừ một số lệnh rẽ nhánh thực hiện trong 2 chu kì.
Tốc độ hoạt động là : - Xung đồng hồ vào la DC-20MHz
- Chu kì lệnh thực hiện trong 200ns
Bộ nhớ chương trình Flash 8Kx14 Words
Bộ nhớ Ram 368x8 bytes
Bộ nhớ EFPROM 256x8 bytes.
2.1.3. Sơ đồ khối bộ vi điều khiển Pic16F877A
Hình 2.2. Sơ đồ khối của Pic16F877A
2.2. Mô tả các chân chức năng của Pic16F877A
Bảng 2.1. Bảng chân chức năng của Pic16F877A
Tên chân
Chân số
Chức năng của chân
OSC1/CLKIN
13
I
Đầu vào của dao động thạch anh/ngõ vào xung clock ngoại.
OSC2/CLKOUT
14
O
Đầu ra của bộ dao động thạch anh. Nối với thạch anh hay cộng hưởng trong chế độ dao động của thạch anh. Trong chế độ RC, ngõ ra của chân OSC2
MCLR /VPP
1
I/P
Ngõ vào của Master Clear (Reset) hoặc ngõ vào điện thế được lập trình. Chân này cho phép tín hiệu RESET thiết bị tác động ở mức thấp.
RA0/AN0
RA1/AN1
RA2/AN2/VREF –
RA3/AN3/VREF +
RA4/T0CKI
RA5/ SS /AN4
2
3
4
5
6
7
I/O
I/O
I/O
I/O
I/O
I/O
PORTA là port vào ra hai chiều.
RA0 có thể làm ngõ vào tương tự thứ 0.
RA1 có thể làm ngõ vào tương tự thứ 1.
RA2 có thể làm ngõ vào tương tự thứ 2 hoặc điện áp chuẩn tương tự âm.
RA3 có thể làm ngõ vào tương tự thứ 3 hoặc điện áp chuẩn tương tự dương.
RA4 có thể làm ngõ vào xung clock cho bộ định thời Timer0. Hoặc làm đầu ra.
RA5 có thể làm ngõ vào tương tự thứ 4 hoặc làm đầu ra.
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
33
34
35
36
37
38
39
40
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
PORTB là port vào ra hai chiều.
RB0 có thể làm chân ngắt ngoài.
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SC
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
15
16
17
18
23
24
25
26
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
PORTC là port vào ra hai chiều.
RC0 có thể là ngõ ra của bộ dao động Timer1 hoặc ngõ vào xung clock cho Timer1.
RC1 có thể là ngõ vào của bộ dao động Timer1 hoặc ngõ vào Capture2/ngõ ra compare2/ngõ ra PWM2.
RC2 có thể là ngõ vào Capture1/ngõ ra compare1/ngõ vào PWM1.
RC3 có thể là ngõ vào xung clock đồng bộ nối tiếp/ngõ ra trong cả hai chế độ SPI và I2C.
RC4 có thể là dữ liệu bên trong SPI (chế độ SPI) hoặc dữ liệu I/O (chế độ I2C).
RC5 có thể là dữ liệu ngoài SPI (chế độ SPI).
RC6 có thể là chân truyền không đồng bộ USART hoặc đồng bộ với xung đồng hồ.
RC7 có thể là chân nhận không đồng bộ USART hoặc đồng bộ với dữ liệu.
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
19
20
21
22
27
28
29
30
I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O
PORT là port vào ra hai chiều hoặc là parallel slave port khi giao tiếp với bus của bộ vi xử lý.
RE0/ RD/AN5
RE1/WR /AN6
RE2/CS /AN7
8
9
10
I/O
I/O
I/O
PORTE là port vào ra hai chiều.
RE0 có thể điều khiển việc đọc parallel slave port hoặc là ngõ vào tương tự thứ 5.
RE1 có thể điều khiển việc ghi parallel slave port hoặc là ngõ vào tương tự thứ 6.
RE2 có thể điều khiển việc chọn parallel slave port hoặc là ngõ vào tương tự thứ 7.
VSS
12,31
P
mass
VDD
11,32
P
Cung cấp nguồn dương cho các mức logic và những chân I/O.
Các kí hiệu: I: input O: output I/O:input/output P: power
2.3. Tổ chức bộ nhớ
Pic16F877A có 3 khối bộ nhớ: Bộ nhớ chương trình Flash, bộ nhớ dữ liệu RAM, bộ nhớ EEPROM.
2.3.1. Tổ chức bộ nhớ chương trình Flash
Vi điều khiển Pic16F877A có bộ nhớ chương trình 13 bit và có 8Kx14 từ mã của bộ nhớ chương trình Flash, được chia thành 4 trang mỗi trang 2Kx14 từ mã.
Khi Reset địa chỉ bắt đầu thực hiện chạy là 0000h, vector ngắt bắt đầu từ 0004h.
Stack có 8 mức dùng để lưu địa chỉ lệnh thực hiện tiếp theo sau lệnh CALL và khi xẩy ra ngắt.
0000H
0004H
0005H
07FFH
0800H
0FFFH
17FFH
1800H
1FFFH
On_chip
Program
memmory
PC
Stack level 1
Stack level 2
Stack level 8
Stack level 8
Reset vector
Interput vector
Page0
Page1
Page2
Page3
Hình 2.3. Bản đồ bộ nhớ chương trình và các ngăn xếp
2.3.2. Tổ chức bộ nhớ dữ liệu RAM
RAM là bộ nhớ có thể đọc/ghi, nó không lưu dữ liệu khi mất điện, bộ nhớ RAM của Pic16F877A có 4 Bank, mỗi Bank có dải địa chỉ 0-7FH (128 byte) trên các Bank những thanh ghi đa mục đích, nó hoạt động như một RAM tĩnh và những thanh ghi chức năng đặc biệt ở vùng địa chỉ thấp.
Hình 2.4. Hình ảnh các Bank
Các Thanh ghi đa mục đích (General Purpose Register), các thanh ghi này được truy cập bằng cả hai cách trực tiếp hoặc gián tiếp qua thanh ghi FSR, tổng cộng có 368 bytes.
Các thanh ghi chức năng đặc biệt: các thanh ghi này được dùng bởi CPU và các khối ngoại vi để điều khiển sự hoạt động theo yêu cầu của thiết bị. Các thanh ghi này có thể phân loại vào bộ phận trung tâm (CPU) và ngoại vi.
Các thanh ghi trạng thái STATUS: có 4 thanh ghi trạng thái trên 4 dãy, tại các địa chỉ 03h, 83h, 103h, 108h. Các thanh này cho biết trạng thái của phần tử logic toán học ALU, trạng thái Reset, trạng thái của các bít lựa chọn dãy thanh ghi cho bộ nhớ dữ liệu.
Thanh ghi trạng thái có thể là kết quả của một số lệnh như là với một số thanh ghi khác. Nếu thanh ghi trạng thái là kết quả bởi một lệnh mà tác động đến các bít Z, DC, C thì việc ghi vào các bit này là không thể.
Các thanh ghi lựa chọn OPTION_REG: có hai thanh ghi lựa chọn tai các địa chỉ 81h và 181h, các thanh ghi này có thể đọc hoặc ghi, nó chứa đựng nhiều bits điều khiển khác nhau để xác địn