Báo Cáo Thực Hành Lập Trình Giao Tiếp Nút Nhấn và LED

Báo cáo thực hành vi xử lý về lập trình giao tiếp nút nhấn đơn và LED, cung cấp kiến thức cơ bản và ứng dụng thực tiễn trong điện tử.

Chuyên ngành

Vi Xử Lý

Người đăng

Ẩn danh

Thể loại

Báo cáo thực hành
51
6
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. BÀI THÍ NGHIỆM

1.1. BÀI THÍ NGHIỆM 1

1.2. BÀI THÍ NGHIỆM 2

1.3. BÀI THÍ NGHIỆM 3

Tóm tắt

I. Giới thiệu

Bài viết này cung cấp hướng dẫn chi tiết về lập trình nút nhấnLED sử dụng vi điều khiển 8051. Mục tiêu chính là giúp người đọc nắm vững cách thức giao tiếp LEDnút nhấn thông qua các port I/O. Việc hiểu rõ cách thức hoạt động của các thành phần này là rất quan trọng trong việc phát triển các ứng dụng điện tử cơ bản.

II. Lập trình nút nhấn

Phần này trình bày cách lập trình nút nhấn để điều khiển LED. Chương trình được viết để đọc trạng thái của nút nhấn nối với P1.0 và hiển thị trạng thái trên LED nối với P3.0. Cụ thể, khi nút nhấn được nhấn, LED sẽ sáng. Điều này được thực hiện thông qua mã lệnh đơn giản, cho phép người dùng dễ dàng theo dõi và kiểm tra hoạt động của hệ thống. Việc sử dụng cảm biến nút nhấn giúp tăng tính tương tác của thiết bị.

III. Điều khiển LED

Trong phần này, các phương pháp điều khiển LED được trình bày. Các chương trình con được viết để tạo ra hiệu ứng nhấp nháy cho LED. Việc sử dụng chương trình con để tạo độ trễ là rất quan trọng, giúp người dùng có thể điều chỉnh tần số nhấp nháy của LED. Các ví dụ cụ thể về việc thay đổi tần số nhấp nháy từ 1Hz đến 1KHz được đưa ra, giúp người đọc hiểu rõ hơn về cách thức hoạt động của LED trong các ứng dụng thực tế.

IV. Ứng dụng thực tế

Bài viết cũng đề cập đến các ứng dụng nút nhấnLED trong thực tế. Việc sử dụng mạch LEDnút nhấn trong các thiết bị điện tử như đèn báo, thiết bị điều khiển từ xa, và các ứng dụng trong tự động hóa là rất phổ biến. Các ví dụ cụ thể về việc sử dụng giao tiếp điện tử để điều khiển các thiết bị ngoại vi được trình bày, giúp người đọc có cái nhìn tổng quan về ứng dụng của kiến thức đã học.

V. Kết luận

Cuối cùng, bài viết khẳng định tầm quan trọng của việc nắm vững lập trình giao tiếp nút nhấnLED trong lĩnh vực điện tử. Kiến thức này không chỉ giúp người học có thể thực hiện các thí nghiệm cơ bản mà còn là nền tảng cho việc phát triển các ứng dụng phức tạp hơn trong tương lai. Việc thực hành và áp dụng kiến thức vào thực tế sẽ giúp củng cố kỹ năng và hiểu biết của người học.

01/02/2025
Báo cáo thực hành bộ môn vi xử ly bài thí nghiệm 1 lập trình giao tiếp nút nhấn đơn và led

Trích đoạn nội dung tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH  BÁO CÁO THỰC HÀNH Bộ môn: Vi Xử Lý Giảng viên hướng dẫn: Trịnh Vũ Đăng Nguyên LỚP DT01 - HK 213 NGÀY NỘP:. Thành viên: Họ và Tên MSSV Huỳnh Minh Trí 2012279 Trần Ngọc Phương Linh 1913962 Ngưu Tuấn Giang 1913192 Nguyễn Văn Cao Minh 1914172 TIEU LUAN MOI download : skknchat123@gmail.com moi nhat MỤC LỤC BÀI THÍ NGHIỆM 1. 11 BÀI THÍ NGHIỆM 2.31 BÀI THÍ NGHIỆM 3. 48 Department of Electronics Page | 0 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Thí nghiệm 1 Mục tiêu: Nắm được cách thức điều khiển trực tiếp ngoại vi thông qua các port I/O của 8051.

