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

Đề tài này nêu ra một ứng dụng vi điều khiển nhằm thiết kế một bộ thí nghiệm đ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. Không chỉ dùng để đo thời gian đến bậc sai số

6.6 10  6 s bằng cách xử lí các tín hiệu từ cổng hồng ngoại và nam châm điện; bộ thí

nghiệm tương tác với người dùng bằng ma trận bàn phím hoặc máy tính cá nhân. Từ

đó bộ thí nghiệm trở nên cơ động hơn trong đo đạc và tự động xử lí kết quả nhằm phục

vụ cho các bài thí nghiệm kiểm chứng ngay tại lớp học.

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 1

Trang 1

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 2

Trang 2

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 3

Trang 3

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 4

Trang 4

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 5

Trang 5

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 6

Trang 6

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 7

Trang 7

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 8

Trang 8

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 9

Trang 9

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 12 trang duykhanh 7800
Bạn đang xem 10 trang mẫu của tài liệu "Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông

Ứng dụng vi điều khiển pic 16F877A trong thí nghiệm vật lí phổ thông
ontroller in order to design a 
set of experiments for time measurement and data processing. It is used to study 
mechanical experiments in the high school physics syllabus. The set of experiments is 
used not only to measure the time to high accuracy of 66.6 10 s through signal 
processing from infrared gate and electromagnet but also to interact with the users 
through keyboard matrix or personal computer. From that point, the set of experiments 
becomes more mobile in measurement and automatic result processing to serve the 
experimental vertication in the classroom. 
Keywords: microcontroller, mechanical experiment, experimental vertication. 
1. Mở đầu 
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 trong việc 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. 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 [1]. 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 
Kỉ yếu Hội nghị sinh viên NCKH 
 70 
các họ vi điều khiển 8 bit [4], 16 bit [5], [6] hay thậm chí 24 bit [6] 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 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. 
Trong bài báo này, chúng tôi ứng dụng các mođun của vi điều khiển PIC 
16F877A nhằm tạo ra bộ dụng cụ dùng trong đo đạc thời gian và xử dữ liệu phục vụ 
cho các bài thí nghiệm chứng minh ngay tại lớp học. 
2. Dụng cụ đo và xử lí thời gian sử dụng PIC 16F877A 
Để 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 
điện - điện tử khác nhau và kiểm tra hoạt động của chúng trên Proteus, 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. 
Sau khi thử nghiệm trên testboard và mô phỏng trên Proteus, sơ đồ mạch trên 
Orcard và chương trình giao tiếp cho PIC 16F877A với máy tính sẽ được thiết kế. 
Mạch in đượ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. 
Hình 1. Quá trình thực hiện 
2.1. Sơ đồ khối 
Hình 2. 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 2. 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 
Năm học 2012 - 2013 
 71 
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 điều khiển PIC 
16F877A. 
2.2. Khối xử lí trung tâm 
Hình 3. Lưu đồ chương trình chính 
Đâ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. 
Kỉ yếu Hội nghị sinh viên NCKH 
 72 
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 (Code_for_pic_16f877a.ccs). Lưu đồ thuật toán 
PIC 16F877A được thể hiện trên hình 3. 
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 
(con_lac_đơn, roi_tu_do, he_so_ma_sat, cd_thang_deu). 
2.3. Bộ định thời 
Xung đếm được tạo ra nhờ thạch anh điện tử có tần số 20MHz. Thạch anh tần số 
20MHz sẽ tạo cho vi điều khiển chu kì lệnh có tần số 5MHz (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 5MHz được đưa đến bộ 
Prescaler (chia 8) cho ra xung có tần số 0.625MHz. Hai thanh ghi TMR1H: TMR1L sẽ 
ghi nhận giá trị xung 0.625MHz 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. 
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 thể xác định được thời gian t: 
6
1( 65536 1 : 1 )
0.625 10
t m TMR H TMR L s 
Hình 4. 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. 
2.4. 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. 
Năm học 2012 - 2013 
 73 
Hình 5. Giao tiếp RS232 qua IC Mac – 232 
Hình 6 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 quá 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 7). 
3. Đánh giá sai số 
Hình 6. Giao diện giao tiếp 
với máy tính cho Pic 16F877A 
4 
1 3 
2 
Hình 7. Thí nghiệm con lắc đơn 
dùng giao tiếp máy tính 
Kỉ yếu Hội nghị sinh viên NCKH 
 74 
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. 
3.1. Sai số do bộ nhớ dữ liệu 
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 8) 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à . Như vậy, với giá trị thời gian 
đo đạc là 1s thì sai số do bộ nhớ dữ liệu là . Trong các bài thí nghiệm cơ học 
thuộc chương trình vật lí trung học 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ớn nhất là . 
Exponent Sign Mantissa 
eeee eeee s mmm mmmm mmmm mmmm mmmm mmmm 
8 bits 1 bit 23 bit 
Hình 8. Cấu trúc dữ liệu kiểu số thực 32 bits 
3.2. Sai số hệ thống 
3.2.1. 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à biến TMR1H:TMR1L xác định giá trị đếm hiện tại 
của Timer1. 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 từ khi kích ngắt và trong thời gian 
PIC 16F877A lấy giá trị hai biến m và TMR1H:TMR1L. 
Hình 9. Sai số do code lập trình 
3.2.2. Sai số do tín hiệu hồng ngoại là ngắt nam châm điện 
Hình 10. Đánh giá sai số lí thuyết Hình 11. Kiểm tra sai số 
Năm học 2012 - 2013 
 75 
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 10). 
Sai số hệ thống gây cho vi điều khiển độ trễ làm việcvà độ trễ này 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 xác định vào khoảng 66.6 10 s . 
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. 
3.3. Sai số máy đo thời gian hiện số MC – 964 
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 12). 
Hình 12. Đồ 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ụngPIC 16F877A. 
Bảng 1. Kết quả đo tần số 2Hz 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% 
Kỉ yếu Hội nghị sinh viên NCKH 
 76 
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ố 2Hz là = 0,01%. So với máy đo thời gian hiện số MC - 964, máy 
đo và xử lí thời gian sử dụng PIC 16F877A cho kết quả với độ chính xác cao. 
4. Kết quả 
Á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. 
Bảng 2. Chu kì con lắc đơn 
s = 410 1 mm, nT=5 chu kì 
Lần t g 
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 
Bảng 3. Xác định gia tốc rơi tự do 
Thời gian rơi t (s) Lần đo 
S (mm) 1 2 3 4 5 i
t 2it 2
2 i
i
i
sg
t
500 0,320 0.320 0,320 0,321 0,320 0,320 0,103 9,753 
550 0,336 0,335 0,336 0,335 0,336 0,336 0,113 9,767 
600 0,351 0,350 0,350 0,351 0,351 0,351 0,123 9,762 
Gia tốc rơi tự do: g = 9,761 0,005 m/s2 
So sánh kết quả thu được trên máy đo và xử lí thời gian sử dụng PIC 16F877A 
với máy đo thời gian hiện số MC – 964, ta thu được đồ thị ở hình 13. 
Năm học 2012 - 2013 
 77 
Hình 13. Đồ 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ụngPIC 16F877A. TN1: Thí nghiệm đo gia tốc rơi 
tự do,TN2: Thí nghiệm đo chu kì con lắc đơn. 
Giá trị đo gia tốc rơi tự do ở Thành phố Hồ Chí Minh (vĩ độ 10o8’B) có giá trị 
9,787m/s2. Như vậy máy đo thời gian hiện số MC – 964 cho kết quả kém chính xác hơn 
máy đo và xử lí thời gian sử dụng PIC 16F877A. 
Bảng 4. Xác định hệ số ma sát trượt 
s = 400 1 mm 
n t 2
2sa
t
 t t 
1 0,742 1,453 0,206 0,0004 
2 0,740 1,446 0,205 0,0006 
3 0,742 1,453 0,206 0,0004 
4 0,740 1,446 0,205 0,0006 
5 0,742 1,453 0,206 0,0004 
t = 0,2056 0,0005 
Kỉ yếu Hội nghị sinh viên NCKH 
 78 
Hình 14. Đồ 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ụngPIC 16F877A. 
Do sự phụ thuộc của hệ số ma sát vào tính chất mặt tiếp xúc giữa vật và mặt 
nghiêng (bụi, độ ẩm, độ trầy xước cả vật và mặt nghiêng,...) nên độ chệnh lệch hệ số 
ma sát (khoảng 0,010) có thể chấp nhận được, các kết quả xem như tương đương. 
Bảng 5. Xác định vận tốc tức thời và vận tốc trung bình 
d = 20,70 0,02 mm 
Lần t 
1
tt
dv
t
 vtt s tb
dv
t
 vtb 
1 0,034 0,609 0,007 30 0,520 0,577 0,001 
2 0,034 0,609 0,007 30 0,520 0,577 0,001 
3 0,033 0,627 0,011 50 0,869 0,575 0,001 
4 0,034 0,609 0,007 30 0,521 0,577 0,001 
5 0,033 0,627 0,011 50 0,869 0,575 0,001 
Vận tốc tức thời: 
vtt = 0,616 0,009 m/s 
Vận tốc trung bình: 
vtb = 0,576 0,001 m/s 
Năm học 2012 - 2013 
 79 
Hình 15. Đồ thị so sánh vận tốc tức thời (hình 15a) và vận tốc trung bình (hình 15b) 
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. 
Nhận xét: Do máy MC - 964 mắc sai số lớn khi đo thời gian ngắn (thời gian viên 
chắn cổng quang điện) và độ chính xác càng cao khi đo thời gian càng lớn nên giá trị 
vận tốc tức thời đo được ở hai máy có sự chênh lệch khá rõ ở đồ thị hình 15a. Trong 
khi đó, do đo vận tốc trung bình trong thời gian tương đối lớn nên kết quả hai máy thu 
được là như nhau (đồ thị hình 15b). 
5. Kết luận 
Từ những kiến thức cơ bản về điện – điện tử và vi điều khiển, chúng tôi đã thiết 
kế được dụng cụ đo và xử lí thời gian dùng vi điểu khiển PIC 16F877A có độ chính xác 
cao hơn so với đồng hồ đếm thời gian hiện số MC – 964 đang đuợc sử dụng tại các 
phòng thí nghiệm vật lí phổ thông. Dụng cụ đo và xử lí thời gian dùng PIC 16F877A 
có khả năng làm việc và xử lí kết quả thu được dựa vào nguồn code nạp sẵn do đó làm 
tăng tính tự động cho thiết bị. Đây là dụng cụ giúp tối ưu hóa các bài thí nghiệm minh 
họa trên lớp. Ngoài ra, dụng cụ đo và xử lí thời gian dùng PIC 16F877A có khả năng 
loại nhiễu tốt nhờ vào hệ thống code bẫy lỗi, tạo độ tin cậy cao trong quá trình đo đạc 
và tính toán. 
Dụng cụ đo và xử lí thời gian dùng vi điểu khiển PIC 16F877A chỉ dừng lại trong 
đo đạc các bài thí nghiệm cơ học đơn giản dùng đến cổng hồng ngoại và nam châm 
điện. Vì vậy, đề tài có thể phát triển theo hướng mở rộng cho các thí nghiệm quang 
học, điện học cùng nhiều thí nghiệm khác trong chương trình vật lí trung học phổ 
thông. 
Kỉ yếu Hội nghị sinh viên NCKH 
 80 
TÀI LIỆU THAM KHẢO 
1. Đỗ Thanh Hải, Ngô Thanh Hải (2003), Nguyên lí căn bản và ứng dụng mạch điện 
tử, Nxb Thanh niên. 
2. Trần Đặng Bảo Ân (2011), Xây dựng bộ thí nghiệm khảo sát chuyển động của vật 
dưới tác dụng của trọng trường, luận văn tốt nghiệp, Đại học Sư phạm TPHCM. 
3. Dương Xuân Quý (2010), “Vấn đề sử dụng thiết bị thí nghiệm vật lí trong trường 
phổ thông thực trạng và giải pháp”, Tạp chí thiết bị giáo dục, số 61. 
4. Martin P.Bates (2007), “Programming 8-Bit PIC Microcontroller in C with 
interactive Hardware Simulation”, Newnes, UK. 
5. Lucio Di Jasio (2007), Programming 16-Bit PIC Microcontroller in C Learning to 
Fly the PIC24, Elsevier, USA. 
6. Microchip Technology (2003), “Microchip PIC16F877A Data sheet 28/40/44-Pin 
enhanced flash Microcontrollers”, Microchip Technology. 

File đính kèm:

  • pdfung_dung_vi_dieu_khien_pic_16f877a_trong_thi_nghiem_vat_li_p.pdf