Tải bản đầy đủ (.pdf) (100 trang)

Mạch đếm và phân loại sản phẩm dùng vi xử lý PIC 16f877a giao tiếp máy tính

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 (4.09 MB, 100 trang )

Đồ án tốt nghiệp kỹ sư công nghiệp

GVHD : Ths. Lê Minh Hải

LỜI MỞ ĐẦU
Trong cuộc sống hiện tại ngày nay, khoa học kỹ thuật phát triển rất nhanh đặt biệt
là 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 những 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, ít chính xác dần dần đượ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.
Trong quá trình sản xuất ở các nhà máy, xí nghiệp hiện nay, việc phân loại tự động
là một yêu cầu hết sức cần thiết và quan trọng. Vì nếu nắm bắt được việc phân loại
sản phẩm sẽ giúp tiết kiệm công sức, thời gian cho công nhân, cho sản phẩm đầu
ra. Và có những xử lý kịp thời tránh được những hư hỏng và sự cố có thể xảy ra
cho sản phẩm.
Để đáp ứng được yêu cầu phân loại tự động thì có nhiều cách để thực hiện. Việc
ứng dụng vi điều khiển PIC 16F877A vào việc phân loại tự động là phương pháp
tối ưu. Đồng thời được sự đồng ý của khoa Xây Dựng Và Điện, em đã ứng dụng nó
vào đề tài: “ Mạch đếm và phân loại sản phẩm dùng PIC 16F877A giao tiếp máy
tính”.
Giới hạn của đề tài:
Với thời gian 3 tháng thực hiện đề tài, cũng là thời gian có nhiều lễ hội nhất trong
năm, với trình độ và chuyên môn có hạng, em đã cố gắng hết sức để hoàn thành tập
luận văn này đúng thời hạn do trường đặt ra. Tập luận văn này tập trung giải quyết
các vấn đề sau:
 Tìm hiểu về vi điểu khiển PIC16F877A.
 Thiết kế mạch đếm sản phẩm và mô hình băng chuyền.
 Viết chương trình phần mềm để đáp ứng yêu cầu phân loại sản phẩm.
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 học và đủ điều


kiện ra trường.
Cụ thể khi nghiên cứu thực hiện đề tài là em muốn phát huy những thành quả ứng
dụng của Vi điều khiển PIC nhằm tạo ra những sản phẩm tốt hơn và đạt hiệu quả
sản xuất cao hơn.
………………………………………………………………………..
……………………………………………………………………………………..
SVTH
: Nguyễn Duy Phúc
MSSV : 08510030059
……………………………………………………………………………..………
……………………………………………………………………………..………


Đồ án tốt nghiệp kỹ sư công nghiệp

GVHD : Ths. Lê Minh Hải

LỜI CẢM ƠN

Để thực hiện và hoàn chỉnh được luận văn này, ngoài công sức nhỏ bé của em, đó
là công lao và sự tận tình giảng dạy, truyền thụ rất lớn của tất cả các Thầy Cô khoa
Xây Dựng Và Điện nói chung và các Thầy Cô giảng dạy bộ môn Điện-Điện Tử nói
riêng. Đặc biệt hơn cả, em xin bày tỏ lòng biết ơn chân thành nhất đối với Ths. Lê
Minh Hải đã dành thời gian quý báo, tận tình giúp đỡ em thực hiện và hoàn thành
luận văn này đúng thời hạn.
Và xin chân thành cảm ơn những người bạn, những người thân đã giúp đỡ và động
viên tôi trong học tập và trong quá trình thực hiện đồ án tốt nghiệp.
Cuối cùng, em xin chúc quý Thầy Cô trong khoa Xây Dựng Và Điện, các Thầy Cô
trong hội đồng bảo vệ và Thầy hướng dẫn Ths. Lê Minh Hải được dồi dào sức
khỏe.


SVTH : Nguyễn Duy Phúc

MSSV : 0851030059


Đồ án tốt nghiệp kỹ sư công nghiệp

GVHD : Ths. Lê Minh Hải

MỤC LỤC
Lời mở đầu
Lời cảm ơn
Mục lục
Chương 1: DẪN NHẬP – PHƯƠNG ÁN THIẾT KẾ
1.1. Đặt vấn đề………………………………………………………………………..
1.2. Phương án thiết kế……………………………………………………………….
1.2.1. Dùng IC số………………………………………………………………………
1.2.2. Dùng vi xử lý……………………………………………………………………
1.3. Mục đích yêu cầu của đề tài ……………………………………………………

1
1
1
1
2
2

1.4. giới hạn của đề tài……………………………………………………………….


3

Chương 2: GIỚI THIỆU VI XỬ LÝ PIC 16F877A
2.1. Tổng quan về vi xử lý PIC 16F877A…………………………………………….
2.1.1. PIC là gì ?……………………………………………………………………….
2.1.2. Đặc tính của vi xử lý PIC 16F877A……………………………………………
2.2. Giới thiệu vi xử lý PIC 16F877A. ……………………………………………….
2.2.1. Đặc tính ngoại vi ……………………………………………………………….
2.2.2. Đặc tính Analog………………………………………………………………...
2.2.3. Đặc tính đặc biệt……………………………………………………………….
2.2.4. Công nghệ CMOS …………………………………………………………….
2.3. Sơ đồ chân vi xử lý PIC 16F877A……………………………………………….
2.4. Sơ đồ khối vi xử lý PIC 16F877A ………………………………………………
2.5. Tổ chức bộ nhớ…………………………………………………………………...
2.5.1. Bộ nhớ của chương trình …..………………………………………………….
2.5.2. Bộ nhớ dữ liệu ………………...……………………………………………….
2.6. Các thanh ghi đặc biệt FSR ...................................…………………………….
2.7. Thanh ghi mục đích chung GPR..……………………………………………….
2.8. Stack……………………………...……………………………………………….
2.9. Các cổng xuất nhập của PIC 16F877A ...……………………………………….
2.9.1. PORTA………………………………………………………………………….
2.9.2. PORTB………………………………………………………………………….
2.9.3. PORTC…………………...…………………………………………………….
2.9.4. PORTD………………………………………………………………………….
2.9.5. PORTE………………………………………………………………………….
2.10. Tổng quan về một số đặc tính của CPU …...………………………………….
2.10.1. Configuration bit...……………………………………………………………
2.10.2. Các đặc tính của OSCILLATOR…..……………………….……………….
2.10.3. Các chế độ Reset………………………………………………………………
2.11. Ngắt (Interrupt)…………………………………………………………………

2.12. Tập lệnh của Vi xử lý PIC..…………………………………………………….
2.12.1. Vài nét sơ lược về tập lệnh của Vi xử lý PIC..………………………………
2.12.2. Tập lệnh……..…………………………………………………………………

4
4
4
4
5
5
6
6
7
7
8
9
9
10
11
14
14
15
15
16
19
20
21
22
22
23

24
26
29
29
31

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059


Đồ án tốt nghiệp kỹ sư công nghiệp

GVHD : Ths. Lê Minh Hải

CHƯƠNG 3 : GIỚI THIỆU LINH KIỆN SỬ DỤNG TRONG MẠCH
3.1. Điện trở…………..……………………………………………………………….
3.1.1. Khái niệm……………………………………………………………………….
3.1.2. Hình dáng và ký hiệu………….……………………………………………….
3.1.3. Bảng quy ước màu của điện trở...…………………………………………….
3.1.4. Cách đọc………..……………………………………………………………….
3.2. Tụ điện…………………………………………………………………………….
3.2.1. Khái niệm tụ điện...…………………………………………………………….
3.2.2. Cấu tạo của tụ điện…………………………………………………………….
3.2.3. Phân loại tụ điện……………………………………………………………….
3.2.4. Điện dung - Đơn vị - Kí hiệu của tụ điện.…………………………………….
3.2.5. Sự phóng nạp – Cách đọc trị số - Ý nghĩa điện áp của tụ điện……………...
3.3. Diode………………..…………………………………………………………….
3.3.1. Khái niệm và cấu tạo của diode……………………………………………….
3.3.2. Hoạt động và phân cực cho diode…………………………………………….

