📄 lcm.c
字号:
lcm_8x16(0xb6, 0x1000, 0x4E); //No
lcm_8x16(0xb6, 0x1008, 0x6F);
lcm_8x16(0xb6, 0x1100, 0x3A); // 2d-
lcm_8x16(0xb6, 0x1108, show816_L(gh)); //year
lcm_8x16(0xb6, 0x1200, show816_H(gm));
lcm_8x16(0xb6, 0x1208, show816_L(gm)); //year
lcm_8x16(0xb6, 0x1300, show816_H(gl));
lcm_8x16(0xb6, 0x1308, show816_L(gl)); //year
lcm_8x16(0xb6, 0x1400, 0x20);
lcm_8x16(0xb6, 0x1408, 0x20);
lcm_8x16(0xb6, 0x1500, 0x53); //SN
lcm_8x16(0xb6, 0x1508, 0x4E);
lcm_8x16(0xb6, 0x1600, 0x3A);
is = Hex_Bcd((uint16_t)ID_No);
gh =(uint8_t) (is >>8);
gl =(uint8_t)is;
lcm_8x16(0xb6, 0x1608, show816_L(gh)); //
lcm_8x16(0xb6, 0x1700, show816_H(gl));
lcm_8x16(0xb6, 0x1708, show816_L(gl)); //
if(!Card_Fresh_Status)
{
lcm_16x16(0xb1, 0x1208, 0xCEB4); //no use card
lcm_16x16(0xb1, 0x1308, 0xCAB9);
lcm_16x16(0xb1, 0x1408, 0xD3C3);
}
else if(Card_Same)
{
lcm_16x16(0xb1, 0x1208, 0xd2d1); //4 word name(Name_Code) showed
lcm_16x16(0xb1, 0x1308, 0xcba2);
lcm_16x16(0xb1, 0x1408, 0xbfa8);
}
else
{
ii= ((uint16_t)Card_Rom_16B[7] <<8) &0xff00;
ii += Card_Rom_16B[8];
lcm_16x16(0xb1, 0x1208, ii); //4 word name(Name_Code) showed
ii= ((uint16_t)Card_Rom_16B[9] <<8) &0xff00;
ii += Card_Rom_16B[10];
lcm_16x16(0xb1, 0x1308, ii);
ii= ((uint16_t)Card_Rom_16B[11] <<8) &0xff00;
ii += Card_Rom_16B[12];
lcm_16x16(0xb1, 0x1408, ii);
ii= ((uint16_t)Card_Rom_16B[13] <<8)&0xff00;
ii += Card_Rom_16B[14];
lcm_16x16(0xb1, 0x1508, ii);
}
}
}
else //Company name
{
if(Buz_flag)
{
asm("nop");
return;
}
News_Comm_Len=0;
for(i=0; i<32; i++)
{
if((News_Comm[2*i] >0x20)&&(News_Comm[2*i] <0xf9))
News_Comm_Len++;
else
asm("nop");
}
if(News_Comm_Len)
show_news();
else
show_CMP();
}
}
void show_CMP(void)
{
uint16_t ii;
uint8_t i;
ii = ((uint16_t)Company[0] << 8) &0xff00;
ii += Company[1];
lcm_16x16(0xb1, 0x1008, ii);
ii = (uint16_t)(Company[2] << 8) &0xff00;
ii += Company[3];
lcm_16x16(0xb1, 0x1108, ii);
ii = (uint16_t)(Company[4] << 8) &0xff00;
ii += Company[5];
lcm_16x16(0xb1, 0x1208, ii);
ii = (uint16_t)(Company[6] << 8) &0xff00;
ii += Company[7];
lcm_16x16(0xb1, 0x1308, ii);
ii = (uint16_t)(Company[8] << 8) &0xff00;
ii += Company[9];
lcm_16x16(0xb1, 0x1408, ii);
ii = (uint16_t)(Company[10] << 8) &0xff00;
ii += Company[11];
lcm_16x16(0xb1, 0x1508, ii);
ii = (uint16_t)(Company[12] << 8) &0xff00;
ii += Company[13];
lcm_16x16(0xb1, 0x1608, ii);
lcm_8x16(0xb1, 0x1708, 0x20);
lcm_8x16(0xb1, 0x1000, 0x20);
}
void show_news(void)
{
uint16_t ii;
uint8_t i;
if(News_TM_Count == News_TM_Count_Bak)
return;
News_TM_Count_Bak = News_TM_Count;
News_Comm_Len_Bak = News_Comm_Len+2;
for(i=0; i<24; i++)
{
News_Buff[i] = News_Buff[i+2];
News_Buff[i+1] = News_Buff[i+3];
}
News_Buff[24] = News_Comm[News_TM_Count*2];
News_Buff[25] = News_Comm[News_TM_Count*2+1];
ii = ((uint16_t)News_Buff[0] << 8) &0xff00;
ii += News_Buff[1];
lcm_16x16(0xb1, 0x1000, ii);
ii = (uint16_t)(News_Buff[2] << 8) &0xff00;
ii += News_Buff[3];
lcm_16x16(0xb1, 0x1100, ii);
ii = (uint16_t)(News_Buff[4] << 8) &0xff00;
ii += News_Buff[5];
lcm_16x16(0xb1, 0x1200, ii);
ii = (uint16_t)(News_Buff[6] << 8) &0xff00;
ii += News_Buff[7];
lcm_16x16(0xb1, 0x1300, ii);
ii = (uint16_t)(News_Buff[8] << 8) &0xff00;
ii += News_Buff[9];
lcm_16x16(0xb1, 0x1400, ii);
ii = (uint16_t)(News_Buff[10] << 8) &0xff00;
ii += News_Buff[11];
lcm_16x16(0xb1, 0x1500, ii);
ii = (uint16_t)(News_Buff[12] << 8) &0xff00;
ii += News_Buff[13];
lcm_16x16(0xb1, 0x1600, ii);
ii = (uint16_t)(News_Buff[14] << 8) &0xff00;
ii += News_Buff[15];
lcm_16x16(0xb1, 0x1700, ii);
}
void show_time(void)
{
uint16_t ip;
uint32_t is;
uint8_t gh,gm,gl;
if(Rd_Over | Rd_Read)
{
asm("nop");
return;
}
if(Card_Show_Time <5) //T_CNT_SE)
{
asm("nop");
return;
}
asm("nop");
lcm_16x16(0xb4, 0x1600, 0xd6dc);
// TIME_RTC[3]=6;
switch(TIME_RTC[3])
{
case 0:
ip =0xc8d5; break;
case 1:
ip =0xd2bb; break;
case 2:
ip =0xb6fe; break;
case 3:
ip =0xc8fd; break;
case 4:
ip =0xcbc4; break;
case 5:
ip =0xcee5; break;
case 6:
ip =0xc1f9; break;
default:
ip =0xc8d5; break;
}
lcm_16x16(0xb4, 0x1700, ip);
if(TIME_RTC_BK[5] !=TIME_RTC[5] || Buz_bk_flag)
{
lcm_8x16(0xb6, 0x1000, show816_H(TIME_RTC[6]));
lcm_8x16(0xb6, 0x1008, show816_L(TIME_RTC[6])); //year
}
lcm_8x16(0xb6, 0x1100, 0x2D); // 2d-
if(TIME_RTC_BK[5] !=TIME_RTC[5] || Buz_bk_flag)
{
lcm_8x16(0xb6, 0x1108, show816_H(TIME_RTC[5]));
lcm_8x16(0xb6, 0x1200, show816_L(TIME_RTC[5])); //month
}
lcm_8x16(0xb6, 0x1208, 0x2D);
if(TIME_RTC_BK[4] !=TIME_RTC[4] || Buz_bk_flag) //day
{
lcm_8x16(0xb6, 0x1300, show816_H(TIME_RTC[4]));
lcm_8x16(0xb6, 0x1308, show816_L(TIME_RTC[4]));
}
if(TIME_RTC_BK[2] !=TIME_RTC[2] || Buz_bk_flag)
{
lcm_8x16(0xb4, 0x1000, show816_H(TIME_RTC[2]));
lcm_8x16(0xb4, 0x1008, show816_L(TIME_RTC[2])); //hour
}
lcm_8x16(0xb4, 0x1100, 0x3A); //:
if(TIME_RTC_BK[1] !=TIME_RTC[1] || Buz_bk_flag)
{
lcm_8x16(0xb4, 0x1108, show816_H(TIME_RTC[1]));
lcm_8x16(0xb4, 0x1200, show816_L(TIME_RTC[1])); //min
}
lcm_8x16(0xb4, 0x1208, 0x3A);
if(TIME_RTC_BK[0] !=TIME_RTC[0] || Buz_bk_flag)
{
lcm_8x16(0xb4, 0x1300, show816_H(TIME_RTC[0]));
lcm_8x16(0xb4, 0x1308, show816_L(TIME_RTC[0])); //sec
}
if(Comm_State)
{
lcm_8x16(0xb4, 0x1400, 0x20);
lcm_8x16(0xb4, 0x1408, 0x20);
lcm_8x16(0xb4, 0x1500, 0x20);
lcm_8x16(0xb4, 0x1508, 0x20);
switch(Comm_Dsp_Order)
{
case 1:
lcm_8x16(0xb4, 0x1400, 0x3e);
break;
case 2:
lcm_8x16(0xb4, 0x1400, 0x3d);
lcm_8x16(0xb4, 0x1408, 0x3e);
break;
case 3:
lcm_8x16(0xb4, 0x1408, 0x3d);
lcm_8x16(0xb4, 0x1500, 0x3e);
break;
case 4:
lcm_8x16(0xb4, 0x1500, 0x3d);
lcm_8x16(0xb4, 0x1508, 0x3e);
break;
case 5:
lcm_8x16(0xb4, 0x1408, 0x3c);
lcm_8x16(0xb4, 0x1500, 0x3d);
break;
default:
Comm_Dsp_Order=1;
break;
}
}
else
{
lcm_8x16(0xb4, 0x1400, 0x20);
lcm_8x16(0xb4, 0x1408, 0x20);
lcm_8x16(0xb4, 0x1500, 0x20);
lcm_8x16(0xb4, 0x1508, 0x20);
}
lcm_8x16(0xb6, 0x1500, 0x53); //SN
lcm_8x16(0xb6, 0x1508, 0x4E);
lcm_8x16(0xb6, 0x1600, 0x3A);
// ID_No =0xf9;
is = Hex_Bcd((uint16_t)ID_No);
gh =(uint8_t) (is >>8);
gl =(uint8_t)is;
lcm_8x16(0xb6, 0x1608, show816_L(gh)); //
lcm_8x16(0xb6, 0x1700, show816_H(gl));
lcm_8x16(0xb6, 0x1708, show816_L(gl)); //
Buz_bk_flag=0;
}
void show_card(void)
{
if(Rd_Over | Rd_Read)
{
asm("nop");
return;
}
lcm_8x16(0xb4, 0x1100, show816_H(ccc[0]));
lcm_8x16(0xb4, 0x1108, show816_L(ccc[0])); //year
lcm_8x16(0xb4, 0x1200, show816_H(ccc[1]));
lcm_8x16(0xb4, 0x1208, show816_L(ccc[1])); //month
lcm_8x16(0xb4, 0x1300, show816_H(ccc[2]));
lcm_8x16(0xb4, 0x1308, show816_L(ccc[2]));
lcm_8x16(0xb4, 0x1400, show816_H(ccc[3]));
lcm_8x16(0xb4, 0x1408, show816_L(ccc[3])); //hour
lcm_8x16(0xb4, 0x1500, show816_H(ccc[4]));
lcm_8x16(0xb4, 0x1508, show816_L(ccc[4])); //min
lcm_8x16(0xb4, 0x1000, 0x20);
lcm_8x16(0xb4, 0x1008, 0x20);
lcm_8x16(0xb4, 0x1600, 0x20);
lcm_8x16(0xb4, 0x1608, 0x20);
lcm_8x16(0xb4, 0x1700, 0x20);
lcm_8x16(0xb4, 0x1708, 0x20);
}
/*
void Exchange_Row_to_Column()
{
uchar i,j,k,m;
for(i=0;i<32;i++)
{
Row_RAM[i] = LCM_RAM[i];
Column_RAM[i]=0;
}
for(i=0;i<8;i++) //0-7 row byte
{
j= i*2; //0.2.4.6.8...row
for(k=0;k<8;k++) //0-7 column bit
{
m=GET_BIT(Row_RAM[j],(7-k)); //7--
if(m)
{
SET_BIT(Column_RAM[k],i);
}
else
{
CLR_BIT(Column_RAM[k],i);
}
}
j= i*2+1;
for(k=0;k<8;k++) //0-7 column bit
{
m=GET_BIT(Row_RAM[j],(7-k)); //7--
if(m)
{
SET_BIT(Column_RAM[k+8],i);
}
else
{
CLR_BIT(Column_RAM[k+8],i);
}
}
j= i*2+16;
for(k=0;k<8;k++) //0-7 column bit
{
m=GET_BIT(Row_RAM[j],(7-k)); //7--
if(m)
{
SET_BIT(Column_RAM[k+16],i);
}
else
{
CLR_BIT(Column_RAM[k+16],i);
}
}
j= i*2+17;
for(k=0;k<8;k++) //0-7 column bit
{
m=GET_BIT(Row_RAM[j],(7-k)); //7--
if(m)
{
SET_BIT(Column_RAM[k+24],i);
}
else
{
CLR_BIT(Column_RAM[k+24],i);
}
}
}
asm("nop");
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -