Tải bản đầy đủ (.doc) (47 trang)

Đồ án quạt tản nhiệt tự độ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.16 MB, 47 trang )

MỤC LỤC
LỜI CẢM ƠN
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
11
Lời đầu tiên chúng em xin chân thành cảm ơn thầy Vương Sỹ Kông đã
nhiệt tình hướng dẫn chỉ bảo chúng em trong suốt quá trình làm đồ án “Thiết kế
quạt tản nhiệt tự động” này.
Chúng em xin chân thành cảm ơn các thầy cô giáo trong khoa đã giúp đỡ,
đóng góp ý kiến cho chúng em.
Cuối cùng chúng em xin dành lời cảm ơn chân thành tới bạn bè đã động
viên, khuyến khích và tạo điều kiện cho chúng em hoàn thành tốt đề tài của mình.
Do thời gian, kinh nghiệm, kiến thức…bản thân còn hạn chế, đề tài của
chúng em đã hoàn thành nhưng không tránh khỏi những thiếu sót. Kính mong quý
thầy cô bỏ qua và góp ý để đề tài được hoàn thiện hơn, giúp chúng em rút kinh
nghiệm những lần sau.
Chúng em xin chân thành cảm ơn!
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
22
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………


………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
……………………………………………………………………………………
NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
33
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
PHẦN MỞ ĐẦU
1.1 Lý do chọn đề tài
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
44
Chúng ta đang sống trong thế kỷ XXI, thế kỷ của khoa học cách mạng kỹ
thuật. Xung quanh chúng ta có vô số các thiết bị điện tử. Các thiết bị điện tử to lớn
dùng trong công nghiệp cho đến các thiết bị điện tử dân dụng hàng ngày quanh
chúng ta đều đựơc điều khiển bởi các mạch điện tử, tìm hiểu về các mạch điện tử là
một điều hết sức thiết thực và bổ ích và có ứng dụng thực tiễn.
Khi máy hoạt động các chi tiết máy được nung nóng. Máy chỉ hoạt động tốt
nếu chế độ nhiệt của các chi tiết được giữ trong một giới hạn nhất định. Vì vậy
trong các loại máy móc người ta phải dùng hệ thống làm mát. Nhiệm vụ của hệ
thống làm mát là lấy đi phân nhiệt dư thừa của các chi tiết rồi tản ra môi trường
xung quanh, đảm bảo cho các chi tiết của động cơ luôn hoạt động ở chế độ thích
hợp nhất. Có hai hệ thống làm mát là: hệ thống làm mát bằng nước sử dụng cho
động cơ có công suất lớn và hệ thống làm mát bằng không khí thường dùng cho
động cơ có công suất nhỏ.
Đối với những động cơ dùng quạt làm mát cho động cơ thì quạt làm mát động
cơ được điều khiển bằng bộ xử lý trung tâm, khi động cơ hoạt động thì quạt gió
làm mát động cơ sẽ chạy ở nhiều chế độ, có lúc ngừng hoạt động khi nhiệt độ động
cơ giảm thấp, và sẽ hoạt động trở lại khi nhiệt độ tăng lên mức giới hạn. Ví dụ như

