标题: pt6312 VFD屏幕单片机驱动程序 [打印本页]

作者: 51黑科技    时间: 2016-2-4 03:45
标题: pt6312 VFD屏幕单片机驱动程序
/*VFD專用IC練習 20111104 顯示問題澄清 全部送0x0f 看是時序問題過快還是字位置 開始的位置從00 開始  另外確認連續位址增加的模式 */
#include<reg52.h>
//--------------------pt6312-----------------------
sbit STB=P3^3; // pt6312 strobe
sbit DIN=P3^4; // pt6312 data        
sbit CLK=P3^5; // pt6312 clock        
unsigned char TempData[12]= {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0,0xff,0,0,0};//第一步全都沒變
unsigned char adr;
unsigned char cmd1;
unsigned char cmd2;
unsigned char cmd3;
unsigned char cmd4;
bit Dat_flag;//data flag 不需要 stb變為hi
//STB動作
#define STB_CLR        STB=0//电平置低
#define STB_SET        STB=1//电平置高

//DIN 動作
#define DIN_CLR        DIN=0//电平置低
#define DIN_SET        DIN=1//电平置高
//#define IO_R        SDA  //电平读取

// CLK信号
#define CLK_CLR          CLK=0//时钟信号
#define CLK_SET          CLK=1//电平置高


void PT6312_Write(unsigned char qdata)// 適用於命令
{
unsigned char k;
STB_CLR; //初始
for(k=0;k<8;k++)
  {
    CLK_CLR;        
   if(qdata & 0x01)
     {
       DIN_SET;
     }
   else
      {
        DIN_CLR;
       }
    CLK_SET;
   qdata>>=1;
  }

  if (Dat_flag)
  {
   CLK_CLR;
   }
   else
   {
    STB_SET;
        }
         CLK_SET;//5 pulse time delay
          CLK_SET;//5 pulse time delay
           CLK_SET;//5 pulse time delay
            CLK_SET;//5 pulse time delay
                 CLK_SET;//5 pulse time delay
}
/*-------------------------------------------


//----------------------------------------------*/

void PT6312_Init(void)
{
CLK_SET; //初始設為 HI
STB_SET; //初始設為 HI
PT6312_Write (cmd1);//CMD1 設定寫入
}


void main(void)//
{
   unsigned char i;
PT6312_Init();
cmd1=0x02 ;//6 dig 16 segment
cmd2=0x40 ;
Dat_flag=1;//
cmd3=0xc0 ;//start addr 00h
cmd4=0x8a ;//
while(1) //關掉會全亮度power off無效
{
   Dat_flag=0;//
  PT6312_Write (cmd2);//CMD2 每字需變更位址 48 test mode work but only one word [no work 4c..44]
   Dat_flag=1;//
  PT6312_Write (cmd3);//CMD3 start address0x01 改變起始位址家1 [no work c1..c3]
//  Dat_flag=1;//
  for (i=0;i<12;i++)
{

  adr=TempData[ i];
  PT6312_Write (adr);
  }
//-------
  STB_SET;
         CLK_SET;//5 pulse time delay
          CLK_SET;//5 pulse time delay
           CLK_SET;//5 pulse time delay
            CLK_SET;//5 pulse time delay
                 CLK_SET;//5 pulse time delay
//--------
   Dat_flag=0;//
PT6312_Write (cmd1);//CMD1 6dig 16segment [no work02..01]
PT6312_Write (cmd4);//CMD4 6/16 pulse width dim control  8a..83 work
}
}
作者: 高级放牛娃    时间: 2020-5-29 09:48
多谢分享.




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1