标题:
STC15F2K60S2单片机HT1621b芯片源代码
[打印本页]
作者:
sworderchina
时间:
2022-3-22 08:42
标题:
STC15F2K60S2单片机HT1621b芯片源代码
为了大家少走弯路,提供源代码下载,亲自测试过,没任何问题
单片机源程序如下:
#include "HT1621B.H"
#include <STC15F2K60S2.H>
#include "string.h"
uchar table[]={
0x0f,0x0f,0x0f,0x0f,
0x0f,0x0f,0x0f,0x0f,
0x0f,0x0f,0x0f,0x0f,
0x0f,0x0f,0x0f,0x0f,0x0f,};
uchar table1[]={
0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xf0,};
uchar table2[]={
0xe6,0xf8,0xb0,0xb0,0xbe,};
uchar table3[]={
0x01,0x03,0x07,0x0f,};
uchar table4[]={
0xde,0x22,0xfe,0x22,
0x0e,0x22,0xfa,0x22,
0xda,0x22,0xc6,0x22,
0x5e,0x22,0x7c,0x22,
0x06,0x22,0xbe,0x22 ,};
uchar table5[]={
0xbe,0x06,0x7c,0x5e,
0xc6,0xda,0xfa,0x0e,
0xfe,0xde,};
//写数据函数
void wr_data(uchar da,uchar cnt)
{
uchar i;
for(i=0;i<cnt;i++)
{
wr=0;
delayus(10);
dat=(bit)(da&0x80);/*if(da>=0x80)
dat=1;
else
dat=0;*/
delayus(10);
wr=1;
delayus(10);
da<<=1;
}
}
//清屏
void wr_clearlcd()
{
uchar i;
cs=0;
delayus(10);
wr_data(0xa0,3);
wr_data(0x00<<2,6);
for(i=0;i<16;i++)
{
wr_data(0x00,8);
}
cs=1;
delayus(10);
}
//写命令函数
void wr_com(uchar com)
{
cs=0;
delayus(10);
wr_data(0x80,4);
wr_data(com,8);
cs=1;
delayus(10);
}
//写连续地址
void wr_all_lcd(uchar add,uchar *p,uchar cnt)
{
uchar i;
cs=0;
delayus(10);
wr_data(0xa0,3);
wr_data(add<<2,6);
for(i=0;i<cnt;i++)
{
wr_data(*p,8);
p++;
}
cs=1;
delayus(10);
}
//初始化
void lcd_init()
{
cs=1;
wr=1;
dat=1;
delayms(20);
wr_com(BIAS);
wr_com(RC256);
wr_com(SYSDIS);
wr_com(WDTDIS);
wr_com(SYSEN);
wr_com(LCDON);
wr_clearlcd();
}
char HT1621_CHAR_A(char cha,char d)
{
char r_cha=0;
switch(cha)
{
case 0: r_cha=1<<7|1<<6|1<<5|1<<4|1<<3|1<<1;
break;
case 1: r_cha=1<<3|1<<1;
break;
case 2: r_cha=1<<7|1<<5|1<<4|1<<3|1<<2;
break;
case 3: r_cha=1<<7|1<<4|1<<3|1<<2|1<<1;
break;
case 4: r_cha=1<<6|1<<3|1<<2|1<<1;
break;
case 5: r_cha=1<<7|1<<6|1<<4|1<<2|1<<1;
break;
case 6: r_cha=1<<7|1<<6|1<<5|1<<4|1<<2|1<<1;
break;
case 7: r_cha=1<<7|1<<3|1<<1;
break;
case 8: r_cha=1<<7|1<<6|1<<5|1<<4|1<<3|1<<2|1<<1;
break;
case 9: r_cha=1<<7|1<<6|1<<4|1<<3|1<<2|1<<1;
break;
case '_': r_cha=0;
break;
default:break;
}
if(d=='.')r_cha|=1;
return r_cha;
}
char HT1621_CHAR_B(char cha,char d)
{
char r_cha=0;
switch(cha)
{
case 0: r_cha=1<<7|1<<5|1<<3|1<<2|1<<1|1;
break;
case 1: r_cha=1<<7|1<<5;
break;
case 2: r_cha=1<<7|1<<6|1<<3|1<<1|1;
break;
case 3: r_cha=1<<7|1<<6|1<<5|1<<3|1;
break;
case 4: r_cha=1<<7|1<<6|1<<5|1<<2;
break;
case 5: r_cha=1<<6|1<<5|1<<3|1<<2|1;
break;
case 6: r_cha=1<<6|1<<5|1<<3|1<<2|1<<1|1;
break;
case 7: r_cha=1<<7|1<<5|1<<3;
break;
case 8: r_cha=1<<7|1<<6|1<<5|1<<4|1<<3|1<<2|1<<1|1;
break;
case 9: r_cha=1<<7|1<<6|1<<5|1<<4|1<<3|1<<2|1;
break;
case '_': r_cha=0;
break;
default:break;
}
if(d=='.')r_cha|=1<<4;
return r_cha;
}
char HT1621_CHAR_C(char cha,char d)
{
char r_cha=0;
unsigned char numtab[16]={0xF5,0x05,0xD3,0x97,0x27,0xB6,0xF6,0x15,0xF7,0xB7,0x77,0xE6,0xF0,0xC7,0xF2,0x72};
r_cha=numtab[cha];
if(d=='.')r_cha|=1<<3;
return r_cha;
}
char HT1621_CHAR_D(char cha,char d)
{
char r_cha=0;
unsigned char code numtab[16]={0x5F,0x50,0x3D,0x79,0x72,0x6B,0x6F,0x51,0x7F,0x7B,0x77,0x6E,0x0F,0x7C,0x2F,0x27};
r_cha=numtab[cha];
if(d=='.')r_cha|=1<<7;
return r_cha;
}
extern int test,test_cnt;
void HT1621_DIP(char *d,char *x)
{
char HT1621_DIP_TABLE[16];
HT1621_DIP_TABLE[0]=HT1621_CHAR_A(d[0],x[0]) ;
HT1621_DIP_TABLE[1]=HT1621_CHAR_B(d[1],x[1]);
HT1621_DIP_TABLE[2]=HT1621_CHAR_B(d[2],x[2]);
HT1621_DIP_TABLE[3]=HT1621_CHAR_B(d[3],x[3]);
HT1621_DIP_TABLE[4]=HT1621_CHAR_C(d[4],x[4]);
HT1621_DIP_TABLE[5]=HT1621_CHAR_C(d[5],x[5]);
HT1621_DIP_TABLE[6]=HT1621_CHAR_C(d[6],x[6]);
HT1621_DIP_TABLE[9]=HT1621_CHAR_D(d[7],x[7]);
HT1621_DIP_TABLE[8]=HT1621_CHAR_D(d[8],x[8]);
HT1621_DIP_TABLE[7]=HT1621_CHAR_D(d[9],x[9]);
HT1621_DIP_TABLE[10]=HT1621_CHAR_C(d[10],x[10]);
HT1621_DIP_TABLE[11]=HT1621_CHAR_C(d[11],x[11]);
HT1621_DIP_TABLE[12]=HT1621_CHAR_C(d[12],x[12]);
HT1621_DIP_TABLE[15]=HT1621_CHAR_D(d[13],x[13]);
HT1621_DIP_TABLE[14]=HT1621_CHAR_D(d[14],x[14]);
HT1621_DIP_TABLE[13]=HT1621_CHAR_D(d[15],x[15]);
wr_all_lcd(0,HT1621_DIP_TABLE,16);
}
char xdata HT1621_CHAR[16];
char xdata HT1621_D[16];
void HT1621_APP(void)
{
HT1621_DIP(HT1621_CHAR,HT1621_D);
memset(HT1621_D,0,16);
memset(HT1621_CHAR,0,16);
}
void HT1621_DOWN(char a,char b,char c,char d,char d1,char d2,char d3,char d4)
{
HT1621_CHAR[0]=d;
HT1621_CHAR[1]=c;
HT1621_CHAR[2]=b;
HT1621_CHAR[3]=a;
HT1621_D[0]=d4;
HT1621_D[1]=d3;
HT1621_D[2]=d2;
HT1621_D[3]=d1;
}
void HT1621_MI(char a,char b,char c,char d,char e,char f,char d1,char d2,char d3,char d4,char d5,char d6)
{
HT1621_CHAR[9]=f;
HT1621_CHAR[8]=e;
HT1621_CHAR[7]=d;
HT1621_CHAR[6]=c;
HT1621_CHAR[5]=b;
HT1621_CHAR[4]=a;
HT1621_D[9]=d6;
HT1621_D[8]=d5;
HT1621_D[7]=d4;
HT1621_D[6]=d3;
HT1621_D[5]=d2;
HT1621_D[4]=d1;
}
void HT1621_UP(char a,char b,char c,char d,char e,char f,char d1,char d2,char d3,char d4,char d5,char d6)
{
HT1621_CHAR[15]=f;
HT1621_CHAR[14]=e;
HT1621_CHAR[13]=d;
HT1621_CHAR[12]=c;
HT1621_CHAR[11]=b;
HT1621_CHAR[10]=a;
HT1621_D[15]=d6;
HT1621_D[14]=d5;
HT1621_D[13]=d4;
HT1621_D[12]=d3;
HT1621_D[11]=d2;
HT1621_D[10]=d1;
}
复制代码
51hei.png
(2.8 KB, 下载次数: 49)
下载附件
2022-3-23 00:26 上传
上图2个文件下载 c代码(请自行移植到各单片机平台):
HT1621.zip
(2.11 KB, 下载次数: 67)
2022-3-22 08:42 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
啤酒瓶子老大
时间:
2022-3-24 21:14
大佬给弄个电路图啥的,谢谢了。
作者:
xdqfc
时间:
2022-4-4 16:56
非常感谢楼主的奉献。项目可以参考一下,省的走弯路。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1