Thông báo

Collapse
No announcement yet.

cần mọi người giúp đỡ về giải thuật chuyển mã nhị phân sang hexa

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

  • cần mọi người giúp đỡ về giải thuật chuyển mã nhị phân sang hexa

    em đang làm bt về ADC của ATmega16 là hiển thị mức điện áp DC lên LCD mà gặp vấn đề là:

    theo datasheet thì 8 bit lưu trong ADCH (em dùng ADCH lưu data chuyển đổi) ở dạng nhị phân,mà thầy bắt là hiển thị số hexa lên LCD 4 bit đầu và 4 bít sau trong ADCH ấy(em đã dùng lệnh dịch bít dịch 4 bít đầu về cuối ròi),nhưng em đang vướng chỗ chuyển số nhị phân sang hexa vì LCD nó sẽ nhận mã ASCII để hiển thị lên LCD

    Vậy trong 4rum có ai giúp em giải thuật chuyển từ mã nhị phân sang hexa giúp em với

  • #2
    Nguyên văn bởi hungtrinh36 Xem bài viết
    em đang làm bt về ADC của ATmega16 là hiển thị mức điện áp DC lên LCD mà gặp vấn đề là:

    theo datasheet thì 8 bit lưu trong ADCH (em dùng ADCH lưu data chuyển đổi) ở dạng nhị phân,mà thầy bắt là hiển thị số hexa lên LCD 4 bit đầu và 4 bít sau trong ADCH ấy(em đã dùng lệnh dịch bít dịch 4 bít đầu về cuối ròi),nhưng em đang vướng chỗ chuyển số nhị phân sang hexa vì LCD nó sẽ nhận mã ASCII để hiển thị lên LCD

    Vậy trong 4rum có ai giúp em giải thuật chuyển từ mã nhị phân sang hexa giúp em với
    Cách đơn giản và thủ công nhất :

    lấy giá trị ADC 8bit chia 16 được giá mã đầu tiên :
    num1 = (int)(adc/16);
    if(num1 <10 ) {hienthi(num1 +48);}
    if(num1==10) { hienthi('A');}
    ...............................
    if(num1==15) { hienthi('F');}


    num2 = adc - (num1 *16);

    cách hiển thị tương tự như trên !

    --- Kết hợp cách viết kí tự , vị trí trên LCD ... ta thấy kiểu 0x00 , 0x01 ... 0xFF
    Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

    Comment


    • #3
      Nguyên văn bởi queduong Xem bài viết
      Cách đơn giản và thủ công nhất :

      lấy giá trị ADC 8bit chia 16 được giá mã đầu tiên :
      num1 = (int)(adc/16);
      if(num1 <10 ) {hienthi(num1 +48);}
      if(num1==10) { hienthi('A');}
      ...............................
      if(num1==15) { hienthi('F');}


      num2 = adc - (num1 *16);

      cách hiển thị tương tự như trên !

      --- Kết hợp cách viết kí tự , vị trí trên LCD ... ta thấy kiểu 0x00 , 0x01 ... 0xFF
      cảm ơn anh nhá,em sẽ làm ngay xem được không

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X