Thông báo

Collapse
No announcement yet.

Gặp rắc ở động cơ bước và led 7 đoạn

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

  • Gặp rắc ở động cơ bước và led 7 đoạn

    Em là thành viên mới. Rất mong được sự chỉ giáo của các huynh.
    Đây là chương trình điều khiển 2 động cơ bước. Trong đó có 3 led 7 đoạn dùng để đếm sản phẩm từ 000 đến 999.
    Chương trình có 2 chế độ điều khiển:
    -Chạy đường thẳng
    -Chạy đường tròn (Mâm quay)
    *Ở chế độ đường thẳng:
    Nhấn chạy thì ĐC sẽ chạy cho đến khi nào đụng S2 thì sẽ về home, sau đó Sản Phẩm sẽ tăng lên 1 (Hiện ở led 7), cứ như vậy cho đến khi bằng 999 thì báo titit không thể tăng được nữa.
    *Ở chế độ đường tròn:
    Cũng như vậy nhưng CTHT là S3.

    Hỏi:
    Ở chế độ đường tròn thì sản phẩm tăng đến 29 thì chương trình treo hoàn toàn. Nút nhấn không nhấn được nữa.
    Ở chế độ đường thẳng thì sản phẩm tăng đến 9 thì tự đổi sang chế độ đường tròn, bấm nút chế độ thì không thể đổi chế độ lại được, nhưng vẫn chạy ở chế độ đường tròn được.
    Bình thường khi chưa gắn động cơ, cho chay không để thừ thì 7805 rất nóng. Nhưng khi gắn động cơ vào thì 7805 còn ấm nhưng DIOD CẦU lại nóng. Tại sao vậy ?
    Nguyên nhân nào 7805 nóng, điện áp T xài là 12V.
    Nguyên nhân nào Diod Cầu nóng, Diod cầu T xài 5A và T xài nguồn 12V 5A.

    ; XU LY THEM LED 7 DEM SP
    include reg_51.pdf
    org 0000h
    ljmp main
    main:
    ; DN cac bit
    chaythang bit p3.6
    dungthang bit p3.5
    den bit p3.0
    chaytron bit p3.3
    dungtron bit p3.2
    home bit p3.1
    chedo bit p3.4
    chuong bit p3.7
    s1 bit p2.4
    s2 bit p2.5
    s3 bit p2.6
    s4 bit p2.7
    hoquang_on bit p2.3
    ;################################################# #########
    ; DN cac bien
    CNT EQU 7FH
    DONVI EQU 7EH
    CHUC EQU 7DH
    TRAM EQU 7CH
    bchedo bit 7BH

    ;################################################# #########
    ; Xoa cac bien, bit, port
    mov p1,0ffh
    mov p3,0ffh
    setb chedo
    clr chuong
    clr hoquang_on
    setb s1
    setb s2
    SETB S3
    SETB S4
    setb chaythang
    setb dungthang
    setb home
    setb bchedo
    clr hoquang_on

    MOV P2,#0FFH
    MOV CNT,#0
    MOV DPTR,#MALED
    MOV CHUC,#0
    MOV DONVI,#0
    MOV TRAM,#0
    ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    chonchedo:
    clr hoquang_on
    jb chedo,ktchedo
    call chongdoi
    call tittit
    cpl bchedo
    ;ljmp ktchedo
    ;***********************************
    ktchedo:
    jnb bchedo,ktr_duongtron
    jb bchedo, ktr_duongthang
    ;call ktchedo

    ;********************************************
    ktr_duongthang:
    CALL QUETLED; DE XEM SO DEM
    setb den
    ktdt0: jb chaythang,ktdt1
    call dc_chay
    ktdt1: jb dungthang,ktdt2
    call dc_dung_tamthoi_thang
    ktdt2: jb home,chonchedo
    call home_all
    ljmp chonchedo
    ;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    ktr_duongtron:
    CALL QUETLED; DE XEM SO DEM
    clr den
    MOV P1,#0FFH
    ktdtr0: jb chaytron,ktdtr1
    call dc_chaytron
    ktdtr1: jb dungtron,ktdtr2
    call dc_dung_tamthoi_tron
    ktdtr2: jb home,ktdtr3
    call home_all
    ktdtr3: jb chaythang,ktdtr4
    call chaytoi
    ktdtr4: jb dungthang,ktdtr5
    call chaylui
    ktdtr5: ljmp chonchedo

    chongdoi:
    Mov R7,#30
    lap: Dec R7
    Cjne r7,#0,lap
    Ret

    ;################################################# ##
    dc_chay:
    call tittit
    setb hoquang_on ; bat ho quang
    back1:
    jb home,skip1
    call home_all
    skip1: jb dungthang,skip2
    call dc_dung_tamthoi_thang ; kt xem co nhan Stop hay ko ?
    skip2: jb s2,skip3
    call ve_hometd ; kt xem co dung s2 ko ?
    skip3: mov r7,#4
    mov A,#11111110b
    begin: mov p1,A
    call delay_ra
    rl A
    DJNZ r7,begin ; xuat du 4 bit, roi quay lai begin de nap lai
    ljmp back1

    chaytoi:
    clr hoquang_on ; tat ho quang
    jb s2,skip4
    call tittit ; kt xem co dung s2 ko ?
    skip4: mov r7,#4
    mov A,#11111110b
    begin11:
    mov p1,A
    call delay_fast
    rl A
    DJNZ r7,begin11 ; xuat du 4 bit, roi quay lai begin de nap lai
    ret

    chaylui:
    clr hoquang_on ; tat ho quang
    jb s1,skip5
    call tittit
    skip5: mov r7,#4
    mov A,#11110111b
    begin12: mov p1,A
    call delay_fast
    rr A
    DJNZ r7,begin12 ; xuat du 4 bit, roi quay lai begin de nap lai
    ret


    dc_chaytron:
    call tittit
    lap8:
    jb dungtron,skip6
    call dc_dung_tamthoi_tron
    skip6: jnb home,home_all
    setb hoquang_on ; bat ho quang
    jb s4,skip7
    call ve_hometrontd ; kt xem co dung s2 ko ?
    skip7 mov r4,#4
    mov A,#11101111b
    begin9 :mov p1,A
    call delay_ra
    rl A
    DJNZ r4,begin9 ; xuat du 4 bit, roi quay lai begin de nap lai
    ljmp lap8
    ;***********************************************
    home_all:
    call tittit
    clr hoquang_on
    xet3:
    jnb s1,run_cir
    mov r4,#4
    mov A,#11110111b
    begin3: mov p1,A
    call delay_fast
    rr A
    DJNZ r4,begin3
    ljmp xet3

    run_cir:
    call tittit
    clr hoquang_on
    xet4:
    jnb s3,dc_dung_luon ; kiem tra xem co dung CTHT S1
    mov r4,#4
    mov A,#01111111b
    begin4: mov p1,A
    call delay_ve
    rr A
    DJNZ r4,begin4
    ljmp xet4

    ljmp chonchedo

    ve_hometrontd:
    clr hoquang_on
    call tittit
    call DEMSP
    xet1:
    jnb s3,dc_dung_luon ; kiem tra xem co dung CTHT S3
    mov r4,#4
    mov A,#01111111b
    begin1: mov p1,A
    call delay_ve
    rr A
    DJNZ r4,begin1
    ljmp xet1

    ve_hometd:
    clr hoquang_on
    call tittit
    call DEMSP
    xet2:
    jnb s1,dc_dung_luon ; kiem tra xem co dung CTHT S1
    mov r4,#4
    mov A,#11110111b
    begin2 :mov p1,A
    call delay_fast
    rr A
    DJNZ r4,begin2
    ljmp xet2
    ;**********************************************
    dc_dung_luon:
    mov p1,#0ffh; xoa het DL kich
    clr hoquang_on ; tat ho quang
    mov r7,#5
    tr: call tittit
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    djnz r7,tr
    ljmp chonchedo
    dc_dung_tamthoi_thang:
    clr hoquang_on ; tat ho quang
    call tittit
    mov p1,#0ffh
    test: jb home,skip8
    call home_all
    skip8: jb chaythang,skip9
    call dc_chay ; kiem tra xem co bam chay tro lai ko ?
    skip9: ljmp test

    dc_dung_tamthoi_tron:
    clr hoquang_on ; tat ho quang
    call tittit
    mov p1,#0ffh
    test2: jb home,skip10
    call home_all
    skip10: jb chaytron,skip11
    call dc_chaytron ; kiem tra xem co bam chay tro lai ko ?
    skip11: ljmp test2
    ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
    ;XU LY LED 7
    DEMSP:
    INC CNT; TANG BIEN DEM
    MOV A,CNT
    CJNE A,#100,EXIT
    MOV CNT,#0
    INC TRAM
    MOV A,TRAM
    CJNE A,#10,EXIT ; NEU BANG 1000 THI BAO LA KO THE TANG DC NUA
    CALL NHAPNHAY
    EXIT: RET

    QUETLED:
    CALL DOISO
    MOV A,CHUC
    MOVC A,@A+DPTR
    MOV P0,A
    CLR P2.1
    CALL DELAY
    SETB P2.1

    MOV A,DONVI
    MOVC A,@A+DPTR
    MOV P0,A
    CLR P2.0
    CALL DELAY
    SETB P2.0

    MOV A,TRAM
    MOVC A,@A+DPTR
    MOV P0,A
    CLR P2.2
    CALL DELAY
    SETB P2.2
    RET

    DOISO:
    PUSH ACC
    PUSH B
    MOV A,CNT
    MOV B,#10
    DIV AB
    MOV CHUC,A
    MOV DONVI,B
    POP B
    POP ACC
    RET

    DELAY:
    MOV R0,#100
    DJNZ R0,$
    RET
    ;**********************************************
    delay_fast:
    Push 03
    mov tmod,#10h
    mov th1,#high(-2000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
    mov tl1,#low(-2000)
    setb tr1
    clr tf1
    jnb tf1,$
    pop 03
    ret
    ;#############################################
    tittit:
    setb chuong
    call delay_chuong
    clr chuong
    call delay_chuong
    call delay_chuong
    setb chuong
    call delay_chuong
    clr chuong
    ret
    ;############################################
    NHAPNHAY:
    clr hoquang_on ; tat ho quang
    mov r1,#10
    COMEBACK:
    CALL TITTIT
    mov p0,#10010000B
    CLR P2.0
    CLR P2.1
    CLR P2.2
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    SETB P2.0
    SETB P2.1
    SETB P2.2
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    call delay_chuong
    djnz r1,COMEBACK

    CALL CHONCHEDO
    ;**********************************************
    ;so0:
    ; mov p0,#11000000b
    ;CLR P2.0
    ;CLR P2.1
    ; CLR P2.2
    ; ret
    ;so1:
    ; mov p0,#10111111b
    ; CLR P2.0
    ; CLR P2.1
    ; CLR P2.2
    ; ret
    ;************************************************* *

    DELAY_XET:
    Mov R7,#20
    back: Dec R7
    Cjne r7,#0,back
    Ret

    ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$
    delay_chuong:
    push 03
    mov tmod,#10h
    mov th1,#high(-50000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
    mov tl1,#low(-50000)
    setb tr1
    clr tf1
    jnb tf1,$
    pop 03
    ret
    delay_ra:
    Push 01
    mov tmod,#10h
    mov th1,#high(-7000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
    mov tl1,#low(-7000)
    setb tr1
    clr tf1
    jnb tf1,$
    pop 01
    ret
    delay_ve:
    Push 01
    mov tmod,#10h
    mov th1,#high(-6000); Timer0 hoat dong o che do 16 bit ko nap lap lai, gia tri dat cho Timer la 65536
    mov tl1,#low(-6000)
    setb tr1
    clr tf1
    jnb tf1,$
    pop 01
    ret
    MALED:
    DB 11000000B,11111001B,10100100B,10110000B,10011001B, 10010010B,10000010B,11111000B,10000000B,10010000B

    end


  • #2
    minh chang hieu gi ve asem ca nen chiu khong bit duoc minh chi bit ve C thoi

    Comment


    • #3
      Thanks Bạn đã quan tâm.
      Mình viết đã hơn 1 tuần nay rồi mà không có ai trả lời hết.Hịc

      Comment


      • #4
        Tôi tìm thấy bạn có 1 lỗi sau:
        sau nhãn main bạn làm như sau:
        main:
        mov SP,#0xxh ; bạn chọn 1 địa chỉ nào đó ví dụ 050h chẳng hạn

        Mục đích để tạo cho bạn 1 địa chỉ khởi đầu cho SP (Stack Pointer)

        Chúc bạn thành công.

        Comment


        • #5
          Uh. Thanks U chuyendt nha ! Để mình thử lại xem thế nào ?.
          Và đây là Links sơ đồ nguyên lý: http://www.4shared.com/file/27543318...nly_M_TIG.html

          Comment


          • #6
            mình cũng làm về động cơ bước, nhưng mình viết băng C co, ai có biết thì giúp mình với nha
            lê huy

            Comment

            Về tác giả

            Collapse

            trieu_nguyen Một ngày không ra sao là một ngày buồn ! Tìm hiểu thêm về trieu_nguyen

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

            Collapse

            Đang tải...
            X