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

📄 ht1621

📁 液晶显示程序--HT1621点亮全部位元
💻
字号:
#include <ht48r05a-1.h> 
#define uchar unsigned char 
 
#define BIAS 0x24  
#define SYSEN 0x01 
#define LCDOFF 0x02 
#define LCDON 0x03 
#define cs _pa0 
#define wr _pa2 
#define dat _pa3 
 
void SendBit_1621(uchar data,uchar cnt)    //data 的高 cnt 位写入 HT1621,高位在前 
{ 
 uchar i; 
  for(i =0; i <cnt; i ++) 
 { 
  if((data&0x80)==0) dat=0; 
  else dat=1; 
  wr=0; 
  _nop(); 
  wr=1; 
  data<<=1; 
 } 
} 
void SendDataBit_1621(uchar data,uchar cnt)  //data 的低 cnt 位写入 HT1621,低位在前 
{ 
 uchar i; 
  for(i =0; i <cnt; i ++) 
 { 
  if((data&0x01)==0) dat=0; 
  else dat=1; 
  wr=0; 
  _nop(); 
  wr=1; 
  data>>=1; 
 } 
} 
void SendCmd(uchar command) 
{ 
 cs=0; 
 SendBit_1621(0x80,3);  //写入标志码"100" 
 SendBit_1621(command,9);  //写入 9 位数据,其中前 8 位为 command 命令,最后 1 位任意 
 cs=1; 
} 
 
void Write_1621(uchar addr,uchar data) 
{ 
 cs=0; 
 SendBit_1621(0xa0,3);  //写入标志码"101" 
 SendBit_1621(addr<<2,6); //写入 6 位 addr 
 SendDataBit_1621(data,4); //写入 data 的低 4 位 
 cs=1; 
} 
 
void WriteAll_1621(uchar addr,uchar *p,uchar cnt) 
{ 
 uchar i; 
 cs=0; 
 SendBit_1621(0xa0,3);  //写入标志码"101" 
 SendBit_1621(addr<<2,6); //写入 6 位 addr 
  for(i =0; i <cnt; i ++,p++)  //连续写入数据 
  { 
  SendDataBit_1621(*p,8); 
 } 
 cs=1; 
} 
 
void main() 
{ 
 uchar a[10]; 
 a[0]=0x21;a[1]=0x43;a[2]=0x65;a[3]=0x87;a[4]=0xa9; 
 _pac=0;     //将端口设为输出 
 SendCmd(BIAS);   //设置偏压和占空比 
 SendCmd(SYSEN);  //打开系统振荡器 
 SendCmd(LCDON);  //打开 LCD偏压发生器 
 Write_1621(0x09,0x01);  //在地址 0x09 处写入数据 0x01 
 WriteAll_1621(0,a,5);  //在起始地址为 0 处连续写入 5 个字节数据 
       //a 为写入数据的起始地址,5 为写入的字节数 
 SendCmd(LCDOFF);  //关闭 LCD显示 
}

⌨️ 快捷键说明

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