Ộ
ƯƠ
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Ơ
I.
Ậ Ầ
1. BÀI T P YÊU C U
(cid:0) ươ ế ớ ắ ề ể ị ừ t 5 l n ầ 2 led d ch t trái sang ph i ả 3 ặ ạ ừ ả t ch Vi ị led d ch t ng trình đi u khi n 16 led đ n: ch p t ph i sang trái sau đó l p l ơ i
Ứ Ầ 2. PH N C NG
ƯƠ Ằ Ế NG TRÌNH VI T B NG ASM
3. CH
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
ƯƠ Ằ Ế NG TRÌNH VI T B NG C
4. CH
#include
void delay_ms(unsigned int t)
{
unsigned int x,y;
for(x=0;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)Ạ Ầ Ậ (cid:0) ế ươ ề ế ạ ừ ề Vi t ch ể
ng trình đi u khi n led 7 đo n đ m t 20 v 0 Ứ Ầ
2. PH N C NG ƯƠ Ằ Ế
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 ƯƠ Ằ Ế NG TRÌNH VI T B NG C #include void delay_ms(unsigned int t) { unsigned int x,y; for(x=0;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 Ậ Ầ ườ ọ ọ ố ớ ng,h tên sinh viên,mã s sinh viên,l p,môn h c giáo viên ng trình hiên th tên tr
ự ươ
ẫ ủ ế
Vi
ướ
h ị
t ch
ng d n nhóm th c hành trên 2 dòng c a LCD Ứ Ầ
2. PH N C NG ƯƠ Ằ Ế
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 ƯƠ Ằ Ế 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 { 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)+col1; 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); } } } Ậ Ầ Ậ ế ươ ậ Vi t ch ng trình ma tr n phím Ứ Ầ
2. PH N C NG ƯƠ Ằ Ế
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 ƯƠ Ằ Ế NG TRÌNH VI T B NG C #include void delay_ms(unsigned int t) { unsigned int x,y; for(x=0;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=IKEY; 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) Ậ Ầ ể ế ộ ể ầ ậ ộ ộ ị c theo yêu c u:nh n sw1 b t ch đ hi n th và ch y đ ng c .sw2 ơ ướ
ậ ơ
ơ ừ ạ
ộ ấ ậ ấ ơ ộ ị ấ
ề
Đi u khi n đ ng c b
ơ
ộ
đ ng c quay thu n ch m.nh n sw3 đ ng c quay ngh ch nhanh.nh n sw4 đ ng c d ng Ứ Ầ
2. PH N C NG ƯƠ Ằ Ế
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 ENDII.
1. BÀI T P YÊU C U
3. CH
4. CH
III.
1. BÀI T P YÊU C U
3. CH
4. CH
IV. MA TR N PHÍM
1. BÀI T P YÊU C U
3. CH
4. CH
V.
1. BÀI T P YÊU C U
3. CH