A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 55 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. • Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU LOOP: MOV A,R0 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO MOV P0,A ;HIEN THI LCALL DELAY500MS INC R0 ;LAY DU LIEU KE TIEP CJNE R0,#8,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DATADISP: ;VUNG DU LIEU HIEN THI DB 01H,02H,04H,08H,10H,20H,40H,80H END • Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DUOI ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV A,#01H ;KHOI DONG GIA TRI BAN DAU LAP: MOV P0,A ;HIEN THI LCALL DELAY500MS RL A ;DICH BIT 1 SANG TRAI SJMP LAP ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 56 Biên soạn: Phạm Quang Trí CLR TF0 DJNZ R0,LOOP2 POP 00H RET END 1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng đuổi. • Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port1 tắt đuổi. • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại. • Bài 4: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port0 và Port1) sáng đuổi. • Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port3) tắt đuổi. • Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 5: Chương trình điều khiển 8 LED được nối với Port0 sáng dồn (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 57 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. • Cách 1: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DON VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#00H ;BIEN DEM SO TRANG THAI HIEN THI MOV DPTR,#DATADISP ;NAP DIA CHI VUNG DU LIEU LOOP: MOV A,R0 MOVC A,@A+DPTR ;LAY DU LIEU TU VUNG NHO MOV P0,A ;HIEN THI LCALL DELAY500MS INC R0 ;LAY DU LIEU KE TIEP CJNE R0,#36,LOOP ;KIEM TRA SO DU TRANG THAI HIEN THI SJMP MAIN ;QUAY LAI ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET ;**************************************************** DATADISP: ;VUNG DU LIEU HIEN THI DB 01H,02H,04H,08H,10H,20H,40H,80H DB 81H,82H,84H,88H,90H,0A0H,0C0H DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H DB 0E1H,0E2H,0E4H,0E8H,0F0H DB 0F1H,0F2H,0F4H,0F8H DB 0F9H,0FAH,0FCH DB 0FDH,0FEH DB 0FFH END • Cách 2: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG DON VA TAT HET ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN LAP2: MOV R2,00H MOV R3,#01H LAP1: MOV A,R3 ORL A,R1 MOV P0,A ;HIEN THI ACALL DELAY500MS A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 5: Chương trình điều khiển 8 LED được nối với Port0 sáng dồn (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 58 Biên soạn: Phạm Quang Trí MOV A,R3 ;DON LED RL A MOV R3,A DJNZ R2,LAP1 ;CHUA DON XONG? QUAY LAI DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP2 ;CHUA HOAN TAT CHU TRINH? QUAY LAI MOV P0,#00H ;HIEN THI TAT HET ACALL DELAY500MS SJMP MAIN ;QUAY LAI TU DAU KHI DA XONG ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 500MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0ECH MOV TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END 1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển 8 LED được nối với Port3 sáng dồn. • Bài 2: Hãy viết chương trình điều khiển 8 LED được nối với Port2 tắt dồn. • Bài 3: Hãy viết chương trình điều khiển tương tự như hai bài tập 1 và 2 nhưng là theo chiều ngược lại. • Bài 4: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port1 và Port3) sáng dồn. • Bài 5: Hãy viết chương trình điều khiển 16 LED được nối với hai Port (Port2 và Port0) tắt dồn. • Bài 6: Hãy viết chương trình điều khiển tương tự như hai bài tập 4 và 5 nhưng là theo chiều ngược lại. • Bài 7: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 6: Chương trình điều khiển 8 LED được nối với Port0 hoạt động bằng cách tổng hợp các phương pháp điều khiển đã thực tập (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 59 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED HOAT DONG TONG HOP ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H MAIN: ACALL CHOPTAT ACALL DEMLEN ACALL SANGDUOI ACALL SANGDAN ACALL SANGDON SJMP MAIN ;**************************************************** CHOPTAT: ;CTC SANG TAT MOV R7,#5 ;SO LAN THUC HIEN SOLAN1: MOV P0,#00H ;LED TAT LCALL DELAY500MS MOV P0,#0FFH ;LED SANG LCALL DELAY500MS DJNZ R7,SOLAN1 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI ;**************************************************** DEMLEN: ;CTC DEM LEN NHI PHAN MOV R7,#2 ;SO LAN THUC HIEN SOLAN2: MOV P0,#00H ;LED TAT LCALL DELAY500MS LAP1: INC P0 ;TANG NHI PHAN LCALL DELAY500MS MOV A,P0 CJNE A,#00H,LAP1 DJNZ R7,SOLAN2 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI ;**************************************************** SANGDUOI: ;CTC SANG DUOI MOV R7,#5 ;SO LAN THUC HIEN SOLAN3: MOV A,#01H ;KHOI DONG GIA TRI BAN DAU CLR C LAP2: MOV P0,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI JNC LAP2 ;QUAY LAI DJNZ R7,SOLAN3 ;GIAM SO LAN THUC HIEN BAI RET ;**************************************************** SANGDAN: ;CTC SANG DAN MOV R7,#5 ;SO LAN THUC HIEN SOLAN4: MOV A,#00H ;KHOI DONG GIA TRI BAN DAU LAP3: SETB C ;C=1 MOV P0,A ;HIEN THI LCALL DELAY500MS RLC A ;DICH BIT 1 SANG TRAI KEM C, SANG DAN JNC LAP3 ;CHUA SANG HET THI LAM TIEP DJNZ R7,SOLAN4 ;GIAM SO LAN THUC HIEN BAI RET ;QUAY LAI A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 6: Chương trình điều khiển 8 LED được nối với Port0 hoạt động bằng cách tổng hợp các phương pháp điều khiển đã thực tập (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử lý. 60 Biên soạn: Phạm Quang Trí ;**************************************************** SANGDON: ;CTC SANG DON MOV R7,#3 ;SO LAN THUC HIEN SOLAN5: MOV R0,#08H ;LUU SO LAN DICH BIT MOV R1,#00H ;TRANG THAI LED KHI DON LAN DAU TIEN LAP4: MOV R2,00H MOV R3,#01H LAP5: MOV A,R3 ORL A,R1 MOV P0,A ;HIEN THI ACALL DELAY500MS MOV A,R3 ;DON LED RL A MOV R3,A DJNZ R2,LAP5 ;CHUA DON XONG? QUAY LAI DEC R0 ;GIAM SO LAN DON LED SETB C ;THAY DOI TRANG THAI LED CHO LAN DON TIEP THEO MOV A,R1 RRC A MOV R1,A CJNE R0,#00H,LAP4 ;CHUA HOAN TAT CHU TRINH? QUAY LAI MOV P0,#00H ;HIEN THI TAT HET ACALL DELAY500MS DJNZ R7,SOLAN5 ;GIAM SO LAN THUC HIEN BAI RET ;**************************************************** DELAY500MS: ;CHUONG TRINH CON TAO THOI GIAN TRE 250MS PUSH 00H MOV R0,#100 MOV TMOD,#01H LOOP2: MOV TH0,#0F6H MOV TL0,#3CH SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,LOOP2 POP 00H RET END 1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình điều khiển sao cho phần sáng tắt của chương trình ví dụ trên được thực hiện 10 lần (các phần khác không thay đổi). • Bài 2: Hãy viết chương trình điều khiển sao cho phần đếm lên nhị phân chương trình ví dụ trên được thực hiện 10 lần (các phần khác không thay đổi). • Bài 3: Hãy viết chương trình điều khiển sao cho phần sáng dần và tắt dần của chương trình ví dụ trên được thực hiện 10 lần (các phần khác không thay đổi). • Bài 4: Hãy viết chương trình điều khiển sao cho phần sáng đuổi của chương trình ví dụ trên được thực hiện 10 lần (các phần khác không thay đổi). • Bài 5: Hãy viết chương trình điều khiển sao cho phần sáng dồn của chương trình ví dụ trên được thực hiện 10 lần (các phần khác không thay đổi). • Bài 6: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 7: Chương trình con điều khiển tạo thời gian trễ 200 µ µµ µ s, 20ms, 2s sử dụng Timer. Giáo trình thực hành vi xử lý. 61 Biên soạn: Phạm Quang Trí 1 Trình tự tiến hành thí nghiệm: 1.1 Kết nối thiết bị thí nghiệm. • Quá trình kết nối thiết bị thí nghiệm tương tự như Bài 1. 1.2 Vẽ lưu đồ giải thuật và viết chương trình điều khiển. • Ứng dụng chương trình tạo thời gian trễ 200 µ µµ µ s: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT: MOV P0,#00H ;LED TAT LCALL DELAY200US MOV P0,#0FFH ;LED SANG LCALL DELAY200US SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 200US ;*************************************************** ;TUONG DOI: TIME = [R0]*[R1]*T ;CHINH XAC: TIME = 2T+2T+1T+(1T+2T*[R1]+2T)*[R0]+2T+2T+2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY200US: PUSH 00H PUSH 01H MOV R0,#20 DEL: MOV R1,#10 DJNZ R1,$ DJNZ R0,DEL POP 01H POP 00H RET END • Ứng dụng chương trình tạo thời gian trễ 20ms: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT: MOV P0,#00H ;LED TAT LCALL DELAY20MS MOV P0,#0FFH ;LED SANG LCALL DELAY20MS SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 20MS ;*************************************************** ;TUONG DOI: TIME = (10000H-[TH0,TL0]H)*T ;CHINH XAC: TIME = 2T+2T+2T+1T+(10000H-[TH0,TL0]H)*T+1T+1T++2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY20MS: MOV TMOD,#01H MOV TH0,#0B1H MOV TL0,#0E0H SETB TR0 JNB TF0,$ A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 7: Chương trình con điều khiển tạo thời gian trễ 200 µ µµ µ s, 20ms, 2s sử dụng Timer. Giáo trình thực hành vi xử lý. 62 Biên soạn: Phạm Quang Trí CLR TR0 CLR TF0 RET END • Ứng dụng chương trình tạo thời gian trễ 2s: ;*************************************************** ;CHUONG TRINH DIEU KHIEN 8 LED SANG TAT ;*************************************************** ;KET NOI: 8 LED -> PORT0 (CO DEM DAO). ;*************************************************** ORG 00H CHOPTAT: MOV P0,#00H ;LED TAT LCALL DELAY2S MOV P0,#0FFH ;LED SANG LCALL DELAY2S SJMP CHOPTAT ;QUAY LAI ;*************************************************** ;CHUONG TRINH CON TAO THOI GIAN TRE ;*************************************************** ;TIME DELAY: 2S ;*************************************************** ;TUONG DOI: TIME = (10000H-[TH0,TL0]H)*[R0]*T ;CHINH XAC: TIME = 2T+1T+2T+(2T+2T+1T+(10000H-[TH0,TL0]H)*T+1T+1T+2T)*[R0]+2T+2T ;VOI T LA CHU KY MAY ;*************************************************** DELAY2S: PUSH 00H MOV R0,#200 MOV TMOD,#01H DEL: MOV TH0,#0D8H MOV TL0,#0F0H SETB TR0 JNB TF0,$ CLR TR0 CLR TF0 DJNZ R0,DEL POP 00H RET END 1.3 Thực hiện lần lượt các bước từ 1.3 đến 1.8 tương tự như bài trên. 2 Bài tập: • Bài 1: Hãy viết chương trình con điều khiển tạo thời gian trễ 250µs sử dụng Timer. • Bài 2: Hãy viết chương trình con điều khiển tạo thời gian trễ 1ms sử dụng Timer. • Bài 3: Hãy viết chương trình con điều khiển tạo thời gian trễ 100ms sử dụng Timer. • Bài 4: Hãy viết chương trình con điều khiển tạo thời gian trễ 1s sử dụng Timer. • Bài 5: Hãy viết chương trình con điều khiển tạo thời gian trễ 3s sử dụng Timer. • Bài 6: Hãy viết chương trình con điều khiển tạo thời gian trễ 10s sử dụng Timer. • Bài 7: Hãy viết chương trình con điều khiển tạo thời gian trễ 1 phút sử dụng Timer. • Bài 8: Hãy viết chương trình con điều khiển tạo thời gian trễ 1 giờ sử dụng Timer. • Bài 9: Sinh viên tự mình suy nghĩ và phát triển thêm chương trình. TRUNG TÂM THÍ NGHIỆM THỰC HÀNH ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP T T À À I I L L I I Ệ Ệ U U H H Ư Ư Ớ Ớ N N G G D D Ẫ Ẫ N N T T H H Í Í N N G G H H I I Ệ Ệ M M - - T T H H Ự Ự C C H H À À N N H H . DB 01H,02H,04H,08H,10H,20H,40H ,80 H DB 81 H ,82 H ,84 H ,88 H,90H,0A0H,0C0H DB 0C1H,0C2H,0C4H,0C8H,0D0H,0E0H DB 0E1H,0E2H,0E4H,0E8H,0F0H DB 0F1H,0F2H,0F4H,0F8H DB 0F9H,0FAH,0FCH DB 0FDH,0FEH. Bài 6: Hãy vi t chương trình con điều khiển tạo thời gian trễ 10s sử dụng Timer. • Bài 7: Hãy vi t chương trình con điều khiển tạo thời gian trễ 1 phút sử dụng Timer. • Bài 8: Hãy vi t chương. TL0,#78H SETB TR0 JNB TF0,$ CLR TR0 A. HỆ THỐNG ĐIỀU KHIỂN LED ĐƠN Bài 4: Chương trình điều khiển 8 LED được nối với Port0 sáng đuổi (có sử dụng bộ đệm đảo). Giáo trình thực hành vi xử