Skip to content
Bạn đang ở: Trang chủ Đào tạo Đào tạo thạc sĩ Giáo trình & bài giảng Tin học Vật lý - Bài 6 Thực hành, bài tập lập trình
Tin học Vật lý - Bài 6 Thực hành, bài tập lập trình In Email
Viết bởi Vu Anh Minh   
Chủ nhật, 15 Tháng 3 2009 08:49

 Dưới đây là các bài tập chính trong phần thực hành môn học, mục đích các bài tập này là giúp làm quen với một số kỹ thuật thực nghiệm khi ghép nối máy tính với thiết bị ngoại vi, thu thập dự liệu từ ngoại vi qua các bộ cảm biến, điều khiển ngoại vi, phần xử lý tín hiệu số không phải là trọng tâm trong phần này.

DANH MỤC BÀI TẬP :
1/ GHÉP NỐI VÀO RA SONG SONG (PPI - 8255)
1.1/ Viết chương trình nhập một số thập phân từ bàn phím và viết giá trị mã nhị phân ra cổng A (C) của vi mạch vào ra 8255 trên card UIB, quan sát mã số nhị phân lối ra. (tạo mã GRAY)
1.2/ Viết chương trình đọc một số nhị phân từ cổng A (C) của vi mạch 8255 trên card UIB qua giao diện FRONT-END hiển thi ra dạng số thập phân, hexa, nhị phân trên màn hình máy tính
1.3/ Viết chương trình điều khiển đèn giao thông tại một ngã tư giả sử dùng 3 bít thấp trên cổng A để điều khiển một chiều và 3 bít cao điều khiển chiều còn lại.
1.4/ Viết chương trình tạo đèn quảng cáo
- đèn nhấp nháy
- đèn chạy
1.5/ Xây dựng chương trình đọc một số từ cổng A rồi quay các bít của số đó theo chiều kim đồng hồ và ngược lại.
1.6/ Viết chương trình điều khiển motơ bước : chiều quay, tốc độ

2/ LẬP TRÌNH ĐỊNH THỜI (PIT - 8254 )
2.1/ Viết chương trình đếm sự kiện ( số xung từ một công tắc chống rung anti-bounce)
2.2/ Viết chương trình tạo máy phát xung vuông với tần số nhập vào từ bàn phím.
2.3/ Viết chương trình đo khoảng thời gian ( công tắc chốn rung, xung vuông TTL)
2.4/ Viết chương trình đo tần số sóng vuông

3/ LẬP TRÌNH ĐIỀU KHIỂN ADC
3.1/ Viết chương trình thực hiện chức năng của một đồng hồ hiện số (Volt kế) trong giải điện áp đo từ 0 – 5V.
3.2/ Viết chương trình thực hiện một máy tự ký (RECORDER ) ghi tín hiệu từ 4 kênh ADC ra một tệp dữ liệu KQ.DAT và vẽ kết quả ra màn hình.
3.3/ Viết chương trình mô phỏng chức năng của một dao động ký nhớ in ra màn hình ( 1 kênh – 4 kênh )
 

Hình : Tạo một dao động ký điện tử


4/ LẬP TRÌNH VỚI DAC
4.1/ Viết chương trình cấp điện áp một chiều với giá trị nhập vào từ bàn phím
4.2/ Viết chương trình tạo tín hiệu dạng xung (răng cưa, vuông, sin, tam giác )

5/ Lập trình ghép nối nâng cao
5.1/ Viết chương trình ghép nối hai FRONT-END với nhau qua cổng A sử dụng MODE 1
5.2/ Viết chương trình ghép nối hai FRONT-END với nhau qua cổng A sử dụng MODE 2
5.3/ Viết chương trình đo thời gian phản ứng (PIT)
5.4/ Viết chương trình đo và hiển thị kết quả chuyển đổi ADC kết hợp với bộ đếm 0 định thời chính xác thời điểm đo
5.5/ Viết chương trình đo cảm ứng từ của một nam châm khi đi qua cuôn dây cảm ứng
5.6/ Viết chương trình đo nhiệt độ sử dụng cảm biến cặp nhiệt điện
5.7/ Viết chương trình đo cường độ sáng sử dụng cảm biến độ sáng
5.8/ Viết chương trình đo cảm ứng từ sử dụng cảm biến HALT
5.9/ Xây dưng hệ ROBOT đơn giản với mô tơ bước điều khiển bằng nguồn sáng
5.10/ Viết chương trình thu tín hiệu từ một máy phát chức năng cùng nhiễu, xây dựng thuật toán lọc nhiễu cửa sổ trượt, trung bình hoá đa kênh, ...
5.11/ Xây dựng chương trình điều khiển đóng hệ thống quạt gió, thay đổi tốc độ theo nhiệt độ môi trường, điều khiển bật tắt đèn theo độ sáng.
5.12/ Viết chương trình báo động khi nhiệt độ vượt quá một giới hạn nhất định.
5.13/ Viết chương trình điều khiển tốc độ quay của một mô tơ một chiều
5.14/ Viết chương trình thực hiện chức năng một ADC xấp xỉ liên tiếp với một bộ chuyển đổi DAC, so sánh, và PPI cổng A.
5.15/ Viết chương trình đo đặc trưng phóng điện của một tụ điện trong mạch RC.


Lập trình ghép nối nối tiếp với vi mạch 8251
Viết chương trình cho phép một máy tính truyền thông báo đến một máy tính khác qua giao diện RS232 (COM2)
Viết chương trình cho phép 2 máy tính nói chuyện với nhau qua giao diện RS232 (COM2)
Viết chương trình cho phép truyền tệp qua giao diện RS232
Lập trình với cổng máy in
Viết chương trình cho phép máy tính in ra các ký tự
Viết chương trình cho phép hai máy tính trao đổi thông tin với nhau qua giao diện máy in (LPT1)
 

XÂY DỰNG MỘT SỐ PHÉP ĐO THỰC NGHIỆM

I- PPI-8255A
Thiết lập cổng card ghép nối UIB :
- Sử dụng khoảng địa chỉ chuẩn 300h – 30Fh
- Ngắt chuẩn : ngắt 5
- Nguồn xung nhịp đặt ở 1MHz


1/ Đo điện áp kênh 1 : Nối một chiết áp chia thế với kênh 1 ADC : chạy chương trình đo điện áp, kiểm tra xem giá trị điện áp 5 V có đúng bắng 255 hay 4095 (UIB, ADC 12bít ) không.


2/ Đọc thế trong vòng lặp : Nối mạch điện như hình vẽ.
Chọn giá trị R = 10K, C = 220F
- Nặp cho tụ bằng công tắc S
- Bật công tắc để chuyển sang chế độ phóng
- Đo và vẽ đặc trưng đường phóng của tụ điện
Trên cơ sở giá trị đo được có thể xác định giá trị R*C = (tkết thúc - tbắt đầu )/ln(Vbắt đầu/Vkết thúc)
Với giá trị đo được với phép đo không dùng định thời của card, có thể xác định được thời gian trể tương ứng : tcalc = (tkết thúc - tbắt đầu )/9 = [R*C*ln(Vbắt đầu /Vkết thúc)]/9
Thay đổi hằng số phóng nạp bằng chiết áp R (thay đổi giá trị của R)


3/ Đo điện áp theo thời gian :
Thời gian trên 1000 ms của chương trình trong khi lặp nhiều khi không ổn định, Sử dụng nguồn xung nhịp nội của card ghép nối (1MHz) để định thời cho việc đọc điện áp trên kênh 1 của ADC . Trước khi tiến hành đo cần nhập thời gian giữa các phép đo liên tiếp.

4/ Đo nhiệt độ với điện trở NTC ( điện trở với hệ số nhiệt độ âm) để xác định nhiệt độ sau những khoảng thời gian xác định
Hình vẽ :


5/ Đo độ sáng với LDR ( điện trở phụ thuộc độ sáng ). đo độ sáng ( hay độ trong suốt ) của chất lỏng trong các phản ứng hoá hay hoá sinh.
Hình vẽ :


6/ Chương trình đo thế kích hoạt bằng xung : Xây dựng mạch điện như hình vẽ : bấm công tắc để khởi động quá trình đo, điện áp được đọc vào qua kênh 1, điện áp của 1 in ra màn hình mỗi khi bấm công tắc.


7/ Có thể tiến hành đo độ pH :
Khi có một giọt dung dịch rơi vào chất dung môi, độ pH được đo. Cổng transitor ánh sáng hoạt động như triger kích hoạt quá trình đo: Khi tia sáng bị che bởi giọt dung dịch, một xung dương được đưa vào bộ đếm.


8/ Đo trên 2 kênh :
Xây dựng mạch điện chia áp như sơ đồ :
Xây dựng chương trình đo : Mức thế trên kênh 1 và 2 được đọc sau khi bấm 1 phím. Mỗi phím bấm có 2 phép đo thế được tiến hành (V1 và V2) và in ra màn hình dưới dạng bảng hay 1 điểm trên đồ thị :
- Đo điện áp tại các điểm khác nhau trên mạch điện
- Với một giá trị R đã biết, dòng I , đặc trưng V có thể đo được với các trường hợp đèn, diod hay điện trở NTC.


9/ Đo thời gian :
Xây dựng mạch điện, Thời gian đến khi tia sáng chiếu lên phototransitor được đo theo ms :
- Xác định giai đoạn thời gian ( hay tốc độ trung bình ) mà một đối tượng vượt qua một cổng GATE.
10/ Đếm sự kiện : Xây dựng hệ thống theo sơ đồ : Số giọt dung dịch rơi qua một cổng sáng sẽ được đếm. ( giáo trình Tin học I phần II - phòng thí nghiệm máy tính – Trung tâm ITIMS)
11/ Đếm số sự kiện trong một giây : Nối lối ra TTL của một máy phát chức năng với lối vào bộ đếm. Tần số tín hiệu đo được sẽ được in liên tục ra màn hình
- Đo số vòng quay của một bánh xe : một đĩa với các lỗ được gắn vào bánh xe; Nhờ cổng ánh sáng, số vòng trong 1 giây có thể đo được.
12/ Hệ thống đo và điều khiển :
Điều hoàn không khí :
- Bật tắt lò sưởi trung tâm (bật/ tắt)
- Nồi đun (bật/tắt)
- Quạt (bật/tắt)
- Airgrid ( mở/đóng )
- Tưới nước (bật/tắt)
- Mở cửa sổ (mở/đóng)
- Dò phương (có/không)
Các quá trình tiếp diễn
- Nhiệt độ tới hạn
- áp suất tới hạn
- Nồng độ cồn tới hạn
Thang máy
- Chuyển động (lên/xuống)
- Gọi từ trong ra (lên/xuống)
- Gọi từ ngoài vào (lên/xuống)
- Đếm đến giá trị 0 (có/không)
- Cửa thang máy (mở/đóng)
- Hãm khẩn cấp
- Chuông (bật / tắt )
Cũng có thể xét tới các hệ thống điều khiển cho đèn giao thông, thiết bị gia đình như máy giặt, máy rửa chén, đun nước sôi, lò nướng, lò sưởi ...


1/ Viết chương trình đọc từ cổng A và viết ra màn hình
2/ ĐIều khiển số : Lưu ý khi sử dụng chức năng điều khiển :
- Lối ra chỉ có thể điều khiển lối vào tương tích TTL
- Nguồn cung cấp 5 V trên cáp chỉ chịu được cỡ 100mA (UIA) – 200mA(UIB)
Nói chung các lối ra này nên được dùng để mở đóng một transitor điều khiển một rơler.
Hình vẽ đèn LED sẽ bật sáng khi transitor dẫn điện.


Các ví dụ điều khiển là :
Đèn (bật/tắt)
điều khiển motor của hệ thống sưởi trung tâm (bật/tắt)
Quạt (bật/tắt)
Cungcấp gas (bật/tắt)
Đánh lửa điện (bật/tắt)
CUng cấp ôxy (bật/tắt)
Cung cấp nước (bật/tắt)
Lựa chọn điện áp
Lựa chọn tần số
Mô tơ bước (bật/tắt)


1/ Viết chương trình nhập một byte từ bàn phím và viết ra cổng C
2/ Hệ phản hồi (FEEDBACK) Trong các quá trình phản hồi : Việc kích hoạt hay tắt điều khiển bằng tiến trình đo trước nó.
Đọc một giá trị từ cổng A, tính toán sau đó viết ra cổng C (tất cả giá trị đọc được và tính được đều được viết ra màn hình)
3/ Viết chương trình tạo ra xung tần số cao và thấp trên lối ra của bộ đếm 2. ( có thể thấy qua đèn chỉ thị trên OUT-2 nhấp nháy)
Móc nối : Các lệnh đọc và viết ra cổng có thể được thực hiện tại những vị trí nhất định trong chương trình. Cũng có thể được ngắt ra trong chương trình hiện hành nhờ các ngắt và ưu tiên với một lệnh I/O. Trong các trường hợp như vậy cần đến tín hiệu móc nối. Tín hiệu móc nối chạy qua 5 đường cao nhất của cổng C (PC3-PC7).

Đo thời gian và tần số
Ta đã biết khi cổng Gate ở mức cao (=1) thì quá trình đếm được tiến hành, nếu lối vào ở mức thấp (=1) thì giá trị bộ đếm sẽ không thay đổi giá trị xung nhịp lối vào, để đo một khoảng thời gian người ta dùng tín hiệu giống như ..... với lối vào bộ đếm, nối tín hiệu với lối vào Cổng gate và nối nguồn xung (với chu kì xác định vào lối vào xung nhịp của bộ đếm). Hiệu số giữa giá trị bộ đếm trước và sau khi cổng Gate ở mức cao (1) chia cho tần số của xung nhịp lối vào cho ta giá trị thời gian.
Phép đo tần số:
Một đặc trưng của tín hiệu tuần hoàn là tần số của tín hiệu, có 2 cách để đo tần số:
Đo số xung trong 1 khoảng thơi gian đã biết , từ đó tính ra tần số(đo tần số cao).
Đo chu kì: đo 1 chu kì đơn và tính ra tần số (đo tần số thấp) .

Phép đo tần số cao:
Tín hiệu Sensor được nối vào xung nhịp của bộ đếm, bộ đếm thứ 2 được dùng như là bộ chia tần để điều chỉnh thời gian đo, lối ra của bộ chia tần nên lối vào cỏng vào Gate của bộ đếm, khi tín hiệu trên cổng Gate =1 thì bộ đếm bắt đầu đếm số xung. Khi tín hiệu trên cổng gate =0 thì bộ đếm dùng quá trình đếm và máy tính xử lý và tính ra tần số.


Phép đo tần số thấp:
Nếu tín hiệu Sensor có tần số thấp thì phép đo sẽ hiệu quả hơn trong một chu kì, tín hiệu từ sensor nên được gửi đến bộ chia 2 (VD: Triger JK), lối ra của Triger là 1 trong một chu kì độc lập với chu kỳ của tín hiệu, lối ra của Triger sẽ nối ra cổng gate của bộ đếm. Với một bộ chia tần dải đo có thể điều chỉnh, giải pháp tốt nhất là dùng nguồn xung nhịp cao nhất có thể và ghép nối tiếp các bộ đếm để chia tần.


Bài tập:
1. Viết chương trình sử dụng bộ đếm PIT 82C54 để hiển thị số xung đếm được khi đưa xung vào Clock 1.
 

2. Viết chương trình sử dụng bộ đếm PIT 82C54 để đo khoảng thời gian giữa 2 lần nhấn/nhả công tắc.

3. Viết chương trình sử dụng bộ đếm PIT 82C54 để đo tần số ( Máy phát 1Mhz nối với Clock 0, Clock 1 nối với External)

Hình : Khởi tạo bài tập đếm xung

Hình : Thân chương trình bài tập đếm xung

 

Hình:  Khởi tạo bài tập đo thời gian

Hình: Thân chương trình bài  tập đo thời gian

 

Hình : Khởi tạo bài tập đo tần số

 

Hình : Thân chương trình bài tập đo tần số 

Hình : Kiểm tra kết nối cổng DAC - 0x210 hoặc 0x310

Hình : Khai báo bài tập tạo dao động ký

Hình : Hàm tạo xung vuông dùng DAC

Hình : Hàm tạo xung tam giác

Hình : Hàm tạo sóng SIN

Hình : Chương trình chính gọi đến các hàm tạo dạng sóng dùng DAC

Hướng dẫn




 

Lần cập nhật cuối ( Thứ hai, 22 Tháng 3 2010 17:59 )
 

Trường ĐHBKHN

MEMS Group

Thống kê truy cập

mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHôm nay1917
mod_vvisit_counterHôm qua3547
mod_vvisit_counterTuần này26227
mod_vvisit_counterTháng này26227
mod_vvisit_counterTất cả2431413
Hiện có 156 khách Trực tuyến

Tiếng Việt (Việt Nam)   English (United States)


Thời khóa biểu
Lịch làm việc học viên ITIMS

Lịch công tác ĐHBKHN
Lịch công tác ĐHBKHN


Hội cựu học viên

Thăm dò ý kiến

Theo bạn, Việt Nam cần đầu tư vào lĩnh vực nào dưới đây để tăng tốc độ phát triển?
 
Bảng quảng cáo