You are on page 1of 2

BÀI TẬP CHƯƠNG 7 VXL – INTERRUPT

Các bài tập sau đây sử dụng fosc=12Mhz trừ trường hợp có ghi chú cụ thể.

Mô phỏng bằng Proteus.

1. Viết một chương trình xuất 2 chuỗi xung vuông đối xứng tần số 8KHz ra P1.0, tần số 500Hz ra P1.1 sử
dụng ngắt Timer.

2. Viết một chương trình sử dụng ngắt tạo chuỗi xung vuông đối xứng tần số fs=20Hz điều chế sóng mang
là chuỗi xung vuông đối xứng tần số fc=38KHz như hình vẽ:
fs=20Hz

fc=38Khz

3. Viết một chương trình tạo chuỗi xung mã hóa 4 bit data (nhập từ nibble thấp P2)điều chế sóng mang tần số
38KHz trong thời gian mức1(tương tự như bài 2) như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.

0 1 0 1 sync.
Chu kỳ T=50ms,bit 1 Tp=3/4T,bit 0 Tp=1/4T,bit sync Tp=1/2T kết thúc chuỗi xung,Tp là thời gian mức 1,MSB
truyền trước.Ví dụ trong hình trên mạch mã hóa 4 bit 0101.

4. Thiết kế một mạch đo độ rộng xung có Tmax=10000µs.Hiển thị giá trị đo 4 digit bằng LED 7 đoạn,sử dụng
mạch hiển thị ví dụ 4.10.Hiển thị 1 LED báo tràn khi T>10000µs.
 Vẽ sơ đồ phần cứng
 Chương trình chính chuyển đổi số nhị phân sang BCD và hiển thị giá trị đo T
 Sử dụng Timer với bit GATE=1 đo độ rộng xung T
 Sử dụng ngắt ngoài đọc giá trị đo T.
 Sử dụng ngắt Timer với thời gian thích hợp để hiển thị giá trị đo độ rộng xung T

5. Viết một chương trình sử dụng ngắt Timer và cổng nối tiếp cứ mỗi 1s phát data nhập từ DIP-SW8 ở Port 2.
Cho fosc=11.059MHz,baurate=9600.

6. Viết một chương trình sử dụng ngắt cổng nối tiếp thu data và hiển thị data ra barled8 kết nối ở Port1.Cho
fosc=11.059MHz,baurate=9600.
 Mô phỏng bài 5 và 6 kết hợp.

7. Vẽ sơ đồ MCU8051 kết nối trực tiếp với ADC0808,nhận dạng kết thúc chuyển đổi AD bằng ngắt.
a). ADC chuyển đổi ngõ vào analog kênh 0,điện áp thay đổi từ 0-5VDC chỉnh bằng VR.Hiển thị giá trị đo
tới hàng mV ra LCD 16x2.Viết chương trình hiển thị giá trị điện áp đo được ra LCD
b). Mở rộng ADC chuyển đổi 8 kênh analog ngõ vào tương tự như câu (a).DIP-SW3 chọn kênh kết nối 3 bit
cao P3 tương ứng.Viết một chương trình hiển thị giá trị điện áp đo được và kênh chọn tương ứng ra LCD

Bài Tập Chương 7-VXL Lưu Phú Page 1


8. Lập lại bài tập 4.6 sử dụng ngắt khi có một trong bốn phím nhấn và thực hiện hiển thị ra barled8 tương ứng.

9. Trong ví dụ 6.10 tự động dò tìm baudrate,đoạn đầu chương trình chính có 2 lệnh:
JB P3.0,$ ;chờ cạnh lên xung START
JNB P3.0,$
chờ xuất hiện xung START mức 0.Để tránh MCU bị treo do chờ xung START,ta sẽ chuyển sang cách đo
xung START bằng ngắt ngoài.
Viết lại chương trình ví dụ 6.10 bằng cách đo xung START bằng ngắt ngoài.

10. Trong ví dụ 7.12,tính sai số thời gian của chuỗi xung phát lại so với chuỗi xung đo được.Cho biết cách
hiệu chỉnh để giảm tối thiểu sai số?Với đoạn chương trình T0_ISR ở ví dụ 7.12,độ rộng xung tối thiểu bằng
bao nhiêu mới có thể phát lại đúng được?

Bài Tập Chương 7-VXL Lưu Phú Page 2

You might also like