laptop, projactor …
Máy tính đang trở thành thiết bị hỗ trợ không thể thiếu đối với công việc, tuy
nhiên cũng giống như con người, máy tính không thể chịu được nhiệt độ cao.
Khi đó, các linh kiện sẽ nhanh chóng hỏng hóc và không thể vận hành một cách
bình thường.
Máy tính là một khối bao gồm nhiều thiết bị thành phần như CPU, card đồ
họa, main…, và chúng sẽ phát nhiệt khi vận hành. Một chiếc PC được cấu hình tốt
thường có mức tản nhiệt cao nhờ sử dụng nhiều quạt làm mát và các giải pháp
khắc phục hơi nóng. Nếu chiếc máy tính của bạn có mức tản nhiệt không đủ thì
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
55
nhiệt độ hệ thống sẽ cao lên, đe dọa trực tiếp tới tuổi thọ của máy. Chính vì thế,
làm mát PC luôn được coi là ưu tiên hàng đầu đối với người dùng máy tính.
Chính vì nhũng lý do trên chúng em đã chọn đề tài về: “ Thiết kế quạt tản
nhiệt tự động ”.
1.2 Mục đích của đề tài
Qua đồ án này chúng em muốn học hỏi thêm một số hệ thống mạch của hệ
thống làm mát để mai sau có thể thiết kế những mạch điện có tác dụng làm mát cho
các thiết bị công nghiệp, quạt làm mát trong laptop, projector Qua đồ án đã giúp
chúng em hiểu biết nhiều hơn về tác dụng và đặc điểm của các linh kiện điện tử
trong cuộc sống.
1.3 Giới hạn đề tài
Do thời gian thực hiện và kiến thức còn hạn chế nên chúng em chỉ áp dụng
trên phạm vi mang tính chất thí nghiệm nhưng chúng em nghĩ việc phát triển và
nhận rộng đề tài này rất có cơ sở.
1.4 Kết quả đạt được
Sau thời gian thực hiện đồ án môn học,cùng với sự hướng dẫn tận tình của
thầy Vương Sỹ Kông, chúng em đã hoàn thành đồ án theo quy định và đã thực
hiện được yêu cầu của đề tài. Chúng em đã không ngừng học hỏi về những linh

kiện và các vấn đề khác lien quan, vì thế kiến thúc về điện tử, kinh nghiệm thực tế
về làm mạch đã có sự tiến bộ. Một lần lần nữa chúng em xin chân thành cảm ơn.
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
66
Phần I: NỘI DUNG
Chương I: PHÂN TÍCH ĐỀ TÀI
1.1 Thiết kế sơ đồ Khối
Căn cứ vào mục tiêu của đề tài t có sơ đồ khối như sau:
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
77
2.1 Xây dựng sơ đồ nguyên lý của quạt tản nhiệt tự động
2.1.1 Sơ đồ nguyên lý
Từ những phân tích như trên ta đi xây dựng sơ đồ nguyên lý của mạch điều
khiển như sau:
2.1.2. Công thức tính toán chọn linh kiện
- Chọn tải là động cơ một chiều, các phần tử trong mạch.
Ta có:
I
nguồn
= 1A.
U
nguồn
= 12V.
- Dựa vào dòng và hiệu điện thế nguồn vào ta có thể chọn được các linh kiện ban
đầu như sau:
Khối biến đổi điện áp xoay chiều thành điện áp một chiều: cầu điốt.
Khối lọc: 1 tụ phân cực 1000µF và 2 tụ 470 µF
Khối ổn định điện áp: IC 7812 và IC 7805.

GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
88
IC nhiệt LM35
IC PIC16F877 có chức năng so sánh và suất tín hiệu điều khiển
Rơle từ 12V.
- Ta có:
Thông số của IC LM35 là : nhiệt độ thay đổi 1 thì LM35 tạo ra dòng điện
thay đổi 10mV.
Bảng thông số linh kiện:
TT Tên Thông số Số lượng Ghi chú
1 Diot 1N4007 1
2 Cầudiot RS307L 1
3 Tụ điện phân cực 1000µF
470 µF
1
2
4 IC LM 35 1
5 IC 7805 1
6 IC 7812 1
7 Điện trở 1kΩ 1
8 Điện trở 4.7kΩ 1
9 Điện trở 560Ω 1
10 Điện trở 220Ω 1
11 Rơle 1
12 Tranzito A1013 1
2.1.3. Vai trò của các linh kiện trong mạch
1. Biến trở có tác dụng thay đổi mức trở
2. IC nhiệt LM35 có tác dụng thay đổi điện áp dưới tác dụng của nhiệt
3. Rơ le nhiệt có tác dụng đóng mở công tắc

GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
99
4. Transisto A1013 kích mở điện áp
5. Điện trở
6. Động cơ quạt tản nhiệt 12V
7. Diot 1N4007 để bảo vệ rơle
8. IC PIC16F877A để lưu dữ chương trình và điều khiển
9.Tải hạ thế từ 220V xuống 12V xoay chiều để mạch điện hoạt động với nguồn
12V.
10. Cầu diot để biến dòng xoay chiều thành dòng một chiều.
11. IC ổn áp 7805 cho da điện áp 5V nuôi cho IC PIC16F877 và IC LM35
12.IC ổn áp 7812 cho da điện áp 12V nuôi cho cuộn hút của rolay và quạt tản nhiệt
13. Tụ C 1000µF và tụ 1000µF để lọc điện ổn dòng
14. Đèn LED báo dòng điện vào.
2.1.4 Nguyên lý hoạt động của mạch
Khi có nhiệt độ tác dụng vào IC nhiệt LM35 lúc này điện áp của LM35 sẽ
tăng dần điện áp
+ IC PIC 16F877 chuyển giá trị điện áp từ chân 2 của IC LM35 thành giá trị ADC
và chạy chương trình đã được cài và khi đạt tới ngưỡng nhiệt độ đã được cài sẵn
trong chương trình thì chân 20 cua IC PIC16F877 sẽ chuyển trạng thái mức logic
cao sang mức logic thấp kích cho transtor.
+ Transisto C1013 sẽ được kích mở
+ Rơle nhiệt sẽ đóng tiếp điểm thường mở lại và mở tiếp điểm thường đóng ra.
+ Động cơ sẽ quay
3.1. Sơ đồ board mạch
3.1.1. Sơ đồ sắp xếp bố trí linh kiện
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1010

IC nhiệt LM 35 sẽ được bố trí ra ngoài để cảm nhận nhiệt
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1111
3.1.2. Sơ đồ đi dây
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1212
Chương II: PHẦN LẬP TRÌNH VI ĐIỀU KHIỂN
Chương trình điều khiển
#include <16F877a.H>
#device adc=10
#fuses NOWD,,XT,NOPROTECT,HS,NOPUT,NOLVP,NOCPD,NOWRT
#use delay(clock=20000000) // TAN SO HOAT DONG
#byte porta=0x05// KHAI BAO DIA CHI TRONG PHAN CUNG
#byte portb=0x06
#byte portc=0x07
#byte portd=0x08
#byte porte=0x09
#bit quat=portd.1
#include <lcd_lib_4bit.c> // khai bao thu vien lcd 4 bit
int16 adc; // khai bao bien luu gia tri doc duoc
FLOAT nhiet_do; // khai bao bien luu gia tri doc duoc
VOID HIEN_THI_SO(INT16 X)
{
INT8 NGHIN,TRAM,CHUC,DONVI;
NGHIN=X/1000 + 0X30;
X=X%1000;
TRAM = X / 100 +0x30;
X = X % 100;

CHUC = X/10 +0x30;
DONVI = X % 10 +0x30;
LCD_PUTCHAR (NGHIN);
LCD_PUTCHAR (TRAM);
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1313
LCD_PUTCHAR (",");
LCD_PUTCHAR (CHUC);
LCD_PUTCHAR (DONVI);
}
VOID chuyen_doi_adc (void)
{
set_adc_channel(0); // chon kenh A0 de do duoc gia tro adc
delay_us (10); // tao tre
ADC = read_adc(); // doc gia tri adc va luu vao bien adc
nhiet_do=adc*0.4887; // chuyen doi adc thanh nhiet do luu vao bien nhiet do
}
VOID HIEN_THI_NHIET_DO()
{
chuyen_doi_adc(); // doc nhiet do
LCD_PUTCMD(0X80); // tro con tro den o 1 dong 1 cua lcd
LCD_PUTCHAR ("Temp: "); // hien thi chu “temp” ra man hinh
hien_thi_so(nhiet_do*100);
LCD_PUTCHAR (" *C");
}
VOID DIEU_KHIEN_QUAT()
{
IF(nhiet_do>=40)
{

while(true)
{
quat=1;
HIEN_THI_NHIET_DO();
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1414
LCD_PUTCMD(LINE_2);
LCD_PUTCHAR("Fan: On ");
IF(nhiet_do<=35) break;
}
}
quat=0;
HIEN_THI_NHIET_DO();
LCD_PUTCMD(LINE_2);
LCD_PUTCHAR("Fan: Off ");
}
VOID MAIN()
{
SET_TRIS_A (0XFF);
SET_TRIS_C (0x00);
SET_TRIS_D (0x00);
setup_adc_ports(all_analog); // cho phep su dung chuc nang adc
setup_adc(adc_clock_internal);
lcd_init (); // khoi tao lcd
WHILE(TRUE)
{
dieu_khien_quat();
}


GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1515
Phần III: PHỤC LỤC
CÁC LINH KIỆN SỬ DỤNG TRONG MẠCH
1.1 Vi điều khiển PIC16F877A
Những Đặc điểm của họ vi điều khiển PIC 16F877A
Sơ đồ chân PIC 16F877A
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1616
1.1.1 Sơ đồ nguyên lý

Nhận xét
Từ sơ đồ chân và sơ đồ nguyên lý ở trên, ta rút ra các nhận xét ban đầu như
sau :
- PIC16F877A có tất cả 40 chân
- 40 chân trên được chia thành 5 PORT, 2 chân cấp nguồn, 2 chân GND, 2
chan thạch anh và một chân dùng để RESET vi điều khiển.
- 5 port của PIC16F877A bao gồm :
+ PORTB : 8 chân
+ PORTD : 8 chân
+ PORTC : 8 chân
+ PORTA : 6 chân
+ PORT E : 3 chân
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1717
1.1.2 Khái quát về chức năng của các port trong vi điều khiển PIC 16F877A
PORTA

PORTA gồm có 6 chân. Các chân của PortA, ta lập trình để có thể thực hiện
được chức năng “hai chiều” : xuất dữ liệu từ vi điều khiển ra ngoại vi và nhập dữ
liệu từ ngoại vi vào vi điều khiển.
Việc xuất nhập dữ liệu ở PIC16F877A khác với họ 8051. Ở tất cả các PORT
của PIC16F877A, ở mỗi thời điểm chỉ thực hiện được một chức năng :xuất hoặc
nhập. Để chuyển từ chức năng này nhập qua chức năng xuất hay ngược lại, ta phải
xử lý bằng phần mềm, không như 8051 tự hiểu lúc nào là chức năng nhập, lúc nào
là chức năng xuất.
Trong kiến trúc phần cứng của PIC16F877A, người ta sử dụng thanh ghi
TRISA ở địa chỉ 85H để điều khiển chức năng I/O trên. Muốn xác lập các chân nào
của PORTA là nhập (input) thì ta set bit tương ứng chân đó trong thanh ghi TRISA.
Ngược lại, muốn chân nào là output thì ta clear bit tương ứng chân đó trong thanh
ghi TRISA. Điều này hoàn toàn tương tự đối với các PORT còn lại
Ngoài ra, PORTA còn có các chức năng quan trọng sau :
- Ngõ vào Analog của bộ ADC : thực hiện chức năng chuyển từ Analog sang
Digital
- Ngõ vào điện thế so sánh
- Ngõ vào xung Clock của Timer0 trong kiến trúc phần cứng : thực hiện các
nhiệm vụ đếm xung thông qua Timer0…
- Ngõ vào của bộ giao tiếp MSSP (Master Synchronous Serial Port)
PORTB
PORTB có 8 chân. Cũng như PORTA, các chân PORTB cũng thực hiện được 2
chức năng : input và output. Hai chức năng trên được điều khiển bới thanh ghi
TRISB. Khi muốn chân nào của PORTB là input thì ta set bit tương ứng trong
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1818
thanh ghi TRISB, ngược lại muốn chân nào là output thì ta clear bit tương ứng
trong TRISB.
Thanh ghi TRISB còn được tích hợp bộ điện trở kéo lên có thể điều khiển được

bằng chương trình.
PORTC
PORTC có 8 chân và cũng thực hiện được 2 chức năng input và output dưới sự
điều khiển của thanh ghi TRISC tương tự như hai thanh ghi trên.
Ngoài ra PORTC còn có các chức năng quan trọng sau :
- Ngõ vào xung clock cho Timer1 trong kiến trúc phần cứng
- Bộ PWM thực hiện chức năng điều xung lập trình được tần số, duty
cycle: sử dụng trong điều khiển tốc độ và vị trí của động cơ v.v….
- Tích hợp các bộ giao tiếp nối tiếp I2C, SPI, SSP, USART
PORTD
PORTD có 8 chân. Thanh ghi TRISD điều khiển 2 chức năng input và output
của PORTD tương tự như trên. PORTD cũng là cổng xuất dữ liệu của chuẩn giao
tiếp song song PSP (Parallel SlavePort)
PORTE
PORTE có 3 chân. Thanh ghi điều khiển xuất nhập tương ứng là TRISE. Các
chân của PORTE có ngõ vào analog. Bên cạnh đó PORTE còn là các chân điều
khiển của chuẩn giao tiếp PSP.
1.1.3. Tìm hiểu về vi điều khiển PIC16F877A
Cấu trúc phần cứng của PIC16F877A
PIC là tên viết tắt của “ Programmable Intelligent computer” do hãng General
Instrument đặt tên cho con vi điều khiển đầu tiên của họ. Hãng Microchip tiếp tục
phát triển sản phầm này và cho đến hàng đã tạo ra gần 100 loại sản phẩm khác
nhau.
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
1919
PIC16F887A là dòng PIC khá phổ biến, khá đầy đủ tính năng phục vụ cho hầu
hết tất cả các ứng dụng thực tế. Đây là dòng PIC khá dễ cho người mới làm quen
với PIC có thể học tập và tạo nền tản về họ vi điều khiển PIC của mình.
Cấu trúc tổng quát của PIC16F877A như sau :

- 8K Flash Rom
- 368 bytes Ram
- 256 bytes Rom
- 5 port vào ra với tín hiệu điều khiển độc lập
- 2 bộ định thời Timer0 và Timer2 8 bit
- 1 bộ định thời Timer1 16 bit có thể hoạt động ở cả chế độ tiết kiệm năng
lượng với nguồn xung clock ngoài
- 2 bộ Capture/ Compare/ PWM
- 1 bộ biến đổi Analog -> Digital 10 bit, 8 ngõ vào
- 2 bộ so sánh tương tự
- 1 bộ định thời giám sát (Watch Dog Timer)
- 1 cổng song song 8 bit với các tín hiệu điều khiển
- 1 cổng nối tiếp
- 15 nguồn ngắt
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2020
Sơ đồ khối vi điều khiển 16F877
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2121
1.1.4 Tổ chức bộ nhớ PIC16F877A
Bộ nhớ chương trình
Bộ nhớ chương trình PIC16F877A
Bộ nhớ chương trình của vi điều khiển PIC16F877A là bộ nhớ Flash, dung
lượng 8K word (1 word chứa 14bit) và được phân thành nhiều trang như hình trên.
Để mã hóa được địa chỉ 8K word bộ nhớ chương trình, thanh ghi đếm chương
trình PC có dung lượng 13 bit.
Khi vi điều khiển reset, bộ đếm chương trình sẽ trỏ về địa chỉ 0000h. Khi có
ngắt xảy ra thì thanh ghi PC sẽ trỏ đến địa chỉ 0004h.

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.
Bộ nhớ dữ liệu
Bộ nhớ dữ liệu của PIC16F877A được chia thành 4 bank. Mỗi bank có dụng
lượng 128 byte.
Nếu như 2 bank bộ nhớ dữ liệu của 8051 phân chia riêng biệt : 128 byte đầu tiên
thuộc bank1 là vùng Ram nội chỉ để chứa dữ liệu, 128 byte còn lại thuộc bank 2 là
cùng các thanh ghi có chức năng đặc biệt SFR mà người dùng không được chứa dữ
liệu khác trong đây thì 4 bank bộ nhớ dữ liệu của PIC16F877A được tổ chức theo
cách khác.
Mỗi bank của bộ nhớ dữ liệu PIC16F877A bao gồm cả các thanh ghi có chức
năng đặc biệt SFR nằm ở các các ô nhớ địa chỉ thấp và các thanh ghi mục đích
dùng chung GPR nằm ở vùng địa chỉ còn lại của mỗi bank thanh ghi. Vùng ô nhớ
các thanh ghi mục đích dùng chung này chính là nơi người dùng sẽ lưu dữ liệu
trong quá trình viết chương trình. Tất cả các biến dữ liệu nên được khai báo chứa
trong vùng địa chỉ này.
Trong cấu trúc bộ nhớ dữ liệu của PIC16F877A, các thanh ghi SFR nào mà
thường xuyên được sử dụng (như thanh ghi STATUS) sẽ được đặt ở tất cả các bank
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2222
để thuận tiện trong việc truy xuất. Sở dĩ như vậy là vì, để truy xuất một thanh ghi
nào đó trong bộ nhớ của 16F877A ta cần phải khai báo đúng bank chứa thanh ghi
đó, việc đặt các thanh ghi sử dụng thường xuyên giúp ta thuận tiên hơn rất nhiều
trong quá trình truy xuất, làm giảm lệnh chương trình.
Sơ đồ bộ nhớ dữ liệu của PIC16F877A
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2323
Dựa trên sơ đồ 4 bank bộ nhớ dữ liệu PIC16F877A ta rút ra các nhận xét như

sau :
-Bank0 gồm các ô nhớ có địa chỉ từ 00h đến 77h, trong đó các thanh ghi dùng
chung để chứa dữ liệu của người dùng địa chỉ từ 20h đến 7Fh. Các thanh ghi
PORTA, PORTB, PORTC, PORTD, PORTE đều chứa ở bank0, do đó để truy xuất
dữ liệu các thanh ghi này ta phải chuyển đến bank0. Ngoài ra một vài các thanh ghi
thông dụng khác ( sẽ giới thiệu sau) cũng chứa ở bank0
- Bank1 gồm các ô nhớ có địa chỉ từ 80h đến FFh. Các thanh ghi dùng chung có
địa chỉ từ A0h đến Efh. Các thanh ghi TRISA, TRISB, TRISC, TRISD, TRISE
cũng được chứa ở bank1
- Tương tự ta có thể suy ra các nhận xét cho bank2 và bank3 dựa trên sơ đồ trên.
Cũng quan sát trên sơ đồ, ta nhận thấy thanh ghi STATUS, FSR… có mặt trên
cả 4 bank. Một điều quan trọng cần nhắc lại trong việc truy xuất dữ liệu của
PIC16F877A là : phải khai báo đúng bank chứa thanh ghi đó. Nếu thanh ghi nào
mà 4 bank đều chứa thì không cần phải chuyển bank.
a) Một vài thanh ghi chức năng đặc biệt SFR
Thanh ghi STATUS : thanh ghi này có mặt ở cả 4 bank thanh ghi ở các địa chỉ
03h, 83h, 103h và 183h : chứa kết quả thực hiện phép toán của khối ALU, trạng
thái reset và các bit chọn bank cần truy xuất trong bộ nhớ dữ liệu.
Thanh ghi OPTION_REG : có mặt ở bank2 và bank3 có địa chỉ 81h và 181h.
Thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng pull_up của
các chân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của
ngắt ngoại vi và bộ đếm Timer0
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2424
Thanh ghi INTCON : có mặt ở cả 4 bank ở địa chỉ 0Bh,8Bh,10Bh,18Bh. Thanh
ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit báo tràn timer0, ngắt
ngoại vi RB0/INT và ngắt khi thay đổi trạng thái tại các chân của PORTB.
Thanh ghi PIE1 :địa chỉ 8Ch, chứa các bit điều khiển chi tiết các ngắt của các
khối chức năng ngoại vi.

Thanh ghi PIR1 : địa chỉ 0Ch, chứa cờ ngắt của các khối chức năng ngoại vi,
các ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE1.
Thanh ghi PIE2 : địa chỉ 8Dh, chứa các bit điều khiển các ngắt của các khối
chức năng CCP, SSP bú, ngắt của bộ so sánh và ngắt ghi vào bộ nhớ EEPROM.
Thanh ghi PIR2: địa chỉ 0Dh, chứa cờ ngắt của các khối chức năng ngoại vi, các
ngắt này được cho phép bởi các bit điều khiển chứa trong thanh ghi PIE2
Thanh ghi PCON : địa chỉ 8Eh, chứa các cờ hiệu cho biết trạng thái các chế độ
reset của vi điều khiển.
GVHD: Vương Sỹ Kông
Nhóm SVTH: Nguyễn Văn Quyết – Loan Thanh Lương
2525

×