SlideShare a Scribd company logo
1 of 91
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRUỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH
KHOA VẬT LÝ
NGUYỄN HUỲNH DUY KHANG
ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A
TRONG THÍ NGHIỆM VẬT LÍ PHỔ THÔNG
Ngành: SƯ PHẠM VẬT LÝ
Mã số: 102
NGƯỜI HƯỚNG DẪN KHOA HỌC
GV. TRẦN ĐẶNG BẢO ÂN
Tp. Hồ Chí Minh, 2013
LỜI CẢM ƠN
ể hoàn thành luận văn tốt nghiệp Đại học này, trước hết, em xin gửi
lời cảm ơn sâu sắc nhất đến GV. Trần Đặng Bảo Ân – Bộ môn Vật lý
Ứng dụng – Trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh, người đã tận
tình hướng dẫn, chỉ bảo em trong suốt quá trình nghiên cứu, thực hiện luận văn
và đã giành hết tâm huyết, thời gian quí báu của mình để cho em điều kiện tốt
nhất hoàn thành luận văn này.
Em xin chân thành cảm ơn Ban chủ nhiệm Khoa Vật lý, các thầy cô Khoa
Vật lý Trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh – những người đã
trang bị cho em những kiến thức hữu ích giúp em hoàn thành luận văn này.
Cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè đã động viên, chia sẻ,
giúp đỡ nhiệt tình và đóng góp nhiều ý kiến quí báu giúp em hoàn thành luận
văn.
Đ
3
MỤC LỤC
MỤC LỤC ...............................................................................................................................................3
DANH MỤC CÁC HÌNH VẼ .............................................................................................................5
DANH MỤC CÁC BẢNG.................................................................................................................11
MỞ ĐẦU..............................................................................................................................................14
1. Giới thiệu chung........................................................................................................14
2. Mục đích đề tài...........................................................................................................15
3. Nội dung nghiên cứu...............................................................................................15
4. Đối tượng nghiên cứu và phạm vi nghiên cứu............................................15
5. Phương pháp nghiên cứu .....................................................................................16
CHƯƠNG 1:......................................................................TỔNG QUAN VI ĐIỀU KHIỂN PIC 17
1.1. GIỚI THIỆU CHUNG.................................................................................................17
1.2. KIẾN TRÚC PIC..........................................................................................................18
1.3. RISC VÀ CISC...............................................................................................................19
1.4. PIPELINING.................................................................................................................20
1.5. NGÔN NGỮ LẬP TRÌNH CHO PIC ......................................................................22
1.6. MẠCH NẠP PIC ..........................................................................................................23
CHƯƠNG 2:.............................................................................VI ĐIỀU KHIỂN PIC 16F877A 25
2.1. SƠ ĐỒ CHÂN...............................................................................................................25
2.2. CÁC THÔNG SỐ CỦA PIC 16F877A...................................................................25
2.3. CÁC MODUL VI ĐIỀU KHIỂN PIC 16F877A...................................................27
CHƯƠNG 3:............................................................ CÁC LINH KIỆN ĐIỆN TỬ LIÊN QUAN 40
3.1. HIỂN THỊ LCD ............................................................................................................40
3.2. MA TRẬN BÀN PHÍM ..............................................................................................44
3.3. IC MAX – 232..............................................................................................................45
3.4. IC LM – 324 .................................................................................................................46
3.5. THẠCH ANH ĐIỆN TỬ............................................................................................47
CHƯƠNG 4:ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG THÍ NGHIỆM VẬT LÍ PHỔ TH
4.1. TỔNG QUAN................................................................................................................49
4.2. DỤNG CỤ ĐO VÀ XỬ LÍ THỜI GIAN SỬ DỤNG PIC 16F877A ................50
4
4.3. KHỐI XỬ LÍ TRUNG TÂM PIC 16F877A..........................................................50
4.4. ĐÁNH GIÁ SAI SỐ .....................................................................................................61
CHƯƠNG 5:...........................................................KẾT QUẢ NGHIÊN CỨU VÀ KẾT LUẬN 66
5.1. XÁC ĐỊNH CHU KÌ CON LẮC ĐƠN .....................................................................66
5.2. XÁC ĐỊNH GIA TỐC RƠI TỰ DO..........................................................................68
5.3. XÁC ĐỊNH HỆ SỐ MA SÁT TRƯỢT....................................................................71
5.4. XÁC ĐỊNH VẬN TỐC TRUNG BÌNH, VẬN TỐC TỨC THỜI.......................75
5.5. KẾT LUẬN....................................................................................................................79
5.6. HƯỚNG PHÁT TRIỂN.............................................................................................79
TÀI LIỆU THAM KHẢO.................................................................................................................81
PHỤ LỤC.............................................................................................................................................83
5
DANH MỤC CÁC HÌNH VẼ
1.1 Kiến trúc Von – Neuman
..................................................................................................................................1
1
1.2 Kiến trúc Harvard
..................................................................................................................................1
2
2.1 Vi điều khiển PIC 16F877A
..................................................................................................................................1
7
2.2 Sơ đồ chân PIC 16F877A
..................................................................................................................................1
7
2.3 Các modul PIC 16F877A được sử dụng.
..................................................................................................................................1
9
2.4 Sơ đồ logic các ngắt trong vi điều khiển PIC 16F877A
..................................................................................................................................2
5
2.5 Sơ đồ khối truyền dữ liệu USART
..................................................................................................................................2
6
2.6 Sơ đồ khối nhận dữ liệu USART
..................................................................................................................................2
9
3.1 LCD 20×4
..................................................................................................................................3
1
6
3.2 Sơ đồ chân LCD 20×4
..................................................................................................................................3
1
3.3 Ma trận bàn phím 4×4
..................................................................................................................................3
4
3.4 Sơ đồ ma trận bàn phím 4×4
..................................................................................................................................3
4
3.5 IC Max – 232
..................................................................................................................................3
6
3.6 Sơ đồ chân IC LM – 324
..................................................................................................................................3
6
3.7 IC LM – 324
..................................................................................................................................3
6
3.8 Sơ đồ chân IC LM – 324
..................................................................................................................................3
6
4.1 Kiểm tra các bộ phận trên testboard và Proteus
..................................................................................................................................3
9
4.2 Quá trình thực hiện
..................................................................................................................................4
0
7
4.3 Sơ đồ khối dụng cụ đo và xử lý thời gian
..................................................................................................................................4
1
4.4 Lưu đồ chương trình chính
..................................................................................................................................4
2
4.5 Lưu đồ chương trình con: (a) con lắc đơn; (b) rơi tự do
..................................................................................................................................4
2
4.6 Lưu đồ chương trình con: (a) Hệ số ma sát; (b) Chuyển động
thẳng đều
..................................................................................................................................4
3
4.7 Code bẫy lỗi cho vi điều khiển PIC 16F877A
..................................................................................................................................4
4
4.8 Cạnh tác động TMR1H:TMR1L
..................................................................................................................................4
4
4.9 Bộ định thời cho PIC 16F877A
..................................................................................................................................4
5
4.10 Giao tiếp RS232 qua IC Max – 232
..................................................................................................................................4
5
4.11 Giao diện giao tiếp với máy tính cho PIC 16F877A
..................................................................................................................................4
6
8
4.12 Thí nghiệm con lắc đơn dùng giao tiếp máy tính
..................................................................................................................................4
6
4.13 Cổng quang điện
..................................................................................................................................4
7
4.14 Ngắt nam châm
..................................................................................................................................4
8
4.15 Ma trận bàn phím 4×4
..................................................................................................................................4
8
4.16 Hiển thị LCD
..................................................................................................................................4
8
4.17 Cấu trúc dữ liệu kiểu số thực 32 bits
..................................................................................................................................4
9
4.18 Sai số do code lập trình
..................................................................................................................................5
0
4.19 Kết quả đo của máy MC – 964 sau: (a) 1 chu kì; (b) 8 chu kì
..................................................................................................................................5
1
4.20 Đồ thị so sánh sai số tỉ đối giữa máy đo thời gian hiện số MC –
964 và máy đo và xử lí thời gian sử dụng PIC 16F877A
..................................................................................................................................5
2
9
5.1 Đo chu kì con lắc đơn
..................................................................................................................................5
5
5.2 Sự rơi tự do
..................................................................................................................................5
6
5.3 Đo gia tốc rơi tự do
..................................................................................................................................5
7
5.4 Đồ thị so sánh gia tốc rơi tự do giữa máy đo thời gian hiện số
MC – 964 và máy đo và xử lí thời gian sử dụng PIC 16F877A
..................................................................................................................................5
8
5.5 Chuyển động của vật trên mặt phẳng nghiêng
..................................................................................................................................5
9
5.6 Xác định hệ số ma sát trượt
..................................................................................................................................6
0
5.7 Đồ thị so sánh hệ số ma sát giữa máy đo thời gian hiện số MC –
964 và máy đo sử dụng PIC 16F877A
..................................................................................................................................6
2
5.8 Xác định vận tốc trung bình, vận tốc tức thời
..................................................................................................................................6
3
5.9 Đồ thị so sánh vận tốc tức thời (hình 5.9a) và vận tốc trung bình
(hình 5.9b) giữa máy đo thời gian hiện số MC – 964 và máy đo và
10
xử lí thời gian sử dụng PIC 16F877A
..................................................................................................................................6
5
11
DANH MỤC CÁC BẢNG
1.1 Cơ chế xử lí lệnh vi điều khiển
................................................................................................................................1
3
2.1 Các đặc tính nổi bật vi điều khiển PIC 16F877A
................................................................................................................................1
8
2.2 I/O vi điều khiển PIC 16F877A
................................................................................................................................2
0
2.3 Timer vi điều khiển PIC 16F877A
................................................................................................................................2
1
2.4 Ngắt vi điều khiển PIC 16F877A
................................................................................................................................2
4
2.5 USART bất đồng bộ
................................................................................................................................2
6
3.1 Sơ đồ chân LCD
................................................................................................................................3
1
3.2 Các lệnh LCD
................................................................................................................................3
2
12
3.3 Các đặc điểm chuẩn RS232
................................................................................................................................3
5
3.4 Các điểm nổi bật IC LM – 324
................................................................................................................................3
7
4.1 Đánh giá sai số hệ thống máy đo và xử lí thời gian dùng PIC
16F877A
................................................................................................................................5
1
4.2 Kết quả đo tần số 2 Hz của MC – 964
................................................................................................................................5
2
5.1 Chu kì con lắc đơn
................................................................................................................................5
5
5.2 Chu kì con lắc đơn
................................................................................................................................5
6
5.3 Xác định gia tốc rơi tự do
................................................................................................................................5
7
5.4 Xác định gia tốc rơi tự do
................................................................................................................................5
8
5.5 Xác định hệ số ma sát trượt
................................................................................................................................6
1
13
5.6 Xác định hệ số ma sát trượt
................................................................................................................................6
1
5.7 Xác định vận tốc tức thời và vận tốc trung bình
................................................................................................................................6
4
5.8 Xác định vận tốc tức thời và vận tốc trung bình
................................................................................................................................6
4
14
MỞ ĐẦU
1. Giới thiệu chung
Thí nghiệm dạy học vật lý trong trường phổ thông là một phương tiện
quan trọng có tác dụng to lớn giúp học sinh chiếm lĩnh các tri thức và kĩ năng.
Tuy nhiên, do điều kiện cơ sở vật chất còn thiếu thốn, việc lồng ghép các thí
nghiệm vật lý là rất khó khăn. Những giờ thực hành trên lớp đúng ra phải theo
phân phối chương trình nhưng thực tế lại được tổ chức thực hành qua loa hoặc
chuyển sang giờ luyện tập, ôn thi [3]. Và vấn đề đang được đặt ra: Làm sao có
thể tự tay tạo ra những thiết bị phục vụ cho việc dạy học được tốt hơn, hiệu quả
hơn?
Nói đến sự phát triển của kỹ thuật hiện đại, đa số chúng ta đều hình dung
ngay là sự tăng tốc thần kỳ của lĩnh vực điện tử và vi tính. Thật khó diễn giải
hết ý nghĩa, khó mà nghiên cứu sao cho trọn vẹn để mong đạt được sự thành
công như ý muốn đối với các bạn yêu thích và say mê khoa học. Mới ngày nào,
kết cấu của những mạch điện cồng kềnh, thì bây giờ tất cả đều được tích hợp
thành những mảng chuyên dụng mang nhiều chức năng ngày càng thông minh,
độc đáo [2]. Vi điều khiển cũng nằm trong số đó, từ họ vi điều khiển truyền
thống 8051 hiện nay đã phát triển thành với các họ vi điều khiển 8 bit [4], 16
bit [5], [6] hay thậm chí 24 bit [5] với các họ vi điều khiển xử lý tốc độ cao. Với
các tính năng ngày càng được mở rộng, vi điều khiển ngày càng được ứng dụng
rộng rãi từ các thiết bị cầm tay như: điện thoại, máy nghe nhạc,... hay cho đến
các thiết bị công nghiệp trong các dây chuyền sản xuất tự động, hệ thống đo
lường, giám sát,...nơi nào chúng ta cũng đều thấy sự có mặt của vi điều khiển.
Xuất phát từ những lí do trên, tôi quyết định sử dụng vi điều khiển vào
thiết kế bộ dụng cụ phụ vụ các bài thí nghiệm chứng minh vật lí phổ thông qua
đề tài: “Ứng dụng vi điều khiển PIC 16F877A trong thí nghiệm vật lí phổ thông”.
15
2. Mục đích đề tài
- Thiết kế và tạo ra được dụng cụ đo đạc thời gian và xử lí dữ liệu dùng
trong các bài thí nghiệm cơ học trong chương trình vật lí trung học phổ thông
bằng cách sử dụng vi điều khiển PIC 16F877A.
- Trên cơ sở với thiết bị đã tạo được, so sánh với các thiết bị thí nghiệm
hiện có như đồng hồ đếm và hiển thị thời gian hiện số MC-964 nhằm rút ra ưu
nhược điểm và có hướng cải tiến thích hợp.
3. Nội dung nghiên cứu
- Nghiên cứu kiến thức điện – điện tử, các loại linh kiện điện tử căn bản.
- Nghiên cứu kiến thức vi điều khiển nói chung và vi điều khiển PIC
16F877A nói riêng: cấu trúc phần cứng, cách hoạt động của vi điều khiển, cách
lập trình viết code cho vi điều khiển, các ứng dụng,...
- Trên cơ sở các kiến thức đó, thiết kế và tạo ra được dụng cụ đo đạc thời
gian và xử lí dữ liệu dùng trong khảo sát các thí nghiệm cơ học thuộc chương
trình vật lí trung học phổ thông.
- So sánh với các thiết bị thí nghiệm hiện đang được sử dụng trong các
trường học phổ thông nhằm rút ra được ưu, nhược điểm bộ thí nghiệm và đề
xuất hướng cải tiến phù hợp.
4. Đối tượng nghiên cứu và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Kiến thức điện – điện tử, vi điều khiển; thiết kế
và chế tạo mạch điện tử; lí thuyết các bài thí nghiệm cơ học thuộc chương trình
thí nghiệm vật lí phổ thông.
- Phạm vi nghiên cứu: Các thí nghiệm cơ học thuộc chương trình vật lí
trung học phổ thông có liên quan đến đo đạc thời gian và tính toán các đại
lượng có liên quan.
16
5. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lí thuyết: Đọc, nghiên cứu tài liệu về điện –
điện tử, vi điều khiển; quá trình thiết kế mạch điện tử; lí thuyết các bài thí
nghiệm cơ học thuộc chương trình thí nghiệm vật lí phổ thông.
- Phương pháp lấy ý kiến chuyên gia: Nhờ giảng viên hướng dẫn và bạn
bè góp ý để xây dựng sơ đồ và cấu tạo của thiết bị thí nghiệm.
- Phương pháp thực nghiệm: Kiểm tra cấu tạo và hoạt động ở từng bộ
phận của bộ thí nghiệm trên test – board, rút ra ưu – nhược điểm, từ đó vẽ và
thiết kế mạch in.
- Phương pháp mô phỏng: Mô phỏng mạch thiết kế nhằm rút ra ưu
nhược điểm mạch dự tính thiết kế, tối ưu hóa mạch điện tử.
- Các phương pháp đánh giá: Đánh giá ưu, nhược của thiết bị tạo ra với
các thiết bị hiện có nhằm rút ra các kết luận sư phạm.
17
CHƯƠNG 1: TỔNG QUAN VI ĐIỀU KHIỂN PIC
1.1. GIỚI THIỆU CHUNG
1.1.1. Vi điều khiển PIC
Vi điều khiển – Microcontroller là mạch tích hợp trên một chíp có thể lập
trình được, dùng để điều khiển hoạt động hệ thống theo tập lệnh của người lập
trình.
PIC là viết tắt của “Programable Interlligent Computer” hay “Máy tính
thông minh khả trình” do hãng General Instrument đặt tên cho vi điều khiển
đầu tiên của họ PIC1650. Lúc này PIC dùng để giao tiếp với các thiết bị ngoại vi
cho máy chủ 16 bit CP1600, vì vậy người ta gọi PIC với tên là bộ điều khiển giao
tiếp ngoại vi - Peripheral Interface Controller.
Năm 1985, General Instrument bán bộ phận vi điện tử của họ cho hãng
Microchip Technology, PIC được bổ sung EEPROM để tạo thành một bộ điều
khiển vào ra khả trình. Ngày nay có rất nhiều dòng PIC được sản xuất với hàng
loạt các modul ngoại vi được tích hợp sẵn (USART, PWM, ADC…) với bộ nhớ
chương trình từ 512 word đến 32k word [1, tr.1-4].
1.1.2. Các dòng vi điều khiển PIC
Các kí hiệu của vi điều khiển PIC:
PIC12xxxx: độ dài lệnh 12 bit;
PIC16xxxx: độ dài lệnh 14 bit;
PIC18xxxx: độ dài lệnh 16 bit;
PIC24xxxx: độ dài lệnh 16 bit;
PIC32xxxx: độ dài lệnh 16 bit;
C: PIC có bộ nhớ EPROM;
F: PIC có bộ nhớ flash;
LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp;
LV: tương tự như LF - PIC có bộ nhớ flash hoạt động ở điện áp thấp;
18
Bên cạnh đó một số vi điều khiển có kí hiệu xxFxxx là EEPROM, nếu có
thêm chữ A ở cuối là flash.
Ví dụ: PIC16F877 là EEPROM.
PIC16F877A là flash.
Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC, dsPIC
giống như PIC24, là các vi điều khiển 16 bit.
Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip
sản xuất.
1.2. KIẾN TRÚC PIC
Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến
trúc: kiến trúc Von – Neuman và kiến trúc Havard [1, tr.3-4].
1.2.1. Kiến trúc Von – Neuman
Hình 1.1: Kiến trúc Von – Neuman.
Kiến trúc Von – Neuman (hình 1.1) là cấu trúc mà bộ nhớ dữ liệu và bộ
nhớ chương trình nằm chung trong một bộ nhớ. Trong một thời điểm CPU chỉ
có thể tương tác với bộ nhớ dữ liệu hay bộ nhớ chương trình. Do đó, kiến trúc
Von – Neuman, ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương
trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của
CPU phải rất cao, với với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể
tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình.
Như vậy có thể nói kiến trúc Von – Neuman không thích hợp với cấu trúc
của một vi điều khiển.
BỘ XỬ LÍ
TRUNG
TÂM
Bộ
nhớ
chươn
g trình
và bộ
nhớ
dữ liệu
19
1.2.2. Kiến trúc Havard
Kiến trúc Havard là khái niệm mới hơn so với kiến trúc Von – Neuman
(hình 1.2). Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của
một vi điều khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus
chương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ
chương trình và bộ nhớ dữ liệu, giúp tăng tốc xử lí của vi điều khiển lên gấp
đôi.
Hình 1.2: Kiến trúc Harvard.
Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối
ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu
trúc dữ liệu. Ví dụ, đối với vi điều khiển dòng 16Fxx, độ dài lệnh luôn là 14 bit
(trong khi dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von –
Neuman, độ dài lệnh luôn là bội số của 1 byte (do dữ liệu được tổ chức thành
từng byte). Chính vì vậy, hầu hết các vi điều khiển ngày nay đều được xây dựng
theo kiến trúc Harvad.
1.3. RISC VÀ CISC
Dựa vào tập lệnh, vi điều khiển được chia thành vi điều khiển CISC và vi
điều khiển RISC.
Bộ
nh
ớ
dữ
liệ
u
BỘ XỬ LÍ
TRUNG
TÂM
Bộ
nh
ớ
ch
ươ
ng
trì
20
1.3.1. CISC
Vi điều khiển CISC – Complex Instruction Set Computer hay vi điều khiển
có tập lệnh phức tạp với mã lệnh của không phải là một số cố định mà luôn là
bội số của 8 bit.
Các vi điều khiển có kiến trúc Von – Neuman đều là những vi đều khiển
CISC do sự không cố định của bộ nhớ chương trình.
1.3.2. RISC
RISC – Reduced Instruction Computer hay vi điều khiển có tập lệnh rút
gọn. Tập lệnh của các vi điều khiển được thiết kế sao cho chiều dài mã lệnh
luôn cố định và cho phép thực thi lệnh trong một chu kì xung clock (ngoại trừ
lệnh nhảy, lệnh gọi chương trình con, ... cần hai chu kì xung clock). Điều này có
nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Harvard sẽ ít lệnh hơn, ngắn
hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một số lượng bít nhất
định.
Các vi điều khiển được tổ chức theo kiến trúc Harvard còn được gọi là vi
điều khiển RISC.
PIC sử dụng tập lệnh RISC, với dòng PIC low – end (độ dài mã lệnh 12 Bit
ví dụ PIC12Cxxx) và mid – range (độ dài mã lệnh 14 bit, ví dụ PIC16Fxxx), tập
lệnh bao gồm khoảng 35 lệnh, và 70 lệnh đối với dòng PIC high – end (có độ dài
mã lệnh 16 bit PIC18Fxxxx). Tập lệnh RISC bao gồm các lệnh tính toán trên các
thanh ghi, và các hằng số, hoặc các vị trí ô nhớ, cũng như có các lệnh điều kiện,
nhảy, gọi hàm và các lệnh quay trở về, cùng các chức năng khác như ngắt hoặc
sleep.
1.4. PIPELINING
Pipelining chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Một chu kì
lệnh của vi điều khiển sẽ bao gồm 4 xung clock [6, tr.30-32].
Ví dụ:
Sử dụng oscillator có tần số f1 = 4 MHz, xung lệnh sẽ có tần số f2 = 1 MHz.
21
Giả sử ta có một đoạn chương trình như sau:
1. MOVLW 55h
2. MOVWF PORT B
3. CALL SUB_1
4. BSF PORT A, BIT 3
Quá trình trên sẽ được thực thi như sau:
Bảng 1.1: Cơ chế xử lí lệnh vi điều khiển.
STT Lệnh Chu kì xung Clock CK0 CK1 CK2 CK3 CK4 CK5
1 MOVLW 55h F 1 E 1
2 MOVWF PORT B F 2 E 2
3 CALL SUB_1 F 3 E 3
4 BSF PORT A, BIT 3 F 4
5 F 4 E 4
 Ghi chú:
F*: vi điều khiển đọc lệnh *.
E*: vi điều khiển thực thi lệnh *.
CK0: Đọc lệnh 1.
CK1: Thực thi lệnh 1, đọc lệnh 2.
CK2: Thực thi lệnh 2, đọc lệnh 3.
CK3: Thực thi lênh 3, đọc lệnh 4.
CK4: Do chu kì 3 đang thực thi lệnh CALL SUB_1 là lệnh gọi chương trình
con SUB_1, phải truy xuất địa chỉ thanh ghi Program Counter lưu vào bộ nhớ
Stack nên trong chu kì 4, vi điều khiển tiếp tục thực thi lệnh CALL SUB_1.
CK5: Thực thi lệnh 4.
Quá trình này được thực hiện tương tự cho các lệnh tiếp theo của chương
trình. Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh
đó, và một chu kì xung clock để giải mã và thực thi lệnh. Với cơ chế pipelining
22
được trình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì
lệnh. Đối với các lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC
(Program Counter) cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi
lệnh ở địa chỉ thanh ghi PC chỉ tới. Sau khi đã xác định đúng vị trí lệnh trong
thanh ghi PC, mỗi lệnh chỉ cần một chu kì lệnh để thực thi xong.
1.5. NGÔN NGỮ LẬP TRÌNH CHO PIC
Ngôn ngữ lập trình cho PIC rất đa dạng, có hai loại:
- Ngôn ngữ lập trình cấp thấp – hợp ngữ: MPLAB (được cung cấp miễn phí
bởi nhà sản xuất Microchip).
- Ngôn ngữ lập trình bậc cao:có nhiều loại, được phát triển trên ngôn ngữ
C: CCS, HTPIC, PICBasic, MikroBasic, …
Ưu điểm hợp ngữ là giúp người
học và lập trình hiểu rõ hơn về cấu
trúc bên trong của vi điều khiển PIC,
cũng như khả năng tối ưu hóa bộ
nhớ chương trình. Tuy nhiên, tiếp
cận hợp ngữ và khả năng phát triển
là hạn chế, mất thời gian. Do đó,
trong nội dung của đề tài, tôi tập
trung vào sử dụng ngôn ngữ lập
trình bậc cao CCS (hình 1.3) để
nghiên cứu và phát triển ứng dụng
PIC.
Ưu điểm CCS:
- Kế thừa tất cả đặc điểm của ngôn ngữ C – là ngôn ngữ cơ bản, quen
thuộc mà sinh viên đã được đào tạo.
- Xây dựng sẵn các hàm phục vụ cho việc sử dụng dễ dàng các khối chức
năng đặc biệt của vi điều khiển PIC như khối ADC, PWM, RS232, SPI.
Hình 1.3: Ngôn ngữ lập trình bậc cao CCS.
23
- Có khả năng kết hợp với ngôn ngữ hợp ngữ, tạo sự mềm dẻo trong phát
triển ứng dụng.
- Khả năng phát triển, nâng cấp ứng dụng là dễ dàng.
- Ngày càng được cập nhật với nhiều tính năng ưu việt và hiệu quả hơn.
1.6. MẠCH NẠP PIC
Mạch nạp PIC là một dòng sản phẩm rất đa dạng dành cho vi điều khiển
PIC. Có thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng
Microchip như: PICSTART plus [16], MPLAB ICD 2, MPLAB PM 3 [17], PRO
MATE II [18]. Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác
thông qua chương trình MPLAB. Dòng sản phẩm chính thống này có ưu thế là
nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường
gặp rất nhiều khó khăn trong quá trình mua sản phẩm.
Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rất
nhiều mạch nạp được thiết kế dành cho vi điều khiển PIC. Có thể sơ lược một
số mạch nạp cho PIC như sau:
JDM programmer [12]: mạch nạp này dùng chương trình nạp Icprog cho
phép nạp các vi điều khiển PIC có hỗ trợ tính năng nạp chương trình điện áp
thấp ICSP (In Circuit Serial Programming). Hầu hết các mạch nạp đều hỗ trợ
tính năng nạp chương trình này.
WARP-13A [13] và MCP-USB [14]: hai mạch nạp này giống với mạch nạp
PICSTART PLUS do nhà sản xuất Microchip cung cấp, tương thích với trình biên
dịch MPLAB, nghĩa là ta có thể trực tiếp dùng chương trình MPLAB để nạp cho
vi điều khiển PIC mà không cần sử dụng một chương trình nạp khác, chẳng hạn
như ICprog.
P16PRO40 [15]: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng. Ông
còn thiết kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng chương
trình nạp Icprog.
24
Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn có
thể tự lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cách thiết
kế, thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được và tải miễn phí
thông qua mạng Internet. Tuy nhiên các mạch nạp trên có nhược điểm là hạn
chế về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạch nạp cần được sử
dụng với một chương trình nạp thích hợp.
25
CHƯƠNG 2: VI ĐIỀU KHIỂN PIC 16F877A
2.1. SƠ ĐỒ CHÂN
Hình 2.1: Vi điều khiển PIC 16F877A . Hình 2.2: Sơ đồ chân PIC 16F877A.
Sơ sơ đồ chân của vi điều khiển PIC 16F877A (hình 2.1) được thể hiện
trên hình 2.2. Trong đó, chân 11, 32 được nối với nguồn DC 5V; chân 12, 31 nối
đất; chân 13, 14 nhận xung clock từ mạch dao động thạch anh hay mạch dao
động RC; tín hiệu reset sẽ được truyền đến PIC 16F877A qua chân số 1; 33
chân còn lại dùng kết nối với các modul của vi điểu khiển, tùy theo yêu cầu sử
dụng mà chúng sẽ đảm nhiệm những chức năng khác nhau [6, tr.2-3].
2.2. CÁC THÔNG SỐ CỦA PIC 16F877A
Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh RISC 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à 200 ns. Bộ nhớ
chương trình 8k × 14 bits, bộ nhớ dữ liệu 368 bytes RAM và bộ nhớ dữ liệu
26
EEPROM với dung lượng 256 bytes. Số PORT I/O là 5 với 33 chân I/O (bảng
2.1) [6, tr.5-20].
Bảng 2.1: Các đặc tính nổi bật vi điều khiển PIC 16F877A.
SST Đặc điểm
Điệp áp hoạt động
1 Công nghệ CMOS FLASH /EEPROM nguồn mức thấp, tốc độ cao.
2 Dải điện thế hoạt động rộng : 2,0V đến 5,5V.
3 Nguồn sử dụng hiện tại 25 mA.
4 Công suất tiêu thụ thấp.
Bộ nhớ chương trình và bộ nhớ dữ liệu
1 Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.
2
Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần, dữ liệu
lưu trữ trên 40 năm.
3 Bộ nhớ dữ liệu 368 bytes, 4 banks.
4
Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một số
câu
lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh.
5 Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp.
6 Khả năng tự nạp chương trình với sự điều khiển của phần mềm.
7
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.
8 Chức năng bảo mật mã chương trình.
9 Chế độ Sleep.
Bộ định thời và CCP
1 Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.
2
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.
3 Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler.
4 Watchdog Timer với bộ dao động trong.
5 Hai bộ Capture/so sánh/điều chế độ rộng xung.
Analoge
1 8 kênh chuyển đổi ADC 10 bit.
2 Hai bộ so sánh.
Chuẩn giao tiếp
1 Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và
27
I2C.
2 Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.
3
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.3. CÁC MODUL VI ĐIỀU KHIỂN PIC 16F877A
Trong nội dung của đề tài này, tôi không tập trung vào chi tiết từng chức
năng khác nhau của vi điều khiển PIC 16F877A mà sẽ tập trung vào những đặc
điểm quan trọng, thiết yếu, có liên quan trực tiếp đến quá trình chế tạo bộ dụng
cụ ứng dụng PIC 16F877A. Các nội dung này bao gồm: Cổng nhập xuất I/O,
Timer, ngắt, giao tiếp USART (hình 2.3).
Hình 2.3: Các modul PIC 16F877A được sử dụng.
2.3.1. Cổng xuất nhập I/O
Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để
tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá
trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng.
Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin) (bảng 2.2),
tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập
và số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều
khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh
chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm
CPU
I/O
USART
Timer
Ngắt
Bộ nhớ dữ liệu
Bộ nhớ chương trình
28
các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên
với bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có
thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến
chân xuất nhập đó [6, tr.40-43].
Bảng 2.2: I/O vi điều khiển PIC 16F877A.
STT CỔNG SỐ CHÂN THANH GHI SFR
1 Cổng A 6 chân: RA0, RA1.. RA5 PORTA, TRISA
2 Cổng B 8 chân: RB0, RB1,..RB7 PORTB, TRISB
3 Cổng C 8 chân: RC0, RC1, ..RC7 PORTC, TRISC
4 Cổng D 8 chân: RD0, RD1,..RD7 PORTD, TRISD
5 Cổng E 3 chân: RE0, RE1, RE2 PORTE, TRISE
Thanh ghi ghi TRISA phản ánh chức năng chân cổng A, nghĩa là muốn xác
lập chức năng chân cổng A như thế nào (input hay output) ta đưa giá trị vào các
bít tương ứng trên thanh ghi TRISA.
Ví dụ:
Muốn RA0, RA2, RA4, RA5 là input và RA1, RA3 là output, ta gán giá trị
000110101 cho thanh ghi TRISA.
X X 1 1 0 1 0 1
RA5 RA4 RA3 RA2 RA1 RA0
 Ghi chú:
