Bài tập Kỹ thuật vi điều khiển

Chia sẻ: Vuvanhuan Huan | Ngày: | Loại File: DOC | Số trang:15

0
656
lượt xem
322
download

Bài tập Kỹ thuật vi điều khiển

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu "Bài tập Kỹ thuật vi điều khiển" gồm 2 phần. Phần 1 gồm các bài tập căn bản về nhóm lệnh di chuyển dữ liệu, nhóm lệnh tính toán số học, nhóm lệnh tính toán logic,... Phần 2 gồm các bài tập ứng dụng cơ bản.

Chủ đề:
Lưu

Nội dung Text: Bài tập Kỹ thuật vi điều khiển

  1. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển MỤC LỤC Trang Lời giới thiệu 2 Phần 1. Bài tập căn bản 1. Nhóm lệnh di chuyển dữ liệu. 3 Bài tập 1.1 ... 1.3 3 Bài tập 1.4 ... 1.8 4 Bài tập 1.9 5 2. Nhóm lệnh tính toán số học. 5 Bài tập 2.1 ... 2.4 5 Bài tập 2.5 ... 2.9 6 3. Nhóm lệnh tính toán logic. 6 Bài tập 3.1 ... 3.7 7 Bài tập 3.8 ... 3.10 8 4. Nhóm lệnh rẽ nhánh chương trình. 8 Bài tập 4.1 ... 4.3 8 Bài tập 4.4 ... 4.8 9 Bài tập 4.9 ... 4.12 10 Bài tập 4.13 ... 4.14 11 5. Nhóm lệnh điều khiển biến logic. 11 Bài tập 5.1 ... 5.4 11 Phần 2. Bài tập ứng dụng cơ bản 12 Bài tập 1 ... 5 12 Bài tập 6 ...15 13 Tài liệu tham khảo. 14 Bạch Hưng Trường 1 06-10- 2003
  2. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển LỜI GIỚI THIỆU Quyển bài tập kỹ thuật Vi điều khiển này được biên soạn nhằm phục vụ cho việc giảng dạy bộ môn Vi điều khiển tại trường Đại học SPKT Hưng yên. Hệ thống các bài tập ở quyển sách này đã được tác giả biên soạn, tổng hợp sao cho phù hợp với nội dung đào tạo và giáo trình kỹ thuật Vi điều khiển. Vì vậy, khi giảng dạy môn này giáo viên cần liên hệ các bài tập cụ thể để áp dụng cho phù hợp với từng nội dung bài giảng. Mặc dầu đã rất cố gắng trong quá trình biên soạn nhưng do trình độ và thời gian còn bị hạn chế nên chắc chắn quyển sách này không tránh khỏi những thiếu sót, rất mong nhận được những ý kiến phê bình, đóng góp của bạn đọc. Bạch Hưng Trường 2 06-10- 2003
  3. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển Hưng yên, tháng 10 năm 2003 Tác giả PHẦN 1: BÀI TẬP CĂN BẢN 1. NHÓM LỆNH DI CHUYỂN DỮ LIỆU: BÀI TẬP 1.1: DỮ KIỆN YÊU CẦU - (30h) ở RAM nội = 40h. - Chuyển nội dung tại vị trí 30h ở RAM - (40h) ở RAM nội = 10h. nội vào R1 và A. - Chuyển nội dung tại vị trí 40h ở RAM nội vào B. - Chuyển nội dung 0CAh vào vị trí 40h ở RAM nội và cổng P2. - Xác định giá trị của các thanh ghi R1, A, B, và nội dung của RAM nội tai các vị trí trên (bảng Main Registers). - Xuất dữ liệu của A và B ra cổng P1 và P3. BÀI TẬP 1.2: DỮ KIỆN YÊU CẦU - (C) = 1; (P2) = 0C5h Xác định nội dung mới của P1 sau khi - (P1) = 35h thực hiện các lệnh sau: MOV P1.3, C MOV C, P2.3 MOV P1.2, C BÀI TẬP 1.3: DỮ KIỆN YÊU CẦU - (R0) = 11h; (R1) = 23h - Sao chép nội dung tại vị trí 11h ở Bạch Hưng Trường 3 06-10- 2003
  4. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển - (11h) ở RAM ngoài = 55h RAM ngoài vào A. - Sao chép nội dung 55h vào vị trí 23h của RAM ngoài. - Xuất dữ liệu của A ra cổng P0 bằng phương pháp định địa chỉ trực tiếp. BÀI TẬP 1.4: DỮ KIỆN YÊU CẦU (SP) = 05h; (DPTR) = 1123h Lưu nội dung 23h và 11h vào vị trí 06h và 07h của ngăn xếp ở RAM nội. Xác định nội dung mới của SP. BÀI TẬP 1.5: DỮ KIỆN YÊU CẦU - (SP) = 32h Xác định nội dung mới của DPTR và SP - (30h), (31h) và (32h) ở RAM sau khi thực hiện các lệnh sau: nội = 10h, 11h và 12h POP DPH POP DPL BÀI TẬP 1.6: DỮ KIỆN YÊU CẦU - (R1) = 30h; (A) = 0FFh - Hoán chuyển (A) và (30h) ở RAM - (30h) ở RAM nội = 0Fh nội. - Xác định nội dung mới của A và (30h). - Xuất (A) và (30h) ở RAM nội ra P1 và P3. BÀI TẬP 1.7: DỮ KIỆN YÊU CẦU - (R1) = 20h; (A) = 10001100b - Xác định (A), (20h) ở RAM nội sau - (20h) ở RAM nội = khi thực hiện lệnh: XCHD A, @R1 11100001b - Xuất (A) và (20h) ở RAM nội ra P0 và P2. Bạch Hưng Trường 4 06-10- 2003
  5. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển BÀI TẬP 1.8: (2A), (2B), (2C), (2D) và (2E) ở RAM nội là: 00h, 12h, 34h, 56h và 78h. Hãy xác định nội dung của bảng số liệu sau đây theo từng lệnh cho trước. (2A) (2B) (2C) (2D) (2E) (ACC) MOV A, 2Eh MOV 2Eh, 2Dh MOV 2Dh, 2Ch MOV 2Ch, 2Bh MOV 2Bh, #0 BÀI TẬP 1.9: (2A), (2B), (2C), (2D) và (2E) ở RAM nội là: 00h, 12h, 34h, 56h và 78h. Hãy xác định nội dung của bảng số liệu sau đây theo từng lệnh cho trước. (2A) (2B) (2C) (2D) (2E) (ACC) CLR A XCH A, 2Bh XCH A, 2Ch XCH A, 2Dh XCH A, 2Eh 2. NHÓM LỆNH TÍNH TOÁN SỐ HỌC BÀI TẬP 2.1: DỮ KIỆN YÊU CẦU - (A) = 0C3h Xác định nội dung của A, AC, CF, OV - (R1) = 0AAh sau khi thực hiện lệnh: ADD A, R1 BÀI TẬP 2.2: DỮ KIỆN YÊU CẦU - (A) = 0C3h Xác định nội dung của A, AC, CF, OV - (R1) = 0AAh sau khi thực hiện lệnh: ADDC A, R1 BÀI TẬP 2.3: Bạch Hưng Trường 5 06-10- 2003
  6. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển DỮ KIỆN YÊU CẦU (A) = 0C9h, (R2) = 54h Xác định nội dung của A, AC, CF, OV sau khi thực hiện lệnh: SUBB A, R2 BÀI TẬP 2.4: DỮ KIỆN YÊU CẦU (R0) = 7Eh. Xác định lại: (R0); (7Eh) và (7Fh) ở (7Eh) và (7Fh) ở RAM nội = RAM nội sau khi thực hiện các lệnh: 0FFh và 40h INC @R0 INC R0 INC @R0 BÀI TẬP 2.5: DỮ KIỆN YÊU CẦU (R0) = 7Fh. Xác định lại: (R0); (7Eh) và (7Fh) ở (7Eh) và (7Fh) ở RAM nội = RAM nội sau khi thực hiện các lệnh: 00h và 40h DEC @R0 DEC R0 DEC @R0 BÀI TẬP 2.6: DỮ KIỆN YÊU CẦU (DPTR) = 12FEh Xác định lại (DPTR) sau khi thực hiện các lệnh: INC DPTR INC DPTR INC DPTR BÀI TẬP 2.7: DỮ KIỆN YÊU CẦU (A) = 50h, (B) = 0A0h Xác định kết quả và (A), (B), (CF), (OV) sau khi thực hiện lệnh: MUL AB BÀI TẬP 2.8: DỮ KIỆN YÊU CẦU (A) = 0FBh, (B) = 12h Xác định kết quả và (A), (B), (CF), Bạch Hưng Trường 6 06-10- 2003
  7. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển (OV) sau khi thực hiện lệnh: DIV AB BÀI TẬP 2.9: DỮ KIỆN YÊU CẦU (A) = 56h, (R2) = 67h, Xác định (A) sau khi thực hiện các (CF) = 1 lệnh: ADDC A,R2 DA A 3. NHÓM LỆNH TÍNH TOÁN LOGIC BÀI TẬP 3.1: DỮ KIỆN YÊU CẦU (A) = 0C3H, (R0) = 55h Sau khi thực hiện lệnh: ANL A, R0 (A)= ? BÀI TẬP 3.2: DỮ KIỆN YÊU CẦU P1.0=1, ACC.7=1 và OV=0 Hãy thiết lập cờ nhớ bằng lệnh ANL BÀI TẬP 3.3: DỮ KIỆN YÊU CẦU (A) = 0C3H, (R0) = 55h Sau khi thực hiện lệnh: ORL A, R0 (A) = ? BÀI TẬP 3.4: DỮ KIỆN YÊU CẦU P1.0=1, ACC.7=1 và OV=0 Hãy thiết lập cờ nhớ bằng lệnh ORL BÀI TẬP 3.5: DỮ KIỆN YÊU CẦU Bạch Hưng Trường 7 06-10- 2003
  8. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển (A) = 0C3H, (R0) = 0AAh Sau khi thực hiện lệnh: XRL A, R0 (A) = ? BÀI TẬP 3.6: DỮ KIỆN YÊU CẦU (A) = 0C5h. Sau khi thực hiện lệnh: RL A (A) = ? BÀI TẬP 3.7: DỮ KIỆN YÊU CẦU (A) = 0C5h, (C) = 0. Sau khi thực hiện lệnh: RLC A (A) =?, (C) =? BÀI TẬP 3.8: DỮ KIỆN YÊU CẦU (A) = 0C5h. Sau khi thực hiện lệnh: RR A (A) =? BÀI TẬP 3.9: DỮ KIỆN YÊU CẦU (A) = 0C5h, (C) = 0. Sau khi thực hiện lệnh: RRC A (A) =?, (C) =? BÀI TẬP 3.10: DỮ KIỆN YÊU CẦU (A) = 0C5h Sau khi thực hiện lệnh: SWAP A (A) =? 4. NHÓM LỆNH RẼ NHÁNH CHƯƠNG TRÌNH BÀI TẬP 4.1: DỮ KIỆN YÊU CẦU (SP) = 07h. Nhãn CT_CON Sau khi thực hiện lệnh ACALL Bạch Hưng Trường 8 06-10- 2003
  9. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển được đặt tại vị trí 0345h trong CT_CON tại vị trí 0123h thì : (SP), bộ nhớ chương trình. (08h), (09h) và (PC) = ? BÀI TẬP 4.2: DỮ KIỆN YÊU CẦU (SP) = 07h. Nhãn CT_CON Sau khi thực hiện lệnh LCALL được đặt tại vị trí 1234h trong CT_CON tại vị trí 0123h thì: (SP), bộ nhớ chương trình. (08h), (09h) và (PC) =? BÀI TẬP 4.3: DỮ KIỆN YÊU CẦU (SP) = 0Bh. (0Ah) và (0Bh) -Xác định (SP) sau khi thực hiện lệnh trong RAM nội = 23h và 01h. RET - XĐ địa chỉ tiếp theo của chương trình. BÀI TẬP 4.4: DỮ KIỆN YÊU CẦU (SP) = 0Bh. (0Ah) và (0Bh) -Xác định (SP) sau khi thực hiện lệnh trong RAM nội = 23h và 01h. RETI Một ngắt được phát hiện - XĐ địa chỉ tiếp theo của chương trình. trong khi lệnh ở địa chỉ 0123h đang thực thi. BÀI TẬP 4.5: DỮ KIỆN YÊU CẦU (P1) = 0CAh. (A) = 56h. Xác định địa chỉ rẽ nhánh của chương trình, khi thực hiện các lệnh: JB P1.2, Label1 JB ACC.2, Lable2 BÀI TẬP 4.6: DỮ KIỆN YÊU CẦU (P1) = 0CAh. (A) = 56h. Xác định địa chỉ rẽ nhánh của chương trình, khi thực hiện các lệnh: JNB P1.3, Label1 JNB ACC.3, Lable2 Bạch Hưng Trường 9 06-10- 2003
  10. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển BÀI TẬP 4.7: DỮ KIỆN YÊU CẦU (A) = 56h Xác định địa chỉ rẽ nhánh của chương trình và nội dung mới của A, khi thực hiện các lệnh: JBC ACC.3, Label1 JBC ACC.2, Lable2 BÀI TẬP 4.8: DỮ KIỆN YÊU CẦU (C) = 0 Xác định địa chỉ rẽ nhánh của chương trình và nội dung mới của C, khi th ực hiện các lệnh: JC Label1 CPL C JC Lable2 BÀI TẬP 4.9: DỮ KIỆN YÊU CẦU (C) = 1. Xác định địa chỉ rẽ nhánh của chương trình và nội dung mới của C, khi th ực hiện các lệnh: JNC Label1 CPL C JNC Lable2 BÀI TẬP 4.10: DỮ KIỆN YÊU CẦU (A) = 01h. Xác định địa chỉ rẽ nhánh của chương trình và nội dung mới của A, khi thực hiện các lệnh: JZ Label1 DEC A JZ Lable2 BÀI TẬP 4.11: Bạch Hưng Trường 10 06-10- 2003
  11. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển DỮ KIỆN YÊU CẦU (A) = 00h. Xác định địa chỉ rẽ nhánh của chương trình và nội dung mới của A, khi thực hiện các lệnh: JNZ Label1 INC A JNZ Lable2 BÀI TẬP 4.12: DỮ KIỆN YÊU CẦU (40h), (50h) và (60h) ở RAM Xác định địa chỉ rẽ nhánh của chương nội = 01h, 70h và 15h. trình và nội dung mới tại các vị trí 40h, 50h và 60h ở RAM nội, khi thực hiện các lệnh: DJNZ 40h, Label1 DJNZ 50h, Label2 DJNZ 60h, Label3 BÀI TẬP 4.13: DỮ KIỆN YÊU CẦU Sử dụng các lệnh: Viết chương trình tạo ra 4 xung xuất MOV hiện ở bit 7 của cổng P1. Mỗi một CPL xung chiếm 3 chu kỳ máy DJNZ BÀI TẬP 4.14: DỮ KIỆN YÊU CẦU Sử dụng các lệnh SETB, CLR Viết chương trình tạo ra một xung có và NOP mức thấp trên bit 7 của cổng P2 chính xác 5 chu kỳ. 5. NHÓM LỆNH ĐIỀU KHIỂN BIẾN LOGIC BÀI TẬP 5.1: Bạch Hưng Trường 11 06-10- 2003
  12. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển DỮ KIỆN YÊU CẦU (P1) = 5Dh. Thực hiện lệnh xoá bit để có (P1) = 59h. BÀI TẬP 5.2: DỮ KIỆN YÊU CẦU (C) = 0, (P1) = 34h. Sử dụng lệnh thiết lập bit để có: (P1) = 35h, và (C) = 1. BÀI TẬP 5.3: DỮ KIỆN YÊU CẦU Cổng P1 vừa được ghi nội Sử dụng lệnh lấy bù bit để có: (P1) = dung 5Bh. 5Dh BÀI TẬP 5.4: DỮ KIỆN YÊU CẦU Sau khi thực hiện xong lệnh: CPL A (A) = 0A3h Xác định nội dung ban đầu của A. PHẦN 2: BÀI TẬP ỨNG DỤNG CƠ BẢN BÀI TẬP 1 : Kiểm tra cổng vào/ ra của Vi xử lý On-chip 8 bit. Yêu cầu: Viết chương trình xuất dữ liệu ra cổng P1 theo bảng số liệu sau: P1 11111110 11111100 11111000 11110000 11100000 11000000 10000000 00000000 Bạch Hưng Trường 12 06-10- 2003
  13. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển 11111111 Lưu ý: thực hiện hàm Wait với thời gian chính xác 1 s. BÀI TẬP 2 : Viết chương trình đìêu khiển hệ thống quảng cáo điện tử chạy tự động với nhiều chế độ hiển thị khác nhau. BÀI TẬP 3 : Viết chương trình đìêu khiển hệ thống quảng cáo điện tử hiển thị bán tự động với nhiều chế độ khác nhau (cho phép người sử dụng lựa chọn các chế độ hiển thị khác nhau). BÀI TẬP 4 : Viết chương trình đìêu khiển hiển thị LED 7 thanh (đếm tiến từ 0 đến F). Quá trình hiển thị được lặp đi lặp lại nhiều lần. BÀI TẬP 5 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo sơ đồ khối sau: Start Đếm Đếm tiến lùi BÀI TẬP 6 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo các yêu cầu sau: - Nếu INT0=0 thì hiển thị số 0, - Nếu INT0=1 thì hiển thị số 1. BÀI TẬP 7 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo các yêu cầu sau: - Nếu INT0=0 thì hiển thị số 0, INT0=1 thì hiển thị số 1. - Nếu INT1=0 thì hiển thị, INT1=1 thì không hiển thị. BÀI TẬP 8 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo các yêu cầu sau: - Nếu INT1=0 thì hiển thị, INT1=1 thì không hiển thị. - Nếu INT0=0 thì hiển th ị s ố 0 nh ấp nháy, INT0=1 thì hi ển th ị s ố 1 nhấp nháy. BÀI TẬP 9 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo các yêu cầu sau: Bạch Hưng Trường 13 06-10- 2003
  14. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển - Nếu INT1=0 thì hiển thị, INT1=1 thì không hiển thị. - Nếu INT0=0 thì đếm lùi, INT0=1 thì đếm tiến. - Chỉ thay đổi khi thực hiện xong việc gọi bảng số liệu. BÀI TẬP 10 : Viết chương trình đìêu khiển LED 7 thanh hiển thị theo các yêu cầu sau: - Nếu INT1=0 thì hiển thị, INT1=1 thì dừng. - Nếu INT0=0 thì đếm lùi, INT0=1 thì đếm tiến. - Chỉ thay đổi khi thực hiện xong việc gọi bảng số liệu. BÀI TẬP 11: Viết chương trình nạp giá trị hằng số (1) vào RAM ngoài tại vùng nhớ được định địa chỉ từ 1000h đến 10FFh . BÀI TẬP 12: Viết chương trình tạo tín hiệu âm thanh với tần số 500 Hz tại bit 0 của cổng P1. BÀI TẬP 13: Viết chương trình tạo tín hiệu âm thanh với tần số 500 Hz tại bit 0 của cổng P1, có giới hạn về mặt thời gian: âm thanh kéo dài 5 s sau đó tắt. BÀI TẬP 14: Viết chương trình để VXL thực hiện chức năng biến đổi A/D BÀI TẬP 15: Viết chương trình để VXL thực hiện chức năng biến đổi D/A TÀI LIỆU THAM KHẢO: 1. The 8051 Microcontroller - I. Scott Mackenzie. 2. The MCS*51 Microcontroller Family User’s Manuel - INTEL - 1994. 3. The AT89 Family of Microcontrollers - ATMEL - 2003. 4. Microcomputer Components – SAB80C515 8 bit Single-chip Microcontroller Family - SIEMENS - 1995. 5. Mikrocomputertechnik – Prof.Dr.Ing. G.Schnell – Fachhochschule Frankfurt am Main - 2001. 6. Kỹ thuật Vi xử lý - Văn Thế Minh - NXB GD - 1997. Bạch Hưng Trường 14 06-10- 2003
  15. ĐẠI HỌC SPKT HƯNG YÊN Bài tập: Kỹ thuật Vi Điều Khiển 7. Kỹ thuật VXL & lập trình ASSEMBLY cho hệ VXL - Đỗ Xuân Tiến – NXB KH&KT - 2001. 8. Họ VĐK 8051 - Tống Văn On & Hoàng Đức Hải - NXB LĐXH - 2001 Bạch Hưng Trường 15 06-10- 2003
Đồng bộ tài khoản