Thông báo

Collapse
No announcement yet.

cần giúp đỡ về đưa 1 byte dữ liệu ra 1 chân của vđk atmega8

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

  • cần giúp đỡ về đưa 1 byte dữ liệu ra 1 chân của vđk atmega8

    em xem trên diễn đàn thấy có viết các hàm:
    -void M_Sent_Byte(unsigned char byte) // truyền 1 byte dữ liệu
    -void M_Sent_Bit(unsigned char i) // truyền 1 bit dữ liệu
    Nhưng em lại không biết dùng như thế nào, mong các anh (chị) nào biết thì giải thích và cho em 1 ví dụ. thank all

  • #2
    Vd truyển byte 0b0000 1111 ra chân C.0 Có hai cách :
    1) Thủ công :
    Code:
    #define phase_A PORTC.0
    void Send_byte()
    {
      phase_A = 0;delay_us(3);
      phase_A = 0;delay_us(3);
      phase_A = 0;delay_us(3);
      phase_A = 0;delay_us(3);
      phase_A = 1;delay_us(3);
      phase_A = 1;delay_us(3);
      phase_A = 1;delay_us(3);
      phase_A = 1;delay_us(3);
    }
    void main()
    {
      Send_Byte() ; while(true);
    }
    2) Dùng hàm :
    Code:
    #define phase_A PORTC.0
    //================ ham ktra gtri tung bit trong byte ==================
    char test_bit(unsigned char source, unsigned char bit_number)
    { unsigned char temp5;
      temp5 = 1 << bit_number;
      temp5 = temp5 & source;
      return (temp5 > 0)?1:0;
    }
    
    void Send_Byte(unsigned char k1)
    { unsigned char k2=0;
      for(k2=0;k2<8;k2++) 
      if(test_bit(k1,k2)== 1) phase_A=1 ; else phase_A=0;
    }
    
    void main()
    {
      Send_Byte(0x0F) ; while(true);
    }

    Comment

    Về tác giả

    Collapse

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

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

    Collapse

    Đang tải...
    X