3.3.3. Phân loại cho diode…………………………………………………………….
3.4. Cầu diode………………………………………………………………………….
3.4.1. Sơ đồ chân……..……………………………………………………………….
3.4.2. Đặc tính cơ bản…………………...…………………………………………….
3.5. Transistor……………………...………………………………………………….
3.5.1. Cấu tạo…….…………………………………………………………………….
3.5.2. Nguyên tắc hoạt động của Transistor...……………………………………….
3.5.3. Kí hiệu và hình dạng của Transistor ...……………………………………….
3.5.4. Xác định chân Transistor ………….………………………………………….
3.6. Led…….……………………………….………………………………………….
3.6.1. Khái niệm……………………………………………………………………….
3.6.2. Nguyên lý làm việc và cấu tạo của led…..…………………………………….
3.7. Led 7 đoạn………..……………………………………………………………….
3.7.1. Các khái niệm cơ bản…….…………………………………………………….
3.7.2. Cấu tạo……….....……………………………………………………………….
3.8. Led thu phát hồng ngoại...……………………………………………………….
3.8.1. Khái niệm tia hồng ngoại...…………………………………………………….
3.8.2. Công dụng từng loại ..………………………………………………………….
3.9. Relay…………………...………………………………………………………….
3.10. IC ổn áp………………………………………………………………………….
3.10.1. Sơ đồ chân …………………………………………………………………….
3.10.2. Đặc tính cơ bản……………………….……………………………………….
3.11. IC 74244………………………………………………………………………….
3.11.1. Sơ đồ chân…….……………………………………………………………….
3.11.2. Đặc tính cơ bản……………………………………………………………….
3.12. Mosfet IRFZ44N…..…………………………………………………………….
3.12.1. Sơ đồ chân …………………………………………………………………….
3.12.1 Đặc tính cơ bản ……………………………………………………………….
3.13. IC MAX232…………………..………………………………………………….


SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

38
38
38
38
38
39
39
39
39
40
41
41
42
42
43
44
46
46
46
46
46
46
48
49
49
49

50
51
51
51
52
52
52
53
53
53
53
54
54
54
54
54
54
55


Đồ án tốt nghiệp kỹ sư công nghiệp

GVHD : Ths. Lê Minh Hải

CHƯƠNG 4 : SƠ ĐỒ KHỐI TOÀN MẠCH
4.1. Khối nguồn………………………………….…………………………………….
4.2. Khối cảm biến…………………………………………………………………….
4.3. Khối xử lý…………………………………………………………………………
4.4. Khối động lực……………………………………….…………………………….
4.5. Khối hiển thị..……………………………………….…………………………….

CHƯƠNG 5: SƠ ĐỒ NGUYÊN LÝ – TÍNH TOÁN MẠCH
5.1. Khối nguồn ………………………...…………………………………………….
5.2. Khối cảm biến…………………………………………………………………….
5.3. Khối xử lý………...……………………………………………………………….
5.3.1. Mạch reset ……..……………………………………………………………….
5.3.2. Mạch tạo xung nhịp…………………………………………………………….
5.3.3. Khối truyền thông nối tiếp …………………………………………………….
5.4. Khối hiển thị…………….……………………………………………………….
5.5. Khối động lực……………...…………………………………………………….
CHƯƠNG 6: LẬP TRÌNH CHO PIC
6.1. Lưu đồ giải thuật ..……………………………………………………………….
6.1.1. Lưu đồ giải thuật chương trình chính…….………………………………….
6.1.2. Lưu đồ giải thuật chương trình con………………………………………….
6.2. Viết chương trình cho vi xử lý PIC 16F877A ………………………………….
CHƯƠNG 7: LẬP TRÌNH ĐIỀU KHIỂN TRÊN PC
7.1. Cơ bản về giao tiếp RS232……………………………………………………….
7.2. VISUAL BASIC 6.0...…………………………………………………………….
7.2.1. Tổng quan về Visual Basic …………………………………………………….
7.2.2. Các Thuộc Tính (property)..………………………………………………….
7.2.3. Sự kiện OnComm …………………………………………………………….
7.3. Mã nguồn Visual Basic 6.0 của chương trình giao tiếp máy tính….………….
7.4. Giao diện chương trình sau khi biên dịch ……….…………………………….
KẾT LUẬN
PHỤ LỤC
TÀI LIỆU THAM KHẢO

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059


56
56
56
56
56
56
57
57
59
60
60
61
61
61
62
63
63
63
64
68
76
76
78
78
79
82
83
90
91
92

94


Đồ án tốt nghiệp kỹ sư công nghiệp

SVTH : Nguyễn Duy Phúc

GVHD : Ths. Lê Minh Hải

MSSV : 0851030059


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

CHƢƠNG 1: DẪN NHẬP – PHƢƠNG ÁN THIẾT KẾ
Đặt vấn đề:

1.1.

