Thông báo

Collapse
No announcement yet.

Xuất 2 số bất kỳ ra led 7 đoạn

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

  • Xuất 2 số bất kỳ ra led 7 đoạn

    Mình có vấn đề như thế này nhờ các bạn giúp đở nha.
    Mình dùng post 1 giao tiếp với bàn phím (chỉ sữ dụng các số và nút enter, xóa.) các nút khác bỏ qua.
    P0 xuất ra led 7 đoạn:
    Mình làm xong chương trình quét bàn phím rồi. Bây giờ mình muốn xuất số vừa nhập từ bàn phím vào ra cập led đầu . Ví dụ nhập 59 từ bàn phím vào thì cập led đầu hiện 5 trứoc và chuyển 5 qua led kế bên rồi số 9 thay led số 5 và ấn "enter" thì số đó được lưu vào một ô nhớ bất kỳ còn bấm "xóa" thì xóa về 00.(Nếu bấm số 5 hiển thị số 05) Mong các bạn giúp đở.
    Xin chân thành cảm ơn
    Code quet led:
    OUT_LED:
    MOV P2,#0H
    MOV A,10H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    MOV A,11H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.1
    LCALL DELAY_500US
    CLR P2.1
    MOV A,12H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.2
    LCALL DELAY_500US
    CLR P2.2
    MOV A,13H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.3
    LCALL DELAY_500US
    CLR P2.3
    MOV A,14H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.4
    LCALL DELAY_500US
    CLR P2.4
    MOV A,15H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.5
    LCALL DELAY_500US
    CLR P2.5
    MOV A,16H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.6
    LCALL DELAY_500US
    CLR P2.6
    MOV A,17H
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.7
    LCALL DELAY_500US
    CLR P2.7
    RET
    Quet Ban Phim:
    ;QUET PHIM HIEN THI RA LED
    ORG 00H
    SJMP MAIN
    ;P1.0,P1.1,P1.2,P1.3= HANG
    ;P1.4,P1.5,P1.6,P1.7= COT
    ;--------------------------------------------
    MAIN:
    MOV DPTR,#MALED
    LCALL QUET_PHIM
    SJMP MAIN
    RET
    QUET_PHIM:
    QLAY1: MOV P1,#0FFH ; CHO TAT CA CAC HANG COT LEN MUC 1
    MOV P1,#0F0H ;NOI DAT CAC HANG
    MOV A,P1
    ANL A,#0F0H
    CJNE A,#0F0H,QLAY1
    QLAY2: LCALL DELAY_200MS ;17
    MOV A,P1
    ANL A,#0F0H
    CJNE A,#0F0H,TIEP ; CO PHIM NHAN THI TIEP
    SJMP QLAY2 ;KO CO PHIM BAM QUAY LAI 2
    TIEP:
    MOV P1,#11111110B ;NOI DAT HANG 0
    MOV A,P1 ; DOC PHIM
    ANL A,#0F0H
    CJNE A,#0F0H,HANG_00
    MOV P1,#11111101B ;NOI DAT HANG 1
    MOV A,P1 ; DOC PHIM
    ANL A,#0F0H
    CJNE A,#0F0H,HANG_01
    MOV P1,#11111011B ;NOI DAT HANG 2
    MOV A,P1 ; DOC PHIM
    ANL A,#0F0H
    CJNE A,#0F0H,HANG_02
    MOV P1,#11110111B ;NOI DAT HANG 3
    MOV A,P1 ; DOC PHIM
    ANL A,#0F0H
    CJNE A,#0F0H,HANG_03
    SJMP THOAT
    HANG_00: ;40
    MOV A,P1
    CJNE A,#11101110b,SO_2
    LCALL NUM_1
    SO_2: MOV A,P1
    CJNE A,#11011110b,SO_3
    LCALL NUM_2
    SO_3: MOV A,P1
    CJNE A,#10111110b,THOAT
    LCALL NUM_3
    HANG_01:
    MOV A,P1
    CJNE A,#11101101b,SO_5
    LCALL NUM_4
    SO_5: MOV A,P1
    CJNE A,#11011101b,SO_6
    LCALL NUM_5
    SO_6: MOV A,P1
    CJNE A,#10111101b,THOAT
    LCALL NUM_6
    HANG_02:
    MOV A,P1
    CJNE A,#11101011b,SO_8
    LCALL NUM_7
    SO_8: MOV A,P1
    CJNE A,#11011011b,SO_9
    LCALL NUM_8
    SO_9: MOV A,P1
    CJNE A,#10111011b,THOAT
    LCALL NUM_9
    HANG_03:
    MOV A,P1
    CJNE A,#11100111b,SO_0
    LCALL NUT_XOA
    SO_0:
    MOV A,P1
    CJNE A,#11010111b,NUT_ENTER
    LCALL NUM_0
    NUT_ENTER:
    MOV A,P1
    CJNE A,#11100111b,THOAT
    LCALL ENTER
    THOAT:
    RET
    NUM_0:
    MOV P2,#0FFH
    MOV A,#0
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_1:

    MOV P2,#0FFH
    MOV A,#1
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US; 100
    CLR P2.0
    RET
    NUM_2:

    MOV P2,#0FFH
    MOV A,#2
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_3:

    MOV P2,#0FFH
    MOV A,#3
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_4:

    MOV P2,#0FFH
    MOV A,#4
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_5:

    MOV P2,#0FFH
    MOV A,#5
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_6:

    MOV P2,#0FFH
    MOV A,#6
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_7:

    MOV P2,#0FFH
    MOV A,#7
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_8:

    MOV P2,#0FFH
    MOV A,#8
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUM_9:

    MOV P2,#0FFH
    MOV A,#9
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    NUT_XOA:
    MOV P2,#0FFH
    MOV A,#0
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    ENTER:
    MOV P2,#0FFH
    MOV A,#9
    MOVC A,@A+DPTR
    MOV P0,A
    SETB P2.0
    LCALL DELAY_500US
    CLR P2.0
    RET
    DELAY_500US:
    MOV R5,#250
    DJNZ R5,$
    RET
    DELAY_200MS:
    MOV R6,#20
    LOOP3: LCALL DELAY_500US
    DJNZ R6,LOOP3
    RET
    MALED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
    END
    Last edited by manhkha85; 09-04-2009, 13:49.

  • #2
    Cái code quet bàn phím đâu? Sao ko post lên để người khác biết bạn quét thế nào mà giúp đỡ chứ!
    Trần Đức Sơn

    tel:0934691385

    Comment


    • #3
      chương trình quét bàn phím của bạn có 2 chữ số,như vây nếu bạn bấm số đầu tiên chip sẽ hiểu là số hàng chục. Nếu bạn nhấn một phim số 5 mà muốn hiển thị số 05. Bạn phải thêm chương trình nếu nhấn một số chip phải hiểu là hàng đơn vị khi nhấn phím enter
      |

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X