?? disp.c
字號(hào):
//船用對(duì)講機(jī)顯示子程序 HT1621 designed for marenwu 2003.2.9
#include <djj.h>
#define SYS_OSC 0x01 //打開(kāi)系統(tǒng)振蕩器------------SYS_EN
#define BIAS 0x29 //LCD1/3偏置,4背級(jí)
#define INTRC 0x18 //選擇晶體振蕩器------------RC 256K
#define LCD_NO 0x03 //打開(kāi)LCD偏置發(fā)生器-----------LCD ON
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); //長(zhǎng)延時(shí)子程序
void delay(unsigned char); //延時(shí)子程序
void HT1621_init(void); //HT1621初始化
void HT1621_Wbit(unsigned char,unsigned char); //向HT1621發(fā)送位數(shù)據(jù)(位數(shù),發(fā)送數(shù)據(jù))
void display(void); //向HT1621發(fā)送顯示數(shù)據(jù)
void tone();
unsigned char didi;
////////////////////////////////////////////
void HT1621_init()
{ SDI=1;
SDO=1;
CS_1621=0;
CS_0832=1;
HT1621_Wbit(3,0x80); //發(fā)送"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); //發(fā)送"101"命令
HT1621_Wbit(6,0x0); //發(fā)送"00000"起始地址,和最后的地址要加以區(qū)分 !!!!!!!!!
//必須將起始地址發(fā)送為000000 因?yàn)樽詈蟮牡刂窞?00000 后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--發(fā)送數(shù)據(jù)位數(shù) y--發(fā)送的數(shù)據(jù)值
{ 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); //發(fā)送"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;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -