User Tag List

+ Trả lời chủ đề
Hiện kết quả từ 1 tới 1 của 1

Chủ đề: Hỏi về DS 1307

  1. #1
    svBK's Newbie
    Tham gia ngày
    Jan 2010
    Bài gửi
    15

    Icon10 Hỏi về DS 1307

    Mình đang làm 1 ví dụ nhỏ với DS1307 là dùng pic 16f877a đọc giá trị của thanh ghi giây (thanh ghi 0x00),dựa vào giá trị đó sẽ làm cho led sáng.Nếu Second=(0,15),led 1 sáng,=(16,30),led2 sáng,=(31,45),led3 sáng, =(46,60)led 4 sáng.Nhưng không hiểu sao PIC lai không thể chuyển trạng thái được.Ví dụ như ở khoảng thời gian từ giây thứ 1->15, led1 sáng nhưng đến giây thứ 16, led 2 không sáng mà led 1 vẫn sáng.Đây là code và mạch của mình, mong các tiền bối chỉ giáo! Trình dịch là ccs, mô phỏng bằng proteus.
    ////////////////////////////////////////////////////////////////////////////////////////////
    #include "D:\Electronic and Telecomunication\sendpicvietnam.h"
    #use i2c(MASTER,FAST,SDA=PIN_C4,SCL=PIN_C3)
    #include <C:\Program Files\PICC\Devices\ds1307.c>
    #fuses HS,NOWDT,NOPROTECT,NOLVP
    #use delay(clock=20000000)
    #byte PORTB=0x06
    int8 mode;

    int8 time()
    {
    int8 s,second;
    second=read_DS1307(0);
    s=(second/16)*10 +second%16;
    if(s<15) return 1;
    if((s>=15)&&(s0)) return 2;
    if((s>=30)&&(s<45)) return 3;

    if(s>=45) return 4;
    }



    void main()
    {
    //enable_interrupts(int_ext);
    //ext_int_edge(0,H_TO_L);
    //enable_interrupts(global);
    set_tris_b(0x00);
    init_DS1307();
    while(1){mode=time();
    if(mode==1){
    output_high(pin_b1);output_low(pin_b2);output_low( pin_b3);}
    if(mode==2){
    output_high(pin_b2);output_low(pin_b1);output_low( pin_b3);}
    if(mode==3){
    output_high(pin_b3);output_low(pin_b2);output_low( pin_b1);}
    if(mode==4){output_high(pin_b3);output_high(pin_b1 );output_high(pin_b2);}

    }}
    ////////////////////////////////////////////////////////////////////////
    Còn đây là code ds1307
    /////////////////////////////////////////////////////////////////////////
    #define DS1307_SDA PIN_C4
    #define DS1307_SCL PIN_C3

    void write_DS1307(byte address, BYTE data)
    {
    short int status;
    i2c_start();
    i2c_write(0xd0);
    i2c_write(address);
    i2c_write(data);
    i2c_stop();
    i2c_start();
    status=i2c_write(0xd0);
    while(status==1)
    {
    i2c_start();
    status=i2c_write(0xd0);
    }
    }
    BYTE read_DS1307(byte address)
    {
    BYTE data;
    i2c_start();
    i2c_write(0xd0);
    i2c_write(address);
    i2c_start();
    i2c_write(0xd1);
    data=i2c_read(0);
    i2c_stop();
    return(data);
    }

    void init_DS1307()
    {
    int8 temp1,temp2,temp3;
    output_float(DS1307_SCL);
    output_float(DS1307_SDA);
    temp1= read_DS1307(0);//giay
    temp2= read_DS1307(1);//phut
    temp3= read_DS1307(2);//gio
    temp1 &= 0x7f;
    temp2 &= 0x7f;
    temp3 &= 0x3f;
    delay_us(5);
    write_DS1307(0,temp1);
    write_DS1307(1,temp2);
    write_DS1307(2,temp3);
    }
    Đính kèm thu nhỏ Đính kèm thu nhỏ simlation.jpg  

+ Trả lời chủ đề

Thông tin chủ đề

Users Browsing this Thread

Hiện có 1 người đọc bài này. (0 thành viên và 1 khách)

Chủ đề tương tự

  1. Hỏi về chứng chỉ quân sự???
    Gửi bởi redstar trong mục Thông tin chung Toàn Trường
    Trả lời: 3
    Bài cuối: 06-08-2010, 08:40 AM
  2. Những câu hỏi nên hỏi và không nên hỏi trong Phỏng vấn!!!!
    Gửi bởi MyJOBJOB trong mục Chia sẻ kinh nghiệm
    Trả lời: 0
    Bài cuối: 01-06-2010, 10:28 AM
  3. Bạn học Bách Khoa cho ai? Để làm gì?
    Gửi bởi aladanh trong mục Thảo luận
    Trả lời: 21
    Bài cuối: 28-09-2006, 09:43 PM
  4. Hỏi về Tuyển sinh CĐ năm 2006
    Gửi bởi bigbang trong mục Giảng đường Khoa Điện
    Trả lời: 1
    Bài cuối: 08-08-2006, 11:30 PM
  5. Bai viet tim tren mang thay hay hay (CƯA Gái)
    Gửi bởi dotheanh trong mục Tình bạn - Tình yêu
    Trả lời: 18
    Bài cuối: 06-08-2006, 11:10 PM

Từ khóa (Tag) của chủ đề này

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình


About svBK.VN

    Bách Khoa Forum - Diễn đàn thảo luận chung của sinh viên ĐH Bách Khoa Hà Nội. Nơi giao lưu giữa sinh viên - cựu sinh viên - giảng viên của trường.

Follow us on

Twitter Facebook youtube