⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ht1621-c51.c

📁 HT1621的C语言驱动程序
💻 C
字号:
#define    uchar   unsigned char
//***************************HT1621常数定义*****************************
#define    RAMSIZE     16             //RAM区16字节
#define    BIAS        0x52           //1/3偏压,4个公共口
#define    RC256K      0x30           //片内RC振荡器
#define    SYSEN       0x02           //打开系统振荡器
#define    SYSDIS      0x00           //关闭系统振荡器河LCD偏压发生器
#define    LCDON       0x06           //打开LCD偏压发生器

#define    HT_WR       P2.1          //读写线
#define    HT_CS       P2.0         //片选线
#define    HT_DATA     P2.2           //数据线 

void   EnableHt1621(void);
void   SendBitToHt1621(uchar nbit,uchar n);
void   SendCommandToHt1621(uchar command);
void   ResetHt1621(void);
void   SetupHt1621(void);
void   SendByteToHt1621(uchar addr,uchar byte);
void   SendStringToHt1621(uchar addr,uchar *ptr,uchar len);
void   Ht1621DisplayAll(void);

//*********************************************************************************
//函数名称:void  EnableHt1621(void)
//函数功能:使能HT1621
//函数输入:无
//函数输出:无
//**********************************************************************************
void  EnableHt1621(void)
{
     HT_CS=0;            
     HT_WR=1;            
     NOP();
     HT_WR=0;
     NOP(); 
}
//*********************************************************************************
//函数名称:SendBitToHt1621(uchar nbit,uchar n)
//函数功能:向HT1621发送数据
//函数输入:nbit:发送的位串    n:发送的位数
//函数输出:无
//*********************************************************************************
void  SendBitToHt1621(uchar nbit,uchar n)
{
     uchar i; 
     for(i=0;i<n;i++)
     {
        if(nbit>=0x80)        
          HT_DATA=1; 
        else
          HT_DATA=0;
        HT_WR=0;
        NOP();
        HT_WR=1;
        NOP();
        nbit<<=1;
     }
}
//***********************************************************************************
//函数名称:void  sendcommandtoht1621(uchar command)
//函数功能:发送命令到HT1621
//函数输入:command:命令参数
//函数输出:无
//***********************************************************************************
void  SendCommandToHt1621(uchar command)
{
     EnableHt1621();
     SendBitToHt1621(0x80,4);
     SendBitToHt1621(command,8);
     HT_WR=1;
     NOP();
     HT_CS=1;
     NOP();
     HT_DATA=1;
}
//***********************************************************************************
//函数名称:void  ResetHt1621(void)
//函数功能:复位HT1621
//函数输入:无
//函数输出:无
//***********************************************************************************
void  ResetHt1621(void)
{
     HT_WR=1;
     NOP();
     HT_CS=1;
     NOP();
     HT_DATA=1;
}
//***********************************************************************************
//函数名称:void  SetupHt1621(void)
//函数功能:初始化HT1621
//函数输入:无
//函数输出:无
//***********************************************************************************
void  SetupHt1621(void)                  
{          
     SendCommandToHt1621(BIAS);       
     SendCommandToHt1621(RC256K);     
     SendCommandToHt1621(SYSEN);    
     SendCommandToHt1621(LCDON);    
}
//***********************************************************************************
//函数名称:void  SendByteToHt1621(uchar addr,uchar byte)
//函数功能:初始化HT1621
//函数输入:addr:地址   byte:发送的字节
//函数输出:无
//***********************************************************************************
void  SendByteToHt1621(uchar addr,uchar byte)                     
{
     addr<<=3;
     EnableHt1621(); 
     SendBittoHt1621(0xA0,3);       
     SendBittoHt1621(addr,6);        
     SendBittoHt1621(byte,8);       
     HT_WR=1;
     NOP();
     HT_CS=1;  
}
/**************************************************************************************************************************
//函数名称:void  SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
//函数功能:发送字符串给HT1621
//函数输入:addr:起始地址   ptr:发送的字符串   len:发送的字符串长度
//函数输出:无
***************************************************************************************************************************/
void  SendStringToHt1621(uchar addr,uchar *ptr,uchar len)
{
     uchar i;
     addr<<=2;
     EnableHt1621(); 
     SendBitToHt1621(0xa0,3);               
     SendBitToHt1621(addr,6);                
     if((len+addr)>RAMSIZE)len=RAMSIZE-addr;   
     for(i=0;i<len;i++)                        
     {      
          SendBitToHt1621(ptr[i],8);           
     }
     HT_CS=1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -