Thông báo

Collapse
No announcement yet.

Sửa giúp em code 8051 - DS1307

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

  • Sửa giúp em code 8051 - DS1307

    #include <REG51F.H>
    sbit SDA = P1^0;
    sbit SCL = P1^1;
    sbit key_status = P3^2;
    sbit key_seclect = P3^3;
    sbit key_inc = P3^1;
    sbit key_dec = P3^0;
    // khai bao bien cuc bo
    unsigned char sec,min,hour,sec1,sec2,min1,min2,hour1,hour2,day,d ay1,date,month,year,date1,date2,month1,month2,year 1,year2;
    unsigned char maled[10] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };
    // khai bao chuong tring con
    void delay_us(unsigned char t);
    void giophutgiay(void);
    void thungaythangnam(void);
    // chuong trinh con RTC
    void i2c_start(void);
    void i2c_stop(void);
    void i2c_write(unsigned char data2send);
    unsigned char i2c_read(bit ACK_bit);
    void update_time(void);
    void update_rtc(void);
    // code chuong trinh con
    void init_main(void)
    {
    P0=0;
    P1=0;
    P2=0;
    P3=0xff;
    }
    void delay_us(unsigned char t)
    {
    unsigned char i;
    for(i=0;i<=t;i++);
    }
    // code chuong trinh con giao tiep I2C
    void i2c_start(void)
    {
    SDA=1;
    SCL=1;
    delay_us(10);
    SDA=0;
    SCL=0;
    delay_us(10);
    }
    void i2c_stop(void)
    {
    SDA=0;
    SCL=0;
    delay_us(10);
    SDA=1;
    SCL=1;
    delay_us(10);
    }
    void i2c_write(unsigned char data2send)
    {
    unsigned char i;
    for(i=0;i<=7;i++)
    {
    SDA=(data2send&0x80)?1:0;
    SCL=1;
    delay_us(5); // truyen 1 byte du lieu tu song song sang noi tiep
    SCL=1;
    delay_us(5);
    data2send<<=1;
    }
    SDA=0; // gui bit ACK bao ket thuc viec truyen xong 1 byte du lieu
    SCL=1;
    delay_us(5); // tao mot xung clock de nhan bit ACK
    SCL=0;
    }
    unsigned char i2c_read(bit ACK_bit) // Bien ACK_bit co gia tri 0 hoac 1
    {
    unsigned char i,data_recive=0;
    for(i=0;i<=7;i++)
    { SDA=1;
    SCL=1;
    data_recive<<=1;
    data_recive=(data_recive|SDA);
    delay_us(3);
    SCL=0;
    delay_us(5);
    }
    SDA=ACK_bit; // neu SDA=ACK_bit=0 thi ket thuc nhan du lieu, nguo
    SCL=1;
    delay_us(5); // Tao 1 xung clock de nhan bit ACK hay NOT ACK
    SCL=0;
    delay_us(5);
    return data_recive; // tra ve gia tri nhan duoc
    }
    // Code giao tiep RTC
    void update_time(void)
    {
    i2c_start();
    i2c_write(0xD0); // dia chi ds1307
    i2c_write(0x00); // bat dau ghi vao thanh ghi Giay
    i2c_stop();
    i2c_start();
    i2c_write(0xD1);// Cho phep doc du lieu tu rtc

    sec=i2c_read(0);
    min=i2c_read(0);
    hour=i2c_read(0);

    day=i2c_read(0);
    date=i2c_read(0);
    month=i2c_read(0);
    year=i2c_read(1);
    i2c_stop();

    // chuyen ma hien thi led 7seg
    sec1=sec&0x0f; // lay 4 bit thap
    sec2=(sec&0x70)>>4;

    min1=min&0x0f;
    min2=(min&0x70)>>4;

    hour1=hour&0x0f;
    hour2=(hour&0x30)>>4;

    day1=day&0x0f;

    date1=date&0x0f;
    date2=(date&0x30)>>4;

    month1=month&0x0f;
    month2=(month&0x10)>>4;

    year1=year&0x0f;
    year2=(year&0xf0)>>4;
    }
    void giophutgiay(void)
    {
    P0=maled[sec1];
    P2=0x01;
    delay_us(100);
    P2=0x00;
    P0=maled[sec2]; // hien thi Giay
    P2=0x02;
    delay_us(100);
    P2=0x00;

    P0=0x40;
    P2=0x04;
    delay_us(100); // hien thi dau gach noi
    P2=0;

    P0=maled[min1];
    P2=0x08;
    delay_us(100);
    P2=0;
    P0=maled[min2];
    P2=0x10;
    delay_us(100);
    P2=0;

    P0=0x40;
    P2=0x20; // hien thi dau gach noi
    delay_us(100);
    P2=0;

    P0=maled[hour1];
    P2=0x40;
    delay_us(100);
    P2=0;
    P0=maled[hour2];
    P2=0x80;
    delay_us(100);
    P2=0;
    }
    void ngaythangnam(void)
    {
    int i=0;
    while(i<600)
    {
    P0=maled[year1];
    P2=0x01;
    delay_us(100);
    P2=0; // hien thi nam
    P0=maled[year2];
    P2=0x02;
    delay_us(100);
    P2=0;

    P0=0x40;
    P2=0x04;
    delay_us(100); // hien thi dau gach noi
    P2=0;

    P0=maled[month1];
    P2=0x08;
    delay_us(100);
    P2=0;
    P0=maled[month2];
    P2=0x10;
    delay_us(100);
    P2=0;

    P0=0x40;
    P2=0x20; // hien thi dau gach noi
    delay_us(100);
    P2=0;

    P0=maled[date1];
    P2=0x40;
    delay_us(100);
    P2=0;
    P0=maled[date2];
    P2=0x80;
    delay_us(100);
    P2=0;
    i++;
    }
    }
    void update_rtc(void)
    {
    unsigned char d;
    i2c_start();
    i2c_write(0xD0);
    i2c_write(0x00); // bat dau ghi tu thanh ghi Giay

    d=sec1+(sec2<<4);
    d=d&0x7f;
    i2c_write(d);

    d=min1+(min2<<4);
    i2c_write(d);

    d=hour1+(hour2<<4);
    i2c_write(d);

    d=day; // Vi ngay tu 1 - 7 ung voi SUN - SAT
    i2c_write(d);

    d=date1+(date2<<4);
    i2c_write(d);

    d=month1+(month2<<4);
    i2c_write(d);

    d=year1+(year2<<4);
    i2c_write(d);

    i2c_stop(); // ket thuc truyen du lieu
    }
    void set_min(void)
    {
    if(key_inc==0)
    {
    while(key_inc==0){}
    delay_us(10);
    min1++;
    if((min1==10)&(min2=5))
    {
    min1=0; min2=0;
    }
    else if(min1==10)
    {
    min2++; min1=0;
    }
    }
    if(key_dec==0)
    {
    while(key_dec==0){}
    delay_us(10);
    min1--;
    if((min1==255)&(min2==0))
    {
    min1=9; min2=5;
    }
    if(min1==255)
    {
    min1=9;
    min2--;
    }
    }
    P0=maled[min1]; P2=0x04; delay_us(5000); P2=0;

    P0=maled[min2]; P2=0x10; delay_us(5000); P2=0;
    }
    void set_hour(void)
    {
    if(!key_inc)
    {
    while(!key_inc){}
    delay_us(10); // chong rung phim
    hour1++;
    if((hour1==4)&(hour2==2))
    {
    hour1=0; hour2=0;
    }
    if(hour1==10)
    {
    hour1=0; hour2++;
    }
    }
    if(!key_dec)
    {
    while(!key_dec){}
    delay_us(10); // chong rung phim
    hour1--;
    if((hour1==255)&(hour2==0))
    {
    hour1=3; hour2=2;
    }
    if(hour1==255)
    {
    hour1=0; hour2--;
    }
    }
    P0=maled[hour1]; P2=0x40; delay_us(5000); P2=0;
    P0=maled[hour2]; P2=0x80; delay_us(5000); P2=0;
    }
    void set_date(void)
    {
    if(!key_inc)
    {
    while(!key_inc){}
    delay_us(10);
    date1++;
    if((date1==2)&(date2==3))
    {
    date1=1; date2=0;
    }
    if(date1==10)
    {
    date1=9; date2++;
    }
    }
    if(!key_dec)
    {
    while(!key_dec){}
    delay_us(10);
    date--;
    if((date1==0)&(date2==0))
    {
    date1=1; date2=3;
    }
    if(date1==255)
    {
    date2--; date1=0;
    }
    }

    P0=maled[date1]; P2=0x80; delay_us(5000); P2=0;
    P0=maled[date2]; P2=0x40; delay_us(5000); P2=0;
    }
    void set_month(void)
    {
    if(!key_inc)
    {
    while(!key_inc){}
    delay_us(10);
    month1++;
    if((month1==3)&(month2==1))
    {
    month1=1; month2=0;
    }
    if(month1==10)
    {
    month1=0; month2++;
    }
    }
    if(!key_dec)
    {
    while(!key_dec){}
    delay_us(10);
    month--;
    if((month=0)&(month2=0))
    {
    month1=2; month2=1;
    }
    if(month1==0)
    {
    month1=9; month2--;
    }
    }
    P0=maled[month1]; P2=0x08; delay_us(5000); P2=0;
    P0=maled[month2]; P2=0x10; delay_us(5000); P2=0;
    }
    void set_year(void)
    {
    if(!key_inc)
    {
    while(!key_inc){}
    delay_us(10);
    year1++;
    if((year1==10)&(year2==9))
    {
    year1=0; year2=0;
    }
    if(year1==10)
    {
    year1=0; year2++;
    }
    }
    if(!key_dec)
    {
    while(!key_dec){}
    delay_us(10);
    year1--;
    if((year1==255)&(year2==0));
    {
    year1=9; year2=9;
    }
    if(year1==255)
    {
    year1=9; year2--;
    }
    }
    P0=maled[year1]; P2=0x01; delay_us(5000); P2=0; // nhap nhay led
    P0=maled[year2]; P2=0x02; delay_us(5000); P2=0;
    }
    void scan_key(void)
    {
    int j=0,i=0;
    if(!key_status)
    {
    ngaythangnam();
    if(!key_seclect)
    {
    i++;
    switch(i)
    {
    case 1: set_year();break;
    case 2: set_month();break;
    case 3: set_date();break;
    }
    }
    }
    else
    {
    giophutgiay();
    if(!key_seclect)
    {
    j++;
    switch(j)
    {
    case 1: set_min();break;
    case 2: set_hour();break;
    }
    }
    }
    update_rtc();
    }
    // Chuog trinh chinh
    void main()
    {
    min=0x57;
    sec=0x00;
    hour=0x10;

    day=0x01;
    date=0x27;
    month=0x07;
    year=0x10;
    init_main();
    while(1)
    {
    update_time();
    scan_key();
    }
    }





    bac nao cao thu giup em voi nha ! em ngoi viet ca buoi toi, cuoi cung thi ko chay duoc. Chan wa !
    Cau truc phan cung: P0= data to LED 7 seg
    P2= chon LED xx-xx-xx
    " Muốn biết phải hỏi, muốn giỏi phải học "

  • #2
    Em cũng đang nghiên cứu về con DS1307, em là thành viên mới của diễn đàn, em cũng có đoạn code nhờ mấy anh sửa dùm em, đoạn code này chỉ là đọc giờ, phút, giây từ DS1307 rồi xuất ra led 7 đoạn, nhưng khi em xuất ra thì thứ tự giờ phút giây trên 6 led 7 đoạn lại không đúng, em không hiểu vì sao lại như vậy nên mong mấy anh chỉ giáo.
    đây là link file mô phỏng và code
    http://www.mediafire.com/?9d5urojdu2ynm8z

    Comment


    • #3
      các bác ơi, bỏ chút thời gian giúp em với ! sao không bác nào giúp em với vậy ? em năn nỉ các bác đó
      " Muốn biết phải hỏi, muốn giỏi phải học "

      Comment


      • #4
        Nguyên văn bởi bbdevil Xem bài viết
        Em cũng đang nghiên cứu về con DS1307, em là thành viên mới của diễn đàn, em cũng có đoạn code nhờ mấy anh sửa dùm em, đoạn code này chỉ là đọc giờ, phút, giây từ DS1307 rồi xuất ra led 7 đoạn, nhưng khi em xuất ra thì thứ tự giờ phút giây trên 6 led 7 đoạn lại không đúng, em không hiểu vì sao lại như vậy nên mong mấy anh chỉ giáo.
        đây là link file mô phỏng và code
        http://www.mediafire.com/?9d5urojdu2ynm8z
        CODE của bạn có 2 phần bị lỗi:

        Thứ 1:

        Bạn khai báo kiểu Bit

        LED_GIAY BIT P2.0
        LED_C_GIAY BIT P2.1
        LED_PHUT BIT P2.2
        LED_C_PHUT BIT P2.3
        LED_GIO BIT P2.4
        LED_C_GIO BIT P2.5
        LED_DATA EQU P0

        Nhưng lại dùng lệnh Mov cho biến đó

        MOV LED_GIAY,#0 ;** RESET TAT CA CAC BIEN
        MOV LED_C_GIAY,#0
        MOV LED_PHUT,#0
        MOV LED_C_PHUT,#0

        cách viết nhanh nhất là set cả Port về không

        MOV P2,#0

        hoặc set tường minh bằng lệnh:

        CLR LED_GIAY

        Thứ 2:


        Đây là phần các bạn hay bị lỗi nhất là Start và Stop của I2C,

        Bạn chỉ cần thêm phần code màu đỏ vào là được:


        START_DS:
        CLR SCL
        SETB SCL

        SETB SDA
        SETB SCL
        NOP
        CLR SDA
        CLR SCL
        RET

        STOP_DS:
        SET SCL
        CLR SCL

        CLR SDA
        SETB SCL
        NOP
        SETB SDA
        RET
        Last edited by pctcom; 03-09-2010, 00:45.
        PCT COMPUTER
        (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

        Comment


        • #5
          Nguyên văn bởi fan.8051 Xem bài viết
          các bác ơi, bỏ chút thời gian giúp em với ! sao không bác nào giúp em với vậy ? em năn nỉ các bác đó
          Nêu muốn người khác giúp bạn nên gởi kèm file mô phỏng và code. Còn chỉ gởi code lên thì anh em muốn giúp cũng khó.
          PCT COMPUTER
          (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

          Comment


          • #6
            Nguyên văn bởi bbdevil Xem bài viết
            Em cũng đang nghiên cứu về con DS1307, em là thành viên mới của diễn đàn, em cũng có đoạn code nhờ mấy anh sửa dùm em, đoạn code này chỉ là đọc giờ, phút, giây từ DS1307 rồi xuất ra led 7 đoạn, nhưng khi em xuất ra thì thứ tự giờ phút giây trên 6 led 7 đoạn lại không đúng, em không hiểu vì sao lại như vậy nên mong mấy anh chỉ giáo.
            đây là link file mô phỏng và code
            http://www.mediafire.com/?9d5urojdu2ynm8z
            Pác dùng phiên bản mấy mà em mở không dc file mô phỏng vậy? em dùng Proteus 7.4 sp3
            Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

            Comment


            • #7
              bạn xem minh code C duoc ko ? mình ko rành về ASM
              " Muốn biết phải hỏi, muốn giỏi phải học "

              Comment


              • #8
                Nguyên văn bởi pctcom Xem bài viết
                code của bạn có 2 phần bị lỗi:

                thứ 1:

                bạn khai báo kiểu bit

                led_giay bit p2.0
                led_c_giay bit p2.1
                led_phut bit p2.2
                led_c_phut bit p2.3
                led_gio bit p2.4
                led_c_gio bit p2.5
                led_data equ p0

                nhưng lại dùng lệnh mov cho biến đó

                mov led_giay,#0 ;** reset tat ca cac bien
                mov led_c_giay,#0
                mov led_phut,#0
                mov led_c_phut,#0

                cách viết nhanh nhất là set cả port về không

                mov p2,#0

                hoặc set tường minh bằng lệnh:

                clr led_giay

                thứ 2:


                Đây là phần các bạn hay bị lỗi nhất là start và stop của i2c,

                bạn chỉ cần thêm phần code màu đỏ vào là được:


                start_ds:
                clr scl
                setb scl

                setb sda
                setb scl
                nop
                clr sda
                clr scl
                ret

                stop_ds:
                set scl
                clr scl

                clr sda
                setb scl
                nop
                setb sda
                ret
                ko duoc bẠn Ơi. Minh sỦa lẠi code nhƯng van ko duoc. BẠn xem lẠi giÚp minh voi
                " Muốn biết phải hỏi, muốn giỏi phải học "

                Comment


                • #9
                  bạn cho biết : bạn dùng trình dịch gì? bạn viết chương trình cho con gì? mình không viết C nhưng bạn xem lại chỗ reg51f.h mình mới chỉ nghe nói đến reg51.h còn reg51f.h thì chưa thấy bao giờ
                  sale of Gobal Automation Solution Company Limited

                  Comment


                  • #10
                    Nguyên văn bởi fan.8051 Xem bài viết
                    ko duoc bẠn Ơi. Minh sỦa lẠi code nhƯng van ko duoc. BẠn xem lẠi giÚp minh voi
                    Bạn vào đây mà tải về nhé: DS1307.rar
                    Last edited by pctcom; 03-09-2010, 11:57.
                    PCT COMPUTER
                    (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                    Comment


                    • #11
                      Nguyên văn bởi tnt288 Xem bài viết
                      Pác dùng phiên bản mấy mà em mở không dc file mô phỏng vậy? em dùng Proteus 7.4 sp3
                      Đã có phiên bản Proteus 7.7 Sp2 rồi đó bạn.
                      PCT COMPUTER
                      (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                      Comment


                      • #12
                        ptcom ơi ! sao chỉ có filke hex thôi vây ? bạn cho minh file ASM được ko ?
                        " Muốn biết phải hỏi, muốn giỏi phải học "

                        Comment


                        • #13
                          Nguyên văn bởi fan.8051 Xem bài viết
                          ptcom ơi ! sao chỉ có filke hex thôi vây ? bạn cho minh file ASM được ko ?
                          ban tham khao cai nay nha
                          Code:
                          data_DS1307	bit	p3.6
                          clock_DS1307	bit	p3.7
                          DS1307W		EQU	0d0h
                          DS1307R		EQU	0d1h
                          
                          co_on_clock	bit	20h.0
                          temp_1		equ	30h
                          temp_2		equ	31h
                          
                          time_gio		equ	32h
                          time_phut		equ	33h
                          time_giay		equ	34h
                          time_thu		equ	35h
                          time_ngay		equ	36h
                          time_thang	equ	37h
                          time_nam		equ	38h
                          ;=============================================
                          	org 0000h
                          	ljmp main 
                          	org 0030h
                          
                          main:
                          	lcall doc_dong_ho
                          	jnb co_on_clock,start_main
                          	lcall send_start
                          	mov a,#DS1307W
                          	lcall send_byte
                          	mov a,#00h
                          	lcall send_byte
                          	mov a,#00h
                          	lcall send_byte
                          start_main:
                          	jmp $
                          ;-----------------------------------------------------------------
                          doc_dong_ho:
                          	lcall send_start
                          	mov a,#DS1307W
                          	lcall send_byte
                          	mov a,#00h
                          	lcall send_byte
                          	lcall send_start
                          	mov a,#DS1307R
                          	lcall send_byte
                          
                          	lcall read_byte
                          	mov c,acc.7
                          	mov co_on_clock,c
                          	lcall chuyen_doi_so_hex
                          	mov time_giay,a
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	lcall chuyen_doi_so_hex
                          	mov time_phut,a
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	lcall chuyen_doi_so_hex
                          	mov time_gio,a
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	mov time_thu,a	
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	lcall chuyen_doi_so_hex
                          	mov time_ngay,a
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	lcall chuyen_doi_so_hex
                          	mov time_thang,a
                          	lcall ack_DS1307
                          
                          	lcall read_byte
                          	lcall chuyen_doi_so_hex
                          	mov time_nam,a
                          	lcall nak_DS1307
                          	lcall send_stop
                          
                          	ret
                          ;-------------------------------------------------------------------------------
                          luu_dong_ho:
                          	lcall send_start
                          	mov a,#DS1307W
                          	lcall send_byte
                          	mov a,#01h
                          	lcall send_byte
                          	mov a,time_phut
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	mov a,time_gio
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	mov a,time_thu
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	mov a,time_ngay
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	mov a,time_thang
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	mov a,time_nam
                          	lcall chuyen_doi_so_thuc	
                          	lcall send_byte
                          	lcall send_stop
                          	ret
                          ;-------------------------------------------------------------------------------
                          
                          chuyen_doi_so_hex:
                          	mov temp_1,a
                          	anl a,#0fh
                          	mov temp_2,a
                          	mov a,temp_1
                          	swap a
                          	anl a,#0fh
                          	mov b,#10
                          	mul ab
                          	add a,temp_2
                          	ret
                          ;-------------------------------------------------------------------------------
                          chuyen_doi_so_thuc:
                          	mov b,#10
                          	div ab
                          	swap a
                          	orl a,b
                          	ret
                          ;-------------------------------------------------------------------------------
                          send_start:
                          	setb  data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	ret
                          ;-----------------------------------------------------------------
                          send_stop:
                          	clr data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb data_DS1307
                          	ret
                          ;-----------------------------------------------------------------
                          send_byte:
                          	mov b,#8
                          lap_send_byte:
                          	rlc a
                          	mov data_DS1307,c
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	djnz b,lap_send_byte
                          	setb data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	ret
                          ;-----------------------------------------------------------------
                          read_byte:
                          	mov b,#8
                          	setb data_DS1307
                          lap_read_byte:	
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	mov c,data_DS1307
                          	rlc a
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	djnz b,lap_read_byte	
                          	ret
                          ;-----------------------------------------------------------------
                          ack_DS1307:
                          	clr data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	ret
                          ;-----------------------------------------------------------------
                          nak_DS1307:
                          	setb data_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	setb clock_DS1307
                          	jnb clock_DS1307,$
                          	nop
                          	nop
                          	nop
                          	nop
                          	clr clock_DS1307
                          	nop
                          	nop
                          	nop
                          	nop
                          	ret
                          ;-----------------------------------------------------------------
                          end
                          Điện thoại:
                          email:

                          Comment


                          • #14
                            Nguyên văn bởi fan.8051 Xem bài viết
                            ptcom ơi ! sao chỉ có filke hex thôi vây ? bạn cho minh file ASM được ko ?
                            Hi, thiếu sót. Đã up lên file ASM rồi đó bạn: DS1307.rar
                            PCT COMPUTER
                            (Để không làm ảnh hưởng đến thời gian và công việc cá nhân. Xin vui lòng không nhắn tin và điện thoại)

                            Comment


                            • #15
                              thanks pctcom, code đó chạy ok rồi. nhưng ko co phần xử lý phím bấm, mình đang học C nên đang tìm thuật toán để viết bằng C. Bạn bổ sung thêm phan thay đổi phím bấm được ko ? vì ÁM ko rành lắm
                              " Muốn biết phải hỏi, muốn giỏi phải học "

                              Comment

                              Về tác giả

                              Collapse

                              fan.8051 Say mê Điện tử Tìm hiểu thêm về fan.8051

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

                              Collapse

                              Đang tải...
                              X