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

📄 disp.c

📁 ht1621的资料,也有我写的程序,用在好几个产品上了.
💻 C
字号:
//船用对讲机显示子程序 HT1621 designed for marenwu 2003.2.9
#include <djj.h>

#define SYS_OSC   0x01   //打开系统振荡器
#define BIAS      0x29   //LCD1/3偏置,4背级
#define INTRC     0x18   //选择晶体振荡器
#define LCD_NO    0x03   //打开LCD偏置发生器

code unsigned char disp_symbol[15]={0x9f,0x0a,0xa7,0x2f,0x3a,0x3d,0xbd,0x0b,0xbf,0x3f,0x95,0xba,0xb1,0x20,0xbb};
                                  /* '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'C', 'H', 'F', '-' ,'A'*/
unsigned char disp_data[16];

void led(unsigned char);
void delay1(unsigned char);       //长延时子程序
void delay(unsigned char);        //延时子程序
void HT1621_init(void);                         //HT1621初始化
void HT1621_Wbit(unsigned char,unsigned char);  //向HT1621发送位数据(位数,发送数据)
void display(void);                             //向HT1621发送显示数据
void tone();
unsigned char didi;

////////////////////////////////////////////

void HT1621_init()
{ SDI=1;
  SDO=1;
  CS_1621=0;
  CS_0832=1;
  HT1621_Wbit(3,0x80);     //发送"100"命令字
  HT1621_Wbit(9,SYS_OSC);
  HT1621_Wbit(9,BIAS);
  HT1621_Wbit(9,INTRC);
  HT1621_Wbit(9,LCD_NO);
  CS_1621=1;
}

void display()      //刷新显示子程序
{ unsigned char x,y;
  CS_1621=0;
  CS_0832=1;
  HT1621_Wbit(3,0xa0);     //发送"101"命令
  HT1621_Wbit(6,0x0);      //发送"00000"起始地址,和最后的地址要加以区分    !!!!!!!!!
                           //必须将起始地址发送为000000 因为最后的地址为100000 后5位同样为0
  for(x=0;x<16;x++)        //16
   {
        y=disp_data[x];
        HT1621_Wbit(8,y);
   }
  CS_1621=1;
 }

void HT1621_Wbit(unsigned char d_bit,unsigned char d_data)       //x--发送数据位数 y--发送的数据值
{ unsigned char x;
  for(x=0;x<d_bit;x++)
   {    SDI=0;
        if(d_data>=0x80)SDO=1;
             else SDO=0;
        d_data=d_data<<1;
        SDI=1;
   }
}

void delay(unsigned char x)
{ register unsigned char m;
  for(m=0;m<x;m++);//{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();} //for test ???????

}

void delay1(unsigned char x)
{ unsigned char m;
  for(m=0;m<x;m++)
   delay(0xff);
}

/*void tone()
{ CS_1621=0;
  HT1621_Wbit(3,0x80);     //发送"100"命令字
  HT1621_Wbit(9,0x60);
  HT1621_Wbit(9,0x09);
  delay(250);
  HT1621_Wbit(9,0x08);
  CS_1621=1;
} */

void tone()
{    register unsigned char i;
//     HIGH_CHAN=1;
     SPEAK=1;
     _nop_();
     SPEAK=0;
     delay(0);
     SPEAK=1;
     delay(1);
     for(i=0;i<80;i++)//90
     {    SPEAK=0;

          delay(1);
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          SPEAK=1;
          delay(0);

     }
     SPEAK=0;
     delay(1);
     SPEAK=1;
     _nop_();
     SPEAK=0;
     delay(10);
//     HIGH_CHAN=0;
}

⌨️ 快捷键说明

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