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

Từ việc nghiên cứu 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ác thông tin được đo gián tiếp bên ngoài và các kết quả trong quá trình xử lý có thể nhập xuất dễ dàng, làm tăng tính mềm dẻo, cơ động cho thiết bị. - Máy đo và xử lý thời gian dùng vi điểu khiển 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.

pdf91 trang | Chia sẻ: toanphat99 | Lượt xem: 2252 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Khóa luận Ứng dụng vi điều khiển PIC 16F877A trong thí nghiệm vật lí phổ thông, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ị 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 Đếm Có 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 Đếm Có Không 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 Đếm Có 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 Thời gian chắn 2 bằng nhau 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 RV 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 4 11 - + U5A LM324 3 2 1 4 11 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à 710− 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à 610− 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-6s (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 .lT 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 .lg 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 .sg 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. 70 Bảng 5.3: Xác định gia tốc rơi tự do. Lần đo S (mm) Thời gian rơi t (s) ti� ti�2 gi = 2si�ti2� 1 2 3 4 5 500 550 600 Gia tốc rơi tự do: g = ± m/s2 5.2.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.4: Xác định gia tốc rơi tự do. Lần đo S (mm) Thời gian rơi t (s) it 2it 22 ii isg t= 1 2 3 4 5 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 71 TN1: Thí nghiệm đo gia tốc rơi tự do. TN2: Thí nghiệm đo chu kì con lắc đơn. Hình 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. 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, dựa vào kết quả thu được hình 5.4, 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. 5.3. XÁC ĐỊNH HỆ SỐ MA SÁT TRƯỢT 5.3.1. Mục đích Vận dụng phương pháp động lực học để nghiên cứu lực ma sát tác dụng vào một vật chuyển động trên mặt phẳng nghiêng. Xác định hệ số ma sát trượt giữa vật bằng thép và mặt phẳng nghiêng bằng nhôm. 5.3.2. Cơ sở lý thuyết 72 Cho một vật nằm trên mặt phẳng nghiêng M, với góc nghiêng α so với mặt nằm ngang. Khi α nhỏ, vật vẫn nằm yên trên M, không chuyển động. Tăng dần độ nghiêng, 0α α> , vật chuyển động trượt xuống với gia tốc a. Vật chuyển động chịu tác dụng của ba lực: trọng lực, lực ma sát giữa vật – mặt phẳng nghiêng và phản lực của mặt phẳng nghiêng tác dụng lên vật. Do đó độ lớn của a chỉ phụ thuộc vào góc nghiêng α và hệ số μt – gọi là hệ số ma sát trượt : a = g(sinα – μt .cosα). (6.5) Bằng cách đo a và α, ta xác định được hệ số ma sát trượt μt : t a= tana - . g.cos µ α (6.6) Gia tốc a xác định theo công thức: 2 2 .sa t = (6.7) Trong đó quãng đường đi được đo bằng thước milimét, thời gian t đo bằng máy đo và xử lí thời gian dùng PIC 16F877A, điều khiển bằng công tắc và cổng quang điện. Góc nghiêng α có thể đọc ngay trên thước đo góc có quả dọi, gắn vào mặt phẳng nghiêng. 5.3.3. Dụng cụ thí nghiệm - Mặt phẳng nghiêng có gắn thước đo góc và quả dọi. - Nam châm điện gắn ở đỉnh mặt phẳng nghiêng. - Giá đỡ mặt phẳng nghiêng. - Trụ thép kim loại (thép) đường kính 3 cm, cao 3 cm dùng làm vật trượt. - Máy đo và xử lí thời gian sử dụng PIC 16F877A. - Thước thẳng 800 mm. Hình 5.5: Chuyển động của vật trên mặt phẳng nghiêng. P�⃗ N��⃗ Fmst�������⃗ α (M) 73 5.3.4. Lắp ráp thí nghiệm 1. Đặt máng nghiêng có lắp nam châm điện và cổng quang điện lên giá đỡ. Nam châm điện được lắp vào cổng C của máy đo nhờ jack cắm có 5 chân. Cổng quang điện nối vào cổng A (hoặc B) của máy đo. 2. Dịch chuyển khớp nối để thay đổi góc nghiêng α, sao cho khi đặt mặt đáy trụ thép lên máng, trụ có thể trượt xuống. Điều chỉnh thăng bằng cho máng nghiêng nhờ các chân vít của giá đỡ, sao cho dây dọi song song với mặt phẳng của thước đo góc. 5.3.5. Trình tự thí nghiệm 1. Bật công tắc nguồn, chon bài thí nghiệm xác định hệ số ma sát trượt. 2. Cố định vị trí khớp nối. Nhập giá trị đoạn đường trượt s và góc nghiêng α vào máy đo qua ma trận bàn phím hay máy tính cá nhân. 3. Xác định vị trí ban đầu của trụ thép: đặt trụ thép lên đỉnh mặt phẳng nghiêng, sát với nam châm, mặt đáy tiếp xúc với mặt phẳng nghiêng. Nới lỏng vít của nam châm điện để vị trí đầu của trụ thép tương ứng với giá trị 0 trên thước đo. 4. Nới lỏng vít để dịch chuyển cổng quang điện đến vị trí s = 500 mm, rồi vặn vít hãm cố định vị trí của cổng quang điện trên máng nghiêng. 5. Cố định vị trí khớp nối. Nhập giá trị đoạn đường trượt s và góc nghiệng α vào máy đo qua ma trận bàn phím hay máy tính cá nhân. 6. Ấn nút START trên máy đo để thả cho vật trượt. Đọc, ghi thời gian trượt t và hệ số ma sát trượt µt vào bảng 5.5. Đặt lại trụ thép vào vị trí sát cổng quang điện và lặp lại thêm 4 lần phép đo thời gian t. Hình 5.6: Xác định hệ số ma sát trượt. 74 Bảng 5.5: Xác định hệ số ma sát trượt. s = ± (mm), α = ± 0 Lần (n) t (s) 22sa t= (m/s2) t a= tana - g.cosµ α ∆µt 1 2 3 4 5 Giá trị TB Hệ số ma sát trượt: µt = ± 5.3.6. Kết quả thí nghiệm đo bằng bộ thí nghiệm tự chế tạo Bảng 5.6: Xác định hệ số ma sát trượt. So sánh kết quả thu được với kết quả đo bằng máy MC – 964 ta được đồ thị hình 5.7. s = 400 ± 1 mm, α = 200 ± 10 Lần (n) t (s) 22sa t= (m/s2) t a= tana - g.cosµ α ∆µ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 Hệ số ma sát trượt: µt = 0,2056± 0,0005 75 Hình 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. 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. 5.4. XÁC ĐỊNH VẬN TỐC TRUNG BÌNH, VẬN TỐC TỨC THỜI 5.4.1. Mục đích - Xác định vận tốc tức thời của viên bi tại các điểm trên mặt phẳng ngang có ma sát rất nhỏ. - So với với vận tốc trung bình trên một đoạn đường bất kì. Từ đó nghiệm lại định luật I Niuton. 5.4.2. Cơ sở lí thuyết Thả viên bi từ một điểm trên một máng nghiêng cho lăn xuống mặt phẳng ngang với ma sát rất nhỏ. Trên mặt phẳng ngang, do phản lực cân bằng với trọng lực cân bằng với trọng lực nên theo định luật I Niuton, viên bi sẽ chuyển động thẳng đều. Vận tốc tức thời tại mọi điểm bằng nhau và bằng vận tốc trung bình trên một đoạn đường bất kì. 76 5.4.3. Dụng cụ thí nghiệm - Đế 3 chân, giá đỡ có gắn sẵn hai cổng quang và nam châm điện phía trên máng nghiêng nhỏ. - Công tắc nam châm. - Thước đo góc có gắn quả dọi, bi thép, khớp nối. - Máy đo và xử lí thời gian sử dụng PIC 16F877A. 5.4.4. Lắp ráp dụng cụ thí nghiệm 1. Nam châm điện lắp trên đỉnh máng nghiêng của giá đỡ, được nối qua công tắc vào ổ cắm C của máy đo. 2. Cổng quang điện 1 và 2 lắp ờ hai vị trí nhất định trên mặt phẳng ngang, cách nhau một đoạn s. Hai cổng quang này được cắm vào ổ A và B của B của máy đo. 3. Lưu ý phải điều chỉnh để giá đỡ nằm ngang. Điều này được kiểm tra nhờ quả dọi treo ở góc thước đo. 5.4.5. Trình tự thí nghiệm  Đo vận tốc tức thời của bi thép tại các điểm khác nhau trên quĩ đạo 1. Mở công tắc máy đo, chọn bài thí nghiệm chuyển động thẳng đều. Cho nam châm hút giữa bi thép. Dịch chuyển hai cổng quang đến các vị trí cách nhau một khoảng s = 30 cm – 50 cm. 2. Nhấn nút công tắc cho nam châm nhả bi thép. Khi đi qua cổng quang 1, máy đo chỉ t1 là thời gian viên bi chắn chắn cổng hồng ngoại. Tiếp tục chuyển động, bi qua cổng quang 2 trong thời gian t2. Nếu t1 = t2 thì chuyển động của bi là thẳng đều. Ghi lại các giá trị t1, t2. Hình 5.8: Xác định vận tốc trung bình, vận tốc tức thời. 77 3. Dùng thước kẹp đo đường kính d của viên bi, nhập giá trị d vào máy đo qua ma trận bàn phím hay máy tính cá nhân, từ đó tính được vận tốc tức thời của bi tại nơi đặt hai cổng quang điện là: 1 2 1 2 , .d dv v t t = = (6.8)  Đo vận tốc trung bình của viên bi trên các quãng đường khác nhau 1. Cho nam châm hút giữ bi thép. Dịch chuyển hai cổng quang đến các vị trí cách nhau một khoảng s = 30 cm. 2. Đo đoạn đường chuyển động, 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. 3. Nhấn nút công tắc cho nam châm nhả bi thép. Khi bi đi đến cổng quang 1, máy đo bắt đầu đếm. Tiếp tục chuyển động, bi đến cổng quang 2 thì đồng hồ ngừng đếm. Đồng hồ chỉ t là thời gian viên bi đi ngãng đường s từ cổng quang 1 đến 2. 4. Ghi nhận giá trị thời gian t và vtb, điền các số liệu thu được vào bảng 5.7. 5. Giữa nguyên cổng quang 1, dịch chuyển cổng quang 2 ra xa cổng quang 1 mỗi lần 5 cm. Lặp lại các động tác như trên. 6. Hoàn thành bảng số liệu 5.7. Bảng 5.7: Xác định vận tốc tức thời và vận tốc trung bình. d = ... ± ... mm Lần t (s) 1tt dv t= (m/s) ∆vtt (m/s) s (cm) 𝑡 (s) tb dv t= (m/s) ∆vtb (m/s) 1 2 3 Vận tốc tức thời: vtt = ... ± ... m/s Vận tốc trung bình: vtb = ... ± ... m/s 78 5.4.6. Kết quả thí nghiệm đo bằng bộ thí nghiệm tự chế tạo Bảng 5.8: 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 (s) 1tt dv t= (m/s) ∆vtt (m/s) s (cm) 𝑡 (s) tb dv t= (m/s) ∆vtb (m/s) 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 So sánh kết quả thu được với kết quả đo bằng máy MC – 964 ta được đồ thị hình 5.9. a) b) Hình 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à xử lí thời gian sử dụng PIC 16F877A. 79 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 5.9a. Trong khi đó, do đó 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 5.9b). 5.5. KẾT LUẬN Từ việc nghiên cứu 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ác thông tin được đo gián tiếp bên ngoài và các kết quả trong quá trình xử lý có thể nhập xuất dễ dàng, làm tăng tính mềm dẻo, cơ động cho thiết bị. - Máy đo và xử lý thời gian dùng vi điểu khiển 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. - So với đồng hồ đếm và hiển thị thời gian hiện số MC – 964, thiết bị tỏ ra vượt trội về khả năng đo thời gian với độ chính xác cao hơn, xử lý được các kết quả trung gian (tính gia tốc, hệ số ma sát, chu kì,...), giao tiếp linh hoạt với người dùng. - Máy đo và xử lý thời gian dùng vi điểu khiển 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. 5.6. HƯỚNG PHÁT TRIỂN Tuy có những lợi thế trên, dụng cụ đo và xử lý thời gian dùng vi điểu khiển PIC 16F877A vẫn chưa thể tự nạp chương trình trực tiếp qua máy tính cá nhân và 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ở 80 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. 81 TÀI LIỆU THAM KHẢO Tiếng Việt [1] 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. [2] KS.Đỗ Thanh Hải, KS.Ngô Thanh Hải (2003), Nguyên lý căn bản và ứng dụng mạch điện tử, Nhà xuất bản thanh niên. [3] ThS.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. Tiếng Anh [4] Martin P.Bates (2007), Programming 8-Bit PIC Microcontroller in C with interactive Hardware Simulation, www.newnespress.com. [5] Lucio Di Jasio (2007), Programming 16-Bit PIC Microcontroller in C Learning to Fly the PIC24, www.elsevier.com. [6] Microchip Technology (2003), Microchip PIC16F877A Data sheet 28/40/44-Pin enhanced flash Microcontrollers. [7] [8] [9] LM324.html. [10] STMICROELECTRONICS/TL084.html. [11] QUARTZCOM/SMX-415.html. [12] [13] 82 [14] https://www.olimex.com/Products/PIC/Programmers/PIC-MCP-USB. [15] [16] &nodeId=1406&dDocName=en010020. [17] nodeId=1406&dDocName=en019469&part=SW007002. [18] nodeId=1406&dDocName=en010019&part=DV007003. 83 PHỤ LỤC Phụ lục 1: Code_for_PIC_16F877A.ccs #include "16f877a.h" #fuses hs,nowdt,put #use delay(clock=20M) #include "math.h" #include "lcd_lib_8bit.c" #use rs232 (baud=9600, xmit=PIN_C6,rcv=PIN_C7,bits=8) #use fast_io(A) #use fast_io(B) #use fast_io(C) #use fast_io(D) #byte porta =0x05 #byte portb =0x06 #byte portc =0x07 #byte portd =0x08 #byte porte =0x09 #bit A0 =porta.0 #bit A1 =porta.1 #bit E0 =porte.0 #bit B0 =portb.0 #bit B1 =portb.1 #bit B2 =portb.2 #bit B3 =portb.3 #bit B4 =portb.4 #bit B5 =portb.5 #bit B6 =portb.6 #bit B7 =portb.7 #bit TMR1IF = 0x0c.0 int1 y,z; int8 k,so,so_1,so_2; int8 nghin,tram,chuc,don_vi; int8 n,lan,nT; float l,d,T,g,tg,tg2,tg3,goc,hs,vt,a; float const PI2=6.283185; int16 x,m,s; #priority int_Timer0,int_Ext,int_CCP1,int_Timer1,int_Rda #int_Ext void ngat_B0() { while(B0!=1){}; Set_Timer1(0); A1=0;m=0;y=0;z=1; Disable_Interrupts(Int_Ext); Enable_Interrupts(Int_Ccp1); Clear_Interrupt(Int_Ccp1); Enable_Interrupts(Int_Timer0); Set_Timer0(255); Clear_Interrupt(Int_Timer0); } #int_CCP1 void ngat_CCP1() { if (get_timer1()<6250&&m==0&&z==1) { Set_Timer0(255); goto nhieu_ngat_CCP1; } else { if (k==4) { Set_timer1(0);m=0; 84 Setup_CCP1(Ccp_Capture_Fe); } Setup_Timer_1(T1_DISABLED); s=m+TMR1IF; Setup_Timer_1(T1_INTERNAL|T1_Div_By_8); k++; z=0; } nhieu_ngat_CCP1: ; } #int_Timer0 void ngat_Timer0() { if (get_timer1()<6250&&m==0&&z==1) { Set_Timer0(255); goto nhieu_ngat_timer0; } else { Setup_Timer_1(T1_DISABLED); CCP_1=get_timer1(); s=m+TMR1IF; Setup_Timer_1(T1_INTERNAL|T1_Div_By_8); n++; if (n==1) { Set_Timer0(256-nT*2); Set_timer1(0);m=0; } if (n==4) { Set_timer1(0);m=0; Setup_Timer_0(Rtcc_Div_1|Rtcc_Ext_H_To_L); Set_Timer0(255); } z=0; } nhieu_ngat_timer0: ; } #int_Timer1 void ngat_Timer1() { m++; } #int_Rda void nhan_data() { CCP_2=getchar(); } void quet_phim(); void nhap_so(); void tao_so(); void con_lac_don(); void roi_tu_do(); void he_so_ma_sat(); void chuyen_dong_thang_deu(); void kich_ngat(); void nhap_so() { so_1=so-0x30; so_2++; if(so_2==4) {nghin=tram;tram=chuc; chuc=don_vi; don_vi=so_1;} if(so_2==3) {tram=chuc; chuc=don_vi; don_vi=so_1;} if(so_2==2) 85 {chuc=don_vi; don_vi=so_1;} if(so_2==1) {don_vi=so_1;} } void quet_phim() { so=0; while(so==0) { if (CCP_2>=48&&CCP_2<=57) { so=CCP_2;CCP_2=0;break; } B3=0;B6=1;A0=1;B7=1; if (!B1) {so=0x31; delay_ms(50); while(!B1){};} if (!B4) {so=0x32; delay_ms(50); while(!B4){};} if (!B2) {so=0x33; delay_ms(50); while(!B2){};} if (!B5) {so=0x41; delay_ms(50); while(!B5){};} B3=1;B6=0;A0=1;B7=1; if (!B1) {so=0x34; delay_ms(50); while(!B1){};} if (!B4) {so=0x35; delay_ms(50); while(!B4){};} if (!B2) {so=0x36; delay_ms(50); while(!B2){};} if (!B5) {so=0x42; delay_ms(50); while(!B5){};} B3=1;B6=1;A0=0;B7=1; if (!B1) {so=0x37; delay_ms(50); while(!B1){};} if (!B4) {so=0x38; delay_ms(50); while(!B4){};} if (!B2) {so=0x39; delay_ms(50); while(!B2){};} if (!B5) {so=0x43; delay_ms(50); while(!B5){};} B3=1;B6=1;A0=1;B7=0; if (!B1) {so=0x2A; delay_ms(50); while(!B1){};} if (!B4) {so=0x30; delay_ms(50); while(!B4){};} if (!B2) {so=0x23; delay_ms(50); while(!B2){};} if (!B5) {so=0x44; delay_ms(50); while(!B5){};} } } void tao_so(int z) { Enable_Interrupts(Int_Rda); Enable_Interrupts(Global); so_1=so_2=CCP_2=0;E0=1; nghin=tram=chuc=don_vi=0; do { quet_phim(); if(z!=1) { LCD_Putchar(so); } if((so>=0x30)&&(so<=0x39))nhap_so(); } while ((so>=0x30)&&(so<=0x39)&&so_2!=z); x=nghin*1000+(int16)tram*100+chuc*10+d on_vi; E0=0; 86 } void kich_ngat() { A1=1;CCP_1=0;y=1;k=0;m=0;n=1;z=0; Setup_Timer_0(Rtcc_Div_1|Rtcc_Ext_L_To_H); Setup_Timer_1(T1_INTERNAL|T1_Div_By_8); Setup_CCP1(Ccp_Capture_Re); Ext_Int_Edge(L_To_H); Clear_Interrupt(Int_Ext); Enable_Interrupts(Int_Ext); Clear_Interrupt(Int_Timer1); Enable_Interrupts(Int_Timer1); Disable_Interrupts(Int_Ccp1); Disable_Interrupts(Int_Timer0); Enable_Interrupts(Global); } float dinh_thoi() { Get_Timer1()*0.0000016+m*0.1048576; } void thoi_gian() { tg=CCP_1*0.0000016+s*0.1048576; } void con_lac_don() { ... } void roi_tu_do() { ... } void he_so_ma_sat() { ... } void chuyen_dong_thang_deu() { ... } void main() { set_tris_A(0x10); set_tris_B(0x37); set_tris_C(0x87); set_tris_D(0x00); set_tris_E(0x00); while(1) { LCD_Init(); putc(254);putc(01);putc(00); A1=0; LCD_PutCmd(0x01); LCD_Gotoxy(1,1); printf(LCD_Putchar,"THI NGHIEM VAT LI PT"); LCD_Gotoxy(2,1); printf(LCD_Putchar," DHSP TP.HCM"); LCD_Gotoxy(3,1); printf(LCD_Putchar," ****//****"); tao_so(1); LCD_PutCmd(0x01); printf(LCD_Putchar," CON_LD ROI_TD"); LCD_Gotoxy(2,1); printf(LCD_Putchar," 1 2"); LCD_Gotoxy(3,1); printf(LCD_Putchar," HS_MS CD_TD"); LCD_Gotoxy(4,1); printf(LCD_Putchar," 3 4"); chon_tn:A1=1;z=0;tao_so(1); 87 switch(x) { case 1: con_lac_don();goto chon_tn; case 2: roi_tu_do();goto chon_tn; case 3: he_so_ma_sat();goto chon_tn; case 4: chuyen_dong_thang_deu();goto chon_tn; } } } Phụ lục 2: Subprocess: Con_lac_don void con_lac_don() { LCD_PutCmd(0x01); Printf(LCD_Putchar," CON LAC DON"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"CHIEU DAI DAY:"); LCD_Gotoxy(2,15); tao_so(4); l=x*0.001;delay_ms(500); LCD_Gotoxy(3,1); Printf(LCD_Putchar,"SO CHU KI CAN DO:"); LCD_Gotoxy(3,18); tao_so(2);delay_ms(500); nT=(int8)x;n=0;m=0;lan=0; LCD_Gotoxy(4,1); Printf(LCD_Putchar,"TG: 0.000s nT: 0"); Setup_Timer_1(T1_INTERNAL|T1_Div_By_8); Setup_Timer_0(Rtcc_Div_1|Rtcc_Ext_L_To_H); Set_Timer0(255); Clear_Interrupt(Int_Timer0); Enable_Interrupts(Int_Timer0); Clear_Interrupt(Int_Timer1); Enable_Interrupts(Int_Timer1); while(1) { if(n==1) { lan=(255-Get_timer0())/2+1; lan=nT-lan; LCD_Gotoxy(4,5); Printf(LCD_Putchar,"%6.3gs",dinh_thoi()); LCD_Gotoxy(4,18); Printf(LCD_Putchar,"%2u",lan); } if(n==2) { Disable_Interrupts(Global); thoi_gian(); break; } } T=tg/nT; g=l/((T/(PI2))*(T/PI2)); LCD_PutCmd(0x01); Printf(LCD_Putchar," CON LAC DON"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"THOI GIAN: %6.3gs",tg); LCD_Gotoxy(3,1); Printf(LCD_Putchar,"CHU KI: %6.3gs",T); LCD_Gotoxy(4,1); Printf(LCD_Putchar,"GIA TOC:%6.3gm/s^2",g); 88 Printf("x%6.3gy%2uz%6.3gk%6.3gl%6.3ga", l,nT,tg,T,g); } Phụ lục 3: Subprocess: Roi_tu_do void roi_tu_do() { LCD_PutCmd(0x01); Printf(LCD_Putchar," ROI TU DO"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"DOAN DUONG ROI:"); LCD_Gotoxy(2,16); tao_so(4);delay_ms(500); l=x*0.001; kich_ngat(); LCD_Gotoxy(3,1); Printf(LCD_Putchar,"TG ROI: 0.000s"); while(1) { if(y==0) { LCD_Gotoxy(3,9); Printf(LCD_Putchar,"%6.3gs",dinh_thoi()); } if(n==2||k==1) { Disable_Interrupts(Global); thoi_gian(); break; } } g=2*l/(tg*tg); LCD_Gotoxy(3,9); Printf(LCD_Putchar,"%6.3gs",tg); LCD_Gotoxy(4,1); Printf(LCD_Putchar,"GIA TOC:%6.3gm/s^2",g); Printf("x%6.3gy%6.3gz%6.3g2b",l,tg,g); } Phụ lục 4: Subprocess: He_so_ma_sat void he_so_ma_sat() { LCD_PutCmd(0x01); Printf(LCD_Putchar," HS MA SAT"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"D_DUONG TRUOT:"); LCD_Gotoxy(2,15); tao_so(4);delay_ms(500); l=x*0.001; LCD_Gotoxy(3,1); Printf(LCD_Putchar,"GOC NGHIENG:"); LCD_Gotoxy(3,13); tao_so(2);delay_ms(500); goc=x*PI2/360; kich_ngat(); LCD_PutCmd(0x01); Printf(LCD_Putchar," HS MA SAT"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"L=%6.3gm GOC=%3.0Luo",l,x); LCD_Gotoxy(3,1); Printf(LCD_Putchar,"TG TRUOT: 0.000s"); while(1) { 89 if(y==0) { LCD_Gotoxy(3,11); Printf(LCD_Putchar,"%6.3gs",dinh_thoi()); } if(n==2||k==1) { Disable_Interrupts(Global); thoi_gian(); break; } } LCD_Gotoxy(3,11); Printf(LCD_Putchar,"%6.3gs",tg); a=2*l/(tg*tg); hs=tan(goc)-a/(9.8*cos(goc)); LCD_Gotoxy(4,1); Printf(LCD_Putchar,"HS MA SAT:%5.3g",hs); Printf("x%6.3gy%Luz%6.3gk%6.3gc",l,x,tg,h s); } Phụ lục 5: Subprocess: Chuyen_dong_thang_deu void chuyen_dong_thang_deu() { TN4: LCD_PutCmd(0x01); Printf(LCD_Putchar," CD_THANG_DEU"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"THOI GIAN 1:"); LCD_Gotoxy(3,1); Printf(LCD_Putchar,"THOI GIAN 2:"); kich_ngat();n=3;k=4;nT=0; while(1) { if (k==6) { thoi_gian(); tg2=tg; LCD_Gotoxy(2,13); Printf(LCD_Putchar,"%6.3g",tg); nT++;k++; Disable_Interrupts(Int_Ccp1); } if (n==5) { thoi_gian(); tg3=tg; LCD_Gotoxy(3,13); Printf(LCD_Putchar,"%6.3gs",tg); nT++;n++; Disable_Interrupts(Int_Timer0); } if(nT==2) { break; } } tg2=(floor((tg2+0.0005)*1000))/1000; tg3=(floor((tg3+0.0005)*1000))/1000; if(tg2==tg3) { LCD_PutCmd(0x01); Printf(LCD_Putchar," CD THANG DEU"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"THOI GIAN CD:%6.3gs",tg); LCD_Gotoxy(3,1); 90 Printf(LCD_Putchar,"DUONG KINH BI:"); LCD_Gotoxy(3,15); tao_so(2); d=x*0.001; LCD_Putchar("."); tao_so(2);delay_ms(500); d=d+x*0.00001; vt=d/tg; LCD_Gotoxy(4,1); Printf(LCD_Putchar,"V TUC THOI:%6.3gm/s",vt); Printf("x%0.6gy%6.3gz%6.3gd",d,tg,vt); tao_so(1); LCD_PutCmd(0x01); Printf(LCD_Putchar," CD THANG DEU"); LCD_Gotoxy(2,1); Printf(LCD_Putchar,"D_DUONG CD:"); LCD_Gotoxy(2,12); tao_so(4);delay_ms(500); l=x*0.001; kich_ngat();n=0; LCD_Gotoxy(3,1); Printf(LCD_Putchar,"THOI GIAN CD:0.000s"); while(1) { if(n==1) { LCD_Gotoxy(3,14); Printf(LCD_Putchar,"%6.3gs",dinh_thoi()); } if(k==1) { Disable_Interrupts(Global); thoi_gian(); break; } } vt=l/tg; LCD_Gotoxy(3,14); Printf(LCD_Putchar,"%6.3gs",tg); LCD_Gotoxy(4,1); Printf(LCD_Putchar,"VAN TOC TB:%6.3gm/s",vt); } else { LCD_Gotoxy(4,1); Printf(LCD_Putchar," CD BIEN DOI DEU"); tao_so(1); Goto TN4; } Printf("x%6.3gy%6.3gz%6.3ge",l,tg,vt); } 91 Ti tle S iz e D oc um en t N um be r R ev D at e: S he et of 1 1 Th i n g h ie m v at l i p h o t h o n g s u d u n g P ic 1 6F 87 7A A 4 1 1 F rid ay , D ec em be r 14 , 20 12 D es ig n er : N g u ye n H u yn h D u y K h an g C 1 15 p 5VDC Y 1 20 M H z R 13 10 0 5V D C R A 1 5V D C C 14 10 4 Q 2 N P N P V N 1 M C U 1 6F 87 7A R A 0/ A N 0 2 R A 1/ A N 1 3 R A 2/ A N 2/ V R E F -/ C V R E F 4 R A 3/ A N 3/ V R E F + 5 R A 4/ T0 C K I/ C 1O U T 6 R A 5/ A N 4/ S S */ C 2O U T 7 R B 0/ IN T 33 R B 1 34 R B 2 35 R B 3/ P G M 36 R B 4 37 R B 5 38 R B 6/ P G C 39 R B 7/ P G D 40 R C 0/ T1 O S O /T 1C K I 15 R C 1/ T1 O S I/ C C P 2 16 R C 2/ C C P 1 17 R C 3/ S C K /S C L 18 R C 4/ S D I/ S D A 23 R C 5/ S D O 24 R C 6/ TX /C K 25 R C 7/ R X/ D T 26 R D 0/ P S P 0 19 R D 1/ P S P 1 20 R D 2/ P S P 2 21 R D 3/ P S P 3 22 R D 4/ P S P 4 27 R D 5/ P S P 5 28 R D 6/ P S P 6 29 R D 7/ P S P 7 30 O S C 1/ C LK IN 13 O S C 2/ C LK O U T 14 V D D 32 V D D 11 V S S 31 V S S 12 M C LR */ V P P 1 R E 0/ R D */ A N 5 8 R E 1/ W R */ A N 6 9 R E 2/ C S */ A N 7 10 D IS P LA Y LC D 2 0X 4 + C 9 10 0u C 3 15 p + C 10 10 0u C 32 10 4 + C 11 10 0u 5V D C R 20 10 K C 13 10 2 D 1 R E D L E D C 33 10 4 15 V D C C 15 10 4 5V D C P O W ER 5 V D C + 1 5V D C5V D C 5V D C S W 2 B U TT O N R 19 33 0 R A 4 J4 D C J ac k 1 2 5V D C R 16 15 M C 16 10 4 R 15 10 K 5V D C 5V D C P 1 R S 23 2 5 9 4 8 3 7 2 6 1 R E 0 U 1 M A X2 32 R 1I N 13 R 2I N 8 T1 IN 11 T2 IN 10 C 1+ 1 C 1- 3 C 2+ 4 C 2- 5 V + 2 V - 6 R 1O U T 12 R 2O U T 9 T1 O U T 14 T2 O U T 7 V C C 16 GND 15 + C 5 10 u + C 6 10 u 5V D C C 18 10 4 + C 7 10 u + C 8 10 u R C 6 R C 7 C O M M U N IC A TI O N R S 23 2 R 5 1M R E 0 C 19 10 4 R 6 10 K R B 0 C 38 10 4 J1 K ey M at rix 1 2 3 4 5 678910 R B 1 5V D C R B 1 R B 2 R B 3 R A 0 R B 4 R B 5 5V D C C 21 10 4 R B 6 R B 7 K EY M A TR IX R 17 10 K R B 2 C 23 10 4 S W 3 S W K E Y -S P S T 1 2 R B 3 C 24 10 4 R B 4 R 18 15 M5V D C R B 5 C 25 10 4 R B 6 C 26 10 4 R B 7 R D 0 C 27 10 4 -+ U 6B L M 32 4 5 6 7 4 11 R B 0 R D 1 C 39 10 4 R D 2 M C LR R 1 10 K R D 3 C 34 10 4 + C 4 10 u S W 1 R E S E T 5V D C R ES ET R D 4 R D 5 R D 6 Vss Vdd Vee RS R/W E D0 D1 D2 D3 D4 D5 D6 D7 LED+ LED- J2 LC D 2 0x 4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 R D 7 M C LR -+ U 5B L M 32 4 5 6 7 4 11 C 36 10 4 + C 37 47 0u R A 0 15 V D C 5V D C R 3 1M F 1 F U S E JP 1 C IR D IN _4 -P 1 2 34 R 4 10 K R A 1 R C 2 5V D C R 11 10 0 RD7 -+ U 6A LM 32 4 3 2 1 4 11 RD6 -+U 5A LM 32 4 3 2 1 4 11 R A 4 R 7 10 K RD5 15 V D C 5V D C R 8 3. 3K S EN S O R 2 RD4 RD3 C 28 10 4 D 2 Y E LL O W L E D RD2 R C 2 RD1 RD0 RC5 C 29 10 4 R C 3 RC4 15 V D C RC3 R C 4 R C 5 C 30 10 4 JP 2 C IR D IN _4 -P 1 2 34 R C 6 R C 7 EL EC TR O M A G N ET Q 1 N P N C 52 00 U 2 78 05 IN 1 O U T 3 GND 2 JP 3 C IR D IN _4 -P 1 2 34 15 V D C S EN S O R 1 R 9 10 K 15 V D C R 21 1K R 10 3. 3K C 35 10 4 U 3 78 15 IN 1 O U T 3 GND 2 C 12 10 2 U 4 78 09 IN 1 O U T 3 GND 2

Các file đính kèm theo tài liệu này:

  • pdftvefile_2013_09_09_3836256005_2267.pdf
Luận văn liên quan