📄 hgo12864_pic16.c
字号:
nop();
temp=s & 0x80;
if(temp)
{di=1;}
else {di=0;}
sclk=1;
s=s<<1;
}
}
/************************************************************************
function-->write data
input-->dat
************************************************************************/
void wdata1(const uchar *dat)
{
const uchar *p;
uchar dat1;
p=dat;
dat1=*p;
cs1=0;
nop();
a0=1;
nop();
write(dat1);
nop();
nop();
cs1=1;
}
/************************************************************************
function-->write data
input-->dat
************************************************************************/
void wdata(unsigned char dat)
{
cs1=0;
nop();
a0=1;
nop();
write(dat);
nop();
nop();
cs1=1;
}
/************************************************************************
************************************************************************/
void ccwpr(unsigned char cod,unsigned char page,unsigned char seg)
{
unsigned char zmseg;
uchar column_high,column_low;
column_high=seg;
column_low=seg;
wcom(0xB0|(page+0x01));
wcom(0x10|(0x0f&(column_high>>4)));
wcom(0x00|(0x0f&column_low));
for(zmseg=16;zmseg<=31;zmseg++)
{
wdata1(&CCTAB[cod*32+zmseg]);
}
;
column_high=seg;
column_low=seg;
wcom(0xB0|page);
wcom(0x10|(0x0f&(column_high>>4)));
wcom(0x00|(0x0f&column_low));
for(zmseg=0;zmseg<=15;zmseg++)
{
wdata1(&CCTAB[cod*32+zmseg]);
}
}
/************************************************************************
************************************************************************/
void interrupt isr(void)
{
if(TMR1IE&&TMR1IF)
{
TMR1IF=0;
TMR1H=0xf8;
TMR1L=0x4e;
//PORTC^=0x01;
time_1ms_if=1;
}
//
if(RBIE&&RBIF)
{
RBIF=0;
}
}
/************************************************************************
************************************************************************/
void cwpr(unsigned char cod,unsigned char page,unsigned char seg)
{
unsigned char zmseg;
uchar column_high,column_low;
column_high=seg;
column_low=seg;
wcom(0xB0|(page+0x01));
wcom(0x10|(0x0f&(column_high>>4)));
wcom(0x00|(0x0f&column_low));
for(zmseg=0;zmseg<=7;zmseg++)
{
wdata1(&success[cod*8+zmseg]);
//delay();
}
}
/************************************************************************
************************************************************************/
void disdate_a(unsigned char dat_a,unsigned char dat_b)
{
int seg;
unsigned char page;
for(page=0xb0;page<0xb9;page++) //写页地址共9页 0xb8----0xb9
{ wcom(page); //如下汉字可改
wcom(0x10);
wcom(0x00);
for(seg=0;seg<64;seg++)
{ wdata(dat_a);
wdata(dat_b);
}
}
wcom(0xaf);
nop();
}
/************************************************************************
************************************************************************/
void disdate_b(unsigned char *p)
{
int seg;
unsigned char page;
wcom(0xaf);
for(page=0xb0;page<0xb9;page++) //写页地址共8页 0xb0----0xb8
{
wcom(page);
wcom(0x10);
wcom(0x00);
for(seg=0;seg<128;seg++)
{
wdata(*p++);
}
}
}
/************************************************************************
************************************************************************/
void disdate_c(unsigned char *q)
{ int seg;
unsigned char page;
wcom(0xaf);
for(page=0xb0;page<0xb9;page++) //写页地址共8页 0xb0----0xb8
{
wcom(page);
wcom(0x10);
wcom(0x00);
q=q+128;
for(seg=128;seg>0;seg--)
{
wdata(*q--);
}
q=q+128;
}
}
/************************************************************************
************************************************************************/
void lcd_init(void)
{
rst=0;
delay();
rst=1;
delay();
wcom(0xa3); //LCD BIAS SET ( A2 1/8;A3 1/65DUTY)
wcom(0xa0); //ADC select,NORMAL 0-->127
wcom(0xaf); // DISPLAY ON/OFF
wcom(0x2f); //power control(VB,VR,VF=1,1,1)
wcom(0x23); // VOLT REGULATOR RADIO SET
wcom(0x81); //ELECTRONIC VOLUME mode setting 100B 对比度命令
wcom(0x28); //REFERENCE VOLT REG set
wcom(0xc0); //SHL SELECT
wcom(0xaf); //DISPLAY ON/OFF
wcom(0x40); // DISPLAY START LINE SET
nop();
nop();
}
/************************************************************************
************************************************************************/
void RunCalendar(char* p)
{
char* ptr[6];
char i;
ptr[0] = p;
for(i = 1;i < 6;i++)
{
ptr[i] = ptr[i - 1] + 1;
}
(*ptr[5])++;
if(*ptr[5] >= 60)
{
*ptr[5] = 0;
if(*ptr[4] >= 59)
{
*ptr[4] = 0;
if(*ptr[3] >= 23)
{
*ptr[3] = 0;
if(*ptr[1] == 2)
{ /*february*/
if((*ptr[0])%4 == 0)
{ /*leapyear*/
if(*ptr[2] >= 29)
{
*ptr[2] = 1;
(*ptr[1])++;
}
else
{
(*ptr[2])++;
}
}
else
{
if(*ptr[2] >= 28)
{
*ptr[2] = 1;
(*ptr[1])++;
}
else
{
(*ptr[2])++;
}
}
}
else if((*ptr[1] == 4) || (*ptr[1] == 6)
|| (*ptr[1] == 9) || (*ptr[1] == 11))
{
if(*ptr[2] >= 30)
{
*ptr[2] = 1;
(*ptr[1])++;
}
else
{
(*ptr[2])++;
}
}
else
{
if(*ptr[2] >= 31)
{
*ptr[2] = 1;
if(*ptr[1] == 12)
{
*ptr[1] = 1;
(*ptr[0])++;
}
else
{
(*ptr[1])++;
}
}
else
{
(*ptr[2])++;
}
}
}
else
{
(*ptr[3])++;
}
}
else
{
(*ptr[4])++;
}
}
else
{
}
}
/***************************************************************
***************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -