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

Đồ án tốt nghiệp cơ điện tử tìm hiệu về vi điều khiển thiết kế thi công mạch thử nghiệm

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.22 MB, 71 trang )

LỜI CÁM ƠN
Lời đầu tiên em xin gửi lời cảm ơn chân thành đến thầy giáo hướng dẫn Phạm
Hoàng Vương bộ môn Kỹ thuật máy đã giúp đỡ em rất nhiều trong quá trình thực
hiện đề tài này. Từ lúc bắt đầu đến khi kết thúc đề tài thầy đã giúp em làm quen với
lĩnh vực vi xử lí, học tập nghiên cứu và sử dụng được các phần mềm liên quan đến
điều khiển như Proteus,PicC… . Thầy cũng giúp đỡ em rất nhiều trong lúc thiết kế
và thi công mạch mô hình thực tế.
Em cũng xin cám ơn các thầy, cô trong bộ môn Kỹ thuật máy đã giúp đỡ, tạo
điều kiện cho sinh viên chúng em có cơ hội học tập, nghiên cứu trong suốt các năm
học vừa qua để bọn em được phát triển các kĩ năng cơ bản của 1 sinh viên kĩ thuật
trước khi tốt nghiệp.
Hà Nội, ngày 15 tháng 4 năm 2014
Đàm Hùng Việt
1
MỤC LỤC
2
DANH MỤC HÌNH ẢNH
3
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ VI XỬ LÍ
1.1.Cấu trúc tổng thể của một hệ vi điều khiển
-Trước hết ta cần phân biệt hai khái niệm vi xử lí và vi điều khiển, về cơ bản
chúng không khác nhau nhiều đều là các thuật ngữ dung để đề cập đến kĩ thuật ứng
dụng các công nghê vi điện tử, công nghệ tích hợp và khả năng xử lí theo chương
trình vào các lĩnh vực khác nhau. Tuy nhiên có khác biệt là vi xử lí chủ yếu sử
dụng vào mục đích tính toán còn vi điều khiển sử dụng cho các mục đích nhỏ cụ
thể.
Hình 1.1: Kiến trúc cơ bản của môt vi xử lý
4
-Ngoài cấu trúc như trên ra với mỗi loại vi điều khiển cụ thể còn có thêm một số
phần cứng khác như bộ dao động trong,bộ biến đổi tần số tương tự DAC, các mạch
điều chế dạng sóng WG, điều chế độ rộng xung PWM…


1.2.Chức năng của từng bộ phận.
1.2.1. CPU
-Là bộ não của vi xử lí, các bộ phận khác của vi xử lí đều là cơ quan chấp hành
dưới quyền của CPU. Mỗi cơ quan này đều có một cơ chế hoạt động nhất định mà
CPU phải tuân theo để giao tiếp với chúng. CPU dùng 3 loại tín hiệu để giao tiếp
và điều khiển các cơ quan ngoại vi là :
+ tín hiệu địa chỉ
+ tín hiệu dữ liệu
+ tín hiệu điều khiển.
Về mặt vật lí thì các tín hiệu này là các đường điện nhỏ dẫn từ CPU đến các
ngoai vi khác hoặc là từ các ngoại vi đến với nhau.
Chức năng của CPU là tiến hành các thao tác tính toán, xử lí,đưa ra các tín hiệu
địa chỉ, dữ liệu và điều khiển nhằm thực hiện một nhiệm vụ nào đó do người lập
trình đưa ra thông qua các lệnh.
1.2.2. Bộ nhớ ROM
- Là loại bộ nhớ chứa chương trình hướng dẫn CPU thực hiện một nhiện vụ
nào đó, ROM là loại bộ nhớ không bị mất chương trình khi ngừng cung cấp nguồn
nuôi.
5
1.2.3. Bộ nhớ RAM
- Là loại bộ nhớ dữ liệu dùng để chứa dữ liệu ( là các tham số, các biến tạm
thời….)
- RAM là loại bộ nhớ sẽ mất dữ liệu khi cắt nguồn nuôi.
1.2.4. Cổng giao tiếp (có thể là cổng nối tiếp hoặc cổng song song)
Đây là các đường tín hiệu đươc nối với một số chân của IC để giao tiếp với các
thiết bị bên ngoài. Giao tiếp ở đây là đưa điên áp ra hoặc đọc vào giá trị điện áp tại
chân cổng. Các giá trị điện áp đưa ra hoặc đọc vào chỉ có thể được biểu diễn bởi
mọt trong hai giá trị logic 0 hoặc 1. Trong kĩ thuật vi xử lí, người ta thường dùng
quy ước logic dương: giá trị 0 ứng với mức điện áp 0VDC, giá trị 1 ứng với mức
điện áp +5VDC. Tùy từng loại vi xử lí mà khoảng xấp xỉ đó là khác nhau nhưng

nhìn chung là tương thích với mức logic TTL.
+ Cổng giao tiếp song song thường gồm 8 đường khác nhau gọi là các
cổng 8bit. Các đường tín hiệu này độc lập với nhau, điều này cho phép ta đưa ra
hay đọc vào các giá trị logic khác nhau đối với từng chân. Ngoài ra cần chú ý các
cổng giao tiếp này có thể kiêm thêm các chức năng đặc biệt lien quan đến các ngoại
vi khác.
+ Cổng giao tiếp nối tiếp khác với cổng song song các bit dữ liệu được
truyền lần lượt trên cùng một đường tín hiệu thay vì cùng môt lúc như trên cổng
song song. Tuy nhiên việc truyền dữ liệu trên cổng nối tiếp phải tuân theo một cơ
chế, một giao thức hay một nguyên tắc nhất định. Có thể kể một số giao thức như
SPI,I
2
C,SCI
Cổng nối tiếp có 2 kiểu truyền dữ liệu chính:
6
Truyền đồng bộ: thiết bị truyền và thiết bị nhận đều dùng chung một
xung nhịp.
Truyền dị bộ: thiết bị truyền và thiết bị nhận sử dụng hai nguồn xung
nhịp riêng. Tuy nhiên hai nguồn xung nhịp này không được khác nhau quá nhiều.
Xung nhịp là yếu tố không thể thiếu trong truyền dữ liệu nối tiếp và nó có vai trò
xác định giá tri của bit dữ liệu.
Cổng nối tiếp có thể có một trong các tính năng sau:
Đơn công: thiết bị chỉ có thể truyền hoặc nhận dữ liệu.
Bán song công: thiết bị có thể truyền và nhận dữ liệu nhưng tại một
thời điểm chỉ có thể nhận hoặc truyền đi.
Song công: thiết bị có thể truyền và nhận dữ liệu đồng thời.
1.2.5.Bộ đếm/Bộ định thời.
Đây là các ngoại vi được thiết kế để thực hiện môt nhiệm vụ đơn giản là đếm các
xung nhịp. Mỗi khi có thêm một xung nhip tại đầu vào đếm thì giá trị bộ đếm tăng
lên 1 đơn vị ( trong bộ đếm tiến) hay giảm đi 1 đơn vị (trong bộ đếm lùi). Xung

nhịp đưa vào đếm đưa vào đếm có thể là một trong hai loại:
+ Xung nhịp bên trong IC: Đó là xung nhịp được tạo ra nhờ kết hợp mạch
dao động bên trong IC và các linh kiện phụ bên ngoài nối với IC. Ta có thể coi đó
là “nhịp tim” để toàn bộ các phần cứng bên trong vi xử lí( kể cả CPU và các ngoại
vi) có thể hoạt động được. Trường hợp này người ta gọi là các bộ định thời
(Timer). Do xung nhịp của loại này thường đều đặn nên ta có thể dùng để đếm thời
gian một cách chính xác.
7
+ Xung nhịp bên ngoài IC: đó là tín hiệu logic thay đổi liên tục giữa hai
mức 0-1 và không nhất thiết phải đều đặn. Trong trường hợp này, người ta gọi là
các bô đếm (Counter). Ứng dụng phổ biến của các bộ đếm là đếm các sự kiện bên
ngoài như các sản phẩm chạy trên băng truyền, đếm số lượng xe tham gia giao
thông trên đường…
- Một khái niệm cần lưu ý đó là “tràn”, nó được hiểu là sự kiện bộ đếm vượt
qua giá trị tối đa mà nó có thể biểu diễn và quay trở về 0. Với bộ đếm 8bit giá trị tối
đa của nó là 255 (2
8
=256) và bộ đếm 16bit là 65535 (2
16
=65536).
1.2.6.Khối giao tiếp bus.
Khối này có chức năng ghép nối giữa các bus bên trong chip và các chân đưa ra
ngoài chip. Mục đích của việc đưa các tín hiệu địa chỉ, dữ liệu và điều khiển ra
ngoài là mở rộng khả năng phối ghép thêm của vi xử lí với các ngoại vi khác ( chủ
yếu là các bộ nhớ ngoài) ngoài các ngoại vi được tích hợp trên IC. Thông thường
thì số lượng các đường tín hiệu là giữ nguyên khi đưa ra ngoài chip, tuy nhiên trong
một số trường hợp số lượng các đường tín hiệu có thể nhỏ hơn số lượng thực hiện
bên trong.
- Khi đưa ra ngoài , các tín hiệu địa chỉ và dữ liệu có thể được ghép với
nhau( cùng sử dụng chung một số chân nào đó) hoặc được tách riêng( tín hiệu địa

chỉ dùng một số chân, tín hiệu dữ liệu dùng một số chân khác). Người ta thường
dùng “dồn kênh”, tức là ghép chức năng để giảm thiểu số chân cần thiết. Khi đó tín
hiệu địa chỉ sẽ xuất hiện trước, sau đó là tín hiệu dữ liệu. Để tách được hai loại tín
hiệu này thì nhà sản xuất cung cấp cho người sử dụng một đường tín hiệu điều
khiển có tên là tín hiệu chốt địa chỉ (thường kí hiệu là ALE). Tín hiệu này sẽ “tích
cực” khi tín hiệu địa chỉ xuất hiện và “không tích cực” khi tín hiệu dữ liệu xuất
8
hiện trên các bus. Các IC thích hợp với việc tách tín hiệu địa chỉ và dữ liệu là các
IC thuộc họ 74xx373/374 hoặc 74xx573/574.
1.2.7.Ngăn xếp(stack).
- Là một đoạn bộ nhớ (thường đặt trong RAM) dùng để chứa địa chỉ trở về
trong các trường hợp chương trình con hoặc chương trình phục vụ ngắt được gọi.
Ngoài ra ngăn xếp còn dùng để lưu các dữ liệu tạm thời. Ngăn xếp hoạt động theo
cơ chế “vào sau ra trước”(LIFO-Last in First out).
Ngăn xếp là phần cứng vô cùng quan trọng trong vi xử lí, nó tham gia vào các
thao tác rẽ nhánh( trừ thao tác nhảy) của chương trình. Người lập trình phải hết sức
cẩn thận khi gán giá trị khởi tạo cho SP(thanh ghi con trỏ ngăn xếp) để tránh sự cố
tràn ngăn xếp hoặc ngăn xếp trùng với các vùng nhớ lưu dữ liệu khác. Khi xảy ra
một trong các sự cố trên sẽ không có cách nào kiểm soát được hoạt động của vi xử
lí và có thể gây thiệt hại lớn đối với hệ thống.
1.3.Nguyên lí hoạt động của một vi xử lí.
-Các thao tác tính toán xử lí được CPU thực hiện theo chuỗi các lệnh đặt
trong bộ nhớ chương trình.
-Việc thực hiện các lệnh sẽ diễn ra tuần tự từ thấp đến cao bắt đầu từ thấp
đến cao bắt đầu từ địa chỉ reset. Địa chỉ reset là địa chỉ mà tại đó sau khi cấp nguồn
nuôi CPU sẽ bắt đầu đọc và thực hiện theo các chỉ dẫn được mã hóa tại đó. Mỗi
loại vi xử lí sẽ có một địa chỉ reset riêng do nhà sản xuất quy định.
-Các lệnh được thực hiện tuần tự là nhờ có thanh ghi “bộ đếm chương trình”.
Thanh ghi này chứa địa chỉ của ô nhớ chứa mã của lệnh tiếp theo sẽ được thực
hiện. Khi CPU tìm nạp được mã của lệnh n, thanh ghi sẽ tự động tăng lên 1 đơn vị

để chỉ vào ô nhớ chứa mã của lệnh (n=1).
9
-CPU sẽ thực hiện các lệnh theo các bước nhỏ. Thường thì nó bao gồm:
+Tìm mã lệnh: tức là truy cập chương trình đọc lấy giá trị tại ô nhớ được
chỉ bởi thanh ghi và lưu vào một thanh ghi chuyên dùng chứa mã lệnh trên CPU.
+Giải mã lệnh: giải mã giá trị đã lấy được và đang đặt trong thanh ghi
chứa mã lệnh trong CPU.
+Thực hiện lệnh:thực hiện chỉ dẫn được giải mã từ lệnh đọc đươc.
1.4.Các dòng vi điều khiển thường gặp.
• Họ vi điều khiển Atmel: AT89, 8051,8052,8951
• Họ vi điều khiển Intel: 8XC42, MCS96, 386ex
• Họ vi điều khiển Fujitsu: F²MC Family (8/16 bit), FR Family (32 bit), FR-V
Family (32 bit RISC)….
• Họ vi diều khiển AMCC: 403 PowerPC CPU, PPC 403GCX,405 PowerPC
CPU, PPC 405EP, PPC 405GP/CR, PPC 405GPr, PPC NPe405H/L
• Họ vi điều khiển Microchip: PIC16Fxxx, dsPIC30F
• Và còn nhiều dòng vi điều khiển khác nữa
-Sau khi tham khảo nhiều tài liệu về các loại vi điều khiển và nhận được sự góp
ý, chỉ dẫn của thầy giáo em chọn Pic 16F887 làm vi điều khiển cho mạch điều
khiển của mình. Lý do:
+ Pic16F887 là vi điều khiển phổ biến dễ dàng tìm mua được.
+ Giá thành không quá đắt với sinh viên.
+ Nó đáp ứng được yêu cầu của mạch điều khiển mà em dự định thiết kế.
+Tài liệu về ứng dụng khá phổ biến.
10
+ Lý do quan trọng nhất là em đã từng sử dụng Pic16F887 để thi công 1 mạch
thực tế và nhận được kết quả khả quan.
1.5.Giới thiệu về Pic16F887.
1.5.1. PIC nói chung.
1.5.1.1.Khái niệm PIC.

-PIC là chữ viết tắt của “Programmable Intelligent Computer”(máy tính thông
minh khả trình) là một họ vi điều khiển RISC được sản xuất bởi công ty Microchip
Technology.
- Qua thời gian phát triển lâu dài( từ năm 1975), ngày nay, rất nhiều dòng được
sản xuất hàng loạt với các module ngoại vi tích hợp sẵn với bộ nhớ chương trình từ
512Word đến 32K Word.
- Ưu thế của PIC là phổ biến rộng rãi, giá thành không quá đắt, có đầy đủ tính
năng của vi điều khiền khi hoạt động độc lập, có nhiều tính năng đa dạng và các
tính năng này không ngừng được phát triển.
1.5.1.2.Cấu trúc của PIC.
- Cấu trúc phần cứng của PIC được thiết kế theo 2 dạng:
+Cấu trúc Von-Neumann, 2 bộ nhớ được bố trí nằm chung nên rất gọn,
tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của CPU là rất cao.
+ Đối với cấu trúc Havard bộ nhớ dữ liệu và bộ nhớ chương trình tách ra
thành các thành phần riêng biệt. Như vậy, trong cùng một thời điểm CPU có thể
truy xuất đến cả hai bộ nhớ. Điều này giúp cho tốc độ xử lý của vi xử lý tăng lên.
Ngoài ra, tập lệnh trong cấu trúc Havard có thể được tối ưu tùy theo yêu cầu cấu
11
trúc của vi điều khiển mà không phụ thuộc cấu trúc dữ liệu. Ví dụ, đối với vi điều
khiển PIC dòng 16Fxxx thì độ dài lệnh luôn là 14-bit.
Hình 1.2: Hai kiểu tổ chức phần cứng trong PIC
Tổ chức phần cứng của các dòng vi điều khiển PIC được thiết kế theo cấu trúc
Havard. Việc được thiết kế theo cấu trúc Havard giúp cho tập lệnh của vi điều
khiển PIC được tối ưu, cấu trúc lệnh không phụ thuộc cấu trúc dữ liệu và có thể
linh động tùy chỉnh theo khả năng và tốc độ của từng vi điều khiển.
1.5.1.3.Ngôn ngữ lập trình.
- Ngôn ngữ lập trình cho PIC rất đa dạng từ cấp thấp đến cấp cao.
- Ngôn ngữ cấp thấp có MPLAB,các ngôn ngữ lập trình cao hơn có C,
Baisic , Pascal…
12

- Ngoài ra còn có một số ngôn ngữ lâp trình được phát triển giành riêng cho
PIC như PICBasic, MikroBasic,…
1.5.1.4.Mạch nạp PIC.
Ta có thể sử dụng các mạch nạp được cung cấp bởi các nhà sản xuất như:
PICkit 2, PICSTART plus, MPLAB ICD 2, PROMATE II tuy nhiên giá thành của
nó khá cao và lại khó tìm gặp.
Ngoài ra người dùng có thể tự chế tạo các mạch nạp cho PIC.
1.5.2. Giới thiệu về PIC16F887.
-Đặc điểm nổi bật của vi điều khiển PIC là khả năng tính toán tốc độ cao và
các ứng dụng trong điều khiển công suất và điều khiển động cơ.
13
Hình 1.3.Sơ đồ các chân của PIC16F887
-Chức năng các chân:
1.Là chân Reset hoặc chân đặt điện áp Vpp.
2. Các chân 2-10 được sử dụng làm chân IN/OUT tín hiệu số hoặc INPUT tín
hiệu tương tự(trừ chân số 6). Ngoài ra các chân 4,5 có thể làm chân chuyển đổi
A/D.
3.Chân 11 và chân 32 dùng để cấp điện áp Vdd=5V cho PIC.
4.Chân 12 và chân 31 để cấp điện áp Vss=0V cho PIC.
14
5. Chân 13 và 14 dùng để mắc thạch anh cho mạch tạo xung nhịp cho vi điều
khiển.
6.Chân 15 có thể làm chân I/O tín hiệu số hoặc chân T1OSO/T1CK1.
7. Chân 16 có thể làm chân I/O tín hiệu số hoặc chân T1OS1 hoặc chân
CCP2.
8. Chân 17 dùng làm chân I/O tín hiệu số hoặc làm chân CCP1/P1A.
9. Chân 18,19,20,21,22,23,27 làm chân I/O tín hiệu số, các chân 18,23 còn có
thể dùng làm chân giao tiếp I2C.
10.Các chân 24,25,26 đều có thể dùng làm chân I/O tín hiệu số; chân 25,26 có
thể dùng làm chân ghép nối máy tính.

11. Chân 28 làm chân I/O tín hiệu số hoặc chân P1B.
12. Chân 29 làm chân I/O tín hiệu số hoặc chân P1C.
13. Chân 30 làm chân I/O tín hiệu số hoặc chân P1D.
14.Chân 33 đến 38 làm chân I/O tín hiệu số hoặc chân Input tín hiệu tương tự.
20. Chân 39 làm chân I/O hoặc ICSPCLK.
21.Chân 40 làm chân I/O hoặc ICSPDAT.
15
Hình 1.4.Chức năng các chân (ảnh chụp từ Data Sheet)
16
Hình 1.5.Một vi điều khiển PIC16F887.
1.5.3.Tổ chức bộ nhớ.
- Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài
14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động
tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình
8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu EEPROM với dung
lượng 256x8 byte. Số PORT I/O là 5 với 33 pin I/O.
Các đặc tính ngoại vi bao gồm các khối chức năng sau:
+Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
+Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm
dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep.
+Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
Hai bộ Capture/so sánh/điều chế độ rộng xung.
+Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C.
+Chuẩn giao tiếp nối tiếp USART 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.
17
Các đặc tính Analog:
+ 8 kênh chuyển đổi ADC 10 bit.
+Hai bộ so sánh.

Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
+Bộ nhớ Flash với khả năng ghi xóa được 100.000 lần.
+Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.
+Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.
+Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
+Nạp được chương trình ngay trên mạch điện ICSP (In Circuit Serial
Programming) thông qua 2 chân.
+Watchdog Timer với bộ dao động trong.
+Chức năng bảo mật mã chương trình.
+Chế độ Sleep.
+Có thể hoạt động với nhiều dạng thạch anh khác nhau.
Bộ nhớ chương trình của vi điều khiển PIC16F877 là bộ nhớ flash, dung lượng
bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đế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ì một 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ó 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 (Reset vector). Khi có ngắt xảy ra, bộ đếm
chương trình sẽ chỉ đến địa chỉ 0004h (Interrupt vector).
18
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 1.6. Bộ nhớ chương trình PIC16F877
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 PIC16F877 bộ nhớ dữ liệu được chia ra làm 4 bank. Mỗi bank có dung lượng
128 byte, bao gồm các thanh ghi có chức năng đặc biệt SFG (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
19

ghi SFR thường xuyên được 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 PIC16F877 như
sau:
20
21
1.5.4.Bộ tạo dao động.
- Vi điều khiển PIC16F887 có thể thực hiện với nhiều kiểu bộ tạo dao động
khác nhau. Ta lấy 1 ví dụ đơn giản là dao động thạch anh.
Hình 1.7.Sơ đồ
bộ tạo dao
động.
-Thông số
của 2 tụ gốm
phụ thuộc vào
tần số của bộ dao động thạch anh.
Bảng 2.1: Thông số của 2 tụ gốm theo từng loại của bộ dao động thạch anh
Kiểu thạch anh Tần số Tụ C
1
Tụ C
2
LP
32 kHz 33 pF 33 pF
200 kHz 15 pF 15 pF
XT
1.0 MHz 33 pF 33 pF
4.0 MHz 27 pF 27 pF
HS
4.0 MHz 27 pF 27 pF
8.0 MHz 22 pF 22 pF

20.0 MHz 15 pF 15 pF
22
Hình 1.8.Hình ảnh một con thạch anh 20Mhz.
1.5.5.Cấp nguồn .
-Nguyên tắc cấp nguồn:
+Không cấp nguồn xung, chỉ cấp nguồn tuyến tính. Tốt nhất là thiết kế một cầu
diode LM7805 và một số tụ lọc cho phần cấp nguồn.
Hình 1.9.Mạch ổn áp dùng cầu DIODE và IC ổn áp 3 chân 7805.
23
Hình 1.10.Một con IC 7805
.
+Cấp nguồn cho tất cả các chấn Vss/Vdd của PIC. Mỗi cặp chân Vss/Vdd gắn
thêm 1 tụ 104pF sát chân đó để chống nhiễu.
24
1.5.6.Reset.
Nguyên tắc là dùng trở kháng 10k – 33k và 4k7 cho mạch reset.
Hình 1.11.Sơ đồ của 1 mạch reset
1.5.7. Các bộ định thời
1.5.7.1. TIMER 0
Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A.
Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit. Cấu trúc
của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung
clock. Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn. Bit TMR0IE (INTCON<5>) là
bit điều khiển của Timer0.
TMR0IE=1 cho phép ngắt Timer0 tác động, TMR0IF= 0 không cho phép ngắt
Timer0 tác động.
-Sơ đồ khối của Timer0 như sau:
25

×