Báo cáo Rhực hành vi xử lý

I. LED ĐƠN 1. BÀI TẬP YÊU CẦU • Viết chương trình điều khiển 16 led đơn: chớp tắt 5 lần  2 led dịch từ trái sang phải  3 led dịch từ phải sang trái sau đó lặp lại 2. PHẦN CỨNG

docx31 trang | Chia sẻ: duongneo | Lượt xem: 1634 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Báo cáo Rhực hành vi xử lý, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA ĐIỆN šÌ› BÁO CÁO THỰC HÀNH VI XỬ LÝ GIÁO VIÊN HƯỚNG DẪN:NGUYỄN TRUNG DŨNG SINH VIÊN :NGUYỄN VĂN ĐÀN MSSV :13065631 LỚP :DKTD_NHÓM 3 LED ĐƠN BÀI TẬP YÊU CẦU VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 16 LED ĐƠN: CHỚP TẮT 5 LẦN à 2 LED DỊCH TỪ TRÁI SANG PHẢI à 3 LED DỊCH TỪ PHẢI SANG TRÁI SAU ĐÓ LẶP LẠI PHẦN CỨNG CHƯƠNG TRÌNH VIẾT BẰNG ASM ORG 0000H MAIN: MOV P1,#0FFH MOV P0,#0FFH MOV R0,#5 CT: LCALL CHOPTAT DJNZ R0,CT LCALL DICHLED JMP MAIN CHOPTAT: MOV P1,#00H MOV P0,#00H LCALL DELAY MOV P1,#0FFH MOV P0,#0FFH LCALL DELAY RET DICHLED: MOV A,#0FFH LA1: CLR C RRC A MOV P1,A LCALL DELAY JB P1.6,LA1 LA2: RR A MOV P1,A LCALL DELAY JB P1.0,LA2 MOV P1,#0FEH MOV P0,#07FH LCALL DELAY MOV A,#07FH MOV P1,#0FFH LA3: CLR C RRC A MOV P0,A LCALL DELAY JB P0.6,LA3 LA4: RR A MOV P0,A LCALL DELAY JB P0.0,LA4 MOV P0,#0FEH CALL DELAY MOV P0,#0FFH LCALL DELAY MOV A,#0FFH LA5: CLR C RLC A MOV P0,A CALL DELAY JB P0.2,LA5 LA6: RL A MOV P0,A CALL DELAY JB P0.7,LA6 MOV P0,#3FH MOV P1,#0FEH CALL DELAY MOV P0,#7FH MOV P1,#0FCH CALL DELAY MOV P0,#0FFH MOV P1,#0F8H MOV A,#0F8H LA7: RL A MOV P1,A CALL DELAY JB P1.7,LA7 MOV P1,#3FH CALL DELAY MOV P1,#7FH CALL DELAY MOV P1,#0FFH CALL DELAY RET DELAY: MOV R5,#200 SC3: MOV R6,#250 DJNZ R6,$ DJNZ R5,SC3 RET END CHƯƠNG TRÌNH VIẾT BẰNG C #INCLUDE VOID DELAY_MS(UNSIGNED INT T) { UNSIGNED INT X,Y; FOR(X=0;X<T;X++) { FOR(Y=0;Y<123;Y++);} } VOID MAIN() { WHILE(1) { UNSIGNED INT A,B,C; FOR(A=0;A<5;A++) { P1=0X00; P0=0X00; DELAY_MS(500); P0=0XFF; P1=0XFF; DELAY_MS(500); } P0=0XFF; P1=0XEFF; FOR(B=0;B<2;B++) { P1=P1>>1; DELAY_MS(500); } FOR(B=0;B<6;B++) { P1=(P1>>1)|0X80; DELAY_MS(500); } P1=0XFE; P0=0X7F; DELAY_MS(500); P1=0XFF; P0=0X3F; DELAY_MS(500); FOR(C=0;C<8;C++) { P0=(P0>>1)|0X80; DELAY_MS(500); } FOR(C=0;C<3;C++) { P0=P0<<1; DELAY_MS(500); } FOR(C=0;C<5;C++) { P0=(P0<<1)|0X01; DELAY_MS(500); } P0=0X3F; P1=0XFE; DELAY_MS(500); P0=0X7F; P1=0XFC; DELAY_MS(500); P0=0XFF; P1=0XF8; DELAY_MS(500); FOR(B=0;B<8;B++) { P1=(P1<<1)|0X01; DELAY_MS(500); } } } 7 SEG (LED 7 ĐOẠN) BÀI TẬP YÊU CẦU VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN LED 7 ĐOẠN ĐẾM TỪ 20 VỀ 0 PHẦN CỨNG CHƯƠNG TRÌNH VIẾT BẰNG ASM ORG 0000H MAIN: MOV DPTR,#MALED MOV R0,#20 MOV R4,#170 LAP1: MOV P0,#0FFH MOV B,#10 MOV A,R0 DIV AB MOV P2,#0BFH MOVC A,@A+DPTR MOV P0,A CALL QUET MOV P0,#0FFH MOV A,B MOV P2,#7FH MOVC A,@A+DPTR MOV P0,A CALL QUET MOV P0,#0FFH MOV P2,#0DFH MOV P0,#0C0H CALL QUET MOV P0,#0FFH MOV P2,#0EFH MOV P0,#0C0H CALL QUET MOV P0,#0FFH MOV P2,#0F7H MOV P0,#0C0H CALL QUET MOV P0,#0FFH MOV P2,#0FBH MOV P0,#0C0H CALL QUET MOV P0,#0FFH MOV P2,#0FDH MOV P0,#0C0H CALL QUET MOV P0,#0FFH MOV P2,#0FEH MOV P0,#0C0H CALL QUET DJNZ R4,LAP1 DEC R0 MOV R4,#170 CJNE R0,#-1,LAP1 SJMP MAIN MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H QUET: MOV R2,#20 CV: MOV R3,#15 DJNZ R3,$ DJNZ R2,CV RET END CHƯƠNG TRÌNH VIẾT BẰNG C #INCLUDE VOID DELAY_MS(UNSIGNED INT T) { UNSIGNED INT X,Y; FOR(X=0;X<T;X++) { FOR(Y=0;Y<100;Y++);} } UNSIGNED CHAR CODE A[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; VOID MAIN() { CHAR DEM,CHUC,DV; UNSIGNED INT I; WHILE(1) { FOR(DEM=20;DEM>=0;DEM--) { CHUC=DEM/10; DV=DEM%10; FOR(I=0;I<130;I++) { P0=0XFF; P2=0X7F; P0=A[DV]; DELAY_MS(1); P0=0XFF; P2=0XBF; P0=A[CHUC]; DELAY_MS(1); P0=0XFF; P2=0XDF; P0=A[0]; DELAY_MS(1); P0=0XFF; P2=0XEF; P0=A[0]; DELAY_MS(1); P0=0XFF; P2=0XF7; P0=A[0]; DELAY_MS(1); P0=0XFF; P2=0XFB; P0=A[0]; DELAY_MS(1); P0=0XFF; P2=0XFD; P0=A[0]; DELAY_MS(1); P0=0XFF; P2=0XFE; P0=A[0]; DELAY_MS(1); } } } } PHẦN LCD BÀI TẬP YÊU CẦU VIẾT CHƯƠNG TRÌNH HIÊN THỊ TÊN TRƯỜNG,HỌ TÊN SINH VIÊN,Mà SỐ SINH VIÊN,LỚP,MÔN HỌC GIÁO VIÊN HƯỚNG DẪN NHÓM THỰC HÀNH TRÊN 2 DÒNG CỦA LCD PHẦN CỨNG CHƯƠNG TRÌNH VIẾT BẰNG ASM ORG 0000H MAIN: MOV A,#38H LCALL GUILENH MOV A,#0CH CALL GUILENH MOV A,#01H CALL GUILENH MOV A,#80H CALL GUILENH MOV DPTR,#DONG1 CALL HIENTHI CALL DELAY MOV A,#0C0H LCALL GUILENH LCALL DELAY MOV DPTR,#DONG2 CALL HIENTHI CALL DELAY MOV A,#01H CALL GUILENH MOV A,#80H CALL GUILENH MOV DPTR,#DONG3 CALL HIENTHI CALL DELAY MOV A,#0C0H CALL GUILENH MOV DPTR,#DONG4 CALL HIENTHI CALL DELAY MOV A,#01H CALL GUILENH MOV A,#80H CALL GUILENH MOV DPTR,#DONG5 CALL HIENTHI CALL DELAY MOV A,#0C0H CALL GUILENH MOV DPTR,#DONG6 CALL HIENTHI CALL DELAY SJMP MAIN GUILENH: MOV P3,A CLR P2.0 CLR P2.1 SETB P2.2 CLR P2.2 LCALL WAIT RET DULIEU: MOV P3,A SETB P2.0 CLR P2.1 SETB P2.2 CLR P2.2 LCALL WAIT RET MOV R0,#0 HIENTHI: MOV A,R0 MOVC A,@A+DPTR CALL DULIEU MOV A,#06H LCALL GUILENH LCALL DELAY INC R0 CJNE R0,#15,HIENTHI MOV R0,#0 LCALL DELAY RET DELAY: MOV R4,#200 DC: MOV R5,#200 DJNZ R5,$ DJNZ R4,DC WAIT: MOV TMOD,#10H MOV TH1,#HIGH(-2000) MOV TL1,#LOW(-2000) CLR TF1 SETB TR1 JNB TF1,$ CLR TR1 CLR TF1 RET DONG1: DB " TRUONG DAI HOC " DONG2: DB " CN TP HCM " DONG3: DB " NGUYEN VAN DAN" DONG4: DB " MSSV:13095631" DONG5: DB " TH VI XU LY" DONG6: DB " NHOM 3 " END CHƯƠNG TRÌNH VIẾT BẰNG C #INCLUDE SBIT RS=P2^0; SBIT RW=P2^1; SBIT EN=P2^2; #DEFINE LCD_DATA P0 VOID DELAY_MS(UNSIGNED INT T) { UNSIGNED INT X,Y; FOR(X=0;X<T;X++) { FOR(Y=0;Y<100;Y++);} } VOID LCD_CMD(UNSIGNED CHAR CMD) { RS=0; RW=0; LCD_DATA=CMD; EN=0; EN=1; DELAY_MS(2); } VOID LCD_CH(CHAR C) { RS=1; RW=0; LCD_DATA=C; EN=0; EN=1; DELAY_MS(1); } VOID LCD_OUT(CHAR *ST) { UNSIGNED CHAR I=0; WHILE(ST[I]!=0) { LCD_CH(ST[I]); I++; } } VOID LCD_OUT_CH(UNSIGNED CHAR ROW,UNSIGNED CHAR COL,CHAR *ST) { UNSIGNED CHAR CMD; CMD=(ROW==1?0X80:0XC0)+COL-1; LCD_CMD(CMD); LCD_OUT(ST); } VOID LCD_INT() { LCD_CMD(0X30); DELAY_MS(5); LCD_CMD(0X30); DELAY_MS(1); LCD_CMD(0X38); LCD_CMD(0X01); LCD_CMD(0X0C); } VOID MAIN() { INT I; LCD_INT(); LCD_OUT_CH(1,2,"TRUONG DAI HOC"); DELAY_MS(2000); LCD_CMD(0XC0); LCD_OUT_CH(2,5,"CN_TP_HCM"); DELAY_MS(2000); LCD_CMD(0X01); LCD_CMD(0X80); LCD_OUT_CH(1,1,"NGUYEN VAN DAN") ; DELAY_MS(2000); LCD_CMD(0XC0); LCD_OUT_CH(2,1,"MSSV:13095631"); DELAY_MS(2000); LCD_CMD(0X01); LCD_CMD(0X80); LCD_OUT_CH(1,1,"THUC HANH VI XU LY NHOM 3"); DELAY_MS(2000); LCD_CMD(0XC0); LCD_OUT_CH(2,1,"GVHD:NGUYEN TRUNG DUNG"); WHILE(1) { FOR(I=0;I<16;I++) { DELAY_MS(500); LCD_CMD(0X18); } FOR(I=0;I<18;I++) { DELAY_MS(500); LCD_CMD(0X1C); } } } MA TRẬN PHÍM BÀI TẬP YÊU CẦU VIẾT CHƯƠNG TRÌNH MA TRẬN PHÍM PHẦN CỨNG CHƯƠNG TRÌNH VIẾT BẰNG ASM ORG 0000H MAIN: MOV R0,#0 MOV A,#0 MOV R1,#0 LAP2: MOV P1,0FFH LCALL QUETPHIM HIENTHI: MOV R0,A MOV DPTR,#MALED LAP1: MOV P0,#0FFH MOV B,#100 DIV AB MOV P2,#0FDH MOVC A,@A+DPTR MOV P0,A LCALL QUET MOV P0,#0FFH MOV A,B MOV B,#10 DIV AB MOV P2,#0FBH MOVC A,@A+DPTR MOV P0,A LCALL QUET MOV A,B MOV P0,#0FFH MOV P2,#0F7H MOVC A,@A+DPTR MOV P0,A LCALL QUET MOV P0,#0FFH MOV P2,#0FEH MOV P0,#0C0H LCALL QUET MOV A,R0 SJMP LAP2 QUETPHIM: MOV P1,#0FEH JNB P1.4,XOA JNB P1.5,KEY1 JNB P1.6,KEY2 JNB P1.7,KEY3 MOV P1,#0FDH JNB P1.4,KEY4 JNB P1.5,KEY5 JNB P1.6,KEY6 JNB P1.7,KEY7 MOV P1,#0FBH JNB P1.4,KEY8 JNB P1.5,KEY9 JNB P1.6,CONG JNB P1.7,TRU MOV P1,#0F7H JNB P1.4,BANG JNB P1.5,ANS RET XOA: JNB P1.4,$ MOV A,#0 JMP LAP2 RET KEY1: JNB P1.5,$ MOV A,#1 JMP HIENTHI RET KEY2: JNB P1.6,$ MOV A,#2 JMP HIENTHI RET KEY3: JNB P1.7,$ MOV A,#3 JMP HIENTHI RET KEY4: JNB P1.4,$ MOV A,#4 JMP HIENTHI RET KEY5: JNB P1.5,$ MOV A,#5 JMP HIENTHI RET KEY6: JNB P1.6,$ MOV A,#6 JMP HIENTHI RET KEY7: JNB P1.7,$ MOV A,#7 JMP HIENTHI RET KEY8: JNB P1.4,$ MOV A,#8 JMP HIENTHI RET KEY9: JNB P1.5,$ MOV A,#9 JMP HIENTHI RET CONG: JNB P1.6,$ MOV R5,A MOV R1,#1 JMP LAP2 RET TRU: JNB P1.7,$ MOV R5,A MOV R1,#2 RET BANG: JNB P1.4,$ CJNE R1,#0,KQ1 JMP LAP2 KQ1: CJNE R1,#1,KQ2 ADD A,R5 MOV R6,A MOV R1,#0 JMP HIENTHI KQ2: MOV 00H,A MOV A,R5 SUBB A,00H MOV R1,#0 MOV R6,A JMP HIENTHI RET ANS: JNB P1.5,$ MOV A,R6 RET QUET: MOV R2,#15 CV: MOV R3,#15 DJNZ R3,$ DJNZ R2,CV RET MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END CHƯƠNG TRÌNH VIẾT BẰNG C #INCLUDE VOID DELAY_MS(UNSIGNED INT T) { UNSIGNED INT X,Y; FOR(X=0;X<T;X++) { FOR(Y=0;Y<123;Y++);} } SBIT HANG1=P1^0; SBIT HANG2=P1^1; SBIT HANG3=P1^2; SBIT HANG4=P1^3; SBIT COL1=P1^4; SBIT COL2=P1^5; SBIT COL3=P1^6; SBIT COL4=P1^7; VOID MAIN() { UNSIGNED CHAR KEY=0; INT CHUC,DV,I,TRAM,A,ANS; UNSIGNED CHAR CODE A[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; P1=0XFF; P0=0XFF; WHILE (1) { HANG1=0; IF(COL1==0) { WHILE(COL1==0) { } KEY=0; } IF(COL2==0) { WHILE(COL2==0) { } KEY=1; } IF(COL3==0) { WHILE(COL3==0) { } KEY=2; } IF(COL4==0) { WHILE(COL4==0) { } KEY=3; } HANG1=1; HANG2=0; IF(COL1==0) { WHILE(COL1==0) { } KEY=4; } IF(COL2==0) { WHILE(COL2==0) { } KEY=5; } IF(COL3==0) { WHILE(COL3==0) { } KEY=6; } IF(COL4==0) { WHILE(COL4==0) { } KEY=7; } HANG2=1; HANG3=0; IF(COL1==0) { WHILE(COL1==0) { } KEY=8; } IF(COL2==0) { WHILE(COL2==0) { } KEY=9; } IF(COL3==0) { WHILE(COL3==0) { } A=1; I=KEY; } IF(COL4==0) { WHILE(COL4==0) { } A=2; I=KEY; } HANG3=1; HANG4=0; IF(COL1==0) { WHILE(COL1==0) { } IF(A==1) { KEY=KEY+I; ANS=KEY; A=0; } IF(A==2) { KEY=I-KEY; A=0; ANS=KEY; } } IF(COL2==0) { WHILE(COL2==0) { } KEY=ANS; } IF(COL3==0) { WHILE(COL3==0) { } KEY=KEY+1; A=0; } HANG4=1; TRAM=KEY/100; CHUC=(KEY%100)/10; DV=(KEY%100)%10; P2=0XFB; P0=A[CHUC]; DELAY_MS(5); P0=0XFF; P2=0XF7; P0=A[DV]; DELAY_MS(5); P0=0XFF; P2=0XFD; P0=A[TRAM]; DELAY_MS(5); P0=0XFF; P2=0XFE; P0=0XC0; DELAY_MS(5); } } ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC (STEP MOTOR) BÀI TẬP YÊU CẦU ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC THEO YÊU CẦU:NHẤN SW1 BẬT CHẾ ĐỘ HIỂN THỊ VÀ CHẠY ĐỘNG CƠ.SW2 ĐỘNG CƠ QUAY THUẬN CHẬM.NHẤN SW3 ĐỘNG CƠ QUAY NGHỊCH NHANH.NHẤN SW4 ĐỘNG CƠ DỪNG PHẦN CỨNG CHƯƠNG TRÌNH VIẾT BẰNG ASM ORG 0000H MAIN: MOV R7,#0 MOV R0,#0 MOV P3,#00H MOV R6,#0 MOV P1,#0FFH LAP1: CJNE R7,#1,LAP4 CALL HIENTHI LAP4:MOV P1,#0FFH JNB P1.4,ON CJNE R0,#0,LAP2 JMP LAP1 LAP2: CALL HIENTHI JNB P1.5,THUAN JNB P1.6,NGHICH JNB P1.7,STOP JMP LAP2 THUAN: MOV R6,#0 MOV P3,#00H MOV 05H,#10 MOV R3,#80 CALL DELAY XX01:MOV 01H,#2 XX1:MOV 00H,#230 TD1:SETB C MOV A,#00H X1:RLC A MOV P3,A LCALL DELAY JNB P3.3,X1 CALL HIENTHI DJNZ 00H,TD1 DJNZ 01H,XX1 INC R6 DJNZ 05H,XX01 JMP LAP1 ON: MOV R1,#1 JMP LAP2 NGHICH: MOV R6,#0 MOV P3,#00H MOV 04H,#30 MOV R3,#20 CALL DELAY XX02: MOV 03H,#2 XX2: MOV 02H,#230 TD2:CLR C CALL HIENTHI MOV A,#10H X12:RRC A MOV P3,A CALL DELAY JNC X12 CALL HIENTHI DJNZ 02H,TD2 DJNZ 03H,XX2 INC R6 DJNZ 04H,XX02 JMP TD2 STOP: MOV P3,#00H MOV R0,#0 MOV R7,#1 JMP LAP1 DELAY: JNB P1.4,ON JNB P1.5,THUAN JNB P1.6,NGHICH JNB P1.7,STOP DJNZ R3,DELAY RET HIENTHI: MOV DPTR,#MALED MOV P0,#0FFH MOV B,#10 MOV A,R6 DIV AB MOV P2,#0FBH MOVC A,@A+DPTR MOV P0,A CALL QUET MOV P0,#0FFH MOV A,B MOV P2,#0F7H MOVC A,@A+DPTR MOV P0,A CALL QUET RET QUET: MOV R4,#100 CV: MOV R5,#100 DJNZ R5,$ DJNZ R4,CV RET MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END