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

NGHIÊN cứu, ỨNG DỤNG VI điều KHIỂN PIC THIẾT kế MẠCH KIỂM SOÁT NGƯỜI RA vào PHÒNG

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 (1.23 MB, 65 trang )

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN TỬ
---------------

ĐỒ ÁN TỐT NGHIỆP
Chuyên ngành: CNKT Điện tử, truyền thông

Đề tài: NGHIÊN CỨU, ỨNG DỤNG VI ĐIỀU KHIỂN

PIC THIẾT KẾ MẠCH KIỂM SOÁT NGƯỜI RA VÀO
PHÒNG

Giáo viên hướng dẫn : ThS. BỒ QUỐC BẢO

Lớp :

ĐH Điện tử 3
Hà Nội : 2018


1
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

LỜI CẢM ƠN
Để hoàn thành đề tài đồ án tốt nghiệp này, lời đầu tiên cho em gửi lời
cảm ơn đến thầy Ths Bồ Quốc Bảo đã tận tình giúp đỡ và chỉ bảo, giúp đỡ
em trong suốt quá trình hoàn thành đồ án.
Em xin tỏ lòng biết ơn sâu sắc đến các thầy cô trong khoa điện tử


trường Đại học Công nghiệp Hà Nội đã tận tình giảng dạy, cho em những
kiến thức cũng như kinh nghiệm quý báu trong suốt 4 năm học vừa qua.
Cuối cùng xin cảm ơn gia đình, người thân, bạn bè, của em đã luôn bên
cạnh và khích lệ và giúp đỡ em trong thời gian qua.
Mặc dù có nhiều cố gắng, thời gian thực hiện đồ án có hạn, vốn kiến
thức nắm được chưa nhiều nên đồ án còn nhiều hạn chế. Em rất mong nhận
được nhiều sự góp ý, chỉ bảo của thầy cô để hoàn thiện hơn bài viết của mình.
Em xin chân thành cảm ơn!


2
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

LỜI MỞ ĐẦU
Thế giới này với khoa học kĩ thuật phát triển mạnh mẽ cuộc sống con
người ngày càng được phát triển tốt hơn. Khoa học kĩ thuật đem lại nhiều tiện
ích thiết thực hơn cho cuộc sống con người. Góp phần to lớn trong quá trình
phát triển của khoa học kĩ thuật là sự phát triển mạnh mẽ của vi điều khiển.
Trong những thập niên cuối thế kỉ 20, bước đột phá lớn nhất trong công nghệ
điện tử là việc công ty Intel cho ra đời bộ vi xử lý đầu tiên. Phát minh này là
tiền đề cho sự ra đời của vi điều khiển, cho phép tạo ra các ứng dụng theo 1
công thức khác: phần cứng+phần mềm=ứng dụng. Điều này có nghĩa là muốn
có một ứng dụng khác thì chỉ cần thay đổi phần mềm và giữ nguyên phần
cứng.
Cùng với sự phát triển đa dạng về chủng loại thì tài nguyên của vi điều
khiển cũng được nâng cao. Các vi điều khiển ngày nay cung cấp cho người
dùng một nguồn tài nguyên rộng lớn và phong phú. Có thể đáp ứng được
nhiều yêu cầu khác nhau trong thực tế. Vi điều khiển là một thuật ngữ để chỉ

một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng kết hợp với các khối
ngoại vi như bộ nhớ, các module vào/ra, các module biến đổi số sang tương
tự và tương tự sang số. Đó là các hệ thống tích hợp cả phần cứng và phần
mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự
động hóa điều khiển, quan trắc và truyền tin. Vi điều khiển ngày càng được
ứng dụng rộng rãi trong đời sống cũng như trong công nghiệp vì khả năng xử
lý nhanh, đa dạng, tiết kiệm năng lượng và độ ổn định.
Bên cạnh đó, xuất phát từ thực tế tại các nhà máy mà em đã được thực
tập cũng như được tham quan, em đã thấy được nhiêu khâu tự động hóa trong
quá trình sản xuất. Một trong những khâu đơn giản trong quá trình sản xuất là
đếm số lượng sản phẩm một cách tự động. Đối với những nơi có nhiều dịch
vụ tiện ích cho con người ví dụ như siệu thị, cửa hàng,… Cần quản lý số
lượng người ra vào để biết được tình hình kinh doanh của cửa hàng hay siêu
thị ấy. Nhận thấy được nhu cầu cấp thiết đó nên em đã chọn nhiều đề tài đếm


3
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

người ra vào sử dụng vi điều khiển làm đồ án tốt nghiệp với mong muốn vận
dụng được kiến thức của mình đã học trên nhà trường cũng như đã tìm hiểu
qua sách vở, mạng internet tạo nên một sản phẩm hữu dụng.
Hà Nội, tháng 03 năm 2018
Sinh viên

MỤC LỤ



4
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

LỜI CẢM ƠN..................................................................................1
LỜI MỞ ĐẦU..................................................................................2
MỤC LỤC........................................................................................4
DANH MỤC HÌNH ẢNH...............................................................5
DANH MỤC BẢNG........................................................................6
CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
18F4520
..................................................................................7
1.1
1.2
1.3
1.4
1.5
1.6
1.7

GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN...............................7
PHÂN LOẠI.........................................................................................8
CẤU TRÚC TỔNG QUAN CỦA VI ĐIỀU KHIỂN:..........................9
GIỚI THIỆU VỀ PIC.........................................................................10
KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520...............................11
NGÔN NGỮ LẬP TRÌNH VÀ TRÌNH DỊCH...................................39
BỘ CHUYỂN ĐỔI TƯƠNG TỰ -SỐ (ADC)....................................40

CHƯƠNG 2: THIẾT KẾ SẢN PHẨM......................................50

2.1
2.2
2.3
2.4
2.5

PHÂN TÍCH YÊU CẦU.....................................................................50
THIẾT KẾ PHẦN CỨNG..................................................................50
THIẾT KẾ PHẦN MỀM....................................................................58
VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN............................................59
KẾT QUẢ THIẾT KẾ, NGHIÊN CỨU.............................................60

KẾT LUẬN.....................................................................................61
TÀI LIỆU THAM KHẢO.............................................................62
PHỤ LỤC.......................................................................................63
[1] MÃ CODE CHƯƠNG TRÌNH...............................................63


5
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

DANH MỤC HÌNH Ả
Hình 1.1 Sơ đồ khối PIC 18F4520.................................................................13
Hình 1.2 Sơ đồ chân PIC 18F4520 dạng PDIP..............................................16
Hình 1.3 Sơ đồ tổ chức bộ nhớ chương trình và ngăn xếp.............................21
Hình 1.4 Sơ đồ tổ chức bộ nhớ dữ liệu RAM..................................................22
Hình 1.5 Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR..........23
Hình 1.6 Chế độ dao động EC........................................................................27

Hình 1.7 Chế độ dao động ECIO....................................................................27
Hình 1.8 Chế độ dao động RC.......................................................................28
Hình 1.9 Chế độ dao động RCIO..................................................................29Y
Hình 2.1 Sơ đồ khối tổng quát mạch đếm.......................................................51
Hình 2.2 Mạch nguyên lý................................................................................52
Hình 2.3 sơ đồ mạch in..................................................................................53
Hình 2.6 ảnh vi điều khiển PIC 18f4520 thực tế.............................................54
Hình 2.7 Điện trở............................................................................................54
Hình 2.8 Tụ điện.............................................................................................54
Hình 2.9 Khối phát tín hiệu hồng ngoại.........................................................56
Hình 2.10 Khối thu tín hiệu hồng ngoại.........................................................57
Hình 2.11 Lưu đồ thuật toán khi người vào....................................................58
Hình 2.12 Lưu đồ thuật toán khi người ra......................................................59
Hình 2.13 Mạch điện thực tế sau khi lắp ráp.................................................60


6
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

DANH MỤC BẢNG
Bảng 1. 1 Các thanh ghi liên quan đến PORTA..............................................35
Bảng 1. 2 Các thanhghi liên quan đến PORTB..............................................36
Bảng 1. 3 Các thanh ghi liên quan đến PORTC.............................................37
Bảng 1. 4 Các thanh ghi liên quan đến PORTD.............................................37
Bảng 1. 5 Các thanh ghi liên quan đến PORTE.............................................38


7

Đồ án tốt nghiệp Đại học

CHƯƠNG 1:
1.1

GVHD: Ths. Bồ Quốc Bảo

TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC
18F4520

GIỚI THIỆU KHÁI QUÁT VỀ VI ĐIỀU KHIỂN

Bộ vi xử lý có khả năng vượt bậc so với các hệ thống khác về khả năng
tính toán, xử lý, và thay đổi chương trình linh hoạt theo mục đích người dùng,
đặc biệt hiệu quả đối với các bài toán và hệ thống lớn. Tuy nhiên đối với các
ứng dụng nhỏ, tầm tính toán không đòi hỏi khả năng tính toán lớn thì việc
ứng dụng vi xử lý cần cân nhắc. Bởi vì hệ thống dù lớn hay nhỏ, nếu dùng vi
xử lý thì cũng đòi hỏi các khối mạch điện giao tiếp phức tạp như nhau. Các
khối này bao gồm bộ nhớ để chứa dữ liệu và chương trình thực hiện, các
mạch điện giao tiếp ngoại vi để xuất nhập và điều khiển trở lại, các khối này
cùng liên kết với vi xử lý thì mới thực hiện được công việc. Để kết nối các
khối này đòi hỏi người thiết kế phải hiểu biết tinh tường về các thành phần vi
xử lý, bộ nhớ, các thiết bị ngoại vi. Hệ thống được tạo ra khá phức tạp, chiếm
nhiều không gian, mạch in phức tạp và vấn đề chính là trình độ người thiết
kế. Kết quả là giá thành sản phẩm cuối cùng rất cao, không phù hợp để áp
dụng cho các hệ thống nhỏ.
Vì một số nhược điểm trên nên các nhà chế tạo tích hợp một ít bộ nhớ
và một số mạch giao tiếp ngoại vi cùng với vi xử lý vào một IC duy nhất
được gọi là Microcontroller-Vi điều khiển.
Một số đặc điểm khác nhau giữa vi xử lí và vi điều khiển.

Về phần cứng: VXL cần được ghép thêm các thiết bị ngoại vi bên ngoài
như bộ nhớ, và các thiết bị ngoại vi khác,… để có thể tạo thành một bản
mạch hoàn chỉnh. Đối với VĐK thì bản thân nó đã là một hệ máy tính hoàn
chỉnh với CPU, bộ nhớ, các mạch giao tiếp, các bộ định thời và mạch điều
khiển ngắt được tích hợp bên trong mạch.
Về các đặc trưng của tập lệnh: Do ứng dụng khác nhau nên các bộ VXL
và VĐK cũng có những yêu cầu khác nhau đối với tập lệnh của chúng. Tập


8
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

lệnh của các VXL thường mạnh về các kiểu định địa chỉ với các lệnh cung
cấp các hoạt động trên các lượng dữ liệu lớn như 1byte, ½ byte, word, double
word,... Ở các bộ VĐK, các tập lệnh rất mạnh trong việc xử lý các kiêu dữ
liệu nhỏ như bit hoặc một vài bit.
Do VĐK cấu tạo về phần cứng và khả năng xử lí thấp hơn nhiều so với
VXL nên giá thành của VXL cũng rẻ hơn nhiề u. Tuy nhiên nó vẫn đủ khả
năng đáp ứng được tất cả các yêu cầu của người dùng.
Vi điều khiển được ứng dụng trong các dây chuyền tự động loại nhỏ,
các robot có chức năng đơn giản, trong máy giặt, ôtô v.v...
1.2

PHÂN LOẠI
1.2.1 Độ dài thanh ghi

Dựa vào độ dài của các thanh ghi và các lệnh của VĐK mà người ta chia
ra các loại VĐK 8bit,16bit, hay 32bit.... Các loại VĐK 16bit do có độ dài lệnh

lớn hơn nên các tập lệnh cũng nhiều hơn, phong phú hơn. Tuy nhiên bất cứ
chương trình nào viết bằng VĐK 16bit chúng ta đều có thể viết trên VĐK 8bit
với chương trình thích hợp
1.2.2 Kiến trúc CISC và RISC
VXL hoặc VĐK CISC là VĐK có tập lệnh phức tạp. Các VĐK này có
một số lượng lớn các lệnh nên giúp cho người lập trình có thể linh hoạt và dễ
dàng hơn khi viết chương trình. VĐK RISC là VĐK có tập lệnh đơn giản.
Chúng có một số lượng nhỏ các lệnh đơn giản. Do đó, chúng đòi hỏi phần
cứng ít hơn, giá thành thấp hơn, và nhanh hơn so với CISC. Tuy nhiên nó đòi
hỏi người lập trình phải viết các chương trình phức tạp hơn, nhiều lệnh hơn.
1.2.3 Kiến trúc Harvard và kiến trúc Vonneumann
Kiến trúc Harvard sử dụng bộ nhớ riêng biệt cho chương trình và dữ
liệu. Bus địa chỉ và bus dữ liệu độc lập với nhau nên quá trình truyền nhận dữ
liệu đơn giản hơn


9
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Kiến trúc Vonneumann sử dụng chung bộ nhớ cho chương trình và dữ
liệu. Điều này làm cho VĐK gọn nhẹ hơn, giá thành nhẹ hơn.
Một số loại VĐK có trên thị trường:
- VĐK MCS-51: 8031, 8032, 8051, 8052, ...
- VĐK ATMEL: 89Cxx, AT89Cxx51..
- VĐK AVR AT90Sxxxx
- VĐK PIC 16C5x, 17C43, 18f4520...
1.3


CẤU TRÚC TỔNG QUAN CỦA VI ĐIỀU KHIỂN:
1.3.1 CPU:

Là trái tim của hệ thống. Là nơi quản lí tất cả các hoạt động của VĐK.
Bên trong CPU gồm:
+ ALU là bộ phận thao tác trên các dữ liệu
+ Bộ giải mã lệnh và điều khiển, xác định các thao tác mà CPU cần thực
hiện
+ Thanh ghi lệnh IR, lưu giữ opcode của lệnh được thực thi
+Thanh ghi PC, lưu giữ địa chỉ của lệnh kế tiếp cần thực thi
+ Một tập các thanh ghi dùng để lưu thông tin tạm thời
1.3.2 ROM:
ROM là bộ nhớ dùng để lưu giữ chương trình. ROM còn dùng để chứa
số liệu các bảng, các tham số hệ thống, các số liệu cố định của hệ thống.
Trong quá trình hoạt động nội dung ROM là cố định, không thể thay đổi, nội
dung ROM chỉ thay đổi khi ROM ở chế độ xóa hoặc nạp chương trình.
1.3.3 RAM:
RAM là bộ nhớ dữ liệu. Bộ nhớ RAM dùng làm môi trường xử lý thông
tin, lưu trữ các kết quả trung gian và kết quả cuối cùng của các phép toán, xử
lí thông tin. Nó cũng dùng để tổ chức các vùng đệm dữ liệu, trong các thao
tác thu phát, chuyển đổi dữ liệu.
1.3.4 BUS:


10
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

BUS là các đường dẫn dùng để di chuyển dữ liệu. Bao gồm: bus địa chỉ ,

bus dữ liệu, và bus điều khiển .
1.3.5 Bộ định thời
Được sử dụng cho các mục đích chung về thời gian.
1.3.6 Watchdog:
Bộ phận dùng để reset lại hệ thống khi hệ thống gặp “bất thường”.
1.3.7 ADC:
Bộ phận chuyển tín hiệu analog sang tín hiệu digital. Các tín hiệu bên
ngoài đi vào VDK thường ở dạng analog. ADC sẽ chuyển tín hiệu này về
dạng tín hiệu digital mà vi điều khiển có thể hiểu được.
1.4

GIỚI THIỆU VỀ PIC.
1.4.1 PIC là gì?

PIC là viết tắt của “Programable Intelligent Computer”, có thể tạm dịch
là “máy tính thông minh khả trình” do hãng Genenral Instrument đặt tên cho
vi điều khiển đầu tiên của họ.PIC1650 được thiết kế để dùng làm các thiết bị
ngoại vi cho vi điều khiển CP1600. Vi điều khiển này sau đó được nghiên cứu
phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC ngày nay.
1.4.2 Tại sao là PIC mà không là các họ vi điều khiển khác?
Hiện nay trên thị trường có rất nhiều họ vi điều khiển như 8051,
Motorola 68HC, AVR, ARM,... Ngoài họ 8051 được hướng dẫn một cách căn
bản ở môi trường đại học, bản thân người viết đã chọn họ vi điều khiển PIC
để mở rộng vốn kiến thức và phát triển các ứng dụng trên công cụ này vì các
nguyên nhân sau:
 Họ vi điều khiển này có thể tìm mua dễ dàng tại thị trường Việt Nam.
 Giá thành không quá đắt.
 Có đầy đủ các tính năng của một vi điều khiển khi hoạt động độc lập.
 Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi
điều khiển mang tính truyền thống: họ vi điều khiển 8051.

 Số lượng người sử dụng họ vi điều khiển PIC. Hiện nay tại Việt Nam


11
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

cũng như trên thế giới, họ vi điều khiển này được sử dụng khá rộng rãi. Điều
này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng
như: số lượng tài liệu, số lượng các ứng dụng mở đã được phát triển thành
công, dễ dàng trao đổi, học tập, dễ dàng tìm được sự chỉ dẫn khi gặp khó
khăn,…
 Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp
chương trình từ đơn giản đến phức tạp,…
 Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này
không ngừng được phát triển.
1.4.3 Ngôn ngữ lập trình cho PIC
Ngôn ngữ lập trình cho PIC rất đa dạng. Ngôn ngữ lập trình cấp thấp có
MPLAB (được cungcấp miễn phí bởi nhà sản xuất Microchip), các ngôn ngữ
lập trình cấp cao hơn bao gồm C, Basic, Pascal, … Ngoài ra còn có một số
ngôn ngữ lập trình được phát triển dành riêng cho PIC như PICBasic,
MikroBasic,…
1.5

KIẾN TRÚC PHẦN CỨNG CỦA PIC 18F4520
1.5.1 Sơ đồ khối

Các khối chính trên PIC 18f4520 gồm:
 Bộ xử lý trung tâm CPU (central Processing Unit):

 Tần số làm việc tối đa 40MHz, sản xuất bằng công nghệ Nano Watt.
 Thiết kế theo cấu trúc Havard, tập lệnh RISC.
 Sử dụng kĩ thuật đường ống lệnh (Intruction Pipelining).
 Đơn vị logic học (ALU: Arithmetic Logical Unit).
 Thanh ghi làm việc (WREG: work regster).
 Bộ nhân bằng phần cứng (8x8 Multiply), kết quả được chứa trong cặp
thanh ghi (PRODH, PRODL).
 Thanh ghi đếm chương trình (PC: Program Counter), có 21 bit thanh
ghi PCL (PC-Low) chứa các bit từ 7-0, thanh ghi PCH (PC- High) chứa các
bit từ 15-8, thanh ghi CPU (PC-Upper) chứa các bit từ 20-16.


12
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

 Thanh ghi con trỏ ngăn xếp STKPTR (Stack Pointer).
 31 mức ngăn xếp (31 level stack).
 Thanh ghi lựa chon băng (BSR: Bank select Register).
 Thanh ghi con trỏ dữ liệu dán tiếp FSR (Indirect Data memory Address
Pointer).

 Bộ nhớ (Memory)
 Bộ nhớ chương trình (Program Memory) bao gồm 32 Kbytes bộ nhớ
ROM (Read-Only Memory) kiểu Flash.
 Bộ nhớ dữ liệu (Data Memory) bao gồm 1536 byte SRAM (Static
Random Access Memory), 256 byte EEPROM.



13
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Hình 1.1 Sơ đồ khối PIC 18F4520
 Bộ phát Xung hệ thống (Oscillator): Nguồn xung từ bên ngoài hoặc
từ bộ phát xung hệ thống sẽ đi qua bộ nhân hoặc chia tần số để lựa chọn lấy
tần số thích hợp để làm xung hê thống
 Nguồn xung chính được đưa vào chip qua chân OSC1 va OSC 2

 Nguồn xung phụ được đưa vào chíp qua chân T1OSI, T1OSO.
 Bộ phát xung nội INTRC tần số 31 kHz.
 Bộ phát xung nội trên chip tần số 8 MHz
 Watchdog Timer (WDT): WDT là một bộ timer có chức năng đặc
biệt. Nếu được “cho phép” WDT sẽ và khi tràn sẽ khởi động lại hệ thống.


14
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Thời gian khởi động lại hệ thống có thể lựa chọn từ 4ms đến 131,072s. WDT
sẽ được khởi tạo ở đầu chương trình, trong thân chương trình sẽ đươc “chèn”
các lệnh reset WDT sao cho khi MC thực hiện đúng tuần tự các lệnh, WDT
chưa bị tràn. Mục đích chính của việc sử dụng WDT là tránh cho vi điều
khiển thực hiện phải một vòng lặp chết (dead loop) mà không thoát ra được.
Khi đó, do không thực hiện được các lệnh reset WDT nên MC tràn, tựn động
reset, thoát khỏi tình trạng “bị treo” trong vòng lặp chết. Ngoài ra, do có thể

hoạt động trong khi MC “ngủ” (sleep Mode) nên WDT còn được sử dụng
trong các ứng dụng tiết kiệm năng lượng.

 Bộ nạp chương trình: Bộ nạp chương trình nối tiếp trên chip(SingleSupply In-Circuit Serial Programming ) sẽ giúp nạp chương trình từ mạnh nạp
vào bộ nhớ ROM qua các chân PGM, PGC và PGD.

 Bộ Debuger (In-Circuit Debugger): Mạch Debugger trên chip sẽ giúp
người lập trình kiểm soát lỗi chương trình bằng cách cho vi điều khiển hoạt
động ở chế độ chạy từng lệnh, nhóm lệnh hay toàn bộ chương trình.

 Khối phát hiện tín hiệu reset: Mạch tín hiệu reset có khả năng phát
hiện 03 nguồn reset:

 Reset từ chân MCLR.
 Reset khi bật nguồn (POR: Power-on Reset).
 Reset khi nguồn yếu (BOR: Brown-out Reset).
 Khối quản lý lỗi bộ phát xung (Fail-Safe Clock Monitor): Khối này
được sử dụng để quản lý an toàn bộ phát xung hệ thống

 Khối định thời khởi động bộ phát xung (Oscillator Start Up-Timer):
khối này sử dụng để tạo thời gian trễ chờ cho bộ phát xung ổn định.

 Thiết bị ngoại vi (Peripheral):PIC 18f4520 được tích hợp các thiết bị
ngoại vi sau:

 Bộ phát hiện điện áp cao/thấp HLVD (High/low-Voltage detect).
 Bộ nhớ lưu dữ liệu khi tắt nguồn EEPROM.
 04 bộ đếm, định thời 16 bit: Timer0, Timer1, Timer2 và Timer3



15
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

 01 bộ so sánh tín hiệu tương tự (comparator).
 02 bộ CCP1, CCP2 (Capture, Compare, Pwm: chụp, so sánh, Pwm); 01
bộ ECCP (Enhanced CCP).
01 cổng truyền thông nối tiếp đồng bộ (Master Synchronous Serial
Port) có thể hoạt động được ở chế độ SPI hoặc 12C.

 01 cổng truyền thông nối tiếp đồng bộ//không đồng bộ tăng EUSART
(Enhanced Universal Synchoronous Asynchronous Receiver Transmitter),
giúp vi điều khiển PIC có thể giao tiếp với nhau hoặc giao tiếp với cổng COM
của máy tính.
13 kênh biến đổi tương tự - số (ADC) độ phân giải 10 bit.

 Khối giao tiếp vào/ra số:
Vi điều khiển PIC18F4520 có 5 cổng vào ra A, B, C, D và E. mỗi cổng
có một thanh ghi đệm dữ liệu tương ứng là PORTA, PORTB, PORTC,
PORTD và PORTE, các thanh ghi này được định địa theo địa chỉ byte theo
bit.
 PORTA: RA7-RA0.
 PORTB: RB7-RB0.
 PORTC: RC7-RC0.
 PORTD: RD3-RD0.
 PORTE: RE3-RE0.
1.5.2 Sơ đồ chân
 Sơ đồ chân dạng PDIP (Lead Plastic Dual In-Line Package) hai hàng
chân cắm 2 bên.



16
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Hình 1.2 Sơ đồ chân PIC 18F4520 dạng PDIP
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) :
- 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.


17
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

• 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+): RA3 là cổng vào ra số, AN3 là đầu vào

tương tự Input3. VREF+ đầu vào tương tự chuyển đổi A/D điện áp tham chiếu
(mức cao).
• Chân 6 (RA4/T0CKI/C1OUT): RA4 là đầu vào ra số ,T0CKI đầu vào
xung bên ngoài của Timer0, C1OUT là đầu ra bộ so sánh 1.
• Chân 7(RA5/AN4/ /HLVDIN/C2OUT): trong đó RA5 là cổng vào ra
số, AN4 là đầu vào tương tự Input 4,

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.
• Chân 13(OSC1/CLKI/RA7): với OSC1 là đầu vào bộ dao động thạch
anh hoặc là đầ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 OSC1. 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 để lựa chọn dạng bộ dao động
thạch anh. CLK0 có tần số bằng ¼ t ần số của OSC1 độ rộng chu kì lệnh,
RA6 là đầu vào ra chung. Các chân cổng vào ra hai chiều Port B. Port B có
thể lập trình bằng phần mềm khi 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.



18
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