Ngày nay cùng với sự phát triển của các ngành Khoa học kỹ thuật, kỹ thuật điện – điện tử…
trong đó kỹ thuật số đóng vai trò quan trọng trong mọi lĩnh vực Khoa học kỹ thuật, quản lý, tự
động hóa, thông tin liên lạc…
Từ ý tưởng tự động hóa trong sản xuất, “Mạch đếm và phân loại sản phẩm” được em chọn làm
đề tài tốt nghiệp vì nó gần gũi với thực tế.
Để làm được mạch này, hệ thống cần có bộ phận đếm và bộ phận cảm biến:


Bộ phận cảm biến: gồm phần phát và phần thu. Thông thường phần phát sử dụng

led phát hồng ngoại và phần thu là led thu hồng ngoại.



Bộ phận đếm có nhiều phương pháp thực thi, đó là:
o Lắp mạch đếm dùng IC số với các IC đếm, chốt, giải mã, so sánh.
o Lắp mạch dùng kỹ thuật Vi xử lý.

1.2.

Phƣơng án thiết kế:
1.2.1

Dùng IC số:

Ưu điểm:


Cho phép tăng hiệu suất lao động.



Đảm bảo độ chính xác cao.



Tần số đáp ứng lớn, cho phép đếm với tốc độ cao.




Khoảng cách cảm biến thu – phát có thể đặt xa nhau cho phép đếm những sản
phẩm có kích thước lớn.



Tổn hao công suất thấp, có thể dùng pin hoặc ắc quy.



Khả năng đếm rộng.



Giá thành thấp.



Mạch đơn giản.

Việc sử dụng IC số khó có thể đáp ứng được mục đích thay đổi số đếm. Muốn thay đổi số đếm
buộc phải thay đổi phần cứng. Do đó cần phải lắp đặt lại mạch mới gây tốn kém về kinh tế.
Với sự phát triển mạnh của ngành kỹ thuật số, đặc biệt đã cho ra đời những họ Vi điều khiển,

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 1



Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Vi xử lý đa chức năng do đó việc sử dụng Vi xử lý, Vi điều khiển đã giải quyết được những bế
tắc mà dùng IC số kết hợp không giải quyết được.
1.2.2. Dùng Vi xử lý:
Ngoài những ưu điểm như đã liệt kê khi sử dụng IC số ghép lại, thì mạch đếm
sử dụng Vi xử lý còn có các ưu điểm sau:


Mạch có thể thay đổi số đếm một cách linh hoạt bằng cách thay đổi phần mềm mà
không ảnh hưởng tới phần cứng.



Sử dụng linh kiện ít hơn.



Mạch đơn giản hơn mạch sử dụng IC số.



Mạch có thể cài đặt số đếm ban đầu.



Mạch có thể lưu lại số lượng của các ca sản xuất. .




Mạch cũng có thể giao tiếp được với máy tính.

Nhưng trong thiết kế, người ta thường chọn phương pháp tối ưu về kinh tế do đó em
chọn phương pháp “Đếm sản phẩm dùng Vi xử lý”.
Mục đích yêu cầu của đề tài:

1.3.

Trong đồ án này, em thực hiện đếm sản phẩm bằng phương pháp dựa trên sự thay đổi mức
logic của các chân cảm biến. Như vậy mỗi sản phẩm đi trên băng chuyền cần có một thiết bị
để cảm nhận sản phẩm, thiết bị này gọi là cảm biến. Khi một sản phẩm đi qua cảm biến, cảm
biến sẽ nhận được sự thay đổi mức logic (1 hoặc 0) đưa về khối xử lý để tăng số đếm và phân
loại sản phẩm (cao – trung – thấp). Sản phẩm sẽ được đếm và hiển thị trên led 7 đoạn và trên
màn hình máy tính.
Tuy nhiên, mỗi bộ phận hay mỗi ca sản xuất lại yêu cầu với số đếm khác nhau nên phải có sự
chuyển đổi linh hoạt trong việc chuyển đổi số đếm. Bộ phận chuyển đổi trực quan nhất là bàn
phím. Khi cần thay đổi số đếm, người sử dụng chỉ việc nhập số và hệ thống sẽ tự động đếm.
Khi số sản phẩm đếm bằng với số sản phẩm được nhập từ bàn phím thì mạch đếm sẽ dừng
đếm. Từ đây suy ra được mục đích yêu cầu của đề tài:


Số đếm phải chính xác và việc thay đổi số đếm một cách linh hoạt.



Bộ phận hiển thị rõ ràng.




Mạch không quá phức tạp, đảm bảo an toàn sử dụng.



Giá thành không quá cao.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 2


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

1.4.

GVHD :Ths. Lê Minh Hải

Giới hạn của đề tài:

Do mạch sử dụng bộ phận cảm biến là led phát và led thu hồng ngoại do đó tín hiệu hồng
ngoại từ led phát không đủ mạnh để truyền đi xa trong không gian nên để led thu nhận được
tín hiệu một cách mạnh và ổn định nhất thì khoảng cách khoảng cách đặt led thu và led phát
không quá xa khi đặt với nhau. Chính vì vậy mà kích thước sản phẩm đếm không quá lớn.
Đếm số sản phẩm trong phạm vi từ 00 đến 99.

SVTH : Nguyễn Duy Phúc


MSSV : 0851030059

Trang 3


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

CHƢƠNG 2: GIỚI THIỆU VI XỬ LÝ PIC16F877A
2.1.

Tổng quan về họ Vi điều khiển PIC:
2.1.1. PIC là gì ?

PIC là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip Technology.
Dòng PIC đầu tiên là PIC1650 được phát triển bởi Microelectronics Division thuộc General
Instrument.
PIC bắt nguồn là chữ viết tắt của "Programmable Intelligent Computer" (Máy tính khả trình
thông minh) là một sản phẩm của hãng General Instruments đặt cho dòng sản phẩm đầu tiên
của họ là PIC1650. Lúc này, PIC1650 được dùng để giao tiếp với các thiết bị ngoại vi cho
máy chủ 16bit CP1600, vì vậy, người ta cũng gọi PIC với cái tên "Peripheral Interface
Controller" (Bộ điều khiển giao tiếp ngoại vi). CP1600 là một CPU tốt, nhưng lại kém về các
hoạt động xuất nhập, và vì vậy PIC 8-bit được phát triển vào khoảng năm 1975 để hỗ trợ hoạt
động xuất nhập cho CP1600. PIC sử dụng microcode đơn giản đặt trong ROM, và mặc dù,
cụm từ RISC chưa được sử dụng thời bây giờ, nhưng PIC thực sự là một vi điều khiển với
kiến trúc RISC, chạy một lệnh một chu kỳ máy (4 chu kỳ của bộ dao động).
Năm 1985 General Instruments bán bộ phận vi điện tử của họ, và chủ sở hữu mới hủy bỏ hầu
hết các dự án - lúc đó đã quá lỗi thời. Tuy nhiên PIC được bổ sung EEPROM để tạo thành 1
bộ điều khiển vào ra khả trình. Ngày nay rất nhiều dòng PIC được xuất xưởng với hàng loạt

các module ngoại vi tích hợp sẵn (như USART, PWM, ADC...), với bộ nhớ chương trình từ
512 Word đến 32K Word.
2.1.2. Đặc tính của Vi xử lý PIC:
Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng chúng
ta có thể điểm qua một vài nét như sau:
 8/16 bit CPU, xây dựng theo kiến trúc Harvard có sửa đổi.
 Flash và ROM có thể tuỳ chọn từ 256 byte đến 256 Kbyte.
 Các cổng Xuất/Nhập (I/O ports) (mức logic thường từ 0V đến 5.5V, ứng với logic 0 và
logic 1).
 8/16 Bit Timer.
 Công nghệ Nanowatt.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 4


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

 Các chuẩn Giao Tiếp Ngoại Vi Nối Tiếp Đồng bộ/Không đồng bộ USART, AUSART,
EUSARTs.
 Bộ chuyển đổi ADC Analog-to-digital converters, 10/12 bit.
 Bộ so sánh điện áp (Voltage Comparators).
 Các module Capture/Compare/PWM.
 LCD.
 MSSP Peripheral dùng cho các giao tiếp I2C, SPI, và I2S.

 Bộ nhớ nội EEPROM - có thể ghi/xoá lên tới 1 triệu lần.
 Module điều khiển động cơ, đọc encoder.
 Hỗ trợ giao tiếp USB.
 Hỗ trợ điều khiển Ethernet.
 Hỗ trợ giao tiếp CAN.
 Hỗ trợ giao tiếp LIN.
 Hỗ trợ giao tiếp IrDA.
 Một số dòng có tích hợp bộ RF (PIC16F639, và RFPIC).
 KEELOQ mã hoá và giải mã.
 DSP những tính năng xử lý tín hiệu số (dsPIC).

2.2. Giới thiệu Vi xử lý PIC 16F877A:
PIC16F877A thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit.
Mỗi lệnh điều được thực thi trong một chu kỳ xung clock.
Tốc độ hoạt động tối đa cho phép là 20MHz với một chu kỳ lệnh là 200ns.
Bộ nhớ chương trình 8K x 14 bit, bộ nhớ dữ liệu 368 x 8 byte RAM và bộ nhớ dữ liệu
EEPROM với dung lượng 256 x 8 byte.
Số Port I/O là 5 với 33 pin I/O.
2.2.1. Đặc tính ngoại vi:
Timer0: 8 bit định thời, đếm với 8 bit prescaler.
Timer1: 16 bit định thời, đếm với prescaler, có thể được tăng lên trong suốt chế độ
sleep qua thạch anh, xung clock bên ngoài.
Timer2: 8 bit định thời, đếm với 8 bit prescaler và postcaler.
SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 5



Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Hai module Capture, Compare, PWM:
 Capture có độ rộng 16 bit, độ phân giải 12.5ns.
 Compare có độ rộng 16 bit, độ phân giải 200ns.
 Độ phân giải lớn nhất của PWM là 10 bit.
Chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port) với SPI và I2C.
Chuẩn giao tiếp nối tiếp USART (Universal Synchronous Asynchronous Receiver
Transmitter) với 9 bit địa chỉ.
Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở
bên ngoài.
2.2.2. Đặc tính Analog:
8 kênh chuyển đổi ADC (Analog-to-Digital Converter) 10 bit.
Brown-out Reset (BOR)
Module so sánh tương tự:
 Hai bộ so sánh tương tự.
 Bộ điện áp chuẩn VREF có thể lập trình PIC.
 Có thể lập trình ngõ ra vào đến từ những ngõ vào của PIC và trên điện áp bên trong.
 Những ngõ ra của bộ so sánh có thể sử dụng cho bên ngoài.
2.2.3. Đặc tính đặc biệt:
Có thể ghi xóa 100.000 lần với kiểu bộ nhớ chương trình Enhanced Flash.
1.000.000 lần ghi xóa với kiểu bộ nhớ EEPROM.
Dữ liệu EEPROM có thể được lưu trữ hơn 40 năm.
Có thể tự lập lập trình lại dưới sự điều khiển của phần mềm.
Nạp chương trình ngay trên mạch điện ICSP (In - Circuit Serial Programming) thông qua
2 chân.
Nguồn đơn 5V cho mạch lập trình nối tiếp.
Watchdog Timer (WDT) với bộ dao động RC tích hợp sẵn trên chip cho hoạt động đáng

tin cậy.
Có thể lập trình mã bảo vệ.
Tiết kiệm năng lượng với chế độ Sleep.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 6


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Có thể lựa chọn bộ dao động.
Mạch dở sai (ICD : In - Circuit Debug) qua 2 chân.
2.2.4. Công nghệ CMOS:
Năng lượng thấp, công nghệ Flash/EEPROM tốc độ cao.
Thiết kế hoàn toàn tĩnh.
Khoảng điện áp hoạt động từ 2V đến 5.5V
Tiêu tốn năng lượng thấp.
2.3. Sơ đồ chân Vi xử lý PIC16F877A:

Hình 2.3: Sơ đồ chân và hình dạng của PIC16F877A (40 pin)

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059


Trang 7


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

2.4. Sơ đồ khối Vi xử lý PIC16F877A:

Hình 2.4.1: Cấu trúc bên trong của PIC16F877A
Như đã nói ở trên, Vi điều khiển PIC có kiến trúc Harvard, trong đó CPU truy cập chương
trình và dữ liệu trên hai bus riêng biệt, nên làm tăng đáng kể băng thông so với kiến trúc Von
Neumann, trong đó CPU truy cập chương trình và dữ liệu trên cùng một bus.
Việc tách riêng bộ nhớ chương trình và bộ nhớ dữ liệu cho phép số bit của từ lệnh có thể khác
với số bit của dữ liệu. Ở PIC16F877A, từ lệnh dài 14 bit, từ dữ liệu 8 bit. PIC16F877A chứa
một bộ ALU 8 bit và thanh ghi làm việc WR (Working Register). ALU là đơn vị tính toán số
học và logic, nó thực hiện các phép tính số và đại số Boole trên thanh ghi làm việc WR và các
thanh ghi dữ liệu. ALU có thể thực hiện các phép cộng, trừ, dịch bit và các phép toán logic.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 8


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

2.5.


GVHD :Ths. Lê Minh Hải

Tổ chức bộ nhớ:
2.5.1. Bộ nhớ chƣơng trình:

Bộ nhớ chương trình của Vi điều khiển PIC16F877A là bộ nhớ Flash, dung lượng bộ nhớ 8K
word (1 word = 14 bit) và được phân chia thành nhiều trang (từ page 0 đến page 3). Như vậy,
bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì 1 lệnh sau khi mã hóa sẽ
có dung lượng 1 word = 14 bit).
Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình cần có dung
lượng 13 bit (PC <12:0>)
Khi Vi điều khiển được Reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000H (Resetvector).
Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004H (Interruptvector).
Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm
chương trình.

Hình 2.5.1: Bộ nhớ chương trình của PIC

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 9


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

2.5.2. Bộ nhớ dữ liệu:

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank. Đối với
PIC16F877A, bộ nhớ dữ liệu chia làm 4 bank. Mỗi bank có dung lượng 12 bytes, bao gồm các
thanh ghi có chức năng đặc biệt SFR (Special Function Register) nằm ở các vùng địa chỉ thấp
và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại
trong bank. Các thanh ghi SFR thường xuyên sử dụng (ví dụ như thanh ghi STATUS) sẽ được
đặt ở tất cả các bank của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm
bớt lệnh của chương trình. Sơ đồ cụ thể của bộ nhớ dữ liệu PIC16F877A như sau :

Hình 2.5.2: Bộ nhớ dữ liệu của PIC

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 10


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

2.6. Các thanh ghi đặc biệt FSR:

Hình 2.6.1: Các thanh ghi đặc biệt ở Bank 0

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 11



Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Hình 2.6.2: Các thanh ghi đặc biệt ở Bank 1

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 12


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Hình 2.6.3: các thanh ghi đặc biệt ở Bank 2 và Bank 3

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 13


Đồ án tốt nghiệp kỹ sư ngành công nghiệp


2.7.

GVHD :Ths. Lê Minh Hải

Thanh ghi mục đích chung GPR:

Các thanh ghi này có thể truy xuất trực tiếp thông qua thanh ghi FSG (File Select Register).
Đây là các thanh ghi dữ liệu thông thường, người sử dụng có thế tùy theo mục đích chương
trình mà có thể dùng các thanh ghi này để chứa các biến số, hằng số, kết quả hoặc các tham số
phục vụ cho chương trình.

2.8.

Stack:

Stack cho phép 8 lệnh gọi chương trình con và ngắt hoạt động. Stack chứa địa chỉ mà
chương trình chính sẽ quay về thực hiện từ sau chương trình con hay ngắt. Đối với
PIC16F877A, Stack có độ sâu 8 lớp.
Stack không nằm trong bộ nhớ chương trình hay bộ nhớ dữ liệu mà là một vùng nhớ đặc
biệt không cho phép đọc hay ghi. Khi lệnh CALL được thực hiện hay khi một ngắt xảy ra làm
chương trình bị rẽ nhánh, giá trị của bộ đếm chương trình PC tự động được Vi điều khiển cất
vào trong Stack. Khi một trong các lệnh RETURN, RETLW hay RETFIE được thực thi, giá trị
PC sẽ tự động lấy ra từ trong Stack, Vi điều khiển sẽ thực hiện tiếp chương trình theo đúng
quy trình định trước.
Bộ nhớ Stack trong Vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địa chỉ và
hoạt động theo cơ chế xoay vòng. Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽ ghi đè lên
giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽ ghi đè lên giá trị
cất vào Stack lần thứ 2.
Cần chú ý là không có cớ hiệu nào cho biết trạng thái Stack, do đó ta không biết được khi
nào Stack bị tràn. Bên cạnh đó, tập lệnh của Vi điều khiển dòng PIC cũng không có lệnh POP

hay PUSH, các thao tác với bộ nhớ Stack sẽ hoàn toàn được điều khiển bởi CPU.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 14


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

2.9.

GVHD :Ths. Lê Minh Hải

Các cổng xuất nhập của PIC16F877A:
2.9.1. PORTA:

