RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

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

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts
  • hungtrinh36
    Thành viên tích cực
    • Apr 2011
    • 346

    #1

    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
  • queduong
    Moderator
    • Jul 2005
    • 6780

    #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

    • hungtrinh36
      Thành viên tích cực
      • Apr 2011
      • 346

      #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...