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

📄 ht1621b.txt

📁 HT1621B 硬件驱动程序,包括命令子,代码控制字等命令程序.
💻 TXT
字号:
#include <pic.h>
#define BIAS 0X50                         //1/2偏压,4背极
#define RC256 0X30                        //系统时钟选择为片内RC振荡器
#define WDTDIS1 0X0A                      //禁止WDT溢出标志输出
#define TIMERDIS 0X08                     //时基输出禁能
#define SYSEN 0X02                        //打开系统时钟
#define LCDON 0X06                        //打开偏压发生器
#define SYSDIS 0X00                       //关闭系统时钟和偏压发生器

#define CS RB5
#define WR RB6
#define DATA RB7
#define uchar unsigned char
#define uint unsigned int

void SENDBYTE (uchar dat);  
void SENDBIT (uchar dat,uchar bitcnt);       
/***************************延时子函数******************************/
void delay()                              //延时
{
uchar i=0;
while(i<10)
    i++; 
}
void delay1s()                            //延时1S
{
uchar i;
uint j;
for(i=0;i<10;i++)
     for(j=0;j<1300;j++);
}
/**************************HT1621B初始化****************************/
void START_HT1621()                       //初始化HT1621
{
CS=1;
WR=1;
DATA=1;
delay();
CS=0;
CS=0;
WR=0;
WR=0;
}
/*************************发送命令子函数A***************************/
void SENDCOMA(uchar com)                  //发送命令A,ID=100+0
{
START_HT1621();
SENDBIT(0X80,4);
SENDBYTE(com);
}
/*************************发送命令子函数B***************************/
void SENDCOMB(uchar adr)                  //发送命令B,发送显示数据
{
START_HT1621();                          //HT1621初始化
SENDBIT(0XA0,4);                        
//发送写数据ID:101+6位LCD之RAM地址第1位
SENDBIT(adr,5);                          //然后发送地址后5位
}
/*************************发送命令子函数C***************************/
void SENDCOMC(uchar com)                  //发送命令C,ID=100+1
{
START_HT1621();
SENDBIT(0X90,4);
SENDBYTE(com);
}
/***********************按位发送数据子函数**************************/
void SENDBIT (uchar dat,uchar bitcnt)     //按位发送数据
{
uchar i;
for(i=0;i<bitcnt;i++)
    {
      if((dat&0x80)==0X00)                 //从最高位发送
        DATA=0;
      else
        DATA=1;
      delay();
      WR=1;                               
//在WR的上升沿,数据写入HT1621B
      delay();
      WR=0;
      dat=dat<<1;
    }
}
/*************************发送字节数据子函数************************/
void SENDBYTE (uchar dat)                 //发送字节数据
{
SENDBIT(dat,8);
}
/***************************LCD显示子函数***************************/
void display(uchar dat)                   //LCD显示
{
uchar i;
SENDCOMB(0X00);                           //从RAM的0X00地址开始放入数据
for (i=0;i<8;i++)
   {
    SENDBYTE(dat);                         //从SEG0开始显示数据
   }
}
/*************************HT1621B初始化设置*************************/
void SETUP_HT1621()                      
//HT1621偏压、背极、工作方式设置
{
SENDCOMA(BIAS);                         
SENDCOMA(RC256);
SENDCOMA(SYSEN);
delay1s();
SENDCOMA(LCDON);
SENDCOMA(WDTDIS1);
SENDCOMA(TIMERDIS); 
} 
/*******************************主函数******************************/
main()                                    //主函数
{
   TRISB=0X00;                            
//B口设为输出,以控制HT1621驱动LCD
   SETUP_HT1621();
   while(1)
   {
    display(0XFF);                         //全显示
   }                                         
}  






⌨️ 快捷键说明

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