Thông báo

Collapse
No announcement yet.

Hỏi về đồng hồ thời gian thực 8051+LCD

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

  • Hỏi về đồng hồ thời gian thực 8051+LCD

    Em đang làm đồ án môn học 1, có tham khảo code trên mạng, có đoạn code này các anh có biết thì giải thích dùm em.cho em hỏi hàm start, stop để làm gì (sda,scl,slc các chân DS1307 và dòng Data=Data|sda có tác dụng làm gì), câu lệnh màu đỏ có sai ko, tại sao lại có dấu ? nữa,học vixuli rồi mà ko thấy cái lệnh nào như vậy.
    Code:
    /**********************************************************************************/
      //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
     //                    CAC CHUONG TRINH CON GIAO TIEP VOI RTC                   //
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    // ca 2 dk start va stop dc tao ra boi	thiet bi chu
    void start_rtc(void) //dk start: 1 su cdoi tthai tu cao xuong thap tren duong sda trong khi
       {				 //duong scl dang o muc cao
    	scl=1;
    	sda=1;	
    	_nop_();
    	_nop_();
    	sda=0;
    	scl=0;
       }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void stop_rtc(void)	//dk stop: 1 su cdoi trang thai tu muc thap len cao tren duong sda trong khi duong				
        {				// slc dang o muc cao
    	sda=0;
    	scl=1;
    	_nop_();
    	_nop_();
    	sda=1;
    	}
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    void gui_rtc(unsigned char x)
        {	
    	unsigned char i;	
    	for(i=0;i<8;i++)
    	    {
    		sda=(x&0x80)? 1:0;  //dua bit du lieu ra chan SDA
    		scl=1;					  
    	   _nop_();
    	   _nop_();			  
    		scl=0;
    		x<<=1;			   //bit co trong so lon hon dc truyen truoc
    	    }
    	 scl=1; 			   //nhan bit ACK tu SLAVER	bao hieu ket thuc mot byte du lieu
    	_nop_();
    	_nop_();
    	 scl=0;
        }
    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
    unsigned char nhan_rtc(void)
    {	
    	unsigned char Data,i;	
    	for(i=0;i<8;i++) // nhan vao 8 bit
    	  {
    		scl=1; 
    	 	Data<<=1;
    		Data=Data|sda;
    		scl=0;
         	} 	
    	sda=1;	//	  trong qua trinh doc mot chuoi byte tu slaver master gui bit ACK=> sda=1
    	scl=1; //master nhan/gui bit du lieu(sda) khi scl o muc cao
    	_nop_();
    	scl=0;
    	_nop_();//du lieu(sda) thay doi khi scl muc thap/
    	return Data;//tra gia tri cho ham
    }
    Last edited by doublemint_1; 03-04-2014, 18:11.

Về tác giả

Collapse

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

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

Collapse

Đang tải...
X