X: Không quan tâm, trạng thái trong ô nhớ này không ảnh hướng đến chân
của vi điều khiển.
Thanh ghi TRISB, TRISC, TRISD tương tự.
Thanh ghi PORTA phản ánh trạng thái của các chân cổng A, nghĩa là muốn
tín hiệu đầu ra của các chân cổng A như thế nào ta đưa giá trị vào các bit tương
ứng trên thanh ghi PORTA. Cũng như khi đọc giá trị của thanh ghi PORTA ta sẽ
biết được trạng thái của các chân cổng A.
Ví dụ:
Muốn RA0, RA2, RA4, RA5 ở mức logic 1 (mức 5V), RA1, RA3 ở mức logic
0 (mức 0V), ta gán giá trị 000110101 cho thanh ghi PORTA.
29
X X 1 1 0 1 0 1
RA5 RA4 RA3 RA2 RA1 RA0
 Ghi chú:
X: Không quan tâm, trạng thái trong ô nhớ này không ảnh hướng đến chân
của vi điều khiển.
Thanh ghi PORTC, PORTD tương tự.
Thanh ghi PORTB còn được tích hợp chức năng điện trở kéo lên được điều
khiển bởi chương trình.
2.3.2. Timer
Trong mục này, ta sẽ đi vào tìm hiểu các bộ Timer. Một chế độ quan trọng
nữa của Timer là khi nó hoạt động như bộ đếm (Counter). Trong ứng dụng
này, Timer hoạt động như một bộ đếm, có nhiệm vụ đếm số các xung đi vào
một chân cụ thể trên vi điều khiển [6, tr.53-63]. Chế độ bộ đếm này có nhiều
ứng dụng trong thực tế như đếm số vòng quay của động cơ (phản hồi từ bộ đo
tốc độ động cơ), đếm số sản phẩm trên một dây chuyền, ...
Bảng 2.3: Timer vi điều khiển PIC 16F877A.
STT Đặc điểm Thanh ghi SFR Chức năng
1 Timer0
8 bit (số đếm
tối đa của nó
là 255), hoạt
động ở 2 chế
độ định thời
và độ đếm
TMR0 (01h, 101h) Chứa giá trị đếm của Timer0
INTCON (0Bh,
8Bh, 10Bh, 18Bh)
Cho phép ngắt hoạt động (GIE và
PEIE)
OPTION_REG
(81h, 181h)
Điều khiển Prescaler
2 Timer1
16 bit (số đếm
tối đa của nó
là 65535),
hoạt động ở 2
chế độ định
INTCON (0Bh,
8Bh, 10Bh, 18Bh)
Cho phép ngắt hoạt động (GIE và
PEIE)
PIR1 (0Ch) Chứa cờ ngắt Timer1 (TMR1IF)
PIE1 (8Ch) Cho phép ngắt Timer1 (TMR1IE)
30
thời và độ
đếm TMR1L (0Eh)
Chứa giá trị 8 bit thấp của bộ đếm
Timer1
TMR1H (0Eh)
Chứa giá trị 8 bit cao của bộ đếm
Timer1
T1CON (10h) Xác lập các thông số cho Timer1
3 Timer2
8 bit, hoạt
động phục vụ
chức năng
PWM - Pulse
Width
Modulation
INTCON (0Bh, Bh,
10Bh, 18Bh)
Cho phép toàn bộ các ngắt (GIE và
PEIE)
PIR1 (0Ch) Chứa cờ ngắt Timer2 (TMR2IF)
PIE1 (8Ch)
Chứa bit điều khiển Timer2
(TMR2IE)
TMR2 (11h) Chứa giá trị đếm của Timer2
T2CON (12h) Xác lập các thông số cho Timer2
2.3.2.1. Chế độ định thời
Mỗi bộ timer có một hoặc nhiều thanh ghi chứa giá trị đếm của nó (tùy
thuộc vào độ dài của timer), ta giả sử tên thanh ghi là TMR có độ dài là n byte,
hay giá trị đếm tối đa là 2 1n
− . Khi giá trị của TMR đạt đến giá trị này, vi điều
khiển sẽ đặt bit cờ của bộ timer đó lên mức 1. Người dùng sẽ biết được thời
điểm này bằng cách kiểm tra bit cờ. Đồng thời TMR sẽ tự động xóa về giá trị 0.
Khi được cài đặt hoạt động trong chế độ định thời, giá trị của thanh ghi
TMR sẽ tự động tăng lên 1 đơn vị sau mỗi chu kì lệnh của vi điều khiển. Khi giá
trị của TMR đạt đến giá trị tối đa, bit cờ của Timer sẽ được đưa lên mức 1 và
TMR bị xóa, TMR trở về 0. Giả sử vi điều khiển dùng thạch anh tần số 4 MHz.
Như vậy, một chu kì lệnh ứng với 4 chu kì thạch anh hay 1 µs. TMR sẽ tự động
tăng lên 1 đơn vị sau 1µs. Nếu ban đầu ta cho TMR có giá trị x. Thì sau khoảng
thời gian 2 1n
x− − µs giá trị TMR sẽ đạt giá trị tối đa 2n. Thời điểm này được xác
định thông qua trạng thái của bit cờ.
Ngược lại, để thực hiện định thời với khoảng thời gian t sau một sự kiện:
1. Sự kiện 1;
31
2. Tạo khoảng thời gian trễ t;
3. Sự kiện 2.
Ta làm các bước:
1. Sự kiện 1;
2. Gán giá trị 2 1n
t− − ban đầu cho TMR;
3. Kiểm tra bit cờ;
4. Khi bit cờ bằng 1, thực hiện sự kiện 2.
Thật vậy, sau 1 µs TMR tăng lên 1 đơn vị, thời gian để tăng giá trị cho TMR
từ 2n – 1 – t đến giá trị tối đa (khi bit cờ được đưa lên 1) sẽ là:
2 1 (2 1 )n n
t t− − − − =µs. (2.1)
Vậy khoảng thời gian từ sau sự kiện 1 (khi TMR bắt đầu được gán) đến sự
kiện 2 (ngay sau khi bit cờ được ở trạng thái cao) là t đúng như yêu cầu của ta.
Ví dụ:
Để định thời 200 µs dùng Timer0 (8 bit với giá trị tối đa là 255), TMR0 sẽ
được gán giá trị:
TMR0 = 255 - 200 = 55. (2.2)
2.3.2.2. Chế độ đếm
Ở chế độ đếm, một chân chức năng trên vi điều khiển sẽ trở thành chân
đầu vào xung của bộ đếm. Ví dụ: chân RA4 đối với Timer0 và RC0 đối với
Timer1. Hoạt động của nó có nét giống với chế độ định thời. Giá trị của thanh
ghi TMR sẽ tự động tăng lên 1 đơn vị khi có một xung đến chân đầu vào xung
của Timer đó. Khi giá trị của TMR0 đạt đến giá trị tối đa, bit cờ của Timer sẽ
được đưa lên mức 1 và TMR bị xóa, TMR trở về 0.
Như vậy, về cách hoạt động trong chế độ này chỉ khác với chế độ định thời
ở chỗ, thay vì TMR tự động tăng lên sau mỗi chu kì lệnh, thì TMR tăng lên khi có
một xung đi vào chân đầu vào xung của Timer đó. Dạng xung được xác định là
sườn âm hay sườn dương phụ thuộc vào việc cài đặt bit chọn dạng xung tương
ứng trên thanh ghi của vi điều khiển.
32
Nguyên lý hoạt động định thời và bộ đếm này cũng đúng với các bộ vi điều
khiển, vi xử lý khác.
2.3.3. Ngắt
2.3.3.1. Tổng quan về ngắt
Ngắt hiểu theo nghĩa đơn giản là các sự kiện ngẫu nhiên làm gián đoạn
quá trình của một sự kiện đang xảy ra [6, tr.5-24].
Cụ thể hoạt động của vi điều khiển khi có sự kiện ngắt xảy ra và ngắt đó đã
được cho phép sẽ được diễn ra theo trình tự:
1. Thực hiện hết lệnh đang thực hiện;
2. Dừng chương trình đang thực hiện;
3. Lưu lại địa chỉ của lệnh kế tiếp trong chương trình đang thực hiện vào
bộ nhớ stack;
4. Nhảy tới địa chỉ 0×04 trong bộ nhớ chương trình;
5. Tại đây, vi điều khiển sẽ thực hiện chương trình con phục vụ ngắt do
người lập trình đã lập trình từ trước;
6. Sau khi thực hiện xong chương trình con phục vụ ngắt, vi điều khiển lấy
lại địa chỉ của lệnh kế tiếp đã được lưu và thực hiện tiếp chương trình
đang thực hiện dở lúc chưa có ngắt.
2.3.3.2. Các ngắt trong vi điều khiển PIC 16F877A
Bảng 2.4: Ngắt vi điều khiển PIC 16F877A.
STT Tên ngắt Bit điều khiển
1 Ngắt ngoài GIE, INTF, INTE
2 Ngắt trạng thái GIE, RBIF, RBIE
3 Ngắt tràn Timer0 GIE, TMR0IF, TMR0IE
4 Ngắt tràn Timer1 GIE, TMR1IF, TMR1IE, PEIE
5 Ngắt tràn Timer2 GIE, TMR2IF, TMR2IE, PEIE
6 Ngắt chuyển đổi analoge - digital GIE, ADIF, ADIE, PEIE
7 Bộ đệm chuyển RS232 trống GIE, TXIF, TXIE, PEIE
8 Dữ liệu nhập từ RS232 sẵn sàng GIE, RCIF, RCIE, PEIE
9
Có capture hay compare trên
CCP1
GIE, CCP1F, CCP1IE, PEIE
33
10
Có capture hay compare trên
CCP2
GIE, CCP2F, CCP2IE, PEIE
11 Có dữ liệu vào cổng parallel salve GIE, PSPIF, PSPIE, PEIE
12 Có hoạt động SPI hay I2C GIE, SSPIF, SSPIE, PEIE
13 Xung đột bus GIE, BCLIF, BCLIE, PEIE
14 Ghi vào eeprom hoàn tất GIE, EEIF, EEIE, PEIE
15 Kiểm tra bằng nhau comparator GIE, CMIF, CMIE, PEIE
PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt (bảng 2.4) được điều
khiển bởi thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit
điều khiển và cờ ngắt riêng. Các cờ ngắt tràn ở mức cao khi thỏa mãn điều kiện
ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ
thuôc vào bit GIE và các bit điều khiển khác.
Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương
trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực
thi, bit GIE tự động được xóa, địa chỉ lệnh tiếp theo của chương trình chính
được cất vào trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ
0004h. Lệnh RETFIE được dùng để thoát khỏi chương trình ngắt và quay trở về
chương trình chính, đồng thời bit GIE cũng sẽ được gán để cho phép các ngắt
hoạt động trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và
phải được xóa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động
trở lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra.
34
Hình 2.4: Sơ đồ logic các ngắt trong vi điều khiển PIC 16F877A.
Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi
trạng thái các pin của PORTB, việc xác định ngắt nào xảy ra cần 3 hoặc 4 chu kì
lệnh tùy thuộc vào thời điểm xảy ra ngắt (hình 2.4).
Cần chú ý là trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm
chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng
sẽ không được cất và có thể bị thay đổi giá trị trong quá trình thực thi chương
trình ngắt. Điều này nên được xử lí bằng chương trình để tránh hiện tượng trên
xảy ra.
2.3.4. Giao tiếp USART
USART - Universal Synchronous Asynchronous Receiver Transmitter là
một trong hai chuẩn giao tiếp nối tiếp (SCI - Serial Communication Interface và
MSSP - Master Synchronous Serial Port). Có thể sử dụng giao diện này cho các
giao tiếp với các thiết bị ngọai vi, với các vi điều khiển khác hay với máy tính.
Các dạng của giao diện USART ngọai vi bao gồm:
- Bất động bộ (Asynchronous);
- Đồng bộ (Master mode);
- Đồng bộ (Slave mode).
Hai pin dùng cho giao diện này là RC6/TX/CK và RC7/RX/DT. Ở chế độ
bất đồng bộ, RC6 đóng vai trò là chân truyền dữ liệu và RC7 là chân nhận dữ
liệu. Ở chế độ đồng bộ, RC6 đóng vai trò là chân truyền xung clock đồng bộ tín
hiệu và RC7 là chân truyền dữ liệu [6, tr.111-193].
Với mục đích đề tài thực hiện giao tiếp giữa máy tính và vi đều khiển
trong khoảng cách gần, khoảng 1 m nên trong mục này chúng tôi không đi sâu
vào chuẩn giao tiếp USART đồng bộ mà sẽ tập trung vào giao tiếp USART bất
đồng bộ với các đặc điểm thanh ghi được thể hiện ở bảng 2.5.
Bảng 2.5: USART bất đồng bộ.
STT Thanh ghi liên quan Chức năng
Truyền dữ liệu
35
1
INTCON (0Bh, 8Bh,
10Bh, 18Bh)
Cho phép tất cả các ngắt
2 PIR1 (0Ch) Chứa cờ hiệu TXIF
3 PIE1 (8Ch) Chứa bit cho phép ngắt truyền TXIE
4 RCSTA (18h)
Chứa bit cho phép cổng truyền dữ liệu (hai pin
RC6/TX/CK và RC7/RX/DT)
5 TXREG (19h) Thanh ghi chứa dữ liệu cần truyền
6 TXSTA (98h) Xác lập các thông số cho giao diện
7 SPBRG (99h) Quyết định tốc độ baud
Nhận dữ liệu
1
INTCON (0Bh, 8Bh,
10Bh, 18Bh)
Chứa các bit cho phép toàn bộ các ngắt (bit
GIER và PEIE)
2 PIR1 (0Ch) Chứa cờ hiệu RCIE
3 PIE1 (8Ch) Chứa bit cho phép ngắt RCIE
4 RCSTA (18h)
Xác định các trang thái trong quá trình nhận dữ
liệu
5 RCREG (1Ah) Chứa dữ liệu nhận được
6 TXSTA (98h) Chứa các bit điều khiển SYNC và BRGH
7 SPBRG (99h) Điều khiển tốc độ baud
2.3.4.1. Truyền dữ liệu qua chuẩn giao tiếp USART bất đồng bộ
Hình 2.5: Sơ đồ khối truyền dữ liệu USART.
Ở chế độ truyền dữ liệu (hình 2.5), USART hoạt động theo chuẩn NRZ
(None – Return – to – Zero), nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8
hay 9 bit dữ liệu (thông thường là 8 bit) và 1 bit Stop. Bit LSB sẽ được truyền đi
trước. Các khối truyền và nhận dữ liệu độc lập với nhau sẽ dùng chung tần số
36
tương ứng với tốc độ baud cho quá trình dịch dữ liệu (tốc độ baud gấp 16 hay
64 lần tốc độ dịch dữ liệu tùy theo giá trị của bit BRGH) và để đảm bảo tính
hiệu quả của dữ liệu thì hai khối truyền và nhận phải dùng chung một định
dạng dữ liệu.
Thành phần quan trọng nhất của khối truyền dữ liệu là thanh ghi dịch dữ
liệu TSR (Transmit Shift Register). Thanh ghi TSR sẽ lấy dữ liệu từ thanh ghi
đệm dùng cho quá trình truyền dữ liệu TXREG. Dữ liệu cần truyền phải được
đưa trước vào thanh ghi TXREG. Ngay sau khi bit Stop của dữ liệu cần truyền
trước đó được truyền xong, dữ liệu từ thanh ghi TXREG sẽ được đưa vào thanh
ghi TSR, thanh ghi TXREG bị rỗng, ngắt xảy ra và cờ hiệu TXIF (PIR1<4>) ở mức
cao. Ngắt này được điều khiển bởi bit TXIE (PIE1<4>). Cờ hiệu TXIF vẫn được
gán bất chấp trạng thái của bit TXIE hay tác động của chương trình (không thể
xóa TXIF bằng chương trình) mà chỉ reset về 0 khi có dữ liệu mới được đưa vào
thanh ghi TXREG.
Trong khi cờ hiệu TXIF đóng vai trò chỉ thị trạng thái thanh ghi TXREG thì
cờ hiệu TRMT (TXSTA<1>) có nhiệm vụ thể hiện trạng thái thanh ghi TSR. Khi
thanh ghi TSR rỗng, bit TRMT sẽ ở mức cao. Bit này chỉ đọc và không có ngắt
nào được gắn với trạng thái của nó. Một điểm cần chú ý nữa là thanh ghi TSR
không có trong bộ nhớ dữ liệu và chỉ được điều khiển bởi CPU.
Khối truyền dữ liệu được cho phép hoạt động khi bit TXEN (TXSTA<5>) ở
mức cao. Quá trình truyền dữ liệu chỉ thực sự bắt đầu khi đã có dữ liệu trong
thanh ghi TXREG và xung truyền baud được tạo ra. Khi khối truyền dữ liệu
được khởi động lần đầu tiên, thanh ghi TSR rỗng. Tại thời điểm đó, dữ liệu đưa
vào thanh ghi TXREG ngay lập tức được chuyển đến thanh ghi TSR và thanh ghi
TXREG bị rỗng. Lúc này ta có thể hình thành một chuỗi dữ liệu liên tục cho quá
trình truyền dữ liệu. Trong quá trình truyền dữ liệu nếu bit TXEN bị reset về 0,
quá trình truyền kết thúc.
37
Trong trường hợp dữ liệu cần truyền là 9 bit, bit TX9 (TXSTA<6>) được ở
mức cao và bit dữ liệu thứ 9 sẽ được lưu trong bit TX9D (TXSTA<0>). Nên ghi
bit dữ liệu thứ 9 vào trước, vì khi ghi 8 bit dữ liệu vào thanh ghi TXREG trước
có thể xảy ra trường hợp nội dung thanh ghi TXREG sẽ được load vào thanh ghi
TSG trước, như vậy dữ liệu truyền đi sẽ bị sai khác so với yêu cầu.
Tóm lại, để truyền dữ liệu theo giao diện USART bất đồng bộ, ta cần thực
hiện tuần tự các bước sau:
1. Tạo xung truyền baud bằng cách đưa các giá trị cần thiết vào thanh ghi
RSBRG và bit điều khiển mức tốc độ baud BRGH;
2. Cho phép cổng giao diện nối tiếp nối tiếp bất đồng bộ bằng cách clear
bit SYNC và bit PSEN ở mức cao;
3. Bit TXIE sẽ ở mức cao nếu cần sử dụng ngắt truyền;
4. Bit TX9 ở mức cao nếu định dạng dữ liệu cần truyền là 9 bit;
5. Bit TXEN ở mức cao để cho phép truyền dữ liệu (lúc này bit TXIF ở mức
cao);
6. Nếu định dạng dữ liệu là 9 bit, đưa bit dữ liệu thứ 9 vào bit TX9D;
7. Đưa 8 bit dữ liệu cần truyền vào thanh ghi TXREG;
8. Nếu sử dụng ngắt truyền, cần kiểm tra lại các bit GIE và PEIE (thanh ghi
INTCON).
2.3.4.2. Nhận dữ liệu qua chuẩn giao tiếp USART bất đồng bộ
Dữ liệu được đưa vào từ chân RC7/RX/DT sẽ kích hoạt khối phục hồi dữ
liệu. Khối phục hồi dữ liệu thực chất là một bộ dịch dữ liệu tốc độ cao và có tần
số hoạt động gấp 16 lần hoặc 64 lần tần số baud. Trong khi đó tốc độ dịch của
thanh ghi nhận dữ liệu sẽ bằng với tần số baud hoặc tần số của oscillator (hình
2.6).
38
Hình 2.6: Sơ đồ khối nhận dữ liệu USART.
Bit điều khiển cho phép khối nhận dữ liệu là bit RCEN (RCSTA<4>). Thành
phần quan trọng nhất của khối nhận dữ liệu là thanh ghi nhận dữ liệu RSR
(Receive Shift Register). Sau khi nhận diện bit Stop của dữ liệu truyền tới, dữ
liệu nhận được trong thanh ghi RSR sẽ được đưa vào thanh ghi RCGER, sau đó
cờ hiệu RCIF (PIR1<5>) sẽ ở mức cao và ngắt nhận được kích hoạt. Ngắt này
được điều khiển bởi bit RCIE (PIE1<5>). Bit cờ hiệu RCIF là bit chỉ đọc và
không thể được tác động bởi chương trình. RCIF chỉ reset về 0 khi dữ liệu nhận
vào ở thanh ghi RCREG đã được đọc và khi đó thanh ghi RCREG rỗng. Nếu sau
khi nhận được bit Stop của byte dữ liệu thứ 3 mà thanh ghi RCREG vẫn còn đầy,
cờ hiệu báo tràn dữ liệu (Overrun Error bit) OERR (RCSTA<1>) sẽ ở mức cao,
dữ liệu trong thanh ghi RSR sẽ bị mất đi và quá trình đưa dữ liệu từ thanh ghi
RSR vào thanh ghi RCREG sẽ bị gián đoạn. Trong trường hợp này cần lấy hết dữ
liệu ở thanh ghi RSREG vào trước khi tiếp tục nhận byte dữ liệu tiếp theo. Bit
OERR phải được xóa bằng phần mềm và thực hiện bằng cách clear bit RCEN rồi
đưa lên mức cao. Bit FERR (RCSTA<2>) sẽ được đưa lên mức cao khi phát hiện
bit Stop của dữ liệu được nhận vào. Bit dữ liệu thứ 9 sẽ được đưa vào bit RX9D
(RCSTA<0>). Khi đọc dữ liệu từ thanh ghi RCREG, hai bit FERR và RX9D sẽ
nhận các giá trị mới. Do đó cần đọc dữ liệu từ thanh ghi RCSTA trước khi đọc
dữ liệu từ thanh ghi RCREG để tránh bị mất dữ liệu. Tóm lại, khi sử dụng giao
diện nhận dữ liệu USART bất đồng bộ cần tiến hành tuần tự các bước sau:
39
1. Thiết lập tốc độ baud (đưa giá trị thích hợp vào thanh ghi SPBRG và bit
BRGH;
2. Cho phép cổng giao tiếp USART bất đồng bộ (bit SYNC ở mức thấp và
bit SPEN ở mức cao);
3. Nếu cần sử dụng ngắt nhận dữ liệu, bit RCIE sẽ ở mức cao;
4. Nếu dữ liệu truyền nhận có định dạng là 9 bit, bit RX9 sẽ ở mức cao;
5. Cho phép nhận dữ liệu bằng cách đưa bit CREN lên mức cao;
6. Sau khi dữ liệu được nhận, bit RCIF sẽ ở mức cao và ngắt được kích
hoạt (nếu bit RCIE ở mức cao);
7. Đọc giá trị thanh ghi RCSTA để đọc bit dữ liệu thứ 9 và kiểm tra xem
quá trình;
2. Nhận dữ liệu có bị lỗi không;
1. Đọc 8 bit dữ liệu từ thanh ghi RCREG;
2. Nếu quá trình truyền nhận có lỗi xảy ra, xóa lỗi bằng cách xóa bit CREN;
3. Nếu sử dụng ngắt nhận cần đưa bit GIE và PEIE lên mức cao (thanh ghi
INTCON).
40
CHƯƠNG 3: CÁC LINH KIỆN ĐIỆN TỬ LIÊN QUAN
3.1. HIỂN THỊ LCD
Ngày nay, thiết bị hiển thị LCD - Liquid Crystal Display được sử dụng
trong rất nhiều các ứng dụng của vi điều khiển. LCD có rất nhiều ưu điểm so với
các dạng hiển thị khác: Khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí
tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác
nhau, tốn rất ít tài nguyên hệ thống [8, tr.1-5].
3.1.1. Các chân cơ bản của LCD
Hình 3.1: LCD 20×4. Hình 3.2: Sơ đồ chân LCD 20×4.
Bảng 3.1: Sơ đồ chân LCD.
CHÂN KÝ HIỆU I/O MÔ TẢ
1 VSS - Nối đất
2 VCC - Nguồn 5V
3 VEE - Độ tương phản
4 RS I RS = 0: ghi dữ dữ liệu, RS = 1: ghi lệnh
5 R/W I R/W = 1: đọc dữ liệu, R/W = 0: ghi dữ
liệu
6 E I/O Cho phép
7 DB0 I/O Các bit dữ liệu
41
8 DB1 I/O Các bit dữ liệu
9 DB2 I/O Các bit dữ liệu
10 DB3 I/O Các bit dữ liệu
11 DB4 I/O Các bit dữ liệu
12 DB5 I/O Các bit dữ liệu
13 DB6 I/O Các bit dữ liệu
14 DB7 I/O Các bit dữ liệu
15 A - Cực dương đèn LED
16 K - Cực âm đèn LED
 Ghi chú:
I : chức năng Input.
O : chức năng Output.
- : không có chức năng I/O.
3.1.2. Nguyên lí hoạt động
Bảng 3.2: Các lệnh LCD.
STT MÃ HEX LỆNH ĐẾN THANH GHI LCD
1 1 Xóa màn hình hiển thị
2 2 Trở về đầu dòng
3 3 Dịch con trỏ sang trái 1 ô
4 4 Dịch con trỏ sang phải 1 ô
5 5 Dịch hiển thị sang phải
6 7 Dịch hiển thị sang trái
7 8 Tắt con trỏ, tắt hiển thị
8 A Tắt hiển thị, bật hiển thị
9 C Bật hiển thị, tắt con trỏ
10 E Bật hiển thị, nhấp nháy con trỏ
11 F Tắt hiển thị, nhấp nháy con trỏ
12 10 Dịch vị trí con trỏ sang trái
13 14 Dịch vị trí con trỏ sang phải
42
14 18 Dịch toàn bộ hiển thị sang trái
15 1C Dịch toàn bộ hiển thị sang phải
16 80 Đưa con trỏ về đầu dòng thứ nhất
17 C0 Đưa con trỏ về đầu dòng thứ hai
18 94 Đưa con trỏ về đầu dòng thứ ba
19 D4 Đưa con trỏ về đầu dòng thứ tư
20 38 Xác lập chức năng cho LCD
Các chân 1,2,3 ứng với các chân VSS , VDD, VEE trong đó VSS chân nối đất
,VEE chân chọn độ tương phản, chân này được điều chỉnh qua một biến trở.
Chân VDD nối dương nguồn.
Chân chọn thanh ghi RS - Register Select: Có hai thanh ghi trong LCD, chân
RS - Register Select được dùng để chọn thanh ghi, như sau:
- RS = 0: LCD ở chế độ ghi lệnh như xóa màn hình, bật tắt con trỏ.
- RS = 1: LCD ở chế độ ghi dữ liệu như hiển thị ký tự, chữ số lên màn hình.
Chân đọc/ghi (R/W): Đầu vào đọc/ghi cho phép người dùng ghi thông tin
lên LCD khi R/W = 0 hoặc đọc thông tin LCD khi R/W = 1.
Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD để chốt
dữ liệu của nó. Khi dữ liệu được đến chân dữ liệu thì cần có 1 xung từ mức cao
xuống mức thấp ở chân này để LCD chốt dữ liệu, xung này phải có độ rộng tối
thiểu 450 ns.
Chân D0 – D7: Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lên
LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và
các con số chúng ta gửi các mã ASCII của các chữ cái và các con số tương ứng
đến các chân này khi bật RS = 1.
3.1.3. Khởi tạo LCD
Trước khi bắt đầu quá trình hiển thị một chuỗi kí tự nào đó, ta cần quá
trình khởi tạo để cài đặt các chế độ này. Vi điều khiển thực hiện quá trình khởi
tạo này bằng cách đưa đến LCD một chuỗi các lệnh.
43
Căn cứ vào chức năng của các chân vi điều khiển được giới thiệu ở trên, ta
đưa ra qui trình của việc gửi một lệnh từ vi điều khiển đến LCD:
1. Cho chân R/W = 0 để xác định LCD ở chế độ ghi dữ liệu (thông thường
chân này được nối đất, nên mặc định chân này ởmức 0, ta không cần
quan tâm đến nữa);
2. Cho chân RS = 0 để xác định đây là lệnh mà vi điều khiển gửi xuống LCD
(phân biệt với RS = 1, gửi kí tự hiển thị);
3. Gửi mã lệnh xuống LCD theo các đường dữ liệu (RD0-RD7 nếu dùng
chế độ 8 bit, R4 – R7 nếu dùng chế độ 4 bit);
4. Đưa chân E (chân cho phép – Enable) lên mức cao, mức 1;
5. Tạo trễ vài chu kì lệnh;
6. Đưa chân E xuống mức thấp, mức 0.
3.1.4. Ghi kí tự lên LCD
Sau khi thực hiện quá trình khởi tạo để gửi các lệnh cài đặt chế độ làm
việc của LCD, kí tự sẽ được hiển thị lên LCD bất kì khi nào vi điều khiển muốn
gửi.
1. Quá trình gửi kí tự gồm các bước sau:
2. Cho chân R/W = 0 để xác định LCD ở chế độ ghi dữ liệu (thông
thường chân này được nối đất, nên mặc định chân này ở mức 0, ta
không cần quan tâm đến nữa);
3. Cho chân RS = 1 đểxác định đây là kí tự mà vi điều khiển gửi xuống
LCD (phân biệt với RS = 0 ở chế độ gửi lệnh);
4. Gửi mã ASCII của kí tự cần hiển thị xuống LCD theo các đường dữ
liệu (RD0 – RD7 nếu dùng chế độ 8 bit, R4 – R7 nếu dùng chế độ 4
bit);
5. Đưa chân E (chân cho phép – Enable) lên mức cao, mức 1;
6. Tạo trễ vài chu kì lệnh;
7. Đưa chân E xuống mức thấp, mức 0.
44
3.2. MA TRẬN BÀN PHÍM
Hình 3.3: Ma trận bàn phím 4×4. Hình 3.4: Sơ đồ ma trận bàn phím 4×4.
Ma trận bàn phím (hình 3.3) là thành phần quan trọng phục vụ quá trình
giao tiếp giữa người sử dụng và vi điều khiển. Một ma trận m hàng và n cột có
thể ghép với nhau tạo thành tối đa m×n phím chức năng. Như hình 3.2 và hình
3.3 là ma trận bàn phím có 4 hàng và 4 cột, như vậy, sẽ có tối đa 16 nút nhấn và
được nối với 8 chân của vi điều khiển.
Để đọc giá trị của phím ta sử dụng thuật toán “quét phím” (hình 3.4).
Thuật toán “quét phím” được sử dụng là lần lượt tìm hàng và tìm cột (hoặc
ngược lại). Khi tìm hàng, các hàng sẽ được đặt làm đầu vào và được đặt ở cùng
mức logic, các cột được đặt làm đầu ra. Sau đó, lần lượt từng hàng một sẽ được
đưa xuống mức logic khác các hàng còn lại. Ban đầu, chưa có phím nhấn, tín
hiệu thu được ở các cột là như nhau. Khi có phím được nhấn, tín hiệu thu được
Hang 1
Hang 2
Hang 3
Hang 4
Cot1
Cot2
Cot3
Cot4
1 4 7
2 5 8 0
3 6 9
A B C D
*
#
45
ở cột tương ứng sẽ có cùng mức logic với hàng được quét. Bằng cách này tay sẽ
xác định được vị trí hàng và cột hay xác định được vị trí phím được nhấn.
3.3. IC MAX – 232
3.3.1. Chuẩn RS232
RS232 là chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối
nhiều nhất là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu
là 12,5 m đến 25,4 m với tốc độ từ 20 kbit/s đến 115 kbit/s [7, tr.1-5].
Bảng 3.3: Các đặc điểm chuẩn RS232.
STT Đặc điểm Nội dung
1 Mức điện áp đường truyền
Mức logic 0 : +3V  +12V
Mức logic 1 : -12V  -3V
Trạng thái chuyển tuyến: -3V  3V
2
Tốc độ truyền nhận dữ liệu cực
đại
115 kbit/s
3 Điện dung ngõ vào < 2500 pF
4 Trở kháng tải 3000 Ω  7000 Ω
5 Độ dài của cáp nối < 15 m
6
Các giá trị tốc độ truyền dữ liệu
chuẩn (bit/s)
50, 75, 110, 750, 300, 600, 1200,
2400, 4800, 9600, 19200, 28800,
38400…. 56600, 15200
Ngoài các đặc điểm trên, chuẩn giao tiếp RS232 có Parity bit hay bit kiểm
tra lỗi trên đường truyền. Một bit chẵn lẻ được bổ sung vào dữ liệu được
truyền để cho thấy số lượng các bit “1” được gửi trong một khung truyền là
chẵn hay lẻ. Kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có
khả năng một vài bit bị mắc lỗi.
3.3.2. IC Max – 232
IC Max – 232 (hình 3.5, hình 3.6) của hãng MAXIM là một vi mạch chuyên
dùng trong giao diện nối tiếp với máy tính thông qua chuẩn giao tiếp RS232. Chúng
46
có nhiệm vụ bộ đệm trung gian chuyển đổi mức điện áp chuẩn TTL sang chuẩn RS
– 232 và ngược lại.
Hình 3.5: IC Max – 232. Hình 3.6: Sơ đồ chân Max – 232.
Max – 232 là IC chạy ổn định và được sử dụng phổ biến trong các mạch
giao tiếp chuẩn RS232, tích hợp trong đó hai kênh truyền cho chuẩn RS232.
Dòng tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận
tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện. Ngoài ra Max232 còn
được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.
3.4. IC LM – 324
Hình 3.7: IC LM – 324. Hình 3.8: Sơ đồ chân IC LM – 324.
IC LM – 324 (hình 3.7, hình 3.8) vi mạch được tích hợp 4 mạch khuếch đại
thuật toán giống nhau, hoạt động dộc lập. Đây là IC rất thông dụng trong các
mạch khuếch đại thuật toán [9, tr.1-5].
Thông thường một bộ khuếch đại thuật toán (Op-Amp) thì cần phải có
nguồn đôi (nguồn dương và nguồn âm). Chẳng hạn như Opamp 741. Tuy nhiên
các Opamp trong LM324 được thiết kế đặc biệt để sử dụng với nguồn đơn. Tức
47
là chỉ cần Vcc và GND là đủ. Một điều đặc biệt nữa là nguồn cung cấp của
LM324 có thể hoạt động độc lập với nguồn tín hiệu. Ví dụ nguồn cung cấp của
LM324 là 5V nhưng nó có thể làm việc bình thường với nguồn tín hiệu ở ngõ
vào V+ và V- là 15V.
Bảng 3.4: Các điểm nổi bật IC LM – 324.
STT Đặc điểm Giá trị
1 Điện áp cung cấp 5V  32V
2 Điện áp tối đa ngõ vào
Nguồn đơn: 0V  32V
Nguồn đôi: -15V  15V
3 Công suất 1 W
4 Điện áp ngõ ra 0V  VCC -1,5V
5 Tần số hoạt động 1 MHz
6
Độ lợi khuếch đại điện
áp
100 dB
3.5. THẠCH ANH ĐIỆN TỬ
Hình 3.9: Thạch anh. Hình 3.10: Mạch dao động thạch anh.
Thạch anh điện tử là linh kiện làm bằng tinh thể thạch anh được mài nhẵn
với độ chính xác cao. Do chịu hiệu ứng áp điện khi đặt hiệu điện thế có tần số
xác định vào thạch anh điện tử nên linh kiện này tương đương với mạch dao
động LC cộng hưởng khi dòng điện xoay chiều có tần số thích hợp đặt vào tinh
thể thạch anh.
Hoạt động ở tần số cộng hưởng ổn định, tiêu hao điện áp thấp, mạch dao
động sử dụng thạch anh được sử dụng nhiều trong các đồng hồ điện tử, thiết bị
tin học hay các nhạc cụ điện tử đòi hỏi cần xung chuẩn và độ chính xác cao.
48
49
CHƯƠNG 4: ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG
THÍ NGHIỆM VẬT LÍ PHỔ THÔNG
4.1. TỔNG QUAN
Với lý thuyết điện – điện tử và vi điều khiển, chúng tôi tập trung tìm hiểu
và chế tạo ra máy đo và xử lý thời gian trên cơ sở đồng hồ đếm và hiển thị thời
gian hiện số MC – 964 hiện đang sử dụng ở các trường phổ thông. Để tạo ra
được dụng cụ này, đòi hỏi phải xây dựng từng bước các thành phần của điện tử
khác nhau và kiểm tra hoạt động của chúng trên testboard, cũng như xây dựng
chương trình cho vi điều khiển PIC 16F877A. Đây là những bước quan trọng
nhất và quyết định đến độ ổn định, tính khả thi của bộ thí nghiệm.
Hình 4.1: Kiểm tra các bộ phận trên testboard và Proteus.
Từ việc thử nghiệm trên testboard và mô phỏng trên Proteus, tôi đi đến
thiết kế sơ đồ mạch trên Orcard và xây dựng chương trình giao tiếp cho PIC
16F877A với máy tính. Mạch in sau khi được gia công, các linh kiện sẽ được
hàn và kiểm tra hoạt động lần lượt từng bộ phận như trên hình 4.1.
Quá trình thực hiện có thể tóm tắt theo sơ đồ sau:
50
Hình 4.2: Quá trình thực hiện.
4.2. DỤNG CỤ ĐO VÀ XỬ LÍ THỜI GIAN SỬ DỤNG PIC 16F877A
4.2.1. Sơ đồ khối
Hình 4.3: Sơ đồ khối dụng cụ đo và xử lý thời gian.
Sơ đồ khối dụng cụ đo và xử lý thời gian được thể hiện trên hình 4.3. Dụng
cụ bao gồm 6 khối chính, trong đó vi điều khiển PIC 16F877A là khối xử lý
trung tâm, 5 khối còn lại đóng vai trò là các bộ phận ngoại vi truyền tín hiệu
thông qua vi điều khiển PIC 16F877A.
4.3. KHỐI XỬ LÍ TRUNG TÂM PIC 16F877A
Đây là khối đóng vai trò quyết định cho máy đo và xử lý thời gian. Khối xử
lý trung tâm hay PIC 16F877A có nhiệm vụ nhận thông tin từ các thiết bị ngoại
vi và điều khiển chúng.
Hoạt động PIC 16F877A chịu sự điều khiển của người lập trình qua
chương trình được viết sẵn và nạp cho PIC 16F877A
1. Nghiên cứu lý
thuyết
2. Viết chương trình và giao
diện giao tiếp cho PIC
3. Kiểm tra hoạt động trên
EasyPIC, testboard và
4. Vẽ sơ đồ mạch trên
Orcard
5. Làm mạch in hàn và
kiểm tra hoạt động từng
6. Hoàn thành
dụng cụ
Bàn phím 4×4
Vi điều khiển PIC 16F877A
Giao tiếp máy tính Hiển thị LCD 20x4
Bộ định thời
Cảm biến & nam châm điện
51
(Code_for_PIC_16f877a.ccs). Lưu đồ thuật toán PIC 16F877A được thể hiện
trên hình 4.4.
Trong chương trình chính code_for_PIC_16f877a.ccs, PIC 16F877A khởi
tạo chế độ I/O cho các chân, thiết lập hiển thị LCD và giao tiếp RS232 qua cổng
COM cho vi điều khiển. Sau đó, PIC 16F877A sẽ hiển thị các bài thí nghiệm
trong chương trình vật lý trung học phổ thông. Tùy vào mục đích sử dụng,
người dùng sẽ lựa chọn bài thí nghiệm và ứng với mỗi bài thí nghiệm sẽ có
những chương trình con tương ứng. Các chương trình con này được thể hiện
trong các lưu đồ thuật toán hình 4.5 và 4.6.
52
Chương trình con:
CHƯƠNG TRÌNH CHÍNH
Thiết lập LCD và giao tiếp RS232
Thiết lập chức năng I/O các Port
RA0 = 1
Hiển thị tiêu đề trên LCD
Nhấn phím?
Không
Chọn bài thí nghiệm
1: Con lắc đơn
2: Rơi tự do
3: Hệ số ma sát
4: Chuyển động thẳng đều
Có
Subprocess 1:
con_lac_don
Subprocess 2:
roi_tu_do
Subprocess 3:
He_so_ma_sat
Subprocess 4:
chuyen_dong_tha
ng_deu
Nhấm phím?
#1,2,3,4
1,2,3,4
Hình 4.4: Lưu đồ chương trình chính.
Subprocess 1: con_lac_don
Nhập chiều dài dây
Nhập chu kì đo
Vật chắn cổng
lần 1?
Bật bộ định thời
Không
Subprocess 2: roi_tu_do
Nhập quãng đường rơi
Ngắt nam châm?
Bật bộ định thời
Không
53
a) b)
Hình 4.5: Lưu đồ chương trình con: (a) con lắc đơn; (b) rơi tự do.
Subprocess 3: he_so_ma_sat
Nhâp quãng đường trượt
Nhập góc nghiêng
Ngắt nam châm?
Bật bộ định thời
Không
Subprocess 4: chuyen_dong_thang_deu
Ngắt nam châm?
Bật bộ định thời
Vật chắn 2 cổng quang
điện
Tắt bộ định thời
Xuất kết quả chắn 2 cổng quang điện
Có
Đếm
Có
Không
Không
Không bằng
54
a) b)
Hình 4.6: Lưu đồ chương trình con: (a) Hệ số ma sát; (b) Chuyển động thẳng
đều.
Tùy vào độ phức tạp của các bài thí nghiệm trong chương trình vật lí
trung học phổ thông mà lưu đồ thể hiện trong hình 4.5 và hình 4.6 có sự phức
tạp khác nhau. Tuy nhiên, tất cả các lưu đồ đều có chung đặc điểm là yêu cầu dữ
liệu đầu vào, tính toán thời gian giữa các xung tín hiệu và xuất dữ liệu đầu ra. Ví
55
dụ: Trong lưu đồ con_lac_don (hình 4.5a), vi điều khiển sẽ yêu cầu người sử
dụng nhập dữ liệu qua ma trận bàn phím hay máy tính cá nhân, bằng cách sử
dung bộ định thời PIC 16F877A sẽ xác định chính xác giá trị thời gian đo t, qua
quá trình xữ lí PIC 16F877A sẽ xuất kết quả qua LCD và máy tính cá nhân thông
qua chuẩn giao tiếp RS232.
Khi hoạt động, do ảnh hưởng đều kiện bên ngoài, khi có tín hiệu từ cổng
quang điện và ngắt nam châm đưa đến vi điều khiển, nhiễu tín hiệu sẽ xuất
hiện, gây ảnh hưởng không nhỏ đến chế độ làm việc của máy đo.
Hình 4.7: Code bẫy lỗi cho vi điều khiển PIC 16F877A
Thông qua ngôn ngữ lập trình bậc cao CCS, hệ thống code bẫy lỗi sẽ được
thiết kế cho vi điều khiển. Bằng cách xác định tín hiệu đếm và thời gian lấy tín
hiệu, nhiễu tín hiệu sẽ được vi điều khiển loại bỏ, tạo độ tin cậy cao cho người
dùng.
4.3.1. Bộ định thời
Xung đếm được tạo ra nhờ thạch anh điện tử có tần số 20 MHz. Thạch anh
tần số 20 MHz sẽ tạo cho vi điều khiển chu kì lệnh có tần số 5 MHz (1 chu kì
lệnh bằng 4 lần chu kì dao động).
Sử dụng TIMER 1 ở chế độ định thời 16 bit, xung đếm 5 MHz được đưa
đến bộ Prescaler (chia 8) cho ra xung có tần số 0.625 MHz. Hai thanh ghi
TMR1H:TMR1L sẽ ghi nhận giá trị xung 0.625 MHz ngay sau cạnh xuống đầu
tiên và giá trị TMR1H:TMR1L tiếp tục tăng sau mỗi cạnh lên của xung ngõ vào
(hình 4.8).
56
: vị trí giá trị thanh ghi TMR1H:TMR1L tăng thêm 1
Hình 4.8: Cạnh tác động TMR1H:TMR1L.
Thanh ghi TMR1H:TMR1L có độ dài 16 bit cho phép đếm tối đa đến giá trị
65535. Nếu vượt quá giá trị này, TMR1H:TMR1L sẽ được trả về 0. Bằng cách
ghi nhận thời điểm xảy ra tràn số đếm thông qua ngắt tràn Timer1 và lưu tổng
số lần tràn qua biến m ta xác định được thời gian t:
6
1
( 65536 1 : 1 )
0.625 10
t m TMR H TMR L s=× + ×
×
(5.1)
Hình 4.9: Bộ định thời cho PIC 16F877A.
Như vậy, sử dụng thạch anh điện tử, chức năng TIMER 1 và ngắt báo tràn
TIMER1 ta đã tạo ra được bộ định thời cho PIC 16F877A.
4.3.2. Giao tiếp máy tính
Giao tiếp vi điều khiển với máy tính đóng vai trò quan trọng trong việc
thực hiện tương tác giữa người dùng và PIC 16F877A. Công việc này thực hiện
nhờ sự hỗ trợ IC Max – 232 thông qua chuẩn RS232 và được thể hiện trên sơ
đồ nguyên lí hình 4.10.
Thạch anh 20M
PIC 16F877A
5MHz
TMR1H:TMR1L
PS1:PS0
Chia 8
m×65536+TMR1H:TMR1L m++
0,625MHz
57
Giao tiếp giữa RS232 và PIC 16F877A phải thông qua chương trình nhằm
nhận biết được dữ liệu truyền lên và nhận xuống như thế nào. Để thực hiện
công việc này, người sử dụng có thể sử dụng các phần mềm như Hyper
Terminal, Flash Magic,....
Hình 4.10: Giao tiếp RS232 qua IC Max – 232.
Đây là những chương trình có sẵn không thể tùy chỉnh nên dùng giao tiếp
tạm thời giữa vi điều khiển và người sử dụng. Phục vụ cho quá trình đo đạc và
xử lý số liệu trực tiếp, tiết kiệm thời gian cũng như công sức cho các bài thí
nghiệm vật lý phổ thông minh họa tại lớp, người dùng cần tạo ra một giao diện
Hình 4.11: Giao diện giao tiếp
với máy tính cho PIC 16F877A.
4
1 3
2
Hình 4.12: Thí nghiệm con lắc đơn
dùng giao tiếp máy tính.
58
cho riêng mình. Visualbasic, C++ hay Matlab,... là những công cụ hỗ trợ hữu
hiệu. Trên nền tảng ngôn ngữ lập trình, người dùng có thể tạo ra giao diện giao
tiếp giữa vi điều khiển và máy tính sao cho tối ưu và đạt hiệu quả nhất.
Hình 4.11 là giao diện giao tiếp giữa vi điều khiển và máy tính được viết
trên nền Visual basic. Ngoài chức năng nhập các thông tin bên ngoài (1), (2)
thay thế cho ma trận bàn phím, kết quả thu được sau sau khi tính toán và đo
đạc (3) có thể được lưu dưới dạng file word (4).
Giao tiếp giữa vi điều khiển và máy tính qua chuẩn RS232 không đòi hỏi
sự phức tạp hoá công việc. Ngược lại, chính nhờ sự hỗ trợ của giao tiếp mà
người dùng có thể giải quyết được nhiều việc hơn và là công cụ trực quan, sinh
động cho các bài thí nghiệm vật lý minh họa ngay tại lớp (hình 4.12).
4.3.3. Cổng quang điện và ngắt nam châm
Cổng quang điện và ngắt nam châm là những bộ phận không thể thiếu,
chúng đảm nhiệm chức năng ghi nhận tín hiệu: lúc thả vật, khi vật chắn cổng,
nhờ đó PIC 16F877A xác định chính xác thời điểm bắt đầu và dừng hoạt động
đếm của bộ định thời.
4.3.3.1. Cổng quang điện
Cổng quang quang điện hay bộ phận cảm biến cấu tạo gồm phần phát tia
hồng ngoại gồm một LED phát được nối với nguồn 5V qua điện trở hạn dòng
100 Ω và phần thu là một phototransistor nhận tín hiệu hồng ngoại từ LED
phát qua cực baser của photortransistor.
Tín hiệu thu được từ cực baser sẽ được khuyếch đại và đưa đến đầu vào
không đảo của Opamp IC LM 324. Opamp này đóng vai trò như mạch khuếch
đại thuật toán dùng khuếch đại tín hiệu với tín hiệu đầu vào và tín hiệu đầu ra
cùng pha (khuếch đại không đảo).
59
Hình 4.13: Cổng quang điện.
Độ khuếch đại đảo được xác định qua công thức:
3
ào
4
1ra v
R
V V
R
 
= + 
 
(5.2)
 Với:
Vvào : điện áp tín hiệu vào so với đất.
Vra : điện áp tín hiệu sau khi khuếch đại so với đất.
Tín hiệu sao khi khuếch đại được đưa đến Opamp thứ hai hoạt động ở chế
độ so sánh không đảo, so sánh điện áp tín hiệu sau khi khuếch đại với điện áp
chuẩn: Nếu điện áp cao tín hiệu cao hơn điện áp chuẩn tín hiệu thu được ở mức
cao; ngược lại, nếu điện áp cao tín hiệu thấp hơn điện áp chuẩn tín hiệu thu
được ở mức thấp. Tín hiệu thu được được sẽ đưa đến vi điều khiển PIC
16F877A xử lí (hình 4.13).
4.3.3.2. Ngắt nam châm
Ban đầu, khi nút BUTTON chưa ở trạng thái nhấn. Chưa có tín hiệu gửi đến
chân RB0. Đây là vị trí ngắt ngoài của vi điều khiển, hoạt động khi có sườn lên
hay sườn xuống của tín hiệu. Ngắt ngoài chưa hoạt động, chân RA1 ở mức cao,
transistor NPN ở trạng thái dẫn, nam chân điện hút trọng vật (hình 4.14).
C24
104
R18
15M
5VDC
C25
104
C26
104
C27
104
15VDC
R3
1M
5VDC
JP1
CIRDIN_4-P
1
2 3
4
R4
10K
R11
100
-
+
U6A
LM324
3
2
1
411
-
+
U5A
LM324
3
2
1
411
RA4
R7
10K
5VDC 15VDC
R8
3.3K
C28
104
C12
102
60
Hoạt động ngắt nam châm xảy ra khi nút BUTTON ở trạng thái nhấn. Tín
hiệu gửi tới chân RB0, ngay vị trí cạnh lên của tín hiệu đến PIC 16F877A kích
ngắt ngoài.
Hình 4.14: Ngắt nam châm.
Ngắt ngoài cho phép chân RA1 ở mức thấp, transistor NPN ngừng dẫn,
nam châm điện ngừng hút, trọng vật được thả.
Do nam châm hút trọng vật cần dòng lớn nên ở đây transistor NPN C5200
công suất lớn được sử dụng.
4.3.4. Ma trận bàn phím và hiển thị LCD
Hình 4.15: Ma trận bàn phím 4×4. Hình 4.16: Hiển thị LCD.
Ma trận bàn phím và hiển thị LCD là khối nhập (ma trận bàn phím) và xuất
dữ liệu (hiển thị LCD).
RA1
C33
104
SW2
BUTTON
5VDC
R15
10K
R17 10K
RB0
C30
104
Q1
NPN C5200
JP3
CIRDIN_4-P
1
2 3
4
15VDC
R21 1K
61
Ma trận bàn phím được nối với PIC 16F877A qua 7 chân Port B (từ RB1
đến RB7) và 1 chân ở PortA (RA0). Dùng thuật toán quét hàng ta sẽ tìm được vị
trí các phím trên tương ứng.
Ma trận bàn phím khi chưa kết nối với với PIC 16F877A hay khi lắp vào
mạch in nhưng các mối tiếp chưa tốt sẽ gây ra nhiễu trên thiết bị, ảnh hưởng
trực tiếp đến kết quả thu được. Vì vậy, cần chú ý đến hoạt động của ma trận
bàn phím để đảm bảo tính ổn định của thiết bị.
Khối hiển thị là LCD 20x4 được nối với PIC 16F877A qua Port D và 3 chân
Port C (RC3, RC4 và RC5) hình 4.16.
Trong quá trình hiển thị trên LCD 20×4 cần chú ý chân VEE nhằm điều
chỉnh tương phản của LCD: Nếu VEE = 5V sẽ cho độ tương phản kém nhất, VEE
= 0V độ tương phản thu được là lớn nhất.
4.4. ĐÁNH GIÁ SAI SỐ
Trong quá trình xử lý tín hiệu có liên quan đến bộ định thời, vi điều khiển
hoạt động sẽ mắc sai số. Các sai số này bao gồm sai số do bộ nhớ dữ liệu và sai
số hệ thống.
4.4.1. Sai số do bộ nhớ dữ liệu
Exponent Sign Mantissa
eeee eeee s
mmm mmmm mmmm mmmm mmmm
mmmm
8 bits 1 bit 23 bit
Hình 4.17: Cấu trúc dữ liệu kiểu số thực 32 bits.
Trong quá trình xử lí, vi điều khiển lưu biến thời gian t dưới dạng số thực,
đây là kiểu số thực có độ dài dữ liệu 32 bits. Cấu trúc kiểu số thực (hình 4.17)
gồm có 8 bits cao lưu giá trị số mũ, 1 bit lưu dấu của dữ liệu và 23 bits thấp lưu
phần định trị. Với số mũ là 20 = 1, giá trị nhỏ nhất của phần định trị là
7
23
1
10 s
2
−
≈ . Như vậy, với giá trị thời gian đo đạc là 1s thì sai số do bộ nhớ dữ liệu
là 7
10−
s. Trong các bài thí nghiệm cơ học thuộc chương trình vật lí trung học
62
phổ thông thời gian đo không vượt quá 100 s, sai số do bộ nhớ dữ liệu có giá trị
là 6
10−
s.
4.4.2. Sai số hệ thống
a. Sai số do code lập trình
Hình 4.18: Sai số do code lập trình.
Khi có tín hiệu đưa đến vi điều khiển, PIC 16F877A sẽ kích ngắt để lấy giá
trị biến m là biến xảy ra số lần tràn và thanh ghi TMR1H:TMR1L xác định giá trị
đếm hiện tại của Timer1 (hình 4.18). Hai giá trị này sẽ phục vụ cho công việc
xác định thời gian cần đo đạc. Như vậy sai số sẽ xuất hiện trong khoảng thời
gian khi kích ngắt và trong thời gian PIC 16F877A lấy giá trị hai biến m và
TMR1H:TMR1L.
b. Sai số do tín hiệu hồng ngoại là ngắt nam châm điện
Khi có tín hiệu từ cảm biến hồng ngoại hay ngắt nam châm điện, bộ định
thời sẽ bắt đầu hoạt động bằng cách tăng giá trị TMR1H:TMR1L sau mỗi lần có
cạnh tác động xảy ra. Sai số ở đây mắc phải do tín hiệu đưa đến và cạnh tác
động cho TMR1H:TMR1L chưa đồng bộ: tín hiệu đến không đúng thời điểm mà
xung đếm ở cạnh lên (hình 4.19).
Tín hiệu
quang điện
RA4, RC2 Kích
ngắt
m, CCP1
Thoát
ngắt
∆𝒕 𝟏
Hình 4.20: Kiểm tra sai số.
1
0
0
0 1
∆t2
0
0
Hình 4.19: Đánh giá sai số lý thuyết.
63
Bảng 4.1: Đánh giá sai số hệ thống máy đo và xử lí thời gian dùng
PIC 16F877A.
STT Tần số Sai số
1 1KHz 6,4.10
-6
s
2 2KHz 6,9.10
-6
s
3 4KHz 6,8.10
-6
s
4 5KHz 6,4.10
-6
s
5 8KHz 6,6.10
-6
s
6 10KHz 6,5.10
-6
s
7 15KHz 6,8.10
-6
s
8 20KHz 6,8.10
-6
s
9 25KHz 6,4.10
-6
s
10 30KHz 6,1.10
-6
s
∆t����= 6,6.10
-6
s
Sai số hệ thống ∆t gây cho vi điều khiển độ trễ làm việc và độ trễ này sẽ
không thay đổi khi đo các giá trị thời gian khác nhau. Bằng cách sử dụng máy
phát dao động cấp cho vi điều khiển PIC 16F877A, sai số hệ thống có thể được
xác định vào khoảng 6,6 10-6
s (bảng 4.1).
Trong các bài thí nghiệm vật lý phổ thông, sai số yêu cầu 10-3s. Như vậy,
bộ định thời trên là chấp nhận được.
4.4.3. Sai số máy đo thời gian hiện số MC – 964
64
a) b)
Hình 4.21: Kết quả đo của máy MC – 964 sau: (a) 1 chu kì; (b) 8 chu kì.
So sánh kết quả với máy đo thời gian gian hiện số MC – 964, chúng tôi sử
dụng tạo ra xung tần số 2 Hz từ máy phát dao động đưa vào máy MC – 964 ở
chế độ đo chu kì (hình 4.21) ta được kết quả thể hiện ở bảng 4.2 và hình 4.22.
Bảng 4.2: Kết quả đo tần số 2 Hz của MC – 964.
Chu kì chuẩn T = 1s
STT Số chu kì (n) t (s) T(s) ∆T(s)
1 1 0,99 0,990 0,010
2 8 7,98 0,998 0,002
3 16 15,97 0,998 0,002
4 24 23,96 0,998 0,002
5 32 31,95 0,998 0,002
Chu kì đo: T = 0,9964 ± 0,0036 s
Sai số tỉ đối: ε = 0,36%
65
Hình 4.22: Đồ thị so sánh sai số tỉ đối giữa máy đo thời gian hiện số MC –
964 và máy đo và xử lí thời gian sử dụng PIC 16F877A.
Máy đo thời gian hiện số MC – 964 mắc sai số lớn (1%) với số chu kì đo
nhỏ (n < 8) và cho giá trị càng chính xác khi lấy số chu kì đo càng lớn. Như vậy,
với các bài thí nghiệm như đo thời gian vật chắn cổng quang điện hay đo gia tốc
rơi tự do, do thời gian lấy tính hiệu ngắn, chỉ trong một xung đến nên MC - 964
sẽ mắc sai số lớn, kết quả đo kém chính xác.
Với dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A, sai số tỉ đối khi đo
tần số 2 Hz là ε = 0,01%. So với máy đo thời gian hiện số MC – 964, dụng cụ đo
và xử lí thời gian sử dụng PIC 16F877A cho kết quả với độ chính xác cao.
66
CHƯƠNG 5: KẾT QUẢ NGHIÊN CỨU VÀ KẾT LUẬN
Áp dụng thí nghiệm này để khảo sát: chu kì con lắc đơn, hệ số ma sát trượt
trên mặt phẳng nghiêng giữa máng nghiêng bằng nhôm – vật thép, gia tốc rơi
tự do và vận tốc tức thời, vận tốc trung bình chuyển động thẳng đều của bi
thép. Đây là các thí nghiệm được tiến hành theo nội dung thí nghiệm thuộc
chương trình vật lí trung học phổ thông.
5.1. XÁC ĐỊNH CHU KÌ CON LẮC ĐƠN
5.1.1. Mục đích
- Khảo sát ảnh hưởng của biên độ, khối lượng của quả nặng và độ dài của
dây treo đối với chu kì dao động của con lắc đơn.
- Xác định gia tốc trọng trường g tại nơi làm thí nghiệm bằng con lắc.
5.1.2. Cơ sở lí thuyết
Con lắc đơn gồm một vật nặng có kích thước nhỏ, khối lượng m, được treo
ở đầu một sợi dây mềm không dãn có độ dài l và có khối lượng không đáng kể.
Với các dao động nhỏ thì con lắc đơn dao động với chu kỳ:
2 .
l
T
g
π= (6.1)
Tại các vị trí khác nhau trên Trái Đất, gia tốc trọng trường có giá trị khác
nhau. Việc xác định gia tốc trọng trường tại nơi làm thí nghiệm có ý nghĩa quan
trọng. Trong khoa học và đời sống có nhiều phương pháp khác nhau để xác
định gia tốc trọng trường.
Trong thí nghiệm này, ta xác định gia tốc trọng trường g bằng con lắc đơn
theo công thức:
2
2
4
.
l
g
T
π
= (6.1)
5.1.3. Dụng cụ thí nghiệm
- Đế ba chân bằng sắt, có hệ vít chỉnh cân bằng.
- Giá đỡ bằng nhôm, cao 75 cm, có thanh ngang treo con lắc.
- Thước thẳng dài 700 mm gắn trên giá đỡ.
67
- Ròng rọc bằng nhựa, đường kính D = 5 cm, có khung đỡ trục quay.
- Dây làm bằng sợi tổng hợp, mảnh, không dãn, dài 70 cm., quả nặng 50g.
- Cổng quang điện hồng ngoại, dây nố, jack cắm.
- Máy đo và xử lí thời gian sử dụng PIC 16F877A.
5.1.4. Lắp ráp thí nghiệm
1. Nối cổng quang điện hồng ngoại vào
cổng A của máy đo, đưa nguồn điện
từ bộ nguồn DC 19V vào máy đo, bật
công tắc và chọn bài thí nghiệm con
lắc đơn.
2. Treo trọng vật có m = 50 g vào đầu
dưới sợi dây. Vặn các vít đế ba chân,
đều chỉnh cho giá đỡ thẳng đứng.
Quay ròng rọc và đều chỉnh chiều dài
dây có độ dài khoảng 400 mm đến 500
mm, dịch chuyển cổng hồng ngoại sao cho cửa sổ của nó nằm trên mặt
phẳng ngang với vị trí tâm trong vật và cách tâm trọng vật một khoảng 3
cm.
5.1.5. Tiến hành thí nghiệm
1. Đo chiều dày dây treo, nhập giá trị l và số chu kì cần đo vào máy qua ma
trận bàn phím hay máy tính cá nhân.
2. Cho con lắc dao động với góc lệnh ban đầu α0 cỡ 50, ghi nhận giá trị T và
g nhận được.
3. Thay đổi chiều dài dây treo, lặp lại phép đo và hoàn thành bảng số liệu
5.1.
Bảng 5.1: Chu kì con lắc đơn.
l = ... ± ... mm, nT=... chu kì
Lần t (s) T (s) g (m/s2) ∆g (m/s2)
1
Hình 5.1: Đo chu kì con lắc đơn.
68
2
3
4
Gia tốc trọng trường: g = ... ± ... m/s2
5.1.6. Kết quả thí nghiệm đo bằng máy đo và xử lí thời gian sử dụng
PIC16F77A
Bảng 5.2: Chu kì con lắc đơn.
l = 410 ± 1 mm, nT=5 chu kì
Lần t (s) T (s) g (m/s2) ∆g (m/s2)
1 6,450 1,290 9,727 0,024
2 6,440 1,288 9,757 0,006
3 6,440 1,288 9,757 0,006
4 6,438 1,288 9,763 0,012
Gia tốc trọng trường: g = 9,751 ± 0,010 m/s2
5.2. XÁC ĐỊNH GIA TỐC RƠI TỰ DO
5.2.1. Mục đích
Đo được thời gian t của một vật trên những quãng đường đi được s khác
nhau để rút ra kết luận về tính chất của chuyển động rơi tự do và xác định được
gia tốc rơi tự do.
5.2.2. Cơ sở lý thuyết
Thả một vật (trụ bằng sắt, hòn bi,…) từ độ cao s trên
mặt đất, vật sẽ rơi rất nhanh theo phương thẳng đứng.
Trong trường hợp này ảnh hưởng của không khí không
đáng kể, vật chỉ chuyển động dưới tác dụng của trọng lực
nên có thể coi vật rơi tự do. Khi một vật có vận tốc ban đầu
bằng không, chuyển động thẳng nhanh dần đều với gia tốc a,
thì quãng đường đi được s sau khoảng thời gian t được xác
định bởi công thức:
21
.
2
s at= (6.3)
Đối với chuyển động rơi tự do:
2
2
.
s
g
t
= (6.4)
Hình 5.2: Sự rơi tự do.
(s, t)
g�⃗
69
Hình 5.3: Đo gia tốc rơi tự do
5.2.3. Dụng cụ thí nghiệm
- Giá đỡ thẳng đứng có dây dọi và ba chân có vít chỉnh thăng bằng.
- Nam châm điện để giữ và thả rơi vật.
- Cổng quang điện, hộp đỡ vật rơi.
- Trụ bằng sắt làm vật rơi tự do có thước thẳng 800 mm gắn chặt vào giá
đỡ.
- Máy đo và xử lí thời gian sử dụng PIC 16F877A.
5.2.4. Lắp ráp thí nghiệm
1. Nam châm điện lắp trên đỉnh giá đỡ,
được nối vào cổng nam châm C của
máy đo. Nối cổng quang điện hồng
ngoại vào cổng A (hoặc B) của máy
đo.
2. Điều chỉnh vị trí thẳng đứng cho giá
đỡ bằng cách quan sát quả dọi phối
hợp vặn các vít ở đế ba chân. Hộp đỡ
vật rơi được đặt ở dưới chân giá đỡ.
3. Bật công tắc cung cấp điện cho máy
đo. Chọn bài thí nghiệm rơi tự do, cho nam châm hút giữ vật rơi, dịch
chuyển vị trí của nam châm điện sao cho vị trí ban đầu của vật trùng với
vạch 0 trên thước đo.
5.2.5. Tiến hành thí nghiệm
1. Đo đoạn đường rơi và nhập giá trị s vào máy đo qua ma trận bàn phím
hay máy tính cá nhân.
2. Ấn nút START để thả vật rơi. Ghi thời gian rơi, gia tốc thu được vào
bảng 5.3. Lặp lại phép đo thêm.
3. Nới lỏng vít và dịch chuyển cổng quang điện về phía dưới một khoảng
s = 550 mm; 600 mm. Ứng với mỗi khoảng cách s, thả vật rơi và ghi thời
gian tương ứng.
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông
ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông

More Related Content

What's hot

Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdfĐiều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
Man_Ebook
 
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
Ngo Gia HAi
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự động
Nguyễn Nam Phóng
 
Thiết kế bộ lọc sóng hài
Thiết kế bộ lọc sóng hàiThiết kế bộ lọc sóng hài
Thiết kế bộ lọc sóng hài
vip_bkdn88
 
Bài giảng Thực hành đo lường cảm biến.pdf
Bài giảng Thực hành đo lường cảm biến.pdfBài giảng Thực hành đo lường cảm biến.pdf
Bài giảng Thực hành đo lường cảm biến.pdf
Man_Ebook
 

What's hot (20)

Ask fsk-psk-qpsk-qam-modulation-demolation
Ask fsk-psk-qpsk-qam-modulation-demolationAsk fsk-psk-qpsk-qam-modulation-demolation
Ask fsk-psk-qpsk-qam-modulation-demolation
 
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PIDĐề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
Đề tài: Hệ thống điều khiển tốc độ động cơ DC sử dụng bộ PID
 
Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdfĐiều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
Điều khiển thiết bị điện công nghiệp - Trần Quang Thọ, Nguyễn Vinh Quan.pdf
 
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266[123doc]   dieu-khien-thiet-bi-qua-module-wifi-esp8266
[123doc] dieu-khien-thiet-bi-qua-module-wifi-esp8266
 
Bài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự độngBài giảng kỹ thuật điều khiển tự động
Bài giảng kỹ thuật điều khiển tự động
 
Công thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến ápCông thức Máy điện 1 - Chương 2 - Máy biến áp
Công thức Máy điện 1 - Chương 2 - Máy biến áp
 
Đề tài: Thiết kế Thùng rác thông minh, HAY, 9đ
Đề tài: Thiết kế Thùng rác thông minh, HAY, 9đĐề tài: Thiết kế Thùng rác thông minh, HAY, 9đ
Đề tài: Thiết kế Thùng rác thông minh, HAY, 9đ
 
Đề tài: Xây dựng và điều khiển động cơ BLDC xe đạp điện, HAY
Đề tài: Xây dựng và điều khiển động cơ BLDC xe đạp điện, HAYĐề tài: Xây dựng và điều khiển động cơ BLDC xe đạp điện, HAY
Đề tài: Xây dựng và điều khiển động cơ BLDC xe đạp điện, HAY
 
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệtBài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
Bài tập lớn Lý thuyết điều khiển - Đề tài lò nhiệt
 
Luận văn: Tìm hiểu về động cơ một chiều, HAY
Luận văn: Tìm hiểu về động cơ một chiều, HAYLuận văn: Tìm hiểu về động cơ một chiều, HAY
Luận văn: Tìm hiểu về động cơ một chiều, HAY
 
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lườngmạch tổ hợp và mạch trình tự - Điện tử Đo lường
mạch tổ hợp và mạch trình tự - Điện tử Đo lường
 
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
 
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đĐề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
Đề tài: Thiết kế hệ thống đo nhiệt độ, HAY, 9đ
 
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
175 thuc-hanh-matlab-[dh-khoa-hoc-tu-nhien-hcm]
 
ĐIều khiển tốc độ động cơ không đồng bộ 3 pha dùng bộ điều khiển pid mờ lai​
ĐIều khiển tốc độ động cơ không đồng bộ 3 pha dùng bộ điều khiển pid mờ lai​ĐIều khiển tốc độ động cơ không đồng bộ 3 pha dùng bộ điều khiển pid mờ lai​
ĐIều khiển tốc độ động cơ không đồng bộ 3 pha dùng bộ điều khiển pid mờ lai​
 
Thiết kế bộ lọc sóng hài
Thiết kế bộ lọc sóng hàiThiết kế bộ lọc sóng hài
Thiết kế bộ lọc sóng hài
 
Bài giảng Thực hành đo lường cảm biến.pdf
Bài giảng Thực hành đo lường cảm biến.pdfBài giảng Thực hành đo lường cảm biến.pdf
Bài giảng Thực hành đo lường cảm biến.pdf
 
Thiết kế hệ thống điều khiển tốc độ động cơ dc sử dụng bộ điều khiển pid và p...
Thiết kế hệ thống điều khiển tốc độ động cơ dc sử dụng bộ điều khiển pid và p...Thiết kế hệ thống điều khiển tốc độ động cơ dc sử dụng bộ điều khiển pid và p...
Thiết kế hệ thống điều khiển tốc độ động cơ dc sử dụng bộ điều khiển pid và p...
 
Truyen dien dong
Truyen dien dongTruyen dien dong
Truyen dien dong
 
Luận văn: Ứng dụng lập trình điều khiển thiết bị qua wifi, HOT
Luận văn: Ứng dụng lập trình điều khiển thiết bị qua wifi, HOTLuận văn: Ứng dụng lập trình điều khiển thiết bị qua wifi, HOT
Luận văn: Ứng dụng lập trình điều khiển thiết bị qua wifi, HOT
 

Similar to ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông

Similar to ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông (20)

Tổ chức dạy học theo nhóm một số kiến thức thuộc phần quang hình học – vật lí...
Tổ chức dạy học theo nhóm một số kiến thức thuộc phần quang hình học – vật lí...Tổ chức dạy học theo nhóm một số kiến thức thuộc phần quang hình học – vật lí...
Tổ chức dạy học theo nhóm một số kiến thức thuộc phần quang hình học – vật lí...
 
Xác định số cụm tối ưu vào bài toán phân khúc khách hàng sử dụng dịch vụ di đ...
Xác định số cụm tối ưu vào bài toán phân khúc khách hàng sử dụng dịch vụ di đ...Xác định số cụm tối ưu vào bài toán phân khúc khách hàng sử dụng dịch vụ di đ...
Xác định số cụm tối ưu vào bài toán phân khúc khách hàng sử dụng dịch vụ di đ...
 
Khóa luận hóa học.
Khóa luận hóa học.Khóa luận hóa học.
Khóa luận hóa học.
 
Luận văn: Thiết kế hệ thống bài giảng điện tử Hóa học lớp 12, HAY
Luận văn: Thiết kế hệ thống bài giảng điện tử Hóa học lớp 12, HAYLuận văn: Thiết kế hệ thống bài giảng điện tử Hóa học lớp 12, HAY
Luận văn: Thiết kế hệ thống bài giảng điện tử Hóa học lớp 12, HAY
 
Thiết kế hệ thống bài giảng điện tử theo hướng tích hợp các phần mềm dạy học ...
Thiết kế hệ thống bài giảng điện tử theo hướng tích hợp các phần mềm dạy học ...Thiết kế hệ thống bài giảng điện tử theo hướng tích hợp các phần mềm dạy học ...
Thiết kế hệ thống bài giảng điện tử theo hướng tích hợp các phần mềm dạy học ...
 
Nghiên cứu đánh giá và đề xuất giải pháp tái sử dụng dòng thải từ hoạt động l...
Nghiên cứu đánh giá và đề xuất giải pháp tái sử dụng dòng thải từ hoạt động l...Nghiên cứu đánh giá và đề xuất giải pháp tái sử dụng dòng thải từ hoạt động l...
Nghiên cứu đánh giá và đề xuất giải pháp tái sử dụng dòng thải từ hoạt động l...
 
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
Nghiên Cứu Chống Sạt Lở Bờ Sông Đồng Tháp, Dùng Phương Pháp Phân Tích Trực Ti...
 
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng ViênẢnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
Ảnh Hưởng Của Văn Hóa Tổ Chức Đến Sự Gắn Kết Của Giảng Viên
 
Nâng cao kết quả học tập cho học sinh trung bình yếu môn hoá
 Nâng cao kết quả học tập cho học sinh trung bình yếu môn hoá Nâng cao kết quả học tập cho học sinh trung bình yếu môn hoá
Nâng cao kết quả học tập cho học sinh trung bình yếu môn hoá
 
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
 
Đề tài biện pháp nâng cao kết quả học tập, ĐIỂM CAO, HOT 2018
Đề tài biện pháp nâng cao kết quả học tập, ĐIỂM CAO, HOT 2018Đề tài biện pháp nâng cao kết quả học tập, ĐIỂM CAO, HOT 2018
Đề tài biện pháp nâng cao kết quả học tập, ĐIỂM CAO, HOT 2018
 
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
Nghiên cứu và thử nghiệm một số biện pháp nâng cao kết quả học tập cho học si...
 
Luận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian
Luận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gianLuận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian
Luận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian
 
Luận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian ở Trung ...
Luận văn:  Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian ở Trung ...Luận văn:  Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian ở Trung ...
Luận văn: Vận dụng lý thuyết tiếp nhận vào dạy học văn học dân gian ở Trung ...
 
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
 
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
 
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
Kỹ thuật biên soạn phương án nhiễu trong trắc nghiệm khách quan (phần kim loạ...
 
Khóa Luận Quản Lý Giáo Dục về Nghiên Cứu Các Nhân Tố Tác Động Đến Quyết Định ...
Khóa Luận Quản Lý Giáo Dục về Nghiên Cứu Các Nhân Tố Tác Động Đến Quyết Định ...Khóa Luận Quản Lý Giáo Dục về Nghiên Cứu Các Nhân Tố Tác Động Đến Quyết Định ...
Khóa Luận Quản Lý Giáo Dục về Nghiên Cứu Các Nhân Tố Tác Động Đến Quyết Định ...
 
Luận văn: Nâng cao năng lực giải quyết vấn đề cho học sinh phổ thông qua dạy ...
Luận văn: Nâng cao năng lực giải quyết vấn đề cho học sinh phổ thông qua dạy ...Luận văn: Nâng cao năng lực giải quyết vấn đề cho học sinh phổ thông qua dạy ...
Luận văn: Nâng cao năng lực giải quyết vấn đề cho học sinh phổ thông qua dạy ...
 
BÀI MẪU Khóa luận quản lý chất lượng, HAY, 9 ĐIỂM
BÀI MẪU Khóa luận quản lý chất lượng, HAY, 9 ĐIỂMBÀI MẪU Khóa luận quản lý chất lượng, HAY, 9 ĐIỂM
BÀI MẪU Khóa luận quản lý chất lượng, HAY, 9 ĐIỂM
 

More from https://www.facebook.com/garmentspace

More from https://www.facebook.com/garmentspace (20)

Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
Khóa luận tốt nghiệp ngành Luật Bảo hộ quyền sở hữu trí tuệ đối với nhãn hiệu...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
Khóa luận tốt nghiệp Kinh tế Nâng cao hiệu quả kinh doanh của Công ty cổ phần...
 
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
Khóa luận tốt nghiệp Xây dựng hệ thống hỗ trợ tương tác trong quá trình điều ...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng cung ứng dịch vụ thi ...
 
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
Khóa luận tốt nghiệp Quản trị kinh doanh Hoàn thiện cơ cấu tổ chức và phân qu...
 
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
Khóa luận tốt nghiệp Kinh tế Thu hút vốn đầu tư trực tiếp nước ngoài vào các ...
 
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
Khóa luận tốt nghiệp Phân tích, thiết kế hệ thống thông tin quản lý nhân sự t...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cung ứng dịch vụ vận tải hàng ...
 
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdfKhóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
Khóa luận tốt nghiệp Tuyển dụng nhân lực tại Công ty Cổ phần Miken Việt Nam.pdf
 
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
Khóa luận tốt nghiệp ngành Luật Nâng cao hiệu quả áp dụng chính sách tiền lươ...
 
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về an toàn lao động và vệ sinh lao ...
 
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
Khóa luận tốt nghiệp Giải pháp phát triển hoạt động marketing điện tử cho Côn...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về hợp đồng mua bán hàng hóa - Th...
 
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
Khóa luận tốt nghiệp Luật kinh tế Pháp luật về giao kết và thực hiện hợp đồng...
 
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
Khóa luận tốt nghiệp Kinh tế Nâng cao năng lực cạnh tranh xuất khẩu mặt hàng ...
 
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
Khóa luận tốt nghiệp Hoàn thiện công tác hoạch định của Công ty Cổ phần Đầu t...
 
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
Khóa luận tốt nghiệp ngành Luật Pháp luật về đăng ký kinh doanh và thực tiễn ...
 
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.docĐề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
Đề tài Tác động của đầu tư đến sự chuyển dịch cơ cấu kinh tế.doc
 
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
Luận văn đề tài Nâng cao sự hài lòng về chất lượng dịch vụ tại công ty TNHH D...
 
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
Khóa luận tốt nghiệp Phân tích và thiết kế hệ thống thông tin quản lý nhân sự...
 

Recently uploaded

SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
Xem Số Mệnh
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 

Recently uploaded (20)

bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdfxemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
xemsomenh.com-Vòng Lộc Tồn - Vòng Bác Sĩ và Cách An Trong Vòng Lộc Tồn.pdf
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI LÝ LUẬN VĂN HỌC NĂM HỌC 2023-2024 - MÔN NGỮ ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ em
 
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng TạoĐề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
Đề thi tin học HK2 lớp 3 Chân Trời Sáng Tạo
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

ứNg dụng vi điều khiển pic 16 f877a trong thí nghiệm vật lí phổ thông

  • 1. BỘ GIÁO DỤC VÀ ĐÀO TẠO TRUỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHỐ HỒ CHÍ MINH KHOA VẬT LÝ NGUYỄN HUỲNH DUY KHANG ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG THÍ NGHIỆM VẬT LÍ PHỔ THÔNG Ngành: SƯ PHẠM VẬT LÝ Mã số: 102 NGƯỜI HƯỚNG DẪN KHOA HỌC GV. TRẦN ĐẶNG BẢO ÂN Tp. Hồ Chí Minh, 2013
  • 2. LỜI CẢM ƠN ể hoàn thành luận văn tốt nghiệp Đại học này, trước hết, em xin gửi lời cảm ơn sâu sắc nhất đến GV. Trần Đặng Bảo Ân – Bộ môn Vật lý Ứng dụng – Trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh, người đã tận tình hướng dẫn, chỉ bảo em trong suốt quá trình nghiên cứu, thực hiện luận văn và đã giành hết tâm huyết, thời gian quí báu của mình để cho em điều kiện tốt nhất hoàn thành luận văn này. Em xin chân thành cảm ơn Ban chủ nhiệm Khoa Vật lý, các thầy cô Khoa Vật lý Trường Đại Học Sư Phạm Thành Phố Hồ Chí Minh – những người đã trang bị cho em những kiến thức hữu ích giúp em hoàn thành luận văn này. Cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè đã động viên, chia sẻ, giúp đỡ nhiệt tình và đóng góp nhiều ý kiến quí báu giúp em hoàn thành luận văn. Đ
  • 3. 3 MỤC LỤC MỤC LỤC ...............................................................................................................................................3 DANH MỤC CÁC HÌNH VẼ .............................................................................................................5 DANH MỤC CÁC BẢNG.................................................................................................................11 MỞ ĐẦU..............................................................................................................................................14 1. Giới thiệu chung........................................................................................................14 2. Mục đích đề tài...........................................................................................................15 3. Nội dung nghiên cứu...............................................................................................15 4. Đối tượng nghiên cứu và phạm vi nghiên cứu............................................15 5. Phương pháp nghiên cứu .....................................................................................16 CHƯƠNG 1:......................................................................TỔNG QUAN VI ĐIỀU KHIỂN PIC 17 1.1. GIỚI THIỆU CHUNG.................................................................................................17 1.2. KIẾN TRÚC PIC..........................................................................................................18 1.3. RISC VÀ CISC...............................................................................................................19 1.4. PIPELINING.................................................................................................................20 1.5. NGÔN NGỮ LẬP TRÌNH CHO PIC ......................................................................22 1.6. MẠCH NẠP PIC ..........................................................................................................23 CHƯƠNG 2:.............................................................................VI ĐIỀU KHIỂN PIC 16F877A 25 2.1. SƠ ĐỒ CHÂN...............................................................................................................25 2.2. CÁC THÔNG SỐ CỦA PIC 16F877A...................................................................25 2.3. CÁC MODUL VI ĐIỀU KHIỂN PIC 16F877A...................................................27 CHƯƠNG 3:............................................................ CÁC LINH KIỆN ĐIỆN TỬ LIÊN QUAN 40 3.1. HIỂN THỊ LCD ............................................................................................................40 3.2. MA TRẬN BÀN PHÍM ..............................................................................................44 3.3. IC MAX – 232..............................................................................................................45 3.4. IC LM – 324 .................................................................................................................46 3.5. THẠCH ANH ĐIỆN TỬ............................................................................................47 CHƯƠNG 4:ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG THÍ NGHIỆM VẬT LÍ PHỔ TH 4.1. TỔNG QUAN................................................................................................................49 4.2. DỤNG CỤ ĐO VÀ XỬ LÍ THỜI GIAN SỬ DỤNG PIC 16F877A ................50
  • 4. 4 4.3. KHỐI XỬ LÍ TRUNG TÂM PIC 16F877A..........................................................50 4.4. ĐÁNH GIÁ SAI SỐ .....................................................................................................61 CHƯƠNG 5:...........................................................KẾT QUẢ NGHIÊN CỨU VÀ KẾT LUẬN 66 5.1. XÁC ĐỊNH CHU KÌ CON LẮC ĐƠN .....................................................................66 5.2. XÁC ĐỊNH GIA TỐC RƠI TỰ DO..........................................................................68 5.3. XÁC ĐỊNH HỆ SỐ MA SÁT TRƯỢT....................................................................71 5.4. XÁC ĐỊNH VẬN TỐC TRUNG BÌNH, VẬN TỐC TỨC THỜI.......................75 5.5. KẾT LUẬN....................................................................................................................79 5.6. HƯỚNG PHÁT TRIỂN.............................................................................................79 TÀI LIỆU THAM KHẢO.................................................................................................................81 PHỤ LỤC.............................................................................................................................................83
  • 5. 5 DANH MỤC CÁC HÌNH VẼ 1.1 Kiến trúc Von – Neuman ..................................................................................................................................1 1 1.2 Kiến trúc Harvard ..................................................................................................................................1 2 2.1 Vi điều khiển PIC 16F877A ..................................................................................................................................1 7 2.2 Sơ đồ chân PIC 16F877A ..................................................................................................................................1 7 2.3 Các modul PIC 16F877A được sử dụng. ..................................................................................................................................1 9 2.4 Sơ đồ logic các ngắt trong vi điều khiển PIC 16F877A ..................................................................................................................................2 5 2.5 Sơ đồ khối truyền dữ liệu USART ..................................................................................................................................2 6 2.6 Sơ đồ khối nhận dữ liệu USART ..................................................................................................................................2 9 3.1 LCD 20×4 ..................................................................................................................................3 1
  • 6. 6 3.2 Sơ đồ chân LCD 20×4 ..................................................................................................................................3 1 3.3 Ma trận bàn phím 4×4 ..................................................................................................................................3 4 3.4 Sơ đồ ma trận bàn phím 4×4 ..................................................................................................................................3 4 3.5 IC Max – 232 ..................................................................................................................................3 6 3.6 Sơ đồ chân IC LM – 324 ..................................................................................................................................3 6 3.7 IC LM – 324 ..................................................................................................................................3 6 3.8 Sơ đồ chân IC LM – 324 ..................................................................................................................................3 6 4.1 Kiểm tra các bộ phận trên testboard và Proteus ..................................................................................................................................3 9 4.2 Quá trình thực hiện ..................................................................................................................................4 0
  • 7. 7 4.3 Sơ đồ khối dụng cụ đo và xử lý thời gian ..................................................................................................................................4 1 4.4 Lưu đồ chương trình chính ..................................................................................................................................4 2 4.5 Lưu đồ chương trình con: (a) con lắc đơn; (b) rơi tự do ..................................................................................................................................4 2 4.6 Lưu đồ chương trình con: (a) Hệ số ma sát; (b) Chuyển động thẳng đều ..................................................................................................................................4 3 4.7 Code bẫy lỗi cho vi điều khiển PIC 16F877A ..................................................................................................................................4 4 4.8 Cạnh tác động TMR1H:TMR1L ..................................................................................................................................4 4 4.9 Bộ định thời cho PIC 16F877A ..................................................................................................................................4 5 4.10 Giao tiếp RS232 qua IC Max – 232 ..................................................................................................................................4 5 4.11 Giao diện giao tiếp với máy tính cho PIC 16F877A ..................................................................................................................................4 6
  • 8. 8 4.12 Thí nghiệm con lắc đơn dùng giao tiếp máy tính ..................................................................................................................................4 6 4.13 Cổng quang điện ..................................................................................................................................4 7 4.14 Ngắt nam châm ..................................................................................................................................4 8 4.15 Ma trận bàn phím 4×4 ..................................................................................................................................4 8 4.16 Hiển thị LCD ..................................................................................................................................4 8 4.17 Cấu trúc dữ liệu kiểu số thực 32 bits ..................................................................................................................................4 9 4.18 Sai số do code lập trình ..................................................................................................................................5 0 4.19 Kết quả đo của máy MC – 964 sau: (a) 1 chu kì; (b) 8 chu kì ..................................................................................................................................5 1 4.20 Đồ thị so sánh sai số tỉ đối giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụng PIC 16F877A ..................................................................................................................................5 2
  • 9. 9 5.1 Đo chu kì con lắc đơn ..................................................................................................................................5 5 5.2 Sự rơi tự do ..................................................................................................................................5 6 5.3 Đo gia tốc rơi tự do ..................................................................................................................................5 7 5.4 Đồ thị so sánh gia tốc rơi tự do giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụng PIC 16F877A ..................................................................................................................................5 8 5.5 Chuyển động của vật trên mặt phẳng nghiêng ..................................................................................................................................5 9 5.6 Xác định hệ số ma sát trượt ..................................................................................................................................6 0 5.7 Đồ thị so sánh hệ số ma sát giữa máy đo thời gian hiện số MC – 964 và máy đo sử dụng PIC 16F877A ..................................................................................................................................6 2 5.8 Xác định vận tốc trung bình, vận tốc tức thời ..................................................................................................................................6 3 5.9 Đồ thị so sánh vận tốc tức thời (hình 5.9a) và vận tốc trung bình (hình 5.9b) giữa máy đo thời gian hiện số MC – 964 và máy đo và
  • 10. 10 xử lí thời gian sử dụng PIC 16F877A ..................................................................................................................................6 5
  • 11. 11 DANH MỤC CÁC BẢNG 1.1 Cơ chế xử lí lệnh vi điều khiển ................................................................................................................................1 3 2.1 Các đặc tính nổi bật vi điều khiển PIC 16F877A ................................................................................................................................1 8 2.2 I/O vi điều khiển PIC 16F877A ................................................................................................................................2 0 2.3 Timer vi điều khiển PIC 16F877A ................................................................................................................................2 1 2.4 Ngắt vi điều khiển PIC 16F877A ................................................................................................................................2 4 2.5 USART bất đồng bộ ................................................................................................................................2 6 3.1 Sơ đồ chân LCD ................................................................................................................................3 1 3.2 Các lệnh LCD ................................................................................................................................3 2
  • 12. 12 3.3 Các đặc điểm chuẩn RS232 ................................................................................................................................3 5 3.4 Các điểm nổi bật IC LM – 324 ................................................................................................................................3 7 4.1 Đánh giá sai số hệ thống máy đo và xử lí thời gian dùng PIC 16F877A ................................................................................................................................5 1 4.2 Kết quả đo tần số 2 Hz của MC – 964 ................................................................................................................................5 2 5.1 Chu kì con lắc đơn ................................................................................................................................5 5 5.2 Chu kì con lắc đơn ................................................................................................................................5 6 5.3 Xác định gia tốc rơi tự do ................................................................................................................................5 7 5.4 Xác định gia tốc rơi tự do ................................................................................................................................5 8 5.5 Xác định hệ số ma sát trượt ................................................................................................................................6 1
  • 13. 13 5.6 Xác định hệ số ma sát trượt ................................................................................................................................6 1 5.7 Xác định vận tốc tức thời và vận tốc trung bình ................................................................................................................................6 4 5.8 Xác định vận tốc tức thời và vận tốc trung bình ................................................................................................................................6 4
  • 14. 14 MỞ ĐẦU 1. Giới thiệu chung Thí nghiệm dạy học vật lý trong trường phổ thông là một phương tiện quan trọng có tác dụng to lớn giúp học sinh chiếm lĩnh các tri thức và kĩ năng. Tuy nhiên, do điều kiện cơ sở vật chất còn thiếu thốn, việc lồng ghép các thí nghiệm vật lý là rất khó khăn. Những giờ thực hành trên lớp đúng ra phải theo phân phối chương trình nhưng thực tế lại được tổ chức thực hành qua loa hoặc chuyển sang giờ luyện tập, ôn thi [3]. Và vấn đề đang được đặt ra: Làm sao có thể tự tay tạo ra những thiết bị phục vụ cho việc dạy học được tốt hơn, hiệu quả hơn? Nói đến sự phát triển của kỹ thuật hiện đại, đa số chúng ta đều hình dung ngay là sự tăng tốc thần kỳ của lĩnh vực điện tử và vi tính. Thật khó diễn giải hết ý nghĩa, khó mà nghiên cứu sao cho trọn vẹn để mong đạt được sự thành công như ý muốn đối với các bạn yêu thích và say mê khoa học. Mới ngày nào, kết cấu của những mạch điện cồng kềnh, thì bây giờ tất cả đều được tích hợp thành những mảng chuyên dụng mang nhiều chức năng ngày càng thông minh, độc đáo [2]. Vi điều khiển cũng nằm trong số đó, từ họ vi điều khiển truyền thống 8051 hiện nay đã phát triển thành với các họ vi điều khiển 8 bit [4], 16 bit [5], [6] hay thậm chí 24 bit [5] với các họ vi điều khiển xử lý tốc độ cao. Với các tính năng ngày càng được mở rộng, vi điều khiển ngày càng được ứng dụng rộng rãi từ các thiết bị cầm tay như: điện thoại, máy nghe nhạc,... hay cho đến các thiết bị công nghiệp trong các dây chuyền sản xuất tự động, hệ thống đo lường, giám sát,...nơi nào chúng ta cũng đều thấy sự có mặt của vi điều khiển. Xuất phát từ những lí do trên, tôi quyết định sử dụng vi điều khiển vào thiết kế bộ dụng cụ phụ vụ các bài thí nghiệm chứng minh vật lí phổ thông qua đề tài: “Ứng dụng vi điều khiển PIC 16F877A trong thí nghiệm vật lí phổ thông”.
  • 15. 15 2. Mục đích đề tài - Thiết kế và tạo ra được dụng cụ đo đạc thời gian và xử lí dữ liệu dùng trong các bài thí nghiệm cơ học trong chương trình vật lí trung học phổ thông bằng cách sử dụng vi điều khiển PIC 16F877A. - Trên cơ sở với thiết bị đã tạo được, so sánh với các thiết bị thí nghiệm hiện có như đồng hồ đếm và hiển thị thời gian hiện số MC-964 nhằm rút ra ưu nhược điểm và có hướng cải tiến thích hợp. 3. Nội dung nghiên cứu - Nghiên cứu kiến thức điện – điện tử, các loại linh kiện điện tử căn bản. - Nghiên cứu kiến thức vi điều khiển nói chung và vi điều khiển PIC 16F877A nói riêng: cấu trúc phần cứng, cách hoạt động của vi điều khiển, cách lập trình viết code cho vi điều khiển, các ứng dụng,... - Trên cơ sở các kiến thức đó, thiết kế và tạo ra được dụng cụ đo đạc thời gian và xử lí dữ liệu dùng trong khảo sát các thí nghiệm cơ học thuộc chương trình vật lí trung học phổ thông. - So sánh với các thiết bị thí nghiệm hiện đang được sử dụng trong các trường học phổ thông nhằm rút ra được ưu, nhược điểm bộ thí nghiệm và đề xuất hướng cải tiến phù hợp. 4. Đối tượng nghiên cứu và phạm vi nghiên cứu - Đối tượng nghiên cứu: Kiến thức điện – điện tử, vi điều khiển; thiết kế và chế tạo mạch điện tử; lí thuyết các bài thí nghiệm cơ học thuộc chương trình thí nghiệm vật lí phổ thông. - Phạm vi nghiên cứu: Các thí nghiệm cơ học thuộc chương trình vật lí trung học phổ thông có liên quan đến đo đạc thời gian và tính toán các đại lượng có liên quan.
  • 16. 16 5. Phương pháp nghiên cứu - Phương pháp nghiên cứu lí thuyết: Đọc, nghiên cứu tài liệu về điện – điện tử, vi điều khiển; quá trình thiết kế mạch điện tử; lí thuyết các bài thí nghiệm cơ học thuộc chương trình thí nghiệm vật lí phổ thông. - Phương pháp lấy ý kiến chuyên gia: Nhờ giảng viên hướng dẫn và bạn bè góp ý để xây dựng sơ đồ và cấu tạo của thiết bị thí nghiệm. - Phương pháp thực nghiệm: Kiểm tra cấu tạo và hoạt động ở từng bộ phận của bộ thí nghiệm trên test – board, rút ra ưu – nhược điểm, từ đó vẽ và thiết kế mạch in. - Phương pháp mô phỏng: Mô phỏng mạch thiết kế nhằm rút ra ưu nhược điểm mạch dự tính thiết kế, tối ưu hóa mạch điện tử. - Các phương pháp đánh giá: Đánh giá ưu, nhược của thiết bị tạo ra với các thiết bị hiện có nhằm rút ra các kết luận sư phạm.
  • 17. 17 CHƯƠNG 1: TỔNG QUAN VI ĐIỀU KHIỂN PIC 1.1. GIỚI THIỆU CHUNG 1.1.1. Vi điều khiển PIC Vi điều khiển – Microcontroller là mạch tích hợp trên một chíp có thể lập trình được, dùng để điều khiển hoạt động hệ thống theo tập lệnh của người lập trình. PIC là viết tắt của “Programable Interlligent Computer” hay “Máy tính thông minh khả trình” do hãng General Instrument đặt tên cho vi điều khiển đầu tiên của họ PIC1650. Lúc này PIC dùng để giao tiếp với các thiết bị ngoại vi cho máy chủ 16 bit CP1600, vì vậy người ta gọi PIC với tên là bộ điều khiển giao tiếp ngoại vi - Peripheral Interface Controller. Năm 1985, General Instrument bán bộ phận vi điện tử của họ cho hãng Microchip Technology, PIC được bổ sung EEPROM để tạo thành một bộ điều khiển vào ra khả trình. Ngày nay có rất nhiều dòng PIC được sản xuất với hàng loạt các modul ngoại vi được tích hợp sẵn (USART, PWM, ADC…) với bộ nhớ chương trình từ 512 word đến 32k word [1, tr.1-4]. 1.1.2. Các dòng vi điều khiển PIC Các kí hiệu của vi điều khiển PIC: PIC12xxxx: độ dài lệnh 12 bit; PIC16xxxx: độ dài lệnh 14 bit; PIC18xxxx: độ dài lệnh 16 bit; PIC24xxxx: độ dài lệnh 16 bit; PIC32xxxx: độ dài lệnh 16 bit; C: PIC có bộ nhớ EPROM; F: PIC có bộ nhớ flash; LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp; LV: tương tự như LF - PIC có bộ nhớ flash hoạt động ở điện áp thấp;
  • 18. 18 Bên cạnh đó một số vi điều khiển có kí hiệu xxFxxx là EEPROM, nếu có thêm chữ A ở cuối là flash. Ví dụ: PIC16F877 là EEPROM. PIC16F877A là flash. Ngoài ra còn có thêm một dòng vi điều khiển PIC mới là dsPIC, dsPIC giống như PIC24, là các vi điều khiển 16 bit. Ở Việt Nam phổ biến nhất là các họ vi điều khiển PIC do hãng Microchip sản xuất. 1.2. KIẾN TRÚC PIC Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc: kiến trúc Von – Neuman và kiến trúc Havard [1, tr.3-4]. 1.2.1. Kiến trúc Von – Neuman Hình 1.1: Kiến trúc Von – Neuman. Kiến trúc Von – Neuman (hình 1.1) là cấu trúc mà bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung trong một bộ nhớ. Trong một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hay bộ nhớ chương trình. Do đó, kiến trúc Von – Neuman, ta có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu. Tuy nhiên điều này chỉ có ý nghĩa khi tốc độ xử lí của CPU phải rất cao, với với cấu trúc đó, trong cùng một thời điểm CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình. Như vậy có thể nói kiến trúc Von – Neuman không thích hợp với cấu trúc của một vi điều khiển. BỘ XỬ LÍ TRUNG TÂM Bộ nhớ chươn g trình và bộ nhớ dữ liệu
  • 19. 19 1.2.2. Kiến trúc Havard Kiến trúc Havard là khái niệm mới hơn so với kiến trúc Von – Neuman (hình 1.2). Khái niệm này được hình thành nhằm cải tiến tốc độ thực thi của một vi điều khiển. Qua việc tách rời bộ nhớ chương trình và bộ nhớ dữ liệu, bus chương trình và bus dữ liệu, CPU có thể cùng một lúc truy xuất cả bộ nhớ chương trình và bộ nhớ dữ liệu, giúp tăng tốc xử lí của vi điều khiển lên gấp đôi. Hình 1.2: Kiến trúc Harvard. Một điểm cần chú ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu tùy theo yêu cầu kiến trúc của vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu. Ví dụ, đối với vi điều khiển dòng 16Fxx, độ dài lệnh luôn là 14 bit (trong khi dữ liệu được tổ chức thành từng byte), còn đối với kiến trúc Von – Neuman, độ dài lệnh luôn là bội số của 1 byte (do dữ liệu được tổ chức thành từng byte). Chính vì vậy, hầu hết các vi điều khiển ngày nay đều được xây dựng theo kiến trúc Harvad. 1.3. RISC VÀ CISC Dựa vào tập lệnh, vi điều khiển được chia thành vi điều khiển CISC và vi điều khiển RISC. Bộ nh ớ dữ liệ u BỘ XỬ LÍ TRUNG TÂM Bộ nh ớ ch ươ ng trì
  • 20. 20 1.3.1. CISC Vi điều khiển CISC – Complex Instruction Set Computer hay vi điều khiển có tập lệnh phức tạp với mã lệnh của không phải là một số cố định mà luôn là bội số của 8 bit. Các vi điều khiển có kiến trúc Von – Neuman đều là những vi đều khiển CISC do sự không cố định của bộ nhớ chương trình. 1.3.2. RISC RISC – Reduced Instruction Computer hay vi điều khiển có tập lệnh rút gọn. Tập lệnh của các vi điều khiển được thiết kế sao cho chiều dài mã lệnh luôn cố định và cho phép thực thi lệnh trong một chu kì xung clock (ngoại trừ lệnh nhảy, lệnh gọi chương trình con, ... cần hai chu kì xung clock). Điều này có nghĩa tập lệnh của vi điều khiển thuộc cấu trúc Harvard sẽ ít lệnh hơn, ngắn hơn, đơn giản hơn để đáp ứng yêu cầu mã hóa lệnh bằng một số lượng bít nhất định. Các vi điều khiển được tổ chức theo kiến trúc Harvard còn được gọi là vi điều khiển RISC. PIC sử dụng tập lệnh RISC, với dòng PIC low – end (độ dài mã lệnh 12 Bit ví dụ PIC12Cxxx) và mid – range (độ dài mã lệnh 14 bit, ví dụ PIC16Fxxx), tập lệnh bao gồm khoảng 35 lệnh, và 70 lệnh đối với dòng PIC high – end (có độ dài mã lệnh 16 bit PIC18Fxxxx). Tập lệnh RISC bao gồm các lệnh tính toán trên các thanh ghi, và các hằng số, hoặc các vị trí ô nhớ, cũng như có các lệnh điều kiện, nhảy, gọi hàm và các lệnh quay trở về, cùng các chức năng khác như ngắt hoặc sleep. 1.4. PIPELINING Pipelining chính là cơ chế xử lí lệnh của các vi điều khiển PIC. Một chu kì lệnh của vi điều khiển sẽ bao gồm 4 xung clock [6, tr.30-32]. Ví dụ: Sử dụng oscillator có tần số f1 = 4 MHz, xung lệnh sẽ có tần số f2 = 1 MHz.
  • 21. 21 Giả sử ta có một đoạn chương trình như sau: 1. MOVLW 55h 2. MOVWF PORT B 3. CALL SUB_1 4. BSF PORT A, BIT 3 Quá trình trên sẽ được thực thi như sau: Bảng 1.1: Cơ chế xử lí lệnh vi điều khiển. STT Lệnh Chu kì xung Clock CK0 CK1 CK2 CK3 CK4 CK5 1 MOVLW 55h F 1 E 1 2 MOVWF PORT B F 2 E 2 3 CALL SUB_1 F 3 E 3 4 BSF PORT A, BIT 3 F 4 5 F 4 E 4  Ghi chú: F*: vi điều khiển đọc lệnh *. E*: vi điều khiển thực thi lệnh *. CK0: Đọc lệnh 1. CK1: Thực thi lệnh 1, đọc lệnh 2. CK2: Thực thi lệnh 2, đọc lệnh 3. CK3: Thực thi lênh 3, đọc lệnh 4. CK4: Do chu kì 3 đang thực thi lệnh CALL SUB_1 là lệnh gọi chương trình con SUB_1, phải truy xuất địa chỉ thanh ghi Program Counter lưu vào bộ nhớ Stack nên trong chu kì 4, vi điều khiển tiếp tục thực thi lệnh CALL SUB_1. CK5: Thực thi lệnh 4. Quá trình này được thực hiện tương tự cho các lệnh tiếp theo của chương trình. Thông thường, để thực thi một lệnh, ta cần một chu kì lệnh để gọi lệnh đó, và một chu kì xung clock để giải mã và thực thi lệnh. Với cơ chế pipelining
  • 22. 22 được trình bày ở trên, mỗi lệnh xem như chỉ được thực thi trong một chu kì lệnh. Đối với các lệnh mà quá trình thực thi nó làm thay đổi giá trị thanh ghi PC (Program Counter) cần hai chu kì lệnh để thực thi vì phải thực hiện việc gọi lệnh ở địa chỉ thanh ghi PC chỉ tới. Sau khi đã xác định đúng vị trí lệnh trong thanh ghi PC, mỗi lệnh chỉ cần một chu kì lệnh để thực thi xong. 1.5. NGÔN NGỮ LẬP TRÌNH CHO PIC Ngôn ngữ lập trình cho PIC rất đa dạng, có hai loại: - Ngôn ngữ lập trình cấp thấp – hợp ngữ: MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip). - Ngôn ngữ lập trình bậc cao:có nhiều loại, được phát triển trên ngôn ngữ C: CCS, HTPIC, PICBasic, MikroBasic, … Ưu điểm hợp ngữ là giúp người học và lập trình hiểu rõ hơn về cấu trúc bên trong của vi điều khiển PIC, cũng như khả năng tối ưu hóa bộ nhớ chương trình. Tuy nhiên, tiếp cận hợp ngữ và khả năng phát triển là hạn chế, mất thời gian. Do đó, trong nội dung của đề tài, tôi tập trung vào sử dụng ngôn ngữ lập trình bậc cao CCS (hình 1.3) để nghiên cứu và phát triển ứng dụng PIC. Ưu điểm CCS: - Kế thừa tất cả đặc điểm của ngôn ngữ C – là ngôn ngữ cơ bản, quen thuộc mà sinh viên đã được đào tạo. - Xây dựng sẵn các hàm phục vụ cho việc sử dụng dễ dàng các khối chức năng đặc biệt của vi điều khiển PIC như khối ADC, PWM, RS232, SPI. Hình 1.3: Ngôn ngữ lập trình bậc cao CCS.
  • 23. 23 - Có khả năng kết hợp với ngôn ngữ hợp ngữ, tạo sự mềm dẻo trong phát triển ứng dụng. - Khả năng phát triển, nâng cấp ứng dụng là dễ dàng. - Ngày càng được cập nhật với nhiều tính năng ưu việt và hiệu quả hơn. 1.6. MẠCH NẠP PIC Mạch nạp PIC là một dòng sản phẩm rất đa dạng dành cho vi điều khiển PIC. Có thể sử dụng các mạch nạp được cung cấp bởi nhà sản xuất là hãng Microchip như: PICSTART plus [16], MPLAB ICD 2, MPLAB PM 3 [17], PRO MATE II [18]. Có thể dùng các sản phẩm này để nạp cho vi điều khiển khác thông qua chương trình MPLAB. Dòng sản phẩm chính thống này có ưu thế là nạp được cho tất cả các vi điều khiển PIC, tuy nhiên giá thành rất cao và thường gặp rất nhiều khó khăn trong quá trình mua sản phẩm. Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rất nhiều mạch nạp được thiết kế dành cho vi điều khiển PIC. Có thể sơ lược một số mạch nạp cho PIC như sau: JDM programmer [12]: mạch nạp này dùng chương trình nạp Icprog cho phép nạp các vi điều khiển PIC có hỗ trợ tính năng nạp chương trình điện áp thấp ICSP (In Circuit Serial Programming). Hầu hết các mạch nạp đều hỗ trợ tính năng nạp chương trình này. WARP-13A [13] và MCP-USB [14]: hai mạch nạp này giống với mạch nạp PICSTART PLUS do nhà sản xuất Microchip cung cấp, tương thích với trình biên dịch MPLAB, nghĩa là ta có thể trực tiếp dùng chương trình MPLAB để nạp cho vi điều khiển PIC mà không cần sử dụng một chương trình nạp khác, chẳng hạn như ICprog. P16PRO40 [15]: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng. Ông còn thiết kế cả chương trình nạp, tuy nhiên ta cũng có thể sử dụng chương trình nạp Icprog.
  • 24. 24 Các mạch nạp kể trên có ưu điểm rất lớn là đơn giản, rẻ tiền, hoàn toàn có thể tự lắp ráp một cách dễ dàng, và mọi thông tin về sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được và tải miễn phí thông qua mạng Internet. Tuy nhiên các mạch nạp trên có nhược điểm là hạn chế về số vi điều khiển được hỗ trợ, bên cạnh đó mỗi mạch nạp cần được sử dụng với một chương trình nạp thích hợp.
  • 25. 25 CHƯƠNG 2: VI ĐIỀU KHIỂN PIC 16F877A 2.1. SƠ ĐỒ CHÂN Hình 2.1: Vi điều khiển PIC 16F877A . Hình 2.2: Sơ đồ chân PIC 16F877A. Sơ sơ đồ chân của vi điều khiển PIC 16F877A (hình 2.1) được thể hiện trên hình 2.2. Trong đó, chân 11, 32 được nối với nguồn DC 5V; chân 12, 31 nối đất; chân 13, 14 nhận xung clock từ mạch dao động thạch anh hay mạch dao động RC; tín hiệu reset sẽ được truyền đến PIC 16F877A qua chân số 1; 33 chân còn lại dùng kết nối với các modul của vi điểu khiển, tùy theo yêu cầu sử dụng mà chúng sẽ đảm nhiệm những chức năng khác nhau [6, tr.2-3]. 2.2. CÁC THÔNG SỐ CỦA PIC 16F877A Đây là vi điều khiển thuộc họ PIC16Fxxx với tập lệnh RISC 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à 200 ns. Bộ nhớ chương trình 8k × 14 bits, bộ nhớ dữ liệu 368 bytes RAM và bộ nhớ dữ liệu
  • 26. 26 EEPROM với dung lượng 256 bytes. Số PORT I/O là 5 với 33 chân I/O (bảng 2.1) [6, tr.5-20]. Bảng 2.1: Các đặc tính nổi bật vi điều khiển PIC 16F877A. SST Đặc điểm Điệp áp hoạt động 1 Công nghệ CMOS FLASH /EEPROM nguồn mức thấp, tốc độ cao. 2 Dải điện thế hoạt động rộng : 2,0V đến 5,5V. 3 Nguồn sử dụng hiện tại 25 mA. 4 Công suất tiêu thụ thấp. Bộ nhớ chương trình và bộ nhớ dữ liệu 1 Bộ nhớ flash với khả năng ghi xóa được 100.000 lần. 2 Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần, dữ liệu lưu trữ trên 40 năm. 3 Bộ nhớ dữ liệu 368 bytes, 4 banks. 4 Tất cả các câu lệnh thực hiện trong một chu kì lệnh ngoại trừ một số câu lệnh rẽ nhánh thực hiện trong 2 chu kì lệnh. 5 Truy cập bộ nhớ bằng địa chỉ trực tiếp hoặc gián tiếp. 6 Khả năng tự nạp chương trình với sự điều khiển của phần mềm. 7 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. 8 Chức năng bảo mật mã chương trình. 9 Chế độ Sleep. Bộ định thời và CCP 1 Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit. 2 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. 3 Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler. 4 Watchdog Timer với bộ dao động trong. 5 Hai bộ Capture/so sánh/điều chế độ rộng xung. Analoge 1 8 kênh chuyển đổi ADC 10 bit. 2 Hai bộ so sánh. Chuẩn giao tiếp 1 Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và
  • 27. 27 I2C. 2 Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ. 3 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.3. CÁC MODUL VI ĐIỀU KHIỂN PIC 16F877A Trong nội dung của đề tài này, tôi không tập trung vào chi tiết từng chức năng khác nhau của vi điều khiển PIC 16F877A mà sẽ tập trung vào những đặc điểm quan trọng, thiết yếu, có liên quan trực tiếp đến quá trình chế tạo bộ dụng cụ ứng dụng PIC 16F877A. Các nội dung này bao gồm: Cổng nhập xuất I/O, Timer, ngắt, giao tiếp USART (hình 2.3). Hình 2.3: Các modul PIC 16F877A được sử dụng. 2.3.1. Cổng xuất nhập I/O Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của vi điều khiển được thể hiện một cách rõ ràng. Một cổng xuất nhập của vi điều khiển bao gồm nhiều chân (I/O pin) (bảng 2.2), tùy theo cách bố trí và chức năng của vi điều khiển mà số lượng cổng xuất nhập và số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một số chân xuất nhập còn có thêm CPU I/O USART Timer Ngắt Bộ nhớ dữ liệu Bộ nhớ chương trình
  • 28. 28 các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên với bên ngoài. Chức năng của từng chân xuất nhập trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân xuất nhập đó [6, tr.40-43]. Bảng 2.2: I/O vi điều khiển PIC 16F877A. STT CỔNG SỐ CHÂN THANH GHI SFR 1 Cổng A 6 chân: RA0, RA1.. RA5 PORTA, TRISA 2 Cổng B 8 chân: RB0, RB1,..RB7 PORTB, TRISB 3 Cổng C 8 chân: RC0, RC1, ..RC7 PORTC, TRISC 4 Cổng D 8 chân: RD0, RD1,..RD7 PORTD, TRISD 5 Cổng E 3 chân: RE0, RE1, RE2 PORTE, TRISE Thanh ghi ghi TRISA phản ánh chức năng chân cổng A, nghĩa là muốn xác lập chức năng chân cổng A như thế nào (input hay output) ta đưa giá trị vào các bít tương ứng trên thanh ghi TRISA. Ví dụ: Muốn RA0, RA2, RA4, RA5 là input và RA1, RA3 là output, ta gán giá trị 000110101 cho thanh ghi TRISA. X X 1 1 0 1 0 1 RA5 RA4 RA3 RA2 RA1 RA0  Ghi chú: X: Không quan tâm, trạng thái trong ô nhớ này không ảnh hướng đến chân của vi điều khiển. Thanh ghi TRISB, TRISC, TRISD tương tự. Thanh ghi PORTA phản ánh trạng thái của các chân cổng A, nghĩa là muốn tín hiệu đầu ra của các chân cổng A như thế nào ta đưa giá trị vào các bit tương ứng trên thanh ghi PORTA. Cũng như khi đọc giá trị của thanh ghi PORTA ta sẽ biết được trạng thái của các chân cổng A. Ví dụ: Muốn RA0, RA2, RA4, RA5 ở mức logic 1 (mức 5V), RA1, RA3 ở mức logic 0 (mức 0V), ta gán giá trị 000110101 cho thanh ghi PORTA.
  • 29. 29 X X 1 1 0 1 0 1 RA5 RA4 RA3 RA2 RA1 RA0  Ghi chú: X: Không quan tâm, trạng thái trong ô nhớ này không ảnh hướng đến chân của vi điều khiển. Thanh ghi PORTC, PORTD tương tự. Thanh ghi PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởi chương trình. 2.3.2. Timer Trong mục này, ta sẽ đi vào tìm hiểu các bộ Timer. Một chế độ quan trọng nữa của Timer là khi nó hoạt động như bộ đếm (Counter). Trong ứng dụng này, Timer hoạt động như một bộ đếm, có nhiệm vụ đếm số các xung đi vào một chân cụ thể trên vi điều khiển [6, tr.53-63]. Chế độ bộ đếm này có nhiều ứng dụng trong thực tế như đếm số vòng quay của động cơ (phản hồi từ bộ đo tốc độ động cơ), đếm số sản phẩm trên một dây chuyền, ... Bảng 2.3: Timer vi điều khiển PIC 16F877A. STT Đặc điểm Thanh ghi SFR Chức năng 1 Timer0 8 bit (số đếm tối đa của nó là 255), hoạt động ở 2 chế độ định thời và độ đếm TMR0 (01h, 101h) Chứa giá trị đếm của Timer0 INTCON (0Bh, 8Bh, 10Bh, 18Bh) Cho phép ngắt hoạt động (GIE và PEIE) OPTION_REG (81h, 181h) Điều khiển Prescaler 2 Timer1 16 bit (số đếm tối đa của nó là 65535), hoạt động ở 2 chế độ định INTCON (0Bh, 8Bh, 10Bh, 18Bh) Cho phép ngắt hoạt động (GIE và PEIE) PIR1 (0Ch) Chứa cờ ngắt Timer1 (TMR1IF) PIE1 (8Ch) Cho phép ngắt Timer1 (TMR1IE)
  • 30. 30 thời và độ đếm TMR1L (0Eh) Chứa giá trị 8 bit thấp của bộ đếm Timer1 TMR1H (0Eh) Chứa giá trị 8 bit cao của bộ đếm Timer1 T1CON (10h) Xác lập các thông số cho Timer1 3 Timer2 8 bit, hoạt động phục vụ chức năng PWM - Pulse Width Modulation INTCON (0Bh, Bh, 10Bh, 18Bh) Cho phép toàn bộ các ngắt (GIE và PEIE) PIR1 (0Ch) Chứa cờ ngắt Timer2 (TMR2IF) PIE1 (8Ch) Chứa bit điều khiển Timer2 (TMR2IE) TMR2 (11h) Chứa giá trị đếm của Timer2 T2CON (12h) Xác lập các thông số cho Timer2 2.3.2.1. Chế độ định thời Mỗi bộ timer có một hoặc nhiều thanh ghi chứa giá trị đếm của nó (tùy thuộc vào độ dài của timer), ta giả sử tên thanh ghi là TMR có độ dài là n byte, hay giá trị đếm tối đa là 2 1n − . Khi giá trị của TMR đạt đến giá trị này, vi điều khiển sẽ đặt bit cờ của bộ timer đó lên mức 1. Người dùng sẽ biết được thời điểm này bằng cách kiểm tra bit cờ. Đồng thời TMR sẽ tự động xóa về giá trị 0. Khi được cài đặt hoạt động trong chế độ định thời, giá trị của thanh ghi TMR sẽ tự động tăng lên 1 đơn vị sau mỗi chu kì lệnh của vi điều khiển. Khi giá trị của TMR đạt đến giá trị tối đa, bit cờ của Timer sẽ được đưa lên mức 1 và TMR bị xóa, TMR trở về 0. Giả sử vi điều khiển dùng thạch anh tần số 4 MHz. Như vậy, một chu kì lệnh ứng với 4 chu kì thạch anh hay 1 µs. TMR sẽ tự động tăng lên 1 đơn vị sau 1µs. Nếu ban đầu ta cho TMR có giá trị x. Thì sau khoảng thời gian 2 1n x− − µs giá trị TMR sẽ đạt giá trị tối đa 2n. Thời điểm này được xác định thông qua trạng thái của bit cờ. Ngược lại, để thực hiện định thời với khoảng thời gian t sau một sự kiện: 1. Sự kiện 1;
  • 31. 31 2. Tạo khoảng thời gian trễ t; 3. Sự kiện 2. Ta làm các bước: 1. Sự kiện 1; 2. Gán giá trị 2 1n t− − ban đầu cho TMR; 3. Kiểm tra bit cờ; 4. Khi bit cờ bằng 1, thực hiện sự kiện 2. Thật vậy, sau 1 µs TMR tăng lên 1 đơn vị, thời gian để tăng giá trị cho TMR từ 2n – 1 – t đến giá trị tối đa (khi bit cờ được đưa lên 1) sẽ là: 2 1 (2 1 )n n t t− − − − =µs. (2.1) Vậy khoảng thời gian từ sau sự kiện 1 (khi TMR bắt đầu được gán) đến sự kiện 2 (ngay sau khi bit cờ được ở trạng thái cao) là t đúng như yêu cầu của ta. Ví dụ: Để định thời 200 µs dùng Timer0 (8 bit với giá trị tối đa là 255), TMR0 sẽ được gán giá trị: TMR0 = 255 - 200 = 55. (2.2) 2.3.2.2. Chế độ đếm Ở chế độ đếm, một chân chức năng trên vi điều khiển sẽ trở thành chân đầu vào xung của bộ đếm. Ví dụ: chân RA4 đối với Timer0 và RC0 đối với Timer1. Hoạt động của nó có nét giống với chế độ định thời. Giá trị của thanh ghi TMR sẽ tự động tăng lên 1 đơn vị khi có một xung đến chân đầu vào xung của Timer đó. Khi giá trị của TMR0 đạt đến giá trị tối đa, bit cờ của Timer sẽ được đưa lên mức 1 và TMR bị xóa, TMR trở về 0. Như vậy, về cách hoạt động trong chế độ này chỉ khác với chế độ định thời ở chỗ, thay vì TMR tự động tăng lên sau mỗi chu kì lệnh, thì TMR tăng lên khi có một xung đi vào chân đầu vào xung của Timer đó. Dạng xung được xác định là sườn âm hay sườn dương phụ thuộc vào việc cài đặt bit chọn dạng xung tương ứng trên thanh ghi của vi điều khiển.
  • 32. 32 Nguyên lý hoạt động định thời và bộ đếm này cũng đúng với các bộ vi điều khiển, vi xử lý khác. 2.3.3. Ngắt 2.3.3.1. Tổng quan về ngắt Ngắt hiểu theo nghĩa đơn giản là các sự kiện ngẫu nhiên làm gián đoạn quá trình của một sự kiện đang xảy ra [6, tr.5-24]. Cụ thể hoạt động của vi điều khiển khi có sự kiện ngắt xảy ra và ngắt đó đã được cho phép sẽ được diễn ra theo trình tự: 1. Thực hiện hết lệnh đang thực hiện; 2. Dừng chương trình đang thực hiện; 3. Lưu lại địa chỉ của lệnh kế tiếp trong chương trình đang thực hiện vào bộ nhớ stack; 4. Nhảy tới địa chỉ 0×04 trong bộ nhớ chương trình; 5. Tại đây, vi điều khiển sẽ thực hiện chương trình con phục vụ ngắt do người lập trình đã lập trình từ trước; 6. Sau khi thực hiện xong chương trình con phục vụ ngắt, vi điều khiển lấy lại địa chỉ của lệnh kế tiếp đã được lưu và thực hiện tiếp chương trình đang thực hiện dở lúc chưa có ngắt. 2.3.3.2. Các ngắt trong vi điều khiển PIC 16F877A Bảng 2.4: Ngắt vi điều khiển PIC 16F877A. STT Tên ngắt Bit điều khiển 1 Ngắt ngoài GIE, INTF, INTE 2 Ngắt trạng thái GIE, RBIF, RBIE 3 Ngắt tràn Timer0 GIE, TMR0IF, TMR0IE 4 Ngắt tràn Timer1 GIE, TMR1IF, TMR1IE, PEIE 5 Ngắt tràn Timer2 GIE, TMR2IF, TMR2IE, PEIE 6 Ngắt chuyển đổi analoge - digital GIE, ADIF, ADIE, PEIE 7 Bộ đệm chuyển RS232 trống GIE, TXIF, TXIE, PEIE 8 Dữ liệu nhập từ RS232 sẵn sàng GIE, RCIF, RCIE, PEIE 9 Có capture hay compare trên CCP1 GIE, CCP1F, CCP1IE, PEIE
  • 33. 33 10 Có capture hay compare trên CCP2 GIE, CCP2F, CCP2IE, PEIE 11 Có dữ liệu vào cổng parallel salve GIE, PSPIF, PSPIE, PEIE 12 Có hoạt động SPI hay I2C GIE, SSPIF, SSPIE, PEIE 13 Xung đột bus GIE, BCLIF, BCLIE, PEIE 14 Ghi vào eeprom hoàn tất GIE, EEIF, EEIE, PEIE 15 Kiểm tra bằng nhau comparator GIE, CMIF, CMIE, PEIE PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt (bảng 2.4) được điều khiển bởi thanh ghi INTCON (bit GIE). Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng. Các cờ ngắt tràn ở mức cao khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạng thái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuôc vào bit GIE và các bit điều khiển khác. Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương trình ngắt được kết thúc bằng lệnh RETFIE. Khi chương trình ngắt được thực thi, bit GIE tự động được xóa, địa chỉ lệnh tiếp theo của chương trình chính được cất vào trong bộ nhớ Stack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h. Lệnh RETFIE được dùng để thoát khỏi chương trình ngắt và quay trở về chương trình chính, đồng thời bit GIE cũng sẽ được gán để cho phép các ngắt hoạt động trở lại. Các cờ hiệu được dùng để kiểm tra ngắt nào đang xảy ra và phải được xóa bằng chương trình trước khi cho phép ngắt tiếp tục hoạt động trở lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra.
  • 34. 34 Hình 2.4: Sơ đồ logic các ngắt trong vi điều khiển PIC 16F877A. Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi trạng thái các pin của PORTB, việc xác định ngắt nào xảy ra cần 3 hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt (hình 2.4). Cần chú ý là trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ không được cất và có thể bị thay đổi giá trị trong quá trình thực thi chương trình ngắt. Điều này nên được xử lí bằng chương trình để tránh hiện tượng trên xảy ra. 2.3.4. Giao tiếp USART USART - Universal Synchronous Asynchronous Receiver Transmitter là một trong hai chuẩn giao tiếp nối tiếp (SCI - Serial Communication Interface và MSSP - Master Synchronous Serial Port). Có thể sử dụng giao diện này cho các giao tiếp với các thiết bị ngọai vi, với các vi điều khiển khác hay với máy tính. Các dạng của giao diện USART ngọai vi bao gồm: - Bất động bộ (Asynchronous); - Đồng bộ (Master mode); - Đồng bộ (Slave mode). Hai pin dùng cho giao diện này là RC6/TX/CK và RC7/RX/DT. Ở chế độ bất đồng bộ, RC6 đóng vai trò là chân truyền dữ liệu và RC7 là chân nhận dữ liệu. Ở chế độ đồng bộ, RC6 đóng vai trò là chân truyền xung clock đồng bộ tín hiệu và RC7 là chân truyền dữ liệu [6, tr.111-193]. Với mục đích đề tài thực hiện giao tiếp giữa máy tính và vi đều khiển trong khoảng cách gần, khoảng 1 m nên trong mục này chúng tôi không đi sâu vào chuẩn giao tiếp USART đồng bộ mà sẽ tập trung vào giao tiếp USART bất đồng bộ với các đặc điểm thanh ghi được thể hiện ở bảng 2.5. Bảng 2.5: USART bất đồng bộ. STT Thanh ghi liên quan Chức năng Truyền dữ liệu
  • 35. 35 1 INTCON (0Bh, 8Bh, 10Bh, 18Bh) Cho phép tất cả các ngắt 2 PIR1 (0Ch) Chứa cờ hiệu TXIF 3 PIE1 (8Ch) Chứa bit cho phép ngắt truyền TXIE 4 RCSTA (18h) Chứa bit cho phép cổng truyền dữ liệu (hai pin RC6/TX/CK và RC7/RX/DT) 5 TXREG (19h) Thanh ghi chứa dữ liệu cần truyền 6 TXSTA (98h) Xác lập các thông số cho giao diện 7 SPBRG (99h) Quyết định tốc độ baud Nhận dữ liệu 1 INTCON (0Bh, 8Bh, 10Bh, 18Bh) Chứa các bit cho phép toàn bộ các ngắt (bit GIER và PEIE) 2 PIR1 (0Ch) Chứa cờ hiệu RCIE 3 PIE1 (8Ch) Chứa bit cho phép ngắt RCIE 4 RCSTA (18h) Xác định các trang thái trong quá trình nhận dữ liệu 5 RCREG (1Ah) Chứa dữ liệu nhận được 6 TXSTA (98h) Chứa các bit điều khiển SYNC và BRGH 7 SPBRG (99h) Điều khiển tốc độ baud 2.3.4.1. Truyền dữ liệu qua chuẩn giao tiếp USART bất đồng bộ Hình 2.5: Sơ đồ khối truyền dữ liệu USART. Ở chế độ truyền dữ liệu (hình 2.5), USART hoạt động theo chuẩn NRZ (None – Return – to – Zero), nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8 hay 9 bit dữ liệu (thông thường là 8 bit) và 1 bit Stop. Bit LSB sẽ được truyền đi trước. Các khối truyền và nhận dữ liệu độc lập với nhau sẽ dùng chung tần số
  • 36. 36 tương ứng với tốc độ baud cho quá trình dịch dữ liệu (tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữ liệu tùy theo giá trị của bit BRGH) và để đảm bảo tính hiệu quả của dữ liệu thì hai khối truyền và nhận phải dùng chung một định dạng dữ liệu. Thành phần quan trọng nhất của khối truyền dữ liệu là thanh ghi dịch dữ liệu TSR (Transmit Shift Register). Thanh ghi TSR sẽ lấy dữ liệu từ thanh ghi đệm dùng cho quá trình truyền dữ liệu TXREG. Dữ liệu cần truyền phải được đưa trước vào thanh ghi TXREG. Ngay sau khi bit Stop của dữ liệu cần truyền trước đó được truyền xong, dữ liệu từ thanh ghi TXREG sẽ được đưa vào thanh ghi TSR, thanh ghi TXREG bị rỗng, ngắt xảy ra và cờ hiệu TXIF (PIR1<4>) ở mức cao. Ngắt này được điều khiển bởi bit TXIE (PIE1<4>). Cờ hiệu TXIF vẫn được gán bất chấp trạng thái của bit TXIE hay tác động của chương trình (không thể xóa TXIF bằng chương trình) mà chỉ reset về 0 khi có dữ liệu mới được đưa vào thanh ghi TXREG. Trong khi cờ hiệu TXIF đóng vai trò chỉ thị trạng thái thanh ghi TXREG thì cờ hiệu TRMT (TXSTA<1>) có nhiệm vụ thể hiện trạng thái thanh ghi TSR. Khi thanh ghi TSR rỗng, bit TRMT sẽ ở mức cao. Bit này chỉ đọc và không có ngắt nào được gắn với trạng thái của nó. Một điểm cần chú ý nữa là thanh ghi TSR không có trong bộ nhớ dữ liệu và chỉ được điều khiển bởi CPU. Khối truyền dữ liệu được cho phép hoạt động khi bit TXEN (TXSTA<5>) ở mức cao. Quá trình truyền dữ liệu chỉ thực sự bắt đầu khi đã có dữ liệu trong thanh ghi TXREG và xung truyền baud được tạo ra. Khi khối truyền dữ liệu được khởi động lần đầu tiên, thanh ghi TSR rỗng. Tại thời điểm đó, dữ liệu đưa vào thanh ghi TXREG ngay lập tức được chuyển đến thanh ghi TSR và thanh ghi TXREG bị rỗng. Lúc này ta có thể hình thành một chuỗi dữ liệu liên tục cho quá trình truyền dữ liệu. Trong quá trình truyền dữ liệu nếu bit TXEN bị reset về 0, quá trình truyền kết thúc.
  • 37. 37 Trong trường hợp dữ liệu cần truyền là 9 bit, bit TX9 (TXSTA<6>) được ở mức cao và bit dữ liệu thứ 9 sẽ được lưu trong bit TX9D (TXSTA<0>). Nên ghi bit dữ liệu thứ 9 vào trước, vì khi ghi 8 bit dữ liệu vào thanh ghi TXREG trước có thể xảy ra trường hợp nội dung thanh ghi TXREG sẽ được load vào thanh ghi TSG trước, như vậy dữ liệu truyền đi sẽ bị sai khác so với yêu cầu. Tóm lại, để truyền dữ liệu theo giao diện USART bất đồng bộ, ta cần thực hiện tuần tự các bước sau: 1. Tạo xung truyền baud bằng cách đưa các giá trị cần thiết vào thanh ghi RSBRG và bit điều khiển mức tốc độ baud BRGH; 2. Cho phép cổng giao diện nối tiếp nối tiếp bất đồng bộ bằng cách clear bit SYNC và bit PSEN ở mức cao; 3. Bit TXIE sẽ ở mức cao nếu cần sử dụng ngắt truyền; 4. Bit TX9 ở mức cao nếu định dạng dữ liệu cần truyền là 9 bit; 5. Bit TXEN ở mức cao để cho phép truyền dữ liệu (lúc này bit TXIF ở mức cao); 6. Nếu định dạng dữ liệu là 9 bit, đưa bit dữ liệu thứ 9 vào bit TX9D; 7. Đưa 8 bit dữ liệu cần truyền vào thanh ghi TXREG; 8. Nếu sử dụng ngắt truyền, cần kiểm tra lại các bit GIE và PEIE (thanh ghi INTCON). 2.3.4.2. Nhận dữ liệu qua chuẩn giao tiếp USART bất đồng bộ Dữ liệu được đưa vào từ chân RC7/RX/DT sẽ kích hoạt khối phục hồi dữ liệu. Khối phục hồi dữ liệu thực chất là một bộ dịch dữ liệu tốc độ cao và có tần số hoạt động gấp 16 lần hoặc 64 lần tần số baud. Trong khi đó tốc độ dịch của thanh ghi nhận dữ liệu sẽ bằng với tần số baud hoặc tần số của oscillator (hình 2.6).
  • 38. 38 Hình 2.6: Sơ đồ khối nhận dữ liệu USART. Bit điều khiển cho phép khối nhận dữ liệu là bit RCEN (RCSTA<4>). Thành phần quan trọng nhất của khối nhận dữ liệu là thanh ghi nhận dữ liệu RSR (Receive Shift Register). Sau khi nhận diện bit Stop của dữ liệu truyền tới, dữ liệu nhận được trong thanh ghi RSR sẽ được đưa vào thanh ghi RCGER, sau đó cờ hiệu RCIF (PIR1<5>) sẽ ở mức cao và ngắt nhận được kích hoạt. Ngắt này được điều khiển bởi bit RCIE (PIE1<5>). Bit cờ hiệu RCIF là bit chỉ đọc và không thể được tác động bởi chương trình. RCIF chỉ reset về 0 khi dữ liệu nhận vào ở thanh ghi RCREG đã được đọc và khi đó thanh ghi RCREG rỗng. Nếu sau khi nhận được bit Stop của byte dữ liệu thứ 3 mà thanh ghi RCREG vẫn còn đầy, cờ hiệu báo tràn dữ liệu (Overrun Error bit) OERR (RCSTA<1>) sẽ ở mức cao, dữ liệu trong thanh ghi RSR sẽ bị mất đi và quá trình đưa dữ liệu từ thanh ghi RSR vào thanh ghi RCREG sẽ bị gián đoạn. Trong trường hợp này cần lấy hết dữ liệu ở thanh ghi RSREG vào trước khi tiếp tục nhận byte dữ liệu tiếp theo. Bit OERR phải được xóa bằng phần mềm và thực hiện bằng cách clear bit RCEN rồi đưa lên mức cao. Bit FERR (RCSTA<2>) sẽ được đưa lên mức cao khi phát hiện bit Stop của dữ liệu được nhận vào. Bit dữ liệu thứ 9 sẽ được đưa vào bit RX9D (RCSTA<0>). Khi đọc dữ liệu từ thanh ghi RCREG, hai bit FERR và RX9D sẽ nhận các giá trị mới. Do đó cần đọc dữ liệu từ thanh ghi RCSTA trước khi đọc dữ liệu từ thanh ghi RCREG để tránh bị mất dữ liệu. Tóm lại, khi sử dụng giao diện nhận dữ liệu USART bất đồng bộ cần tiến hành tuần tự các bước sau:
  • 39. 39 1. Thiết lập tốc độ baud (đưa giá trị thích hợp vào thanh ghi SPBRG và bit BRGH; 2. Cho phép cổng giao tiếp USART bất đồng bộ (bit SYNC ở mức thấp và bit SPEN ở mức cao); 3. Nếu cần sử dụng ngắt nhận dữ liệu, bit RCIE sẽ ở mức cao; 4. Nếu dữ liệu truyền nhận có định dạng là 9 bit, bit RX9 sẽ ở mức cao; 5. Cho phép nhận dữ liệu bằng cách đưa bit CREN lên mức cao; 6. Sau khi dữ liệu được nhận, bit RCIF sẽ ở mức cao và ngắt được kích hoạt (nếu bit RCIE ở mức cao); 7. Đọc giá trị thanh ghi RCSTA để đọc bit dữ liệu thứ 9 và kiểm tra xem quá trình; 2. Nhận dữ liệu có bị lỗi không; 1. Đọc 8 bit dữ liệu từ thanh ghi RCREG; 2. Nếu quá trình truyền nhận có lỗi xảy ra, xóa lỗi bằng cách xóa bit CREN; 3. Nếu sử dụng ngắt nhận cần đưa bit GIE và PEIE lên mức cao (thanh ghi INTCON).
  • 40. 40 CHƯƠNG 3: CÁC LINH KIỆN ĐIỆN TỬ LIÊN QUAN 3.1. HIỂN THỊ LCD Ngày nay, thiết bị hiển thị LCD - Liquid Crystal Display được sử dụng trong rất nhiều các ứng dụng của vi điều khiển. LCD có rất nhiều ưu điểm so với các dạng hiển thị khác: Khả năng hiển thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa), dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tốn rất ít tài nguyên hệ thống [8, tr.1-5]. 3.1.1. Các chân cơ bản của LCD Hình 3.1: LCD 20×4. Hình 3.2: Sơ đồ chân LCD 20×4. Bảng 3.1: Sơ đồ chân LCD. CHÂN KÝ HIỆU I/O MÔ TẢ 1 VSS - Nối đất 2 VCC - Nguồn 5V 3 VEE - Độ tương phản 4 RS I RS = 0: ghi dữ dữ liệu, RS = 1: ghi lệnh 5 R/W I R/W = 1: đọc dữ liệu, R/W = 0: ghi dữ liệu 6 E I/O Cho phép 7 DB0 I/O Các bit dữ liệu
  • 41. 41 8 DB1 I/O Các bit dữ liệu 9 DB2 I/O Các bit dữ liệu 10 DB3 I/O Các bit dữ liệu 11 DB4 I/O Các bit dữ liệu 12 DB5 I/O Các bit dữ liệu 13 DB6 I/O Các bit dữ liệu 14 DB7 I/O Các bit dữ liệu 15 A - Cực dương đèn LED 16 K - Cực âm đèn LED  Ghi chú: I : chức năng Input. O : chức năng Output. - : không có chức năng I/O. 3.1.2. Nguyên lí hoạt động Bảng 3.2: Các lệnh LCD. STT MÃ HEX LỆNH ĐẾN THANH GHI LCD 1 1 Xóa màn hình hiển thị 2 2 Trở về đầu dòng 3 3 Dịch con trỏ sang trái 1 ô 4 4 Dịch con trỏ sang phải 1 ô 5 5 Dịch hiển thị sang phải 6 7 Dịch hiển thị sang trái 7 8 Tắt con trỏ, tắt hiển thị 8 A Tắt hiển thị, bật hiển thị 9 C Bật hiển thị, tắt con trỏ 10 E Bật hiển thị, nhấp nháy con trỏ 11 F Tắt hiển thị, nhấp nháy con trỏ 12 10 Dịch vị trí con trỏ sang trái 13 14 Dịch vị trí con trỏ sang phải
  • 42. 42 14 18 Dịch toàn bộ hiển thị sang trái 15 1C Dịch toàn bộ hiển thị sang phải 16 80 Đưa con trỏ về đầu dòng thứ nhất 17 C0 Đưa con trỏ về đầu dòng thứ hai 18 94 Đưa con trỏ về đầu dòng thứ ba 19 D4 Đưa con trỏ về đầu dòng thứ tư 20 38 Xác lập chức năng cho LCD Các chân 1,2,3 ứng với các chân VSS , VDD, VEE trong đó VSS chân nối đất ,VEE chân chọn độ tương phản, chân này được điều chỉnh qua một biến trở. Chân VDD nối dương nguồn. Chân chọn thanh ghi RS - Register Select: Có hai thanh ghi trong LCD, chân RS - Register Select được dùng để chọn thanh ghi, như sau: - RS = 0: LCD ở chế độ ghi lệnh như xóa màn hình, bật tắt con trỏ. - RS = 1: LCD ở chế độ ghi dữ liệu như hiển thị ký tự, chữ số lên màn hình. Chân đọc/ghi (R/W): Đầu vào đọc/ghi cho phép người dùng ghi thông tin lên LCD khi R/W = 0 hoặc đọc thông tin LCD khi R/W = 1. Chân cho phép E (Enable): Chân cho phép E được sử dụng bởi LCD để chốt dữ liệu của nó. Khi dữ liệu được đến chân dữ liệu thì cần có 1 xung từ mức cao xuống mức thấp ở chân này để LCD chốt dữ liệu, xung này phải có độ rộng tối thiểu 450 ns. Chân D0 – D7: Đây là 8 chân dữ liệu 8 bit, được dùng để gửi thông tin lên LCD hoặc đọc nội dung của các thanh ghi trong LCD. Để hiển thị các chữ cái và các con số chúng ta gửi các mã ASCII của các chữ cái và các con số tương ứng đến các chân này khi bật RS = 1. 3.1.3. Khởi tạo LCD Trước khi bắt đầu quá trình hiển thị một chuỗi kí tự nào đó, ta cần quá trình khởi tạo để cài đặt các chế độ này. Vi điều khiển thực hiện quá trình khởi tạo này bằng cách đưa đến LCD một chuỗi các lệnh.
  • 43. 43 Căn cứ vào chức năng của các chân vi điều khiển được giới thiệu ở trên, ta đưa ra qui trình của việc gửi một lệnh từ vi điều khiển đến LCD: 1. Cho chân R/W = 0 để xác định LCD ở chế độ ghi dữ liệu (thông thường chân này được nối đất, nên mặc định chân này ởmức 0, ta không cần quan tâm đến nữa); 2. Cho chân RS = 0 để xác định đây là lệnh mà vi điều khiển gửi xuống LCD (phân biệt với RS = 1, gửi kí tự hiển thị); 3. Gửi mã lệnh xuống LCD theo các đường dữ liệu (RD0-RD7 nếu dùng chế độ 8 bit, R4 – R7 nếu dùng chế độ 4 bit); 4. Đưa chân E (chân cho phép – Enable) lên mức cao, mức 1; 5. Tạo trễ vài chu kì lệnh; 6. Đưa chân E xuống mức thấp, mức 0. 3.1.4. Ghi kí tự lên LCD Sau khi thực hiện quá trình khởi tạo để gửi các lệnh cài đặt chế độ làm việc của LCD, kí tự sẽ được hiển thị lên LCD bất kì khi nào vi điều khiển muốn gửi. 1. Quá trình gửi kí tự gồm các bước sau: 2. Cho chân R/W = 0 để xác định LCD ở chế độ ghi dữ liệu (thông thường chân này được nối đất, nên mặc định chân này ở mức 0, ta không cần quan tâm đến nữa); 3. Cho chân RS = 1 đểxác định đây là kí tự mà vi điều khiển gửi xuống LCD (phân biệt với RS = 0 ở chế độ gửi lệnh); 4. Gửi mã ASCII của kí tự cần hiển thị xuống LCD theo các đường dữ liệu (RD0 – RD7 nếu dùng chế độ 8 bit, R4 – R7 nếu dùng chế độ 4 bit); 5. Đưa chân E (chân cho phép – Enable) lên mức cao, mức 1; 6. Tạo trễ vài chu kì lệnh; 7. Đưa chân E xuống mức thấp, mức 0.
  • 44. 44 3.2. MA TRẬN BÀN PHÍM Hình 3.3: Ma trận bàn phím 4×4. Hình 3.4: Sơ đồ ma trận bàn phím 4×4. Ma trận bàn phím (hình 3.3) là thành phần quan trọng phục vụ quá trình giao tiếp giữa người sử dụng và vi điều khiển. Một ma trận m hàng và n cột có thể ghép với nhau tạo thành tối đa m×n phím chức năng. Như hình 3.2 và hình 3.3 là ma trận bàn phím có 4 hàng và 4 cột, như vậy, sẽ có tối đa 16 nút nhấn và được nối với 8 chân của vi điều khiển. Để đọc giá trị của phím ta sử dụng thuật toán “quét phím” (hình 3.4). Thuật toán “quét phím” được sử dụng là lần lượt tìm hàng và tìm cột (hoặc ngược lại). Khi tìm hàng, các hàng sẽ được đặt làm đầu vào và được đặt ở cùng mức logic, các cột được đặt làm đầu ra. Sau đó, lần lượt từng hàng một sẽ được đưa xuống mức logic khác các hàng còn lại. Ban đầu, chưa có phím nhấn, tín hiệu thu được ở các cột là như nhau. Khi có phím được nhấn, tín hiệu thu được Hang 1 Hang 2 Hang 3 Hang 4 Cot1 Cot2 Cot3 Cot4 1 4 7 2 5 8 0 3 6 9 A B C D * #
  • 45. 45 ở cột tương ứng sẽ có cùng mức logic với hàng được quét. Bằng cách này tay sẽ xác định được vị trí hàng và cột hay xác định được vị trí phím được nhấn. 3.3. IC MAX – 232 3.3.1. Chuẩn RS232 RS232 là chuẩn giao tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ liệu là 12,5 m đến 25,4 m với tốc độ từ 20 kbit/s đến 115 kbit/s [7, tr.1-5]. Bảng 3.3: Các đặc điểm chuẩn RS232. STT Đặc điểm Nội dung 1 Mức điện áp đường truyền Mức logic 0 : +3V  +12V Mức logic 1 : -12V  -3V Trạng thái chuyển tuyến: -3V  3V 2 Tốc độ truyền nhận dữ liệu cực đại 115 kbit/s 3 Điện dung ngõ vào < 2500 pF 4 Trở kháng tải 3000 Ω  7000 Ω 5 Độ dài của cáp nối < 15 m 6 Các giá trị tốc độ truyền dữ liệu chuẩn (bit/s) 50, 75, 110, 750, 300, 600, 1200, 2400, 4800, 9600, 19200, 28800, 38400…. 56600, 15200 Ngoài các đặc điểm trên, chuẩn giao tiếp RS232 có Parity bit hay bit kiểm tra lỗi trên đường truyền. Một bit chẵn lẻ được bổ sung vào dữ liệu được truyền để cho thấy số lượng các bit “1” được gửi trong một khung truyền là chẵn hay lẻ. Kỹ thuật mã hóa lỗi này không được sử dụng trong trường hợp có khả năng một vài bit bị mắc lỗi. 3.3.2. IC Max – 232 IC Max – 232 (hình 3.5, hình 3.6) của hãng MAXIM là một vi mạch chuyên dùng trong giao diện nối tiếp với máy tính thông qua chuẩn giao tiếp RS232. Chúng
  • 46. 46 có nhiệm vụ bộ đệm trung gian chuyển đổi mức điện áp chuẩn TTL sang chuẩn RS – 232 và ngược lại. Hình 3.5: IC Max – 232. Hình 3.6: Sơ đồ chân Max – 232. Max – 232 là IC chạy ổn định và được sử dụng phổ biến trong các mạch giao tiếp chuẩn RS232, tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín hiệu đều được bảo vệ chống lại sự phóng tĩnh điện. Ngoài ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ. 3.4. IC LM – 324 Hình 3.7: IC LM – 324. Hình 3.8: Sơ đồ chân IC LM – 324. IC LM – 324 (hình 3.7, hình 3.8) vi mạch được tích hợp 4 mạch khuếch đại thuật toán giống nhau, hoạt động dộc lập. Đây là IC rất thông dụng trong các mạch khuếch đại thuật toán [9, tr.1-5]. Thông thường một bộ khuếch đại thuật toán (Op-Amp) thì cần phải có nguồn đôi (nguồn dương và nguồn âm). Chẳng hạn như Opamp 741. Tuy nhiên các Opamp trong LM324 được thiết kế đặc biệt để sử dụng với nguồn đơn. Tức
  • 47. 47 là chỉ cần Vcc và GND là đủ. Một điều đặc biệt nữa là nguồn cung cấp của LM324 có thể hoạt động độc lập với nguồn tín hiệu. Ví dụ nguồn cung cấp của LM324 là 5V nhưng nó có thể làm việc bình thường với nguồn tín hiệu ở ngõ vào V+ và V- là 15V. Bảng 3.4: Các điểm nổi bật IC LM – 324. STT Đặc điểm Giá trị 1 Điện áp cung cấp 5V  32V 2 Điện áp tối đa ngõ vào Nguồn đơn: 0V  32V Nguồn đôi: -15V  15V 3 Công suất 1 W 4 Điện áp ngõ ra 0V  VCC -1,5V 5 Tần số hoạt động 1 MHz 6 Độ lợi khuếch đại điện áp 100 dB 3.5. THẠCH ANH ĐIỆN TỬ Hình 3.9: Thạch anh. Hình 3.10: Mạch dao động thạch anh. Thạch anh điện tử là linh kiện làm bằng tinh thể thạch anh được mài nhẵn với độ chính xác cao. Do chịu hiệu ứng áp điện khi đặt hiệu điện thế có tần số xác định vào thạch anh điện tử nên linh kiện này tương đương với mạch dao động LC cộng hưởng khi dòng điện xoay chiều có tần số thích hợp đặt vào tinh thể thạch anh. Hoạt động ở tần số cộng hưởng ổn định, tiêu hao điện áp thấp, mạch dao động sử dụng thạch anh được sử dụng nhiều trong các đồng hồ điện tử, thiết bị tin học hay các nhạc cụ điện tử đòi hỏi cần xung chuẩn và độ chính xác cao.
  • 48. 48
  • 49. 49 CHƯƠNG 4: ỨNG DỤNG VI ĐIỀU KHIỂN PIC 16F877A TRONG THÍ NGHIỆM VẬT LÍ PHỔ THÔNG 4.1. TỔNG QUAN Với lý thuyết điện – điện tử và vi điều khiển, chúng tôi tập trung tìm hiểu và chế tạo ra máy đo và xử lý thời gian trên cơ sở đồng hồ đếm và hiển thị thời gian hiện số MC – 964 hiện đang sử dụng ở các trường phổ thông. Để tạo ra được dụng cụ này, đòi hỏi phải xây dựng từng bước các thành phần của điện tử khác nhau và kiểm tra hoạt động của chúng trên testboard, cũng như xây dựng chương trình cho vi điều khiển PIC 16F877A. Đây là những bước quan trọng nhất và quyết định đến độ ổn định, tính khả thi của bộ thí nghiệm. Hình 4.1: Kiểm tra các bộ phận trên testboard và Proteus. Từ việc thử nghiệm trên testboard và mô phỏng trên Proteus, tôi đi đến thiết kế sơ đồ mạch trên Orcard và xây dựng chương trình giao tiếp cho PIC 16F877A với máy tính. Mạch in sau khi được gia công, các linh kiện sẽ được hàn và kiểm tra hoạt động lần lượt từng bộ phận như trên hình 4.1. Quá trình thực hiện có thể tóm tắt theo sơ đồ sau:
  • 50. 50 Hình 4.2: Quá trình thực hiện. 4.2. DỤNG CỤ ĐO VÀ XỬ LÍ THỜI GIAN SỬ DỤNG PIC 16F877A 4.2.1. Sơ đồ khối Hình 4.3: Sơ đồ khối dụng cụ đo và xử lý thời gian. Sơ đồ khối dụng cụ đo và xử lý thời gian được thể hiện trên hình 4.3. Dụng cụ bao gồm 6 khối chính, trong đó vi điều khiển PIC 16F877A là khối xử lý trung tâm, 5 khối còn lại đóng vai trò là các bộ phận ngoại vi truyền tín hiệu thông qua vi điều khiển PIC 16F877A. 4.3. KHỐI XỬ LÍ TRUNG TÂM PIC 16F877A Đây là khối đóng vai trò quyết định cho máy đo và xử lý thời gian. Khối xử lý trung tâm hay PIC 16F877A có nhiệm vụ nhận thông tin từ các thiết bị ngoại vi và điều khiển chúng. Hoạt động PIC 16F877A chịu sự điều khiển của người lập trình qua chương trình được viết sẵn và nạp cho PIC 16F877A 1. Nghiên cứu lý thuyết 2. Viết chương trình và giao diện giao tiếp cho PIC 3. Kiểm tra hoạt động trên EasyPIC, testboard và 4. Vẽ sơ đồ mạch trên Orcard 5. Làm mạch in hàn và kiểm tra hoạt động từng 6. Hoàn thành dụng cụ Bàn phím 4×4 Vi điều khiển PIC 16F877A Giao tiếp máy tính Hiển thị LCD 20x4 Bộ định thời Cảm biến & nam châm điện
  • 51. 51 (Code_for_PIC_16f877a.ccs). Lưu đồ thuật toán PIC 16F877A được thể hiện trên hình 4.4. Trong chương trình chính code_for_PIC_16f877a.ccs, PIC 16F877A khởi tạo chế độ I/O cho các chân, thiết lập hiển thị LCD và giao tiếp RS232 qua cổng COM cho vi điều khiển. Sau đó, PIC 16F877A sẽ hiển thị các bài thí nghiệm trong chương trình vật lý trung học phổ thông. Tùy vào mục đích sử dụng, người dùng sẽ lựa chọn bài thí nghiệm và ứng với mỗi bài thí nghiệm sẽ có những chương trình con tương ứng. Các chương trình con này được thể hiện trong các lưu đồ thuật toán hình 4.5 và 4.6.
  • 52. 52 Chương trình con: CHƯƠNG TRÌNH CHÍNH Thiết lập LCD và giao tiếp RS232 Thiết lập chức năng I/O các Port RA0 = 1 Hiển thị tiêu đề trên LCD Nhấn phím? Không Chọn bài thí nghiệm 1: Con lắc đơn 2: Rơi tự do 3: Hệ số ma sát 4: Chuyển động thẳng đều Có Subprocess 1: con_lac_don Subprocess 2: roi_tu_do Subprocess 3: He_so_ma_sat Subprocess 4: chuyen_dong_tha ng_deu Nhấm phím? #1,2,3,4 1,2,3,4 Hình 4.4: Lưu đồ chương trình chính. Subprocess 1: con_lac_don Nhập chiều dài dây Nhập chu kì đo Vật chắn cổng lần 1? Bật bộ định thời Không Subprocess 2: roi_tu_do Nhập quãng đường rơi Ngắt nam châm? Bật bộ định thời Không
  • 53. 53 a) b) Hình 4.5: Lưu đồ chương trình con: (a) con lắc đơn; (b) rơi tự do. Subprocess 3: he_so_ma_sat Nhâp quãng đường trượt Nhập góc nghiêng Ngắt nam châm? Bật bộ định thời Không Subprocess 4: chuyen_dong_thang_deu Ngắt nam châm? Bật bộ định thời Vật chắn 2 cổng quang điện Tắt bộ định thời Xuất kết quả chắn 2 cổng quang điện Có Đếm Có Không Không Không bằng
  • 54. 54 a) b) Hình 4.6: Lưu đồ chương trình con: (a) Hệ số ma sát; (b) Chuyển động thẳng đều. Tùy vào độ phức tạp của các bài thí nghiệm trong chương trình vật lí trung học phổ thông mà lưu đồ thể hiện trong hình 4.5 và hình 4.6 có sự phức tạp khác nhau. Tuy nhiên, tất cả các lưu đồ đều có chung đặc điểm là yêu cầu dữ liệu đầu vào, tính toán thời gian giữa các xung tín hiệu và xuất dữ liệu đầu ra. Ví
  • 55. 55 dụ: Trong lưu đồ con_lac_don (hình 4.5a), vi điều khiển sẽ yêu cầu người sử dụng nhập dữ liệu qua ma trận bàn phím hay máy tính cá nhân, bằng cách sử dung bộ định thời PIC 16F877A sẽ xác định chính xác giá trị thời gian đo t, qua quá trình xữ lí PIC 16F877A sẽ xuất kết quả qua LCD và máy tính cá nhân thông qua chuẩn giao tiếp RS232. Khi hoạt động, do ảnh hưởng đều kiện bên ngoài, khi có tín hiệu từ cổng quang điện và ngắt nam châm đưa đến vi điều khiển, nhiễu tín hiệu sẽ xuất hiện, gây ảnh hưởng không nhỏ đến chế độ làm việc của máy đo. Hình 4.7: Code bẫy lỗi cho vi điều khiển PIC 16F877A Thông qua ngôn ngữ lập trình bậc cao CCS, hệ thống code bẫy lỗi sẽ được thiết kế cho vi điều khiển. Bằng cách xác định tín hiệu đếm và thời gian lấy tín hiệu, nhiễu tín hiệu sẽ được vi điều khiển loại bỏ, tạo độ tin cậy cao cho người dùng. 4.3.1. Bộ định thời Xung đếm được tạo ra nhờ thạch anh điện tử có tần số 20 MHz. Thạch anh tần số 20 MHz sẽ tạo cho vi điều khiển chu kì lệnh có tần số 5 MHz (1 chu kì lệnh bằng 4 lần chu kì dao động). Sử dụng TIMER 1 ở chế độ định thời 16 bit, xung đếm 5 MHz được đưa đến bộ Prescaler (chia 8) cho ra xung có tần số 0.625 MHz. Hai thanh ghi TMR1H:TMR1L sẽ ghi nhận giá trị xung 0.625 MHz ngay sau cạnh xuống đầu tiên và giá trị TMR1H:TMR1L tiếp tục tăng sau mỗi cạnh lên của xung ngõ vào (hình 4.8).
  • 56. 56 : vị trí giá trị thanh ghi TMR1H:TMR1L tăng thêm 1 Hình 4.8: Cạnh tác động TMR1H:TMR1L. Thanh ghi TMR1H:TMR1L có độ dài 16 bit cho phép đếm tối đa đến giá trị 65535. Nếu vượt quá giá trị này, TMR1H:TMR1L sẽ được trả về 0. Bằng cách ghi nhận thời điểm xảy ra tràn số đếm thông qua ngắt tràn Timer1 và lưu tổng số lần tràn qua biến m ta xác định được thời gian t: 6 1 ( 65536 1 : 1 ) 0.625 10 t m TMR H TMR L s=× + × × (5.1) Hình 4.9: Bộ định thời cho PIC 16F877A. Như vậy, sử dụng thạch anh điện tử, chức năng TIMER 1 và ngắt báo tràn TIMER1 ta đã tạo ra được bộ định thời cho PIC 16F877A. 4.3.2. Giao tiếp máy tính Giao tiếp vi điều khiển với máy tính đóng vai trò quan trọng trong việc thực hiện tương tác giữa người dùng và PIC 16F877A. Công việc này thực hiện nhờ sự hỗ trợ IC Max – 232 thông qua chuẩn RS232 và được thể hiện trên sơ đồ nguyên lí hình 4.10. Thạch anh 20M PIC 16F877A 5MHz TMR1H:TMR1L PS1:PS0 Chia 8 m×65536+TMR1H:TMR1L m++ 0,625MHz
  • 57. 57 Giao tiếp giữa RS232 và PIC 16F877A phải thông qua chương trình nhằm nhận biết được dữ liệu truyền lên và nhận xuống như thế nào. Để thực hiện công việc này, người sử dụng có thể sử dụng các phần mềm như Hyper Terminal, Flash Magic,.... Hình 4.10: Giao tiếp RS232 qua IC Max – 232. Đây là những chương trình có sẵn không thể tùy chỉnh nên dùng giao tiếp tạm thời giữa vi điều khiển và người sử dụng. Phục vụ cho quá trình đo đạc và xử lý số liệu trực tiếp, tiết kiệm thời gian cũng như công sức cho các bài thí nghiệm vật lý phổ thông minh họa tại lớp, người dùng cần tạo ra một giao diện Hình 4.11: Giao diện giao tiếp với máy tính cho PIC 16F877A. 4 1 3 2 Hình 4.12: Thí nghiệm con lắc đơn dùng giao tiếp máy tính.
  • 58. 58 cho riêng mình. Visualbasic, C++ hay Matlab,... là những công cụ hỗ trợ hữu hiệu. Trên nền tảng ngôn ngữ lập trình, người dùng có thể tạo ra giao diện giao tiếp giữa vi điều khiển và máy tính sao cho tối ưu và đạt hiệu quả nhất. Hình 4.11 là giao diện giao tiếp giữa vi điều khiển và máy tính được viết trên nền Visual basic. Ngoài chức năng nhập các thông tin bên ngoài (1), (2) thay thế cho ma trận bàn phím, kết quả thu được sau sau khi tính toán và đo đạc (3) có thể được lưu dưới dạng file word (4). Giao tiếp giữa vi điều khiển và máy tính qua chuẩn RS232 không đòi hỏi sự phức tạp hoá công việc. Ngược lại, chính nhờ sự hỗ trợ của giao tiếp mà người dùng có thể giải quyết được nhiều việc hơn và là công cụ trực quan, sinh động cho các bài thí nghiệm vật lý minh họa ngay tại lớp (hình 4.12). 4.3.3. Cổng quang điện và ngắt nam châm Cổng quang điện và ngắt nam châm là những bộ phận không thể thiếu, chúng đảm nhiệm chức năng ghi nhận tín hiệu: lúc thả vật, khi vật chắn cổng, nhờ đó PIC 16F877A xác định chính xác thời điểm bắt đầu và dừng hoạt động đếm của bộ định thời. 4.3.3.1. Cổng quang điện Cổng quang quang điện hay bộ phận cảm biến cấu tạo gồm phần phát tia hồng ngoại gồm một LED phát được nối với nguồn 5V qua điện trở hạn dòng 100 Ω và phần thu là một phototransistor nhận tín hiệu hồng ngoại từ LED phát qua cực baser của photortransistor. Tín hiệu thu được từ cực baser sẽ được khuyếch đại và đưa đến đầu vào không đảo của Opamp IC LM 324. Opamp này đóng vai trò như mạch khuếch đại thuật toán dùng khuếch đại tín hiệu với tín hiệu đầu vào và tín hiệu đầu ra cùng pha (khuếch đại không đảo).
  • 59. 59 Hình 4.13: Cổng quang điện. Độ khuếch đại đảo được xác định qua công thức: 3 ào 4 1ra v R V V R   = +    (5.2)  Với: Vvào : điện áp tín hiệu vào so với đất. Vra : điện áp tín hiệu sau khi khuếch đại so với đất. Tín hiệu sao khi khuếch đại được đưa đến Opamp thứ hai hoạt động ở chế độ so sánh không đảo, so sánh điện áp tín hiệu sau khi khuếch đại với điện áp chuẩn: Nếu điện áp cao tín hiệu cao hơn điện áp chuẩn tín hiệu thu được ở mức cao; ngược lại, nếu điện áp cao tín hiệu thấp hơn điện áp chuẩn tín hiệu thu được ở mức thấp. Tín hiệu thu được được sẽ đưa đến vi điều khiển PIC 16F877A xử lí (hình 4.13). 4.3.3.2. Ngắt nam châm Ban đầu, khi nút BUTTON chưa ở trạng thái nhấn. Chưa có tín hiệu gửi đến chân RB0. Đây là vị trí ngắt ngoài của vi điều khiển, hoạt động khi có sườn lên hay sườn xuống của tín hiệu. Ngắt ngoài chưa hoạt động, chân RA1 ở mức cao, transistor NPN ở trạng thái dẫn, nam chân điện hút trọng vật (hình 4.14). C24 104 R18 15M 5VDC C25 104 C26 104 C27 104 15VDC R3 1M 5VDC JP1 CIRDIN_4-P 1 2 3 4 R4 10K R11 100 - + U6A LM324 3 2 1 411 - + U5A LM324 3 2 1 411 RA4 R7 10K 5VDC 15VDC R8 3.3K C28 104 C12 102
  • 60. 60 Hoạt động ngắt nam châm xảy ra khi nút BUTTON ở trạng thái nhấn. Tín hiệu gửi tới chân RB0, ngay vị trí cạnh lên của tín hiệu đến PIC 16F877A kích ngắt ngoài. Hình 4.14: Ngắt nam châm. Ngắt ngoài cho phép chân RA1 ở mức thấp, transistor NPN ngừng dẫn, nam châm điện ngừng hút, trọng vật được thả. Do nam châm hút trọng vật cần dòng lớn nên ở đây transistor NPN C5200 công suất lớn được sử dụng. 4.3.4. Ma trận bàn phím và hiển thị LCD Hình 4.15: Ma trận bàn phím 4×4. Hình 4.16: Hiển thị LCD. Ma trận bàn phím và hiển thị LCD là khối nhập (ma trận bàn phím) và xuất dữ liệu (hiển thị LCD). RA1 C33 104 SW2 BUTTON 5VDC R15 10K R17 10K RB0 C30 104 Q1 NPN C5200 JP3 CIRDIN_4-P 1 2 3 4 15VDC R21 1K
  • 61. 61 Ma trận bàn phím được nối với PIC 16F877A qua 7 chân Port B (từ RB1 đến RB7) và 1 chân ở PortA (RA0). Dùng thuật toán quét hàng ta sẽ tìm được vị trí các phím trên tương ứng. Ma trận bàn phím khi chưa kết nối với với PIC 16F877A hay khi lắp vào mạch in nhưng các mối tiếp chưa tốt sẽ gây ra nhiễu trên thiết bị, ảnh hưởng trực tiếp đến kết quả thu được. Vì vậy, cần chú ý đến hoạt động của ma trận bàn phím để đảm bảo tính ổn định của thiết bị. Khối hiển thị là LCD 20x4 được nối với PIC 16F877A qua Port D và 3 chân Port C (RC3, RC4 và RC5) hình 4.16. Trong quá trình hiển thị trên LCD 20×4 cần chú ý chân VEE nhằm điều chỉnh tương phản của LCD: Nếu VEE = 5V sẽ cho độ tương phản kém nhất, VEE = 0V độ tương phản thu được là lớn nhất. 4.4. ĐÁNH GIÁ SAI SỐ Trong quá trình xử lý tín hiệu có liên quan đến bộ định thời, vi điều khiển hoạt động sẽ mắc sai số. Các sai số này bao gồm sai số do bộ nhớ dữ liệu và sai số hệ thống. 4.4.1. Sai số do bộ nhớ dữ liệu Exponent Sign Mantissa eeee eeee s mmm mmmm mmmm mmmm mmmm mmmm 8 bits 1 bit 23 bit Hình 4.17: Cấu trúc dữ liệu kiểu số thực 32 bits. Trong quá trình xử lí, vi điều khiển lưu biến thời gian t dưới dạng số thực, đây là kiểu số thực có độ dài dữ liệu 32 bits. Cấu trúc kiểu số thực (hình 4.17) gồm có 8 bits cao lưu giá trị số mũ, 1 bit lưu dấu của dữ liệu và 23 bits thấp lưu phần định trị. Với số mũ là 20 = 1, giá trị nhỏ nhất của phần định trị là 7 23 1 10 s 2 − ≈ . Như vậy, với giá trị thời gian đo đạc là 1s thì sai số do bộ nhớ dữ liệu là 7 10− s. Trong các bài thí nghiệm cơ học thuộc chương trình vật lí trung học
  • 62. 62 phổ thông thời gian đo không vượt quá 100 s, sai số do bộ nhớ dữ liệu có giá trị là 6 10− s. 4.4.2. Sai số hệ thống a. Sai số do code lập trình Hình 4.18: Sai số do code lập trình. Khi có tín hiệu đưa đến vi điều khiển, PIC 16F877A sẽ kích ngắt để lấy giá trị biến m là biến xảy ra số lần tràn và thanh ghi TMR1H:TMR1L xác định giá trị đếm hiện tại của Timer1 (hình 4.18). Hai giá trị này sẽ phục vụ cho công việc xác định thời gian cần đo đạc. Như vậy sai số sẽ xuất hiện trong khoảng thời gian khi kích ngắt và trong thời gian PIC 16F877A lấy giá trị hai biến m và TMR1H:TMR1L. b. Sai số do tín hiệu hồng ngoại là ngắt nam châm điện Khi có tín hiệu từ cảm biến hồng ngoại hay ngắt nam châm điện, bộ định thời sẽ bắt đầu hoạt động bằng cách tăng giá trị TMR1H:TMR1L sau mỗi lần có cạnh tác động xảy ra. Sai số ở đây mắc phải do tín hiệu đưa đến và cạnh tác động cho TMR1H:TMR1L chưa đồng bộ: tín hiệu đến không đúng thời điểm mà xung đếm ở cạnh lên (hình 4.19). Tín hiệu quang điện RA4, RC2 Kích ngắt m, CCP1 Thoát ngắt ∆𝒕 𝟏 Hình 4.20: Kiểm tra sai số. 1 0 0 0 1 ∆t2 0 0 Hình 4.19: Đánh giá sai số lý thuyết.
  • 63. 63 Bảng 4.1: Đánh giá sai số hệ thống máy đo và xử lí thời gian dùng PIC 16F877A. STT Tần số Sai số 1 1KHz 6,4.10 -6 s 2 2KHz 6,9.10 -6 s 3 4KHz 6,8.10 -6 s 4 5KHz 6,4.10 -6 s 5 8KHz 6,6.10 -6 s 6 10KHz 6,5.10 -6 s 7 15KHz 6,8.10 -6 s 8 20KHz 6,8.10 -6 s 9 25KHz 6,4.10 -6 s 10 30KHz 6,1.10 -6 s ∆t����= 6,6.10 -6 s Sai số hệ thống ∆t gây cho vi điều khiển độ trễ làm việc và độ trễ này sẽ không thay đổi khi đo các giá trị thời gian khác nhau. Bằng cách sử dụng máy phát dao động cấp cho vi điều khiển PIC 16F877A, sai số hệ thống có thể được xác định vào khoảng 6,6 10-6 s (bảng 4.1). Trong các bài thí nghiệm vật lý phổ thông, sai số yêu cầu 10-3s. Như vậy, bộ định thời trên là chấp nhận được. 4.4.3. Sai số máy đo thời gian hiện số MC – 964
  • 64. 64 a) b) Hình 4.21: Kết quả đo của máy MC – 964 sau: (a) 1 chu kì; (b) 8 chu kì. So sánh kết quả với máy đo thời gian gian hiện số MC – 964, chúng tôi sử dụng tạo ra xung tần số 2 Hz từ máy phát dao động đưa vào máy MC – 964 ở chế độ đo chu kì (hình 4.21) ta được kết quả thể hiện ở bảng 4.2 và hình 4.22. Bảng 4.2: Kết quả đo tần số 2 Hz của MC – 964. Chu kì chuẩn T = 1s STT Số chu kì (n) t (s) T(s) ∆T(s) 1 1 0,99 0,990 0,010 2 8 7,98 0,998 0,002 3 16 15,97 0,998 0,002 4 24 23,96 0,998 0,002 5 32 31,95 0,998 0,002 Chu kì đo: T = 0,9964 ± 0,0036 s Sai số tỉ đối: ε = 0,36%
  • 65. 65 Hình 4.22: Đồ thị so sánh sai số tỉ đối giữa máy đo thời gian hiện số MC – 964 và máy đo và xử lí thời gian sử dụng PIC 16F877A. Máy đo thời gian hiện số MC – 964 mắc sai số lớn (1%) với số chu kì đo nhỏ (n < 8) và cho giá trị càng chính xác khi lấy số chu kì đo càng lớn. Như vậy, với các bài thí nghiệm như đo thời gian vật chắn cổng quang điện hay đo gia tốc rơi tự do, do thời gian lấy tính hiệu ngắn, chỉ trong một xung đến nên MC - 964 sẽ mắc sai số lớn, kết quả đo kém chính xác. Với dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A, sai số tỉ đối khi đo tần số 2 Hz là ε = 0,01%. So với máy đo thời gian hiện số MC – 964, dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A cho kết quả với độ chính xác cao.
  • 66. 66 CHƯƠNG 5: KẾT QUẢ NGHIÊN CỨU VÀ KẾT LUẬN Áp dụng thí nghiệm này để khảo sát: chu kì con lắc đơn, hệ số ma sát trượt trên mặt phẳng nghiêng giữa máng nghiêng bằng nhôm – vật thép, gia tốc rơi tự do và vận tốc tức thời, vận tốc trung bình chuyển động thẳng đều của bi thép. Đây là các thí nghiệm được tiến hành theo nội dung thí nghiệm thuộc chương trình vật lí trung học phổ thông. 5.1. XÁC ĐỊNH CHU KÌ CON LẮC ĐƠN 5.1.1. Mục đích - Khảo sát ảnh hưởng của biên độ, khối lượng của quả nặng và độ dài của dây treo đối với chu kì dao động của con lắc đơn. - Xác định gia tốc trọng trường g tại nơi làm thí nghiệm bằng con lắc. 5.1.2. Cơ sở lí thuyết Con lắc đơn gồm một vật nặng có kích thước nhỏ, khối lượng m, được treo ở đầu một sợi dây mềm không dãn có độ dài l và có khối lượng không đáng kể. Với các dao động nhỏ thì con lắc đơn dao động với chu kỳ: 2 . l T g π= (6.1) Tại các vị trí khác nhau trên Trái Đất, gia tốc trọng trường có giá trị khác nhau. Việc xác định gia tốc trọng trường tại nơi làm thí nghiệm có ý nghĩa quan trọng. Trong khoa học và đời sống có nhiều phương pháp khác nhau để xác định gia tốc trọng trường. Trong thí nghiệm này, ta xác định gia tốc trọng trường g bằng con lắc đơn theo công thức: 2 2 4 . l g T π = (6.1) 5.1.3. Dụng cụ thí nghiệm - Đế ba chân bằng sắt, có hệ vít chỉnh cân bằng. - Giá đỡ bằng nhôm, cao 75 cm, có thanh ngang treo con lắc. - Thước thẳng dài 700 mm gắn trên giá đỡ.
  • 67. 67 - Ròng rọc bằng nhựa, đường kính D = 5 cm, có khung đỡ trục quay. - Dây làm bằng sợi tổng hợp, mảnh, không dãn, dài 70 cm., quả nặng 50g. - Cổng quang điện hồng ngoại, dây nố, jack cắm. - Máy đo và xử lí thời gian sử dụng PIC 16F877A. 5.1.4. Lắp ráp thí nghiệm 1. Nối cổng quang điện hồng ngoại vào cổng A của máy đo, đưa nguồn điện từ bộ nguồn DC 19V vào máy đo, bật công tắc và chọn bài thí nghiệm con lắc đơn. 2. Treo trọng vật có m = 50 g vào đầu dưới sợi dây. Vặn các vít đế ba chân, đều chỉnh cho giá đỡ thẳng đứng. Quay ròng rọc và đều chỉnh chiều dài dây có độ dài khoảng 400 mm đến 500 mm, dịch chuyển cổng hồng ngoại sao cho cửa sổ của nó nằm trên mặt phẳng ngang với vị trí tâm trong vật và cách tâm trọng vật một khoảng 3 cm. 5.1.5. Tiến hành thí nghiệm 1. Đo chiều dày dây treo, nhập giá trị l và số chu kì cần đo vào máy qua ma trận bàn phím hay máy tính cá nhân. 2. Cho con lắc dao động với góc lệnh ban đầu α0 cỡ 50, ghi nhận giá trị T và g nhận được. 3. Thay đổi chiều dài dây treo, lặp lại phép đo và hoàn thành bảng số liệu 5.1. Bảng 5.1: Chu kì con lắc đơn. l = ... ± ... mm, nT=... chu kì Lần t (s) T (s) g (m/s2) ∆g (m/s2) 1 Hình 5.1: Đo chu kì con lắc đơn.
  • 68. 68 2 3 4 Gia tốc trọng trường: g = ... ± ... m/s2 5.1.6. Kết quả thí nghiệm đo bằng máy đo và xử lí thời gian sử dụng PIC16F77A Bảng 5.2: Chu kì con lắc đơn. l = 410 ± 1 mm, nT=5 chu kì Lần t (s) T (s) g (m/s2) ∆g (m/s2) 1 6,450 1,290 9,727 0,024 2 6,440 1,288 9,757 0,006 3 6,440 1,288 9,757 0,006 4 6,438 1,288 9,763 0,012 Gia tốc trọng trường: g = 9,751 ± 0,010 m/s2 5.2. XÁC ĐỊNH GIA TỐC RƠI TỰ DO 5.2.1. Mục đích Đo được thời gian t của một vật trên những quãng đường đi được s khác nhau để rút ra kết luận về tính chất của chuyển động rơi tự do và xác định được gia tốc rơi tự do. 5.2.2. Cơ sở lý thuyết Thả một vật (trụ bằng sắt, hòn bi,…) từ độ cao s trên mặt đất, vật sẽ rơi rất nhanh theo phương thẳng đứng. Trong trường hợp này ảnh hưởng của không khí không đáng kể, vật chỉ chuyển động dưới tác dụng của trọng lực nên có thể coi vật rơi tự do. Khi một vật có vận tốc ban đầu bằng không, chuyển động thẳng nhanh dần đều với gia tốc a, thì quãng đường đi được s sau khoảng thời gian t được xác định bởi công thức: 21 . 2 s at= (6.3) Đối với chuyển động rơi tự do: 2 2 . s g t = (6.4) Hình 5.2: Sự rơi tự do. (s, t) g�⃗
  • 69. 69 Hình 5.3: Đo gia tốc rơi tự do 5.2.3. Dụng cụ thí nghiệm - Giá đỡ thẳng đứng có dây dọi và ba chân có vít chỉnh thăng bằng. - Nam châm điện để giữ và thả rơi vật. - Cổng quang điện, hộp đỡ vật rơi. - Trụ bằng sắt làm vật rơi tự do có thước thẳng 800 mm gắn chặt vào giá đỡ. - Máy đo và xử lí thời gian sử dụng PIC 16F877A. 5.2.4. Lắp ráp thí nghiệm 1. Nam châm điện lắp trên đỉnh giá đỡ, được nối vào cổng nam châm C của máy đo. Nối cổng quang điện hồng ngoại vào cổng A (hoặc B) của máy đo. 2. Điều chỉnh vị trí thẳng đứng cho giá đỡ bằng cách quan sát quả dọi phối hợp vặn các vít ở đế ba chân. Hộp đỡ vật rơi được đặt ở dưới chân giá đỡ. 3. Bật công tắc cung cấp điện cho máy đo. Chọn bài thí nghiệm rơi tự do, cho nam châm hút giữ vật rơi, dịch chuyển vị trí của nam châm điện sao cho vị trí ban đầu của vật trùng với vạch 0 trên thước đo. 5.2.5. Tiến hành thí nghiệm 1. Đo đoạn đường rơi và nhập giá trị s vào máy đo qua ma trận bàn phím hay máy tính cá nhân. 2. Ấn nút START để thả vật rơi. Ghi thời gian rơi, gia tốc thu được vào bảng 5.3. Lặp lại phép đo thêm. 3. Nới lỏng vít và dịch chuyển cổng quang điện về phía dưới một khoảng s = 550 mm; 600 mm. Ứng với mỗi khoảng cách s, thả vật rơi và ghi thời gian tương ứng.