📄 disp.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 + -