code viết bằng ASM, mình viết xong phần điều khiển tốc độ động cơ bằng bàn phím ma trận, nhưng giờ mình muốn có thêm đảo chiều động cơ. ai biết thì gợi ý dùm mình nhé. Tks
Code:
mtphim equ p2 ;ket noi voi ma tran ban phim maphim equ r5 ;luu tamma phim maquet equ 11111110B ;FEH PWM BIT P1.6 ;BIT DIEU KHIEN THIET BI PWM_VALUE EQU 31H ORG 0000H LJMP SETUP ;KHOI DONG CHUONG TRINH KHI CAP NGUON ORG 000BH LJMP T0_ISR ;NGAT TIMER 0 DIEU RONG XUNG ORG 0030H SETUP: SETB EA ;CHO PHEP NGAT TOAN CUC SETB ET0 ;CHO PHEP NGAT TIMER 0 CLR PWM ;TAT THIET BI CLR P1.1 ;CHAN CON LAI NOI VOI DONG CO MOV TMOD,#11H MOV TH0,#HIGH(-200) ;TA 12MHZ => 200us x 100% = 20000us = 20ms MOV TL0,#LOW(-200) ;CHU KY DIEU XUNG MOV PWM_VALUE,#0 ;MAC DINH GIA TRI PWM = 0 MOV R7,#0 ;BIEN XAC DINH SO LAN NGAT TIMER SETB TR0 ;CHO PHEP TIMER HOAT DONG MAIN: CALL KEYPRES CJNE A,#0FFH,MAIN1 SJMP MAIN MAIN1: CJNE A,#0,CAP1 MOV PWM_VALUE,#0 SJMP MAIN CAP1: CJNE A,#1,CAP2 MOV PWM_VALUE,#5 MOV A,PWM_VALUE SJMP MAIN CAP2: CJNE A,#2,CAP3 MOV PWM_VALUE,#10 MOV A,PWM_VALUE SJMP MAIN CAP3: CJNE A,#3,CAP4 MOV PWM_VALUE,#20 MOV A,PWM_VALUE SJMP MAIN CAP4: CJNE A,#4,CAP5 MOV PWM_VALUE,#25 MOV A,PWM_VALUE SJMP MAIN CAP5: CJNE A,#5,CAP6 MOV PWM_VALUE,#50 MOV A,PWM_VALUE SJMP MAIN CAP6: CJNE A,#6,CAP7 MOV PWM_VALUE,#75 MOV A,PWM_VALUE SJMP MAIN CAP7: CJNE A,#7,main MOV PWM_VALUE,#100 MOV A,PWM_VALUE SJMP MAIN T0_ISR: ;NGAT TIMER DUNG DE DIEU RONG XUNG PUSH ACC MOV 7FH,C CLR TR0 MOV TH0,#HIGH(-200) MOV TL0,#LOW(-200) SETB TR0 MOV A,PWM_VALUE CJNE A,#0,EN_PWM ;DO DAY XUNG <> 0 THI CHO DIEU XUNG JMP EXIT_ISR ;DO DAY XUNG = 0 THI THOAT KHOI THU TUC NGAT EN_PWM: INC R7 ;TANG BIEN DEM NGAT MOV A,R7 CJNE A,PWM_VALUE,OFF_PULSE ;DU THOI GIAN DAY XUNG THI TAT THIET BI CLR PWM ;TAT THIET BI OFF_PULSE: CJNE A,#100,EXIT_ISR ;CHUA HET CHU KY DIEU XUNG THI THOAT NGAT SETB PWM ;TOI ROI THI MO THIET BI MOV R7,#0 ;RESET LAI BIEN DEM EXIT_ISR: MOV C,7FH POP ACC RETI ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;CHUONG TRINH CON CHONG RUNG PHIM ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx KEYPRES: MOV R4,#5 ;NHAP SO DEM 5 LAN keypres1 : LCALL KEY ;NEU CO PHIM NHAN THI CO C = 1 JC PN1 ;KIEM TRA TIEP NEU C = 1 RET ;NEU K CO PHIM NHAN THI C = 0 PN1: DJNZ R4,KEYPRES1 ;QUAY VE LAP LAI CHONG NAY PUSH ACC ;CAT NOI DUNG PHIM TRONG A KEYPRES2: MOV R4,#5 ;NHAP SO DEM 5 LAN CHO NHA PHIM KEYPRES3: LCALL KEY ;CO PHIM NHAN HAY K JC KEYPRES2 ;CO THI KIEM TRA LAI DJNZ R4,KEYPRES3 ;KHONG THI LAP LAI 5 LAN DE DAM BAO POP ACC ;KHOI PHUC LAI GIA TRI CHO A RET ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ;CHUONG TRINH CON QUET PHIM ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx key: MOV R3,#MAQUET ;BAT DAU VOI COT SO 0(FEH) MOV R6,#4 ;SU DUNG R6 LAM BO DEM mov MAPHIM,#00 KEY1: MOV MTPHIM,R3 ;XUAT MA QUET RA COT MOV A,MTPHIM ;DOC LAI PORT1 DE XU LY TIEP THEO ANL A,#0F0H ;XOA 4 BIT THAP LA HANG CJNE A,#0F0H,KEY2 ;co nhan fim thi nhay MOV A,R3 RL A ;XOAY DE CHUYEN DEN COT KE MOV R3,A MOV A,MAPHIM ;CHUYEN MA PHIM SANG COT KE ADD A,#4 MOV MAPHIM,A DJNZ R6,KEY1 CLR C ;CLR C NEU NHU K CO PHIM NHAN MOV A,#0FFH ;THOAT VOI MA TRONG A = FFH RET KEY2: SWAP A KEY4: RRC A ;XOAY SANG PHAI TIM BIT 0 JNC KEY3 ;NHAY NEU (C)=0 INC MAPHIM ;TANG MA PHIM LEN COT KE SJMP KEY4 ;TIEP TUC CHO DEN KHI (C)=0 KEY3: MOV A,MAPHIM SETB C RET END
Comment