• Chân 35(RB2/INT2/AN8): RB2 là đầu vào ra số , INT2 đầu vào nắ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 châ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/T1O SO/T13CKI):RC0 đầu vào ra số, T1OSO đầu ra bộ
dao độ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ộ
dao độ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 đưa
chuỗi xung vào ra cho SPI lựa chọn, SCL đầu vào ra đưa chuỗi xung vào ra
cho I2CTM lựa chọn.
• Chân 23(RC4/SDI/SDA): RC4 là đầu vào ra số , SDI đầu vào dữ liệu
API, 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 đầ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ộ
EUSART, DT đầu vào ra dữ liệu đồng bộ EUSART.


19
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Các chân cổng Port D( Port D có thể vào ra hai hướng hoặc cổng song
song 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.
• Chân 20(RD1/PSP1): RD1 đầu vào ra số, PSP1cổ ng dữ liệu song
song phụ thuộc
• Chân 21(RD2/PSP2): RD2 đầu vào ra số, PSP2 cổng dữ liệu song
song phụ thuộc
• Chân 22(RD3/PSP3): RD3 đầu vào ra số, PSP3 cổng dữ liệu song
song phụ thuộc
• Chân 27(RD4/PSP4): RD4 đầu vào ra số, PSP4 cổng dữ liệu song
song phụ thuộc
• Chân 28(RD5/PSP5/P1B): RD5 đầu vào ra số, PSP5 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 cho 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
cho cổng PSP, AN7 đầu vào tương tự Input7.
- Đầu RE3 nằm ở chân 1.
Các chân khác
• Chân 12,31(VSS): nối đất chuẩn cho I/O và logic.


20
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

• Chân 11,32(VDD): cung cấ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.
1.5.3 Tố chức bộ nhớ
Bộ nhớ vi điều khiển PIC 18f4520 bao gồm 3 loại:
 Bộ nhớ chương trình (Program memory).
 Bộ nhớ dữ liệu RAM (Data RAM).
 Bộ nhớ EEPROM (Data EEPROM).
Bộ nhớ vi điều khiển PIC 18F4520 được thiết kế theo kiến trúc Havard,
bộ nhớ chương trình và bộ nhớ dữ liệu được thiết kế riêng đường Bus, cho

phép CPU truy cập cùng lúc tới bộ nhớ chương trình và bộ nhớ dữ liệu. Bộ
nhớ dữ liệu EEPROM được sử dụng để lưu trữ dữ liệu khi mất điện, nó coi
như là một ngoại vi của PIC 18F4520 bởi việc truy cập bộ nhớ này thông qua
các thanh ghi điều khiển.

 Bộ nhớ chương trình
Thanh ghi đếm chương trinh PC (Program Counter) của PIC 18F4520 có
21 bit nên có thể địa chỉ hóa 2 Mbyte bộ nhớ chương trình. Bộ nhớ Flash của
PIC 18F4520 có dung lượng 32 Kbyte nên chứa được 16384 lệnh từ đơn
(Single – Word intructions), với dải địa chỉ từ 0000h đến 7FFFh. Nếu đọc ở
vùng nhớ ngoài 32 Kbyte của PIC 18f4520 và trong khoảng 2 Mbyte mà nó
có thể quản lý thì dữ liệu sẽ trả về là “0”. Pic 18f4520 có 31 mức ngăn xếp.
 Vector Reset của PIC 18f4520 được đặt ở địa chỉ 0000h, khi reset nội
dung của thanh ghi đếm chương trình PC sẽ được xóa về “0”. Các thanh ghi
của PIC 18f4520 sẽ được tải lại giá trị mặc định.
 Vector ngắt ưu tiên cao (High – Priority Interrup Vector) được đặt ở địa
chỉ 0008h, Vector ngắt ưu tiên thấp (Low – Priority Interrup Vector) được đặt


21
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

ở địa chỉ 0018h. Khi xảy ra ngắt thì thanh ghi đếm chương trình PC sẽ được
gắn địa chỉ theo ngắt tương ứng để gọi chương trình con phục vụ ngắt.

Hình 1.3 Sơ đồ tổ chức bộ nhớ chương trình và ngăn xếp
 Thanh ghi đếm chương trình PC 21 bit chứa trong 3 thanh ghi 8 bit
riêng biệt, 8 bit thấp chứa trong thanh ghi PCL, 8 bit tiếp theo chứa trong

thanh ghi PCH , 5 bit cao chứa trong thanh ghi PCU. Thanh ghi PCH và PCU
không cho phép truy cập trực tiếp mà phải truy cập thông qua 2 thanh ghi
PCLATH và PCLATU tương ứng. Thanh ghi đếm chương trình PC được sử
dụng để chứa địa chỉ của lệnh cần thực hiện. PIC 18f4520 được thiết kế theo
kĩ thuật đường ống lệnh nên việc thực hiện lệnh PC-2 và đọc mã lệnh PC
được diễn ra tại cùng một thời điểm. Mỗi lệnh chiếm 2 byte bộ nhớ chương
trình nên thanh ghi đếm chương trình sẽ được cộng thêm 2 sau mỗi lệnh.


22
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

 Bộ nhớ dữ liệu RAM
Bộ nhớ dữ liệu RAM 1536 byte (SRAM) được chia thành 2 vùng chức
năng riêng biệt, vùng RAM đa dụng GPR (General Purpose Registers) sử
dụng để chứa dữ liệu, vùng các thanh ghi chức năng đặc biệt SFR ( Special
Function Registers) chứa thanh ghi chức năng điều khiển ngoại vi và CPU.
Bộ nhớ dữ liệu RAM được chia thành 16 Bank từ Bank 0 đến Bank 15, vùng
RAM đa dụng nằm từ Bank 0 đến Bank 2, các thanh ghi SFR nằm ở Bank 15.
Vùng địa chỉ từ 300h đến EFFh không được sử dụng. Đọc ở vùng này sẽ trả
về giá trị 00h. Bốn bit thấp của thanh ghi lựa chọn băng BSR (Bank Select
Register) được sử dụng để lựa chọn truy cập băng.

Hình 1.4 Sơ đồ tổ chức bộ nhớ dữ liệu RAM


23
Đồ án tốt nghiệp Đại học


GVHD: Ths. Bồ Quốc Bảo

Hình 1.5 Phân bổ địa chỉ của các thanh ghi chức năng đặc biệt SFR

 Bộ nhớ dữ liệu EEPROM
Bộ nhớ dứ liệu EEPROM của PIC 18f4520 là bộ nhớ mảng không bị
mất dữ liệu khi mất điện, độc lập với bộ nhớ chương trình và bộ nhớ dữ liệu
RAM, được sử dụng để lưu trữ dữ liệu lâu dài. Nó có thể ghi/đọc dữ liệu .
1000.000 lần, dữ liệu có thể lưu trữ trong bộ nhớ 100 năm. Điều khiển và
đọc/ghi bộ nhớ dữ liệu EEPROM không truy cập trực tiếp vào tập thanh ghi
hay khoảng trống bộ nhớ chương trình mà được truy cập, điều khiển gián tiếp
qua các thanh ghi chức năng SFR.


24
Đồ án tốt nghiệp Đại học

GVHD: Ths. Bồ Quốc Bảo

Bốn thanh ghi SFR được sử dụng để ghi/đọc bộ nhớ dữ liệu EEPROM
là:
 EECON1 – thanh ghi điều khiển EEPROM 1
 EECON2 – thanh ghi điều khiển EEPROM 2
 EEDATA – thanh ghi dữ liệu EEPROM
 EEADR – thanh ghi địa chỉ EEPROM
Bộ nhớ dữ liệu EEPROM cho phép đọc/ghi dữ liệu theo byte. Thanh ghi
EEDATA được sử dụng để chứa dữ liệu, thanh ghi EEADR sử dụng để chứa
địa chỉ truy cập vào các ô nhớ của EEPROM. Bộ nhớ dữ liệu EEPROM có
dung lượng 256 byte, 8 bit của thanh ghi địa chỉ EEADR sẽ đia chỉ hóa các

byte của bộ nhớ từ địa chỉ 00h đến FFh. Một byte dữ liệu ghi vào bộ nhớ
EEPROM sẽ tự động xóa đi dữ liệu trước đó.
-Các thanh ghi của EEPROM
Thanh ghi điều khiển EEPROM:EECON1

Ghi chú:
S = Bit chỉ được thiết lập (không xóa được bằng phần mềm)
R = Cho phép đọc
W = Cho phép ghi
U = Không sử dụng, đọc bằng ‘0’
-n = Reset - POR
‘1’ = Được thiết lập
‘0’ = Được xóa
-x = Reset không xác định
bit 7: EEPGD: Bit lựa chọn bộ nhớ dữ liệu EEPROM hay bộ nhớ chương
trình Flash
1 = Truy cập bộ nhớ chương trình Flash
0 = Truy cập bộ nhớ dữ liệu EEPROM
bit 6: CFGS: Bit lựa chọn cấu hình hoặc bộ nhớ chương trình Flash/dữ liệu
EEPROM
1 = truy cập thanh ghi cấu hình


×