Hình 2.9.1: Cấu trúc bên trong của PORTA
PORTA gồm 6 chân từ RA0 đến RA5. Việc ghi giá trị vào thanh ghi TRISA sẽ quy định
các chân của PORTA là input hay output. Việc đọc thanh ghi PORTA sẽ đọc trạng thái các
chân ở PORTA. Việc ghi giá trị vào thanh ghi PORTA sẽ thay đổi trạng thái của các chân
PORTA. Riêng chân RA4 được tích hợp chức năng là chân cung cấp xung clock ngoài cho
Timer 0 (RA4/T0CKI). Những chân khác của PORTA được đa hợp với các chân ngõ vào
Analog của ADC và chân ngõ vào của điện thế so sánh của bộ so sánh Comparator. Hoạt động
của những chân này được quy định bằng những bit tương ứng trong các thanh ghi ADCCON1
và CMCON1. Khi các chân của PORTA được sử dụng làm ngõ vào Analog thì các bit trong
thanh ghi TRISA phải được set bằng 1.

SVTH : Nguyễn Duy Phúc


MSSV : 0851030059

Trang 15


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Hình 2.9.1a: Chức năng và các thanh ghi liên quan đến PORTA
2.9.2. PORTB:

Hình 2.9.2: Cấu trúc bên trong của PORTB

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 16


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

PORTB gồm 8 chân từ RB0 – RB7. Việc ghi giá trị vào thanh ghi TRISB sẽ quy định các
chân của PORTB là input hay output. Việc đọc thanh ghi PORTB sẽ đọc trạng thái của các
chân ở PORTB. Việc ghi giá trị vào thanh ghi PORTB sẽ thay đổi trạng thái của các chân
PORTB.

Ba chân của PORTB được đa hợp với chức năng In-Circuit Debugger và Low Voltage
Programming Function là : RB3/PGM, RB6/PGC, RB7/PGD. Mỗi chân PORTB có một
transistor kéo lên VDD. Chức năng này hoạt động khi bit RBPU (Option <7>) được xóa. Chức
năng này sẽ tự động được xóa khi PORTB được quy định là input.
Bốn chân của PORTB từ RB7 đến RB4 có chức năng ngắt khi trạng thái chân PORTB thay
đổi (Khi PORTB được quy định là output thì chức năng này không hoạt động). Giá trị chân
của PORTB được so sánh với giá trị đã được lưu trước đó, khi có sự sai lệch giữa 2 giá trị này,
ngắt sẽ xảy ra với cờ ngắt RBIF (INTCON <0>) được set lên. Ngắt có thể làm cho VĐK thoát
khỏi trạng thái SLEEP.
Bất cứ sự truy xuất nào trên PORTB sẽ xóa trạng thái sai lệch, kết thúc ngắt và cho phép
xóa cờ ngắt RBIF.

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 17


Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

Hình 2.9.2: Chức năng và các thanh ghi liên quan đến PORTB

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 18



Đồ án tốt nghiệp kỹ sư ngành công nghiệp

GVHD :Ths. Lê Minh Hải

2.9.3. PORTC:

Hình 2.9.3: Cấu trúc bên trong của PORTC
PORTC gồm 8 chân từ chân RC0 – RC7. Việc ghi giá trị vào thanh ghi TRISC sẽ quy định
các chân của PORTC là input hay output. Việc đọc thanh ghi PORTC sẽ đọc trạng thái của các
chân ở PORTC. Việc ghi giá trị vào thanh ghi PORTC sẽ thay đổi trạng thái của các chân
PORTC.
Các chân PORTC được đa hợp với các chức năng ngoại vi.
Khi các chức năng ngoại vi được cho phép ta cần quan tâm chặt chẽ tới giá trị các bit của
thanh ghi TRISC. Một số chức năng ngoại vi sẽ ghi đè giá trị 0 lên các bit của thanh ghi
TRISC và mặc định các chân này là output, ngoài ra một số chức năng ngoại vi khác sẽ tự
động mặc định một số chân là ngõ vào. Do đó cần xem kỹ các tính năng của các hàm ngoại vi
để thiết lập giá trị các bit trong thanh ghi TRISC cho thích hợp.

Hình 2.9.3a: Chức năng và các thanh ghi liên quan đến PORTC

SVTH : Nguyễn Duy Phúc

MSSV : 0851030059

Trang 19



×