RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

Clock 8051+DS1307: hiển thị Giờ + Phút + Giây + Ngày trong tuần + ngày + tháng + năm

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • AT89SXX
    Thành viên chính thức
    • Oct 2013
    • 32

    #166
    Bạn tramng cho mình hỏi sao chủ nhật nó hiển thị không đúng
    Mình không hiểu bạn tạo mã led 7SEG như thế nào nên không sửa được

    Comment

    • minhthanh29
      Thành viên tích cực
      • Jul 2011
      • 201

      #167
      Nguyên văn bởi AT89SXX Xem bài viết
      Bạn tramng cho mình hỏi sao chủ nhật nó hiển thị không đúng
      Mình không hiểu bạn tạo mã led 7SEG như thế nào nên không sửa được
      Hinh như bạn tramng đảo mã như sau:


      Bạn sửa lại chỗ thằng luôn, không thì đến tháng>9 thì phần chức không hiển thị

      Code:
      Code gốc:
      
      //---------------thang-------------------										  
      	if (month<10)
      	{					  
      		chucthang=0xff;
      		ledchucthang=0x00;
      	}
      	if (month>9)
      	{
      		chucthang=(ma[month/10]);
      		ledchucthang=0x80;						   //(0000/1000)	
      	}
      
      --------------------------------------------------------------------
      Sửa thành:
      
      //---------------thang-------------------										  
      	if (month<10)
      	{					  
      		chucthang=0xff;
      		ledchucthang=0x00;
      	}
      	if (month>9)
      	{
      		chucthang=(ma[month/10]);
      		ledchucthang=[COLOR="#FF0000"]0x08[/COLOR];	
      	}
      Last edited by minhthanh29; 27-03-2014, 13:23.
      Nhận vẽ mạch in ^_^
      TEL: 0167 4500 365
      Mail:

      Comment

      • tramng
        Thành viên chính thức
        • Jan 2014
        • 90

        #168
        Bạn kiểm tra lại chương trình proteus và cấu hình máy tính của bạn !
        Code mình có kèm phần xóa số không và chuyển số 01 thành chữ CN, bạn xem code sẽ thấy mình chú thích phần đó.
        Mình có gửi kèm sơ đồ nguyên lý và mạch in nên mình viết code theo phần cứng, bạn tra phần cứng sẽ rõ.

        Comment

        • tramng
          Thành viên chính thức
          • Jan 2014
          • 90

          #169
          Code ASM cho bạn nào cần :

          AT89C52 sử dụng thạch anh 24MHz
          sơ đồ chân :
          - DATA7DOAN :
          + P2.0 : C
          + P2.1 : D
          + P2.2 : E
          + P2.3 : B
          + P2.4 : A
          + P2.5 : F
          + P2.6 : G
          + P2.7 : DP
          - DS1307 :
          + SDA : P0.6
          + SCL : P0.7
          - DS18B20 : DQ : P0.0
          - Nút nhấn :
          + Lựa chọn : P0.4
          + Tăng : P0.5
          + Giảm : P0.3
          - LED 7 Đoạn Anốt chung :
          + Led hàng chục nhiệt độ : P3.4
          + Led hàng đơn vị nhiệt độ : P3.5
          + Led hàng chục thứ : P3.3
          + Led hàng đơn vị thứ : P3.2
          + Led hàng chục ngày : P3.0
          + Led hàng đơn vị ngày : P3.1
          + Led hàng chục tháng : P1.6
          + Led hàng đơn vị tháng : P1.7
          + Led hàng chục năm : P1.5
          + Led hàng đơn vị năm : P1.4
          + Led hàng chục giờ : P1.3
          + Led hàng đơn vị giờ : P1.2
          + Led hàng chục phút : P1.1
          + Led hàng đơn vị phút : P1.0

          Tiền khai báo + MAIN :
          PHP Code:
                  THU        EQU        30H
                  NGAY        EQU        31H
                  THANG    EQU        32H
                  NAM        EQU        33H
                  GIO        EQU        34H
                  PHUT        EQU        35H
                  GIAY        EQU        36H
          
                  MCNHIET        EQU        37H
                  MCPHUT        EQU        38H
                  MCGIO            EQU        39H
                  MCTHU        EQU        3AH
                  MCNGAY        EQU        3BH
                  MCTHANG        EQU        3CH
                  MCNAM        EQU        3DH
          
                  MDVNHIET        EQU        3EH
                  MDVPHUT        EQU        3FH
                  MDVGIO        EQU        40H
                  MDVTHU        EQU        41H
                  MDVNGAY        EQU        42H
                  MDVTHANG        EQU        43H
                  MDVNAM        EQU        44H
          
                  DAT        EQU        45H
                  ADDRTC    EQU        46H
                  DEM        EQU        47H
                  TEMP        EQU        48H
                  T_LSB        EQU        49H
                  T_MSB        EQU        4AH
                  TAM        EQU        4BH
                  KT        EQU        R7
          
                  TEST        BIT        00H
                  ACK        BIT        01H
                  SET0        BIT        02H
                  SET1        BIT        03H
                  DOWN0    BIT        04H
                  DOWN1    BIT        05H
                  UP0        BIT        06H
                  UP1        BIT        07H
          
                  SCL        BIT        P0.7
                  SDA        BIT        P0.6
                  DQ        BIT        P0.0
          
                  SELECT    BIT        P0.4
                  UP        BIT        P0.5
                  DOWN        BIT        P0.3
          
                  LEDCNHIET        BIT        P3.4
                  LEDDVNHIET        BIT        P3.5
                  LEDCNGAY        BIT        P3.0
                  LEDDVNGAY        BIT        P3.1
                  LEDCTHU        BIT        P3.3
                  LEDDVTHU        BIT        P3.2
                  LEDCTHANG        BIT        P1.6
                  LEDDVTHANG        BIT        P1.7
                  LEDCNAM        BIT        P1.5
                  LEDDVNAM        BIT        P1.4
                  LEDCPHUT        BIT        P1.1
                  LEDDVPHUT        BIT        P1.0
                  LEDCGIO        BIT        P1.3
                  LEDDVGIO        BIT        P1.2
          
                  DATA7DOAN    DATA        P2    
          
              ORG        0000H
          
              MOV        KT,#00H
              CLR        TEST
              SETB        SET0
              SETB        SET1
              SETB        UP0
              SETB        UP1
              SETB        DOWN0
              SETB        DOWN1
          MAIN:
              LCALL        I2C_START
              MOV        A,#0D0H
              LCALL        I2C_WRITE
              MOV        A,#07H
              LCALL        I2C_WRITE
              MOV        A,#10H
              LCALL        I2C_WRITE
              LCALL        I2C_STOP
          
          CHUONG_TRINH_CHINH:
              LCALL        QUETPHIM
              LCALL        READ_DS1307
              LCALL        DELAY_HIENTHI
              LCALL        DOC_NHIETDO
              LCALL        QUETPHIM
              LCALL        DELAY_HIENTHI
              JMP        CHUONG_TRINH_CHINH 
          
          I2C :

          PHP Code:
          SCL_HIGHT:
              SETB        SCL
              LCALL        DELAY_I2C
          RET
          ;**********************************************************
          SCL_LOW:
              CLR        SCL
              LCALL        DELAY_I2C
          RET
          ;**********************************************************
          I2C_START:
              SETB        SDA
              SETB        SCL
              CLR        SDA
              LCALL        DELAY_I2C
              CLR        SCL
              SETB        SDA
          RET
          ;**********************************************************
          I2C_STOP:
              CLR        SDA
              LCALL        SCL_HIGHT
              SETB        SDA
          RET
          ;**********************************************************
          I2C_WRITE:
              MOV        DEM,#8
          LAP:
              RLC        A
              MOV        SDA,C
              LCALL        SCL_HIGHT
              LCALL        SCL_LOW
              DJNZ        DEM,LAP
              SETB        SDA
              LCALL        SCL_HIGHT
              LCALL        SCL_LOW
          RET
          ;**********************************************************
          I2C_READ:
              MOV        DEM,#8
          LAP1:
              LCALL        SCL_HIGHT
              MOV        C,SDA
              RLC        A
              LCALL        SCL_LOW
              DJNZ        DEM,LAP1
              JB        ACK,LAP2
              CLR        SDA
          LAP2:
              SETB        SDA
              LCALL        SCL_HIGHT
              CLR        SCL
              CLR        SDA
              LCALL        DELAY_I2C
          RET 
          
          DS1307 :

          PHP Code:
          RTC_WRITE:
              LCALL        I2C_START
              MOV        A,#0D0H
              LCALL        I2C_WRITE
              MOV        A,ADDRTC
              LCALL        I2C_WRITE
              MOV        A,DAT
              MOV        B,#10
              DIV        AB
              SWAP        A
              ORL        A,B
              LCALL        I2C_WRITE
              LCALL        I2C_STOP
          RET
          ;**********************************************************
          RTC_READ:
              LCALL        I2C_START
              MOV        A,#0D0H
              LCALL        I2C_WRITE
              MOV        A,ADDRTC
              LCALL        I2C_WRITE
              LCALL        I2C_START
              MOV        A,#0D1H
              LCALL        I2C_WRITE
              CLR        ACK
              LCALL        I2C_READ
              LCALL        I2C_STOP
          RET
          ;**********************************************************
          WRITE_DS1307:
              MOV        ADDRTC,#00H
              MOV        DAT,#00H
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#01H
              MOV        DAT,PHUT
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#02H
              MOV        DAT,GIO
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#03H
              MOV        DAT,THU
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#04H
              MOV        DAT,NGAY
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#05H
              MOV        DAT,THANG
              LCALL        RTC_WRITE
          
              MOV        ADDRTC,#06H
              MOV        DAT,NAM
              LCALL        RTC_WRITE
          RET
          ;**********************************************************
          DOC_PHUT:
              MOV        B,#10
              MOV        ADDRTC,#01H
              LCALL        RTC_READ
              MOV        PHUT,A
              ANL        PHUT,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,PHUT
              MOV        PHUT,A
          RET
          ;**********************************************************
          DOC_GIO:
              MOV        B,#10
              MOV        ADDRTC,#02H
              LCALL        RTC_READ
              MOV        GIO,A
              ANL        GIO,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,GIO
              MOV        GIO,A
          RET
          ;**********************************************************
          DOC_THU:
              MOV        B,#10
              MOV        ADDRTC,#03H
              LCALL        RTC_READ
              MOV        THU,A
              ANL        THU,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,THU
              MOV        THU,A
          RET
          ;**********************************************************
          DOC_NGAY:
              MOV        B,#10
              MOV        ADDRTC,#04H
              LCALL        RTC_READ
              MOV        NGAY,A
              ANL        NGAY,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,NGAY
              MOV        NGAY,A
          RET
          ;**********************************************************
          DOC_THANG:
              MOV        B,#10
              MOV        ADDRTC,#05H
              LCALL        RTC_READ
              MOV        THANG,A
              ANL        THANG,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,THANG
              MOV        THANG,A
          RET
          ;**********************************************************
          DOC_NAM:
              MOV        B,#10
              MOV        ADDRTC,#06H
              LCALL        RTC_READ
              MOV        NAM,A
              ANL        NAM,#0FH
              ANL        A,#0F0H
              SWAP        A
              MUL        AB
              ADD        A,NAM
              MOV        NAM,A
          RET
          ;**********************************************************
          READ_DS1307:
              CJNE        KT,#0,OUT_READ
              JNB        TEST,DOC_GIATRI
              LCALL        WRITE_DS1307
              CLR        TEST
          DOC_GIATRI:
              LCALL        DOC_PHUT
              LCALL        DOC_GIO
              LCALL        DOC_THU
              LCALL        DOC_NGAY
              LCALL        DOC_THANG
              LCALL        DOC_NAM
          OUT_READ:
          RET 
          
          DS18B20 :

          PHP Code:
          WRITE_TIME_SLOT:
              CLR        DQ
              NOP
              NOP
              NOP
              NOP
              MOV        DQ,C
              MOV         R5,#31
              LCALL         DELAY_DS18B20
              SETB         DQ
              NOP
              NOP
          RET
          ;**********************************************************
          READ_TIME_SLOT:    
              CLR         DQ
              NOP
              NOP
              NOP
              NOP
              SETB         DQ
              MOV        R5,#9
              LCALL        DELAY_DS18B20
              MOV         C,DQ
              MOV         R5,#51
              LCALL         DELAY_DS18B20
          RET
          ;**********************************************************
          RESET_DS1820:    
              CLR        DQ
              MOV         R5,#244
              LCALL         DELAY_DS18B20
              SETB         DQ
              MOV         R5,#73
              LCALL         DELAY_DS18B20
              JB        DQ,RESET_DS1820
              MOV        R5,#212
              CALL        DELAY_DS18B20
          RET
          ;**********************************************************
          WRITE_BYTE:
              MOV         DEM,#8
          WRITE_LAI: 
              RRC         A
              LCALL         WRITE_TIME_SLOT
              DJNZ         DEM, WRITE_LAI
              SETB         DQ
              MOV         R5,#101
              LCALL         DELAY_DS18B20
          RET
          ;**********************************************************
          READ_BYTE:
              MOV         DEM,#8
          READ_LAI: 
              LCALL         READ_TIME_SLOT
              RRC         A
              DJNZ         DEM, READ_LAI
              MOV         R5,#101
              LCALL         DELAY_DS18B20
          RET
          ;**********************************************************
          HIEU_CHINH_NHIETDO:    
              MOV        TEMP,#0    
              ANL        A,#0FH    
              MOV        TEMP,A
              MOV        A,T_LSB
              ANL        A,#0F0H    
              ORL        TEMP,A
              MOV        A,TEMP
              SWAP        A
              MOV        TEMP,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_NHIETDO:
              MOV        A,TEMP
              MOV        B,#10
              DIV        AB
              MOV        MDVNHIET,B
              MOV        B,#10
              DIV        AB
              MOV        MCNHIET,B    
          RET
          ;**********************************************************
          DOC_NHIETDO:
              LCALL         RESET_DS1820
              MOV         A,#0CCH 
              LCALL         WRITE_BYTE
              MOV         A,#44H 
              LCALL         WRITE_BYTE
              LCALL         RESET_DS1820
              MOV         A,#0CCH 
              LCALL         WRITE_BYTE
              MOV         A,#0BEH 
              LCALL         WRITE_BYTE
              LCALL         READ_BYTE
              MOV         T_LSB,A    
              LCALL         READ_BYTE
              MOV         T_MSB,A    
              LCALL         RESET_DS1820
              LCALL        HIEU_CHINH_NHIETDO
          RET 
          
          Quét phím :

          PHP Code:
          KTPHIM:
              MOV        C,SET1
              MOV        SET0,C
              MOV        C,SELECT    
              MOV        SET1,C
              JNB        SET0,OUT_KTPHIM
              JB        SET1,OUT_KTPHIM
              INC        KT
              CJNE        KT,#7,OUT_KTPHIM
              MOV        KT,#00H    
          OUT_KTPHIM:
          RET
          ;**********************************************************
          CHINH_THU:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_THU
              JB        UP1,GIAM_THU
              SETB        TEST
              INC        THU
              MOV        A,THU
              CJNE        A,#8,GIAM_THU
              MOV        THU,#1
          GIAM_THU:
              JNB        DOWN0,OUT_THU
              JB        DOWN1,OUT_THU
              DJNZ        THU,OUT_THU
              MOV        THU,#7    
          OUT_THU:
          RET
          ;**********************************************************
          CHINH_NGAY:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_NGAY
              JB        UP1,GIAM_NGAY
              SETB        TEST
              INC        NGAY
              MOV        A,NGAY
              CJNE        A,#32,GIAM_NGAY
              MOV        NGAY,#1
          GIAM_NGAY:
              JNB        DOWN0,OUT_NGAY
              JB        DOWN1,OUT_NGAY
              DJNZ        NGAY,OUT_NGAY
              MOV        NGAY,#31    
          OUT_NGAY:
          RET
          ;**********************************************************
          CHINH_THANG:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_THANG
              JB        UP1,GIAM_THANG
              SETB        TEST
              INC        THANG
              MOV        A,THANG
              CJNE        A,#13,GIAM_THANG
              MOV        THANG,#1
          GIAM_THANG:
              JNB        DOWN0,OUT_THANG
              JB        DOWN1,OUT_THANG
              DJNZ        THANG,OUT_THANG
              MOV        THANG,#12    
          OUT_THANG:
          RET
          ;**********************************************************
          CHINH_NAM:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_NAM
              JB        UP1,GIAM_NAM
              SETB        TEST
              INC        NAM
              MOV        A,NAM
              CJNE        A,#100,GIAM_NAM
              MOV        NAM,#0
          GIAM_NAM:
              JNB        DOWN0,OUT_NAM
              JB        DOWN1,OUT_NAM
              DEC        NAM
              MOV        A,NAM
              CJNE        A,#255,OUT_NAM
              MOV        NAM,#99
          OUT_NAM:
          RET
          ;**********************************************************
          CHINH_GIO:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_GIO
              JB        UP1,GIAM_GIO
              SETB        TEST
              INC        GIO
              MOV        A,GIO
              CJNE        A,#24,GIAM_GIO
              MOV        GIO,#0
          GIAM_GIO:
              JNB        DOWN0,OUT_GIO
              JB        DOWN1,OUT_GIO
              DEC        GIO
              MOV        A,GIO
              CJNE        A,#255,OUT_GIO
              MOV        GIO,#23
          OUT_GIO:
          RET
          ;**********************************************************
          CHINH_PHUT:
              MOV        C,UP1
              MOV        UP0,C
              MOV        C,UP
              MOV        UP1,C
              MOV        C,DOWN1
              MOV        DOWN0,C
              MOV        C,DOWN
              MOV        DOWN1,C
              JNB        UP0,GIAM_PHUT
              JB        UP1,GIAM_PHUT
              SETB        TEST
              INC        PHUT
              MOV        A,PHUT
              CJNE        A,#60,GIAM_PHUT
              MOV        PHUT,#0
          GIAM_PHUT:
              JNB        DOWN0,OUT_PHUT
              JB        DOWN1,OUT_PHUT
              DEC        PHUT
              MOV        A,PHUT
              CJNE        A,#255,OUT_PHUT
              MOV        PHUT,#59    
          OUT_PHUT:
          RET
          ;**********************************************************
          QUETPHIM:
              LCALL        KTPHIM
              CJNE        KT,#0,THU0
              JMP        OUT_QUET
          THU0:
              CJNE        KT,#1,NGAY0
              LCALL        CHINH_THU
              JMP        OUT_QUET
          NGAY0:
              CJNE        KT,#2,THANG0
              LCALL        CHINH_NGAY
              JMP        OUT_QUET
          THANG0:
              CJNE        KT,#3,NAM0
              LCALL        CHINH_THANG
              JMP        OUT_QUET
          NAM0:
              CJNE        KT,#4,GIO0
              LCALL        CHINH_NAM
              JMP        OUT_QUET
          GIO0:
              CJNE        KT,#5,PHUT0
              LCALL        CHINH_GIO
              JMP        OUT_QUET
          PHUT0:
              CJNE        KT,#6,OUT_QUET
              LCALL        CHINH_PHUT
              JMP        OUT_QUET
          OUT_QUET:
          RET 
          
          Hiển thị :

          PHP Code:
          HEXTOBCD_GIAIMA_PHUT:
              MOV        A,PHUT
              MOV        B,#10
              DIV        AB
              MOVC        A,@A+DPTR
              MOV        MCPHUT,A
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVPHUT,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_GIO:
              MOV        A,GIO
              MOV        B,#10
              DIV        AB
              CJNE        A,#0,NHAY5
              MOV        MCGIO,#0FFH
              JMP        NHAY6
          NHAY5:
              MOVC        A,@A+DPTR
              MOV        MCGIO,A
          NHAY6:
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVGIO,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_THU:
              MOV        A,THU
              CJNE        A,#1,NHAY0
              MOV        MDVTHU,#0C2H
              MOV        MCTHU,#0C9H
              JMP        OUT0
          NHAY0:
              MOV        B,#10
              DIV        AB
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVTHU,A
              MOV        MCTHU,#0FFH
          OUT0:
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_NGAY:
              MOV        A,NGAY
              MOV        B,#10
              DIV        AB
              CJNE        A,#0,NHAY1
              MOV        MCNGAY,#0FFH
              JMP        NHAY2
          NHAY1:
              MOVC        A,@A+DPTR
              MOV        MCNGAY,A
          NHAY2:
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVNGAY,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_THANG:
              MOV        A,THANG
              MOV        B,#10
              DIV        AB
              CJNE        A,#0,NHAY3
              MOV        MCTHANG,#0FFH
              JMP        NHAY4
          NHAY3:
              MOVC        A,@A+DPTR
              MOV        MCTHANG,A
          NHAY4:
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVTHANG,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA_NAM:
              MOV        A,NAM
              MOV        B,#10
              DIV        AB
              MOVC        A,@A+DPTR
              MOV        MCNAM,A
              MOV        A,B
              MOVC        A,@A+DPTR
              MOV        MDVNAM,A
          RET
          ;**********************************************************
          HEXTOBCD_GIAIMA:
              MOV        DPTR,#MA7DOAN
              LCALL        HEXTOBCD_GIAIMA_THU
              LCALL        HEXTOBCD_GIAIMA_NGAY
              LCALL        HEXTOBCD_GIAIMA_THANG
              LCALL        HEXTOBCD_GIAIMA_NAM
              LCALL        HEXTOBCD_GIAIMA_GIO
              LCALL        HEXTOBCD_GIAIMA_PHUT
              LCALL        HEXTOBCD_GIAIMA_NHIETDO
          RET
          ;**********************************************************
          HIENTHI_NHIETDO:
              MOV        A,MCNHIET
              MOVC        A,@A+DPTR
              MOV        DATA7DOAN,A
              SETB        LEDCNHIET
              LCALL        DELAY50US
              CLR        LEDCNHIET
          
              MOV        A,MDVNHIET
              MOVC        A,@A+DPTR
              MOV        DATA7DOAN,A
              SETB        LEDDVNHIET
              LCALL        DELAY50US
              CLR        LEDDVNHIET    
          RET
          ;**********************************************************
          HIENTHI_PHUT:
              MOV        DATA7DOAN,MCPHUT
              SETB        LEDCPHUT
              LCALL        DELAY50US
              CLR        LEDCPHUT
              
              MOV        DATA7DOAN,MDVPHUT
              SETB        LEDDVPHUT
              LCALL        DELAY50US
              CLR        LEDDVPHUT
          RET
          ;**********************************************************
          HIENTHI_GIO:
              MOV        DATA7DOAN,MCGIO
              SETB        LEDCGIO
              LCALL        DELAY50US
              CLR        LEDCGIO
          
              MOV        DATA7DOAN,MDVGIO
              SETB        LEDDVGIO
              LCALL        DELAY50US
              CLR        LEDDVGIO
          RET
          ;**********************************************************
          HIENTHI_THU:
              MOV        DATA7DOAN,MCTHU
              SETB        LEDCTHU
              LCALL        DELAY50US
              CLR        LEDCTHU
          
              MOV        DATA7DOAN,MDVTHU
              SETB        LEDDVTHU
              LCALL        DELAY50US
              CLR        LEDDVTHU
          RET
          ;**********************************************************
          HIENTHI_NGAY:
              MOV        DATA7DOAN,MCNGAY
              SETB        LEDCNGAY
              LCALL        DELAY50US
              CLR        LEDCNGAY
          
              MOV        DATA7DOAN,MDVNGAY
              SETB        LEDDVNGAY
              LCALL        DELAY50US
              CLR        LEDDVNGAY
          RET
          ;**********************************************************
          HIENTHI_THANG:
              MOV        DATA7DOAN,MCTHANG
              SETB        LEDCTHANG
              LCALL        DELAY50US
              CLR        LEDCTHANG
          
              MOV        DATA7DOAN,MDVTHANG
              SETB        LEDDVTHANG
              LCALL        DELAY50US
              CLR        LEDDVTHANG
          RET
          ;**********************************************************
          HIENTHI_NAM:
              MOV        DATA7DOAN,MCNAM
              SETB        LEDCNAM
              LCALL        DELAY50US
              CLR        LEDCNAM
          
              MOV        DATA7DOAN,MDVNAM
              SETB        LEDDVNAM
              LCALL        DELAY50US
              CLR        LEDDVNAM
          RET
          ;**********************************************************
          HIENTHI:
              LCALL        HIENTHI_THU
              LCALL        HIENTHI_NGAY
              LCALL        HIENTHI_THANG
              LCALL        HIENTHI_NAM
              LCALL        HIENTHI_GIO
              LCALL        HIENTHI_PHUT
              LCALL        HIENTHI_NHIETDO
          RET 
          
          Delay :

          PHP Code:
          DELAY_HIENTHI:
              MOV        R1,#20
          DEL:
              LCALL        HEXTOBCD_GIAIMA
              CJNE        KT,#00H,DEL1
              LCALL        HIENTHI
              JMP        DEL7
          DEL1:
              CJNE        KT,#01H,DEL2
              LCALL        HIENTHI_THU
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL2:
              CJNE        KT,#02H,DEL3
              LCALL        HIENTHI_NGAY
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL3:
              CJNE        KT,#03H,DEL4
              LCALL        HIENTHI_THANG
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL4:
              CJNE        KT,#04H,DEL5
              LCALL        HIENTHI_NAM
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL5:
              CJNE        KT,#05H,DEL6
              LCALL        HIENTHI_GIO
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL6:
              CJNE        KT,#06H,DEL7
              LCALL        HIENTHI_PHUT
              LCALL        HIENTHI_NHIETDO
              JMP        DEL7
          DEL7:
              DJNZ        R1,DEL
          RET
          ;**********************************************************
          DELAY50US:
              MOV        R0,#50
              DJNZ        R0,$
          RET
          ;**********************************************************
          DELAY_I2C:
              MOV    R6,#5
              DJNZ    R6,$
          RET
          ;**********************************************************
          DELAY_DS18B20: 
              DJNZ     R5,$
          RET 
          
          Bảng mã 7SEG Anốt chung :

          PHP Code:
          MA7DOAN:
              DB    0C0H, 0F6H, 0A1H, 0A4H, 96H, 8CH, 88H, 0E6H, 80H, 84H
          END 
          
          Phần code đổi lịch dương sang lịch âm thì các bạn tham khảo ở luồng này : http://www.dientuvietnam.net/forums/...66/#post834382
          Mình chuyển qua viết bằng C và bỏ ASM đã hơn 2 năm nay rồi nên viết lại với ASM hơi đuối.
          *NOTE : Code đã được hoàn thiện và chạy trên phần cứng.
          Last edited by tramng; 30-03-2014, 17:28.

          Comment

          • Văn Sơn
            Thành viên mới
            • Apr 2014
            • 1

            #170
            file.DSN mở bằng phần mềm gì vậy?

            Comment

            • tramng
              Thành viên chính thức
              • Jan 2014
              • 90

              #171
              Nguyên văn bởi Văn Sơn Xem bài viết
              file.DSN mở bằng phần mềm gì vậy?
              mở bằng proteus hoặc orcad capture đó bạn : http://www.dientuvietnam.net/forums/...em-voi-200964/
              Last edited by tramng; 13-04-2014, 17:30.

              Comment

              • manh.cntd
                Thành viên chính thức
                • May 2013
                • 37

                #172
                Nguyên văn bởi menxplorer Xem bài viết
                Click here to enlarge Nguyên văn bởi chau0105_bt Click here to enlarge
                Sản phẩm của mình viết trên mô phỏng Protue 7.5 nên bạn nào muốn làm thực tế thì thay đổi thời gian hiển thị.
                Mình sử dụng 5 nút để chỉnh giờ như sau:
                + Mode : chọn chế độ chỉnh Clock và Alarm
                + Up : tăng
                + Down : Giảm
                + Alarm : Chọn hẹn Alarm
                + Ok : Hiển thị Clock
                Bạn nào cần trợ giúp và nhan file Full thi mail cho mình qua địa chỉ sau: chau0105_bt@yahoo.com
                Download: Free File Sharing Made Simple - MediaFire
                bác ơi em k down dc, bác up lại hoặc mail cho em với dc k ạ, cảm ơn bác nhiều.
                gmail: manhnguyen.cntd@gmail.com

                Comment

                • ngocsibd
                  Thành viên mới
                  • Apr 2013
                  • 40

                  #173
                  sao mình làm theo code và sơ đồ mạch đồng hồ vạn niên có báo thức dùng 595 mà sao nó ko chạy gì hết vậy bạn

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...