Thông báo

Collapse
No announcement yet.

giúp mình chỉnh cái code để điều khiển động cơ đảo chiều với!

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • giúp mình chỉnh cái code để điều khiển động cơ đảo chiều với!

    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
    Attached Files

  • #2
    trong lúc chờ đợi mình đã nghĩ ra 1 cách là dùng thanh ghi để lưu giá trị số lần nhấn phím đảo chiều và xét giá trị trong B là chẵn hay lẻ để quyết định quay theo chiều nào.
    Code:
    mtphim equ p2 			;ket noi voi ma tran ban phim
    maphim equ r5 			;luu tamma phim
    maquet equ 11111110B 		;FEH
    PWM1  BIT P1.6   		;BIT DIEU KHIEN THIET BI
    PWM2  BIT P1.7
    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 PWM1   		;TAT THIET BI
     	CLR PWM2		;TAT THIET BI
     	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
     	MOV B,#0		;DEM SO LAN DAO CHIEU
    MAIN:
    	CALL KEYPRES
    	CJNE A,#0FFH,MAIN1
    	SJMP MAIN
    MAIN1:
    	CJNE  A,#0,DAOCHIEU 	
     	MOV PWM_VALUE,#0 
     	SJMP MAIN
    DAOCHIEU:				;NEU NHAN PHIM 1 THI TANG GIA TRI THANH GHI B LEN 1
    	CJNE A,#1,CAP2
    	INC B
    	SJMP MAIN
    CAP2:
    	CJNE  A,#2,CAP3	
     	MOV PWM_VALUE,#25 		;NAP GIA TRI CHO PWM_VALUE LA 25 TUONG UNG VOI MUC CAO 25%
     	MOV A,PWM_VALUE
     	SJMP MAIN
    CAP3:
    	CJNE  A,#3,CAP4 	
     	MOV PWM_VALUE,#50 
     	MOV A,PWM_VALUE
     	SJMP MAIN
    CAP4:
    	CJNE  A,#4,CAP5 	
     	MOV PWM_VALUE,#75 
     	MOV A,PWM_VALUE
     	SJMP MAIN
    CAP5:
    	CJNE  A,#5,MAIN 	
     	MOV PWM_VALUE,#100 
     	MOV A,PWM_VALUE
     	SJMP MAIN
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     ;NGAT TIMER DUNG DE DIEU RONG XUNG
     ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
     T0_ISR:
         PUSH ACC
         MOV 7FH,C
         CLR TR0
         MOV TH0,#HIGH(-200)
         MOV TL0,#LOW(-200)
         SETB TR0
         MOV A,PWM_VALUE
    EN_PWM:
         INC R7           			;TANG BIEN DEM NGAT
         MOV A,R7
         CJNE A,PWM_VALUE,OFF_PULSE
         CLR PWM1           		;NEU DA DU THOI GIAN MUC CAO THI CLR CAC CHAN DK
         CLR PWM2
    OFF_PULSE:
         CJNE A,#100,EXIT_ISR      		;CHUA HET CHU KY DIEU XUNG THI THOAT NGAT
         JB B.0,THUAN
         SETB PWM1           		;TOI ROI THI MO THIET BI
         MOV R7,#0           		;RESET LAI BIEN DEM
         SJMP EXIT_ISR
         THUAN:
         SETB PWM2
         MOV R7,#0
    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
    nhưng sao khi chạy mô phỏng thì các xung không đẹp nhỉ. ai giúp thiết kế lại cái chỗ motor với!

    Comment


    • #3
      Bạn tìm trong thư viện mẫu của Protues, có phần thiết kế, băm xung điều khiển động cơ DC đó!

      Comment


      • #4
        nhưng mình thấy cái chương trình trong thư viện đó chỉ có tăng giảm tốc độ thôi, chứ không có đảo chiều động cơ
        Click image for larger version

Name:	bamxung.jpg
Views:	1
Size:	123.8 KB
ID:	1371755
        cái này phải không bạn. với cho mình hỏi các xem code của chương trình đó sao vậy nhỉ

        Comment


        • #5
          Nguyên văn bởi tranhungyt Xem bài viết
          nhưng mình thấy cái chương trình trong thư viện đó chỉ có tăng giảm tốc độ thôi, chứ không có đảo chiều động cơ
          [ATTACH=CONFIG]57747[/ATTACH]
          cái này phải không bạn. với cho mình hỏi các xem code của chương trình đó sao vậy nhỉ
          Cái động cơ của họ được nối tới 2 chân của VĐK, một chân họ giữ cố định ở một mức logic (ví dụ mức 0 chẳng hạn), chân còn lại thì băm xung để điều khiển tốc độ. Bây giờ muốn đảo chiều thì bạn chỉ cần viết code đổi mức logic đó (đổi mức 0 thành mức 1), chân kia vẫn để băm xung như bình thường.
          Muốn xem code thì bạn cho nó chạy mô phỏng rồi tạm dừng, code nguồn sẽ hiện lên. Bạn có thể xem hướng dẫn ở đây:

          Comment


          • #6
            Cảm ơn bạn nhiều!
            nhưng còn chỗ bạn nói đảo chiều thì có chút sai thì phải nhỉ? ở mấy mạch động cơ người ta thường dùng Transistor để điều khiển nguồn điện vào động cơ. nên nếu làm như bạn thì khi đảo mức chân cố định là H -> L thì Tran không hoạt động dẫn đến nguồn không đến động cơ. Mình dùng cách đổi chân băm xung với chân cố định mức cao cho nhau luôn. mạch của mình.
            Click image for larger version

Name:	Untitled.jpg
Views:	1
Size:	117.0 KB
ID:	1371863
            nhưng còn mấy vấn đề là dùng Tran như mạch của mình liệu có bảo về được cho động cơ và VĐK không? (mếu làm mạch thật).
            với khi mô phỏng thì mình thấy khi chân băm xung nối với Tran thì điện áp không ổn định, xung không được đẹp, ai biết lý do vì sao không?

            Comment


            • #7
              dùng IC nâng dòng là ổn,cần thì cho con tran sau nâng dòng nữa cho sung mãn (mạo phạm phát biểu câu.e k biết gì mong các bác chém nhẹ nha)
              [MENTION][/MENTION]TRẦN TĂNG CƯỜNG

              Comment

              Về tác giả

              Collapse

              tranhungyt Tìm hiểu thêm về tranhungyt

              Bài viết mới nhất

              Collapse

              • since0501
                Trả lời cho Pin Li-FePO4 (pin sắt) rất dể hỏng! Các biện pháp ngăn ngừa.
                bởi since0501
                Mình đào mộ xíu, cho mình hỏi là pin của bác vẫn ok chứ? Mình vừa đóng khối pin 16 cell 40135 thì khi chạy điện áp nó sụt so với khi nghỉ như video mình dẫn link, vậy cho mình hỏi là dung lượng pin sẽ tính khi áp nghỉ hay áp đang hoạt động, và pin sụt áp như vậy là bình thường hay pin kém?
                ht...
                hôm nay, 17:56
              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ hông dám làm thì chắc chắn sẽ mãi ko thể làm được đâu ạ. Nguồn xung dân dụng vài kw giờ rất nhìu ạ, sạc ô tô điện, máy hàn, lò vi sóng, âm ly... tùy chất lượng mà độ phức tạp sẽ khác nhau ạ. Và cái giá phải trả về kinh tế...
                Hôm qua, 13:11
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Sửa dạng này thì chuyên còn không dám chắc khộng cháy nổ với linh kiện bán ngoài chợ nói gì khộng chuyên .
                Hôm qua, 09:25
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Đúng rồi chọn mua theo tai . ca thì phải toàn dải nhạc thì chỉ cao và thấp thé nên loa ca thì nghe nhạc không hay và ngược lại .
                Muốn ca và nhạc đều hay thì phải dúng 2 giàn , còn nếu chỉ có 1 thì phải chỉnh sửa lại sao cho ca và nhạc đều được không quá dở ....
                Hôm qua, 09:10
              • Ng.Phuong.5
                Vấn đề in lỗ khoan ra pdf ở Orcad 9.2
                bởi Ng.Phuong.5
                Vấn đề cũ: khi in mạch ra pdf và bấm chọn Keep Drill Holes Open, in ra thì pdf trắng đen các lỗ chân linh kiện như nhau. Mặc dù có linh kiện phần Drill là 1mm, có linh kiện thì là 3mm. Cho em hỏi cách sửa phần này ở Orcad 9.2 với ạ.
                Mấy con...
                09-01-2025, 19:44
              • viettinh
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi viettinh
                Bác nói đúng quá. Cơ mà muốn mua hàng chính hãng, hàng thương hiệu mà tai lại hợp hàng tầu mới khổ chứ.
                Đang tính mua cái loa tầu nữa cột đằng sau loa này, Loa sony chỉ để hát nhép thôi, có dc k các bác ...
                09-01-2025, 18:12
              • nguyendinhvan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi nguyendinhvan
                Theo tôi thì khi hpj sản xuất ra cái loa đó, đã có nhiều chuyên gia kỹ thuật hiệu chỉnh, tính toán các phần tử kỹ lưỡng rồi.
                Bây giờ tính toán hiệu chỉnh lại cần có đội ngũ tương đương với nhà sản xuất.
                Cách đơn giản...
                09-01-2025, 00:04
              • mèomướp
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi mèomướp
                Dạ cháu có ý tốt muốn động viên chú ấy ngâm cứu khoa học thôi ạ. Về phần kiểm tra dao động thì chú ấy chưa biết thì sẽ tìm hiểu được là cần những gì ạ, chắc chắn là khi hướng dẫn phần ấy các cô chú nào đó sẽ lưu ý cần loại sò công suất ra tránh cháy nổ rồi ạ....
                08-01-2025, 19:02
              • tuyennhan
                Trả lời cho Sửa bộ nguồn DC 60V 45A
                bởi tuyennhan
                Chủ thớt hỏi có kiểm tra được dao động mà không cấp nguồn thì rõ trình ở mức nào mà mèo còn xúi ngâm cứu nữa ác vậy ....
                08-01-2025, 15:43
              • tuyennhan
                Trả lời cho Cần tư vấn cải thiện chất âm thanh loa SoNy.
                bởi tuyennhan
                Loa bass đấu trực tiếp không qua phân tần để thành loa toàn dải xem có thoát tiếng khộng , nếu không thoát cần phải sửa lại mạch cs hay âm sắc nếu đủ trình còn nếu thoát ca hay nhưng chưa vừa ý vì bass kém chăc thì đấu lại như cũ và đấu thêm loa mid treble bên ngoài .
                08-01-2025, 15:28
              Đang tải...
              X