Yêu cầu: Viết chương trình thực hiện việc đọc liên tục trạng thái của nút nhấn được nối đến P1.0 và hiển thị ra led được nối tại chân P3. Code: ORG 2000H LOOP: MOV C, P1.0, C SJMP LOOP END Kiểm tra:  Biên dịch và thực thi chương trình để kiểm tra kết quả thực hiện. - Kết quả thực hiện: Khi nhấn Switch nối với P1.0, đèn của Port 1. Câu hỏi:  Thử giải thích tại sao có đến 2 led cùng bị tác động khi nhấn hoặc thả nút? - Giải thích: Khi nhấn Switch nối với Port 1.0 thì Cathode của LED nối với P1.0 được nối Ground, trong khi đó Anode được nối với VCC nên LED sáng.

LED nối với P3.0 sáng là do chương trình trên đã được nạp vào vi xử lý.  Tổng kết xem các bit nào của 2 port có thể được dùng trong thí nghiệm trên và giải thích tại sao? Các bit từ 0 đến 7 của 2 port có thể được dùng vì đây là các cổng nhập xuất nhập 8 bit tính từ bit 0 đến 7. Department of Electronics Page | 1 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Thí nghiệm 2 Mục tiêu: Nắm được cách viết chương trình con để tạo trễ Yêu cầu:  Viết chương trình con Delay1s. Code: Delay1s: MOV R5, #8 Loop1: MOV R6, #250 Loop2: MOV R7, #250 DJNZ R7, $ DJNZ R6, Loop2 DJNZ R5, Loop1 RET  Dùng chương trình con đã viết để chớp/tắt LED đơn gắn vào P1.0 sau mỗi khoảng thời gian 1s.

Code: ORG 2000H LAP: CPL P1.0 LCALL Delay1sIns SJMP LAP Delay1sIns: MOV R5, #8 L1: MOV R6, #250 L2: MOV R7, #250 DJNZ R7, $ DJNZ R6, L2 Department of Electronics Page | 4 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED DJNZ R5, L1 RET END  Thay đổi chương trình con để tần số chớp tắt bây giờ là 1KHz. Code: Delay: MOV R5, #2 LOOP: MOV R6, 250 DJNZ R6, $ DJNZ R5, LOOP RET Kiểm tra:  Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát LED đơn. Câu hỏi:  Thời gian 1s được tạo ra như thế nào? Tính toán chính xác dựa trên chương trình đã viết.  Sai số nhỏ nhất có thể đạt được so với yêu cầu là bao nhiêu?  Khi tần số chớp tắt là 1Khz, cho biết hiện tượng trên LED? - LED chớp nháy rất nhanh và hầu như không thể nhận biết hiện tượng chớp nháy.

 Sinh viên thay đổi chương trình con như thế nào để được tần số chớp tắt là 1KHz? - Tần số chớp tắt fled = 1 KHz => Tled = 1/1000 = 10-3 s  Tạo chương trình tạo trễ 10-3/2=0.0005s Department of Electronics Page | 3 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Thí nghiệm 3 Mục tiêu: Nắm được cách viết chương trình con để tạo trễ Yêu cầu: Viết chương trình tạo 2 xung vuông 0.5Hz (chu kỳ nhiệm vụ 50%) và 1Hz (chu kỳ nhiệm vụ là 30%) lần lượt trên chân P1. Code: ORG 2000H LOOP1: CPL P1.0 ACALL DelayP1-0 SJMP LOOP1 LOOP2: SETB P1.1 ACALL DelayP1-1muccao CLR P1.1 ACALL DelayP1-1mucthap SJMP LOOP2 END DelayP1-0: MOV R5, #11 L1: MOV R6, #200 L2: MOV R7, #209 DJNZ R7, $ DJNZ R6, L2 DJNZ R5, L1 RET DelayP1-1mucthap: MOV R5, #5 L1: MOV R6, #255 L2: MOV R7, #254 DJNZ R7, $ Department of Electronics Page | 4 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED DJNZ R6, L2 DJNZ R5, L1 RET DelayP1-1muccao: MOV R5, #3 L1: MOV R6, #220 L2: MOV R7, #210 DJNZ R7, $ DJNZ R6, L2 DJNZ R5, L1 RET Kiểm tra:  Biên dịch, thực thi và kiểm tra chương trình bằng cách sử dụng oscilloscope để kiểm tra. Câu hỏi:  Vẽ giản đồ của 2 xung? Các chương trình con viết với thời gian trễ là bao nhiêu?  Tại mỗi thời gian tạo trễ, các chân P1.1 xuất tín hiệu như thế nào?  Để tạo các xung thỏa yêu cầu bài toán, các vòng trễ được viết như thế nào? - Xung 0.5 Hz có chu kỳ là 2 s; nhiệm vụ 50% nên thời gian xung ở mức 1 = thời gian ở mức 0 = 1 s. Sử dụng 1 lệnh DJNZ mất 2MCs = 2 * 12/11.

- Xung 1 Hz có chu kỳ là 1 s; nhiệm vụ 30% nên thời gian xung ở mức 1 = 0.3s => Lặp 138250 lần = thời gian xung ở mức 0 = 0. Department of Electronics Page | 5 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Thí nghiệm 4 Mục tiêu: Nắm được cách hiển thị bar LED và tạo hiệu ứng Yêu cầu: Viết chương trình tạo hiệu ứng quay LED: các LED đơn trên BARLED1 sáng lần lượt từ trái sang phải sau thời gian 1s và lặp lại. Sử dụng chương trình con Delay1s đã viết ở trên. Code: ORG 2000H MOV A, #01111111b LAP: MOV P1, A LCALL Delay1sIns RR A SJMP LAP Delay1sIns: MOV R5, #8 L1: MOV R6, #250 L2: MOV R7, #250 DJNZ R7, $ DJNZ R6, L2 DJNZ R5, L1 RET END Kiểm tra:  Biên dịch, thực thi và kiểm tra chương trình bằng cách quan sát hiệu ứng trên bar led.

Department of Electronics Page | 6 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Câu hỏi:  Led ngoài cùng bên trái kết nối đến MSB (most significant bit) hay LSB (less significant bit) của port 1? - LED ngoài cùng bên trái kết nối với MSB của port 1 Thí nghiệm 5 Mục tiêu: Nắm được cách thức giao tiếp với ngoại vi LED 7 đoạn Yêu cầu:  Viết chương trình con DisplayLed hiển thị lên LED 7 đoạn số 0 giá trị chứa trong thanh ghi R0 DislayLed: MOV A, #0E0H ADD A, R0 MOV DPTR, #0000H MOVX @DPTR, A RET  Viết chương trình chính hiển thị số 9 lên LED 7 đoạn số 0 bằng cách cho R0 bằng 9 và gọi chương trình con DisplayLed. ORG 2000H Main: MOV R0, #9 LCALL DislayLed DislayLed: MOV A, #0E0H ADD A, R0 MOV DPTR, #0000H Department of Electronics Page | 7 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED MOVX @DPTR, A RET END Thí nghiệm 6 Mục tiêu: Kết hợp được các chương trình con: chương trình con tạo trễ và chương trình con hiển thị LED 7 đoạn. Yêu cầu: Viết chương trình hiển thị lên LED 7 đoạn số 0 các con số từ 0 đến 9 sau các khoảng thời gian 1s sử dụng 2 chương trình con ở Thí nghiệm 2 và Thí nghiệm 5. ORG 2000H MAIN: MOV R0, #0 LOOP: LCALL DislayLed Delay1s INC R0 CJNE R0, #10, LOOP SJMP MAIN DislayLed: MOV A, #0E0H ADD A, R0 MOV DPTR, #000H MOVX @DPTR, A RET Delay1s: MOV R7, #8 Department of Electronics Page | 8 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED LOOP1: MOV R6, #250 LOOP2: MOV R5, #250 DJNZ R5, $ DJNZ R6, LOOP2 DJNZ R7, LOOP1 END Kiểm tra:  Biên dịch, thực thi và kiểm tra chương trình.

Câu hỏi:  Vẽ lưu đồ giải thuật của chương trình. Thí nghiệm 7 Mục tiêu: Nắm được cách thức dùng chương trình con và giao tiếp LED 7 đoạn. Yêu cầu: Viết chương trình con DisplayLED xuất giá trị chứa trong thanh ghi R0 lên LED 7 đoạn có số thứ tự chứa trong thanh ghi R1. Trong đó: R0 nằm trong tầm từ 0-9 và R1 trong tầm từ 0-3.

Sau đó dùng chương trình con này viết chương trình chính xuất giá trị 1 lên LED 7 đoạn số 3. Department of Electronics Page | 9 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED DisplayLED: MOV B, R1 ;Đưa nội dung trong R1 vào B INC B ;Tăng giá trị B lên 1 MOV A, #11110111B ;bit số 3 bằng 0, bốn bit cao bằng 1 SHIFTLOOP: RL A ;Xoay trái A DJNZ B, SHIFTLOOP ;Giảm B đi 1, nếu khác 0 thì quay lại nhãn SHIFTLOOP ANL A, #0F0H ;Nếu B giảm đến 0 thì giữ lại 4 bit cao của A PUSH ACC ;Cất Acc vào StackPointer MOV A, R0 ;Đưa nội dung R0 vào A ANL A, #0FH ;Giữ lại 4 bit thấp của A MOV R0, A ;Đua nội dung của A vào R0 POP ACC ;Lấy lại A từ StackPointer ORL A, R0 ;Cộng A với R0, rồi lưu vào A RET Kiểm tra:  Biên dịch, thực thi và kiểm tra chương trình Câu hỏi: Viết lại chương trình trên bằng phương pháp sử dụng bảng tra (Lookup table). DisplayLED: MOV DPTR,#TABLE MOV A,R1 MOVC A,@A+DPTR ADD A,R0 MOV DPTR, #0000H MOVX @DPTR, A RET TABLE: DB 0E0H, 0D0H, 0B0H,70H Department of Electronics Page | 10 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.com moi nhat BÀI THÍ NGHIỆM 1 LẬP TRÌNH GIAO TIẾP NÚT NHẤN ĐƠN VÀ LED Thí nghiệm 8 Mục tiêu:  Nắm được phương pháp quét LED 7 đoạn. Yêu cầu: Viết chương trình hiển thị số 1 lên LED7 đoạn 0, sau đó 1s hiển thị số 2 lên LED 7 đoạn 1, sau đó 1s hiển thị số 3 lên LED 7 đoạn 2, sau đó 1s hiển thị số 4 lên LED 7 đoạn 3.

Quá trình này lặp đi lặp lại. Việc hiển thị này sử dụng chương trình con DisplayLED đã viết ở trên. Giảm thời gian trễ xuống còn 100 ms. Quan sát hiện tượng.

Tính toán thời gian trễ sao cho không còn thấy LED nhấp nháy và áp dụng vào chương trình Giảm thời gian trễ xuống bằng 0 (không sử dụng hàm delay). Quan sát hiện tượng. ORG 0000H MAIN: MOV R1,#0 MOV R0,#1 LOOP: LCALL DisplayLED LCALL Delay1s INC R1 INC R0 CJNE R1,#4,LOOP SJMP MAIN DisplayLED: MOV DPTR,#TABLE MOV A,R1 Department of Electronics Page | 11 Microprocessor Laboratory TIEU LUAN MOI download : skknchat123@gmail.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Hướng Dẫn Lập Trình Giao Tiếp Nút Nhấn và LED là tài liệu hướng dẫn chi tiết về cách lập trình để điều khiển LED thông qua nút nhấn, một kỹ năng cơ bản nhưng quan trọng trong lĩnh vực điện tử và lập trình nhúng. Tài liệu này giúp người đọc hiểu rõ nguyên lý hoạt động, cách kết nối phần cứng, và viết mã lệnh để thực hiện chức năng mong muốn. Đây là nền tảng vững chắc cho những ai muốn phát triển kỹ năng lập trình nhúng hoặc tạo ra các dự án IoT đơn giản.

Nếu bạn quan tâm đến việc áp dụng kiến thức lập trình vào các dự án thực tế, hãy khám phá thêm Khoá luận tốt nghiệp xây dựng ứng dụng game android đoán lá bài đã chọn. Tài liệu này sẽ mở rộng hiểu biết của bạn về cách xây dựng ứng dụng di động, một lĩnh vực đang phát triển mạnh mẽ hiện nay.