Hiển thị LED 7 thanh với IC TM1628

Thảo luận trong 'Sản Phẩm Mới' bắt đầu bởi an.dxuan, 19 Tháng mười một 2014.

Users Viewing Thread (Users: 0, Guests: 0)

Lượt xem: 1,267

  1. an.dxuan

    an.dxuan Admin

    Chào các bạn!
    Hôm nay mình xin giới thiệu đến các bạn một loại IC điều khiển LED & thanh mới mà mình vừa tìm hiểu .Loại IC thường được dùng để điều khiển LED hiển thị trong các thu kĩ thuật số ,đầu DVD . IC TM1628
    1- Thông số kĩ thuật và đặc điểm
    - Điện áp vào : 5V
    - 2 chế độ hiển thị
    - Quét ma trận phím (8x2)
    - Truyền / Nhận dữ liệu nối tiếp
    2- Sơ đồ chân và chức năng
    [​IMG]
    Chức năng
    [​IMG]
    Sơ đồ kết nối
    [​IMG]
    Trong đó các chân DIO , SCLK, STB được nối với các chân I/O của vi điều khiển
    3- Ghi dữ liệu từ IC
    [​IMG]

    Theo sơ đồ trên ta có

    Khi muốn truyền dữ liệu là Data
    - Kéo chân STB = 0 ; các bit dữ liệu được truyền vào khi có một sườn lên của chân CLK
    Các bạn có thể tham khảo code
    Mã:
    void TM1628_WriteByte(uint8_t Data)
    {
      uint8_t i;
      TM1628_DDR_DAT = DDROUT;
      TM1628_CLK = 1 ;
      for(i=0;i<8;i++)
      {
              TM1628_CLK = 0;
              TM1628_DATAOUT = ((Data&0x01)!=0);
              TM1628_CLK = 1;
            Data = Data >> 1;
    }
    }
    Khi muốn truyền dữ liệu là Command
    Thì sau khi truyền một Command xong chúng ta cần kéo chân STB lên 1
    Mã:
    void TM1628_SendCommand(uint8_t Command)
    {
          TM1628_STB = 0;
          TM1628_WriteByte(Command);
          TM1628_STB = 1;
    } 
    4- Đọc dữ liệu
    [​IMG]
    Tương tự như ghi dữ liệu .Trước khi đọc dữ liệu chúng ta cần kéo chân STB xuống 1 .Kéo chân CLK xuống 0 để bắt đầu đọc 1 bit dữ liệu và kết thức việc đọc 1 bit bằng kéo chân CLK lên 1
    Mã:
    uint8_t TM1628_ReadByte()
    {
          uint8_t i,Data = 0;
          TM1628_DDR_DAT = DDRIN;
          TM1628_CLK = 1;
          for(i=0;i<8;i++)
        {
              TM1628_CLK=0;
                Data = Data >>1;
                if(TM1628_DATAIN)
                {
                      Data|=0x80;
                }
                TM1628_CLK=1;
        }
        TM1628_DDR_DAT = DDROUT;
        return (Data);
    } 
    5- RAM Hiển thị
    Sơ đồ địa chỉ RAM hiển thị
    [​IMG]
    HL - 4 bit thấp
    HU- 4 bit cao
    Như sơ đồ nguyên lí trên 7DIG được nối với Katot của 7 con led 7 thanh .Và 8SG được nối với 8 chân dữ liệu của các led
    Nhìn vào sơ đồ địa chỉ của RAM hiển thị mình có thể giải thích cho các bạn cơ chế hiển thị như sau
    Với 7 DIG thì ứng với hiển thị 1 DIG thì tương ứng với 1 địa chỉ : ví dụ : để hiển thị DIG1 (tương ứng led1) thì có địa chỉ là ) 0x00; và 4 thanh a-d tương ứng với 0x01 -0x02 -0x04 -0x08 và 4 thanh e - dp trương ứng với 0x10- 0x20 - 0x40 - 0x80
    Tương tự với các con LED khác
    Vậy để hiển thị lên các con LED thì mình làm như sau
    Sử dụng 13 byte để quản lí RAM hiển thị .Mỗi lần muốn hiển thị thì mình sẽ truyền 13 byte này vào IC .Muốn thay đổi hiển thị thì mình sẽ thay đổi giá trị trong 13 byte này rồi bắn lại
    Các bạn có thể tham khảo code để biết rõ hơn .
    Chúc các bạn thành công khi giao tiếp với IC TM1628 !

    Các file đính kèm:

  2. winer251

    winer251 New Member

    cho em hỏi tý. em có cái đầu dvd dùng TM1628 hiển thị và điều khiển nhưng tại sao led 7 đoạn vẫn sáng mà công tắc điều khiển ko đượ, dôi lúc được thì nó lại chuyển lung tung( next thành "2", back tháng 6...).? mong sơm có câu trả lời giúp em ak. em cảm ơn!
  3. sinotruk

    sinotruk New Member

    Bên dưới là lib mình chỉnh sửa giao tiếp với 8051. ai làm thì phát triển thêm nha. m tận dụng nó từ cái mặt bếp từ hỏng để làm đồng hồ. ai làm cùng thì liên lạc với m cho vui nha fb.com/Nguyenxuanchuc82

    Các file đính kèm:

    Last edited: 17 Tháng mười hai 2016
    denledsunky thích bài này.

Chia sẻ trang này

Lên trên