Viết một đoạn lệnh khởi động nạp các thanh ghi TMOD,THx, TLx cho Timer0 đếm thời gian 500s, Timer1 đếm thời gian 50sViết một chương trình xuất chuỗi xung vuông đối xứng tần số 8Khz ra P1.0 sử dụng Timer1Viết một chương trình xuất chuỗi xung vuông đối xứng tần số 500Hz ra P1.1 sử dụng Timer0
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ
-*** -VI XỬ LÝ BÀI TẬP CHƯƠNG 5
GVHD : LƯU PHÚ
Trang 2
Mục lục
Câu 1: Viết một đoạn lệnh khởi động nạp các thanh ghi TMOD,THx, TLx cho Timer0 đếm thời gian 500µ s, Timer1 đếm thời gian 50µ s.
Trả lời:
Trang 3Câu 2: Viết một đoạn lệnh khởi động nạp các thanh ghi TMOD, THx, TLx, cho Timer0 và Timer1 theo các chức năng sau:
- Đếm xung ngoài đưa vào chân T0( P3.4) (timer 0)
- Tạo xung tần số 500hz (timer 1)
Trả lời:
Trang 5Câu 3: Viết một đoạn lệnh khởi động các thanh ghi Timer khi muốn đo độ rộng xung mức 1 có thời gian max=50ms.
MOV TMOD,#00000110BSETB TR0
Câu 4: Viết một chương trình xuất chuỗi xung vuông đối xứng tần số 8Khz ra P1.0 sử dụng Timer1
Trang 6Câu 5: Viết một chương trình xuất chuỗi xung vuông đối xứng tần
số 500Hz ra P1.1 sử dụng Timer0
Trả lời
Trang 7Câu 6: Kết hợp bài 4 và 5 thành 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.
Trang 8Câu 7: Viết một chương trình xuất chuỗi xung vuông tần số 2,5Khz ,chu kỳ nhiệm vụ 20% ra P1.0,sử dụng Timer0.Đánh giá sai số dựa theo đoạn chương trình đã viết
Trả lời
Trang 9Câu 8: Thiết kế một mạch tạo xung PWM(Pulse Width Modulation) chu kỳ T=10ms,chu kỳ nhiệm vụ thay đổi từ Tpmin=10%T đến Tpmax=90%T:
- Xuất tín hiệu ra P1.0 SW nhấn UP đặt ở P1.1: mỗi lần nhấn SW UP chu kỳ nhiệm vụ Tp tăng 5%T cho đến Tpmax
- SW nhấn DOWN đặt ở P1.2: mỗi lần nhấn SW DOWN chu kỳ nhiệm vụ Tp giảm 5% cho đến Tpmin.
Trang 12Câu 9: 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 như hình dưới đây, xuất chuỗi xung nối tiếp ra P1.0.
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
Trang 14Câu 10: Viết một chương trình nhận chuỗi xung mã hóa như bài 9,xuất ra P1.2 data đã giải mã.
Trang 16Câu 11: Thiết kế một mạch đếm sản phẩm có giá trị đếm max=10000,ngõ vào
từ mạch cảm biến tạo xung đếm có sẵn.Hiển thị giá trị đếm 4 digit bằng LED 7 đoạn.Cảnh báo khi số đếm vượt quá 10000
Trang 24Câu 12: Sử dụng Timer2 của MCU80C52 thiết kế một đồng hồ chỉ báo giờ,phút,giây.Hiện giờ trên LCD 16x2