標題: 求助大佬怎樣控制aip1618驅(qū)動四位數(shù)碼管,芯片數(shù)據(jù)手冊看不明白 [打印本頁]

作者: zhangjinyu    時間: 2024-1-30 16:38
標題: 求助大佬怎樣控制aip1618驅(qū)動四位數(shù)碼管,芯片數(shù)據(jù)手冊看不明白
不知道怎樣控制位號


#include "reg51.H"
#include "intrins.h"
sbit  pOR_Disp_Clk=P1^0;
sbit  pOR_Disp_Da=P1^1;
sbit  pOR_Disp_Stb=P1^2;
unsigned char b_DispBuf[14];
unsigned char code letter_tab[]=
{                  
        0x3f,       
        0x06,       
        0x5b,       
        0x4f,       
        0x66,       
        0x6d,       
        0x7d,       
        0x07,       
        0x7f,       
        0x6f,       
        0x77,       
        0x7c,       
        0x39,       
        0x5e,       
        0x79,       
        0x71,       
        0x40,       
        0x00,       
        0x76,       
        0x38,       
        0x73,       
        0x58,       
        0x00       
};
void  s_Send_Start(void)  //stb下降沿
{
  pOR_Disp_Stb=1;
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
  pOR_Disp_Stb=0;
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
}
void  s_Send_Data(unsigned char para_dispsend)//寫數(shù)據(jù)
{
  unsigned char i;

  for(i=0;i<8;i++)
  {
        if((para_dispsend&0x01)==0x01)
        {
          pOR_Disp_Da=1;       
        }
        else
        {
          pOR_Disp_Da=0;               
        }
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();

        pOR_Disp_Clk=0;
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
        pOR_Disp_Clk=1;
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
         _nop_();
        para_dispsend >>= 1;
  }
}
void  s_Drive_2618(void)
{
          unsigned char i;
          unsigned char p_disp_com_buff;
          
          s_Send_Start();   
          s_Send_Data(0x00);//顯示模式四位八段       
          
          s_Send_Start();
          s_Send_Data(0x40);//0100 0000寫數(shù)據(jù)到顯示寄存器,固定位置               
          
          s_Send_Start();
          s_Send_Data(0xc0);//1100 0000設置顯示寄存器地址00H               
          
          p_disp_com_buff=0;  
          for(i=0;i<8;i++)
          {

                s_Send_Data(b_DispBuf[i]);
          }  
          s_Send_Start();
      s_Send_Data(0x8f);//顯示開               
          pOR_Disp_Stb=1;
}

void main()
  {   
         s_Drive_2618();
           while(1)
            {                               
            }
   }


Screenshot-23f72e5f-b508-430b-a20a-66c28d6a9c9c.png (41.26 KB, 下載次數(shù): 53)

Screenshot-23f72e5f-b508-430b-a20a-66c28d6a9c9c.png

poYBAGL7DEeAdVEjAApJzrecetI004.pdf

658.45 KB, 下載次數(shù): 6


作者: lkc8210    時間: 2024-1-30 17:23
發(fā)送命令/數(shù)據(jù)時,STB要低電平



作者: Hephaestus    時間: 2024-1-30 17:48
s_Send_Data(b_DispBuf[i]);
這句里面的i不就是8個位么,還想要什么自行車?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1