📄 mdt.c
字号:
if(str[i]>0xa0){
code_data[0]=str[i];
++i;
code_data[1]=str[i];
Read_Hz_Data(code_data);
V_Write_HZ();
++i;
}
else if(str[i]<0x80 && str[i]>=0x20){
Read_Ascii_Data(str[i]);
V_Write_Ascii();
++i;
}
}
return;
}
//============================================================
// 在存储区指定位置写入字符串显示数据
//============================================================
void Print_Line(unsigned char *disp_str)
{
unsigned char i=0;
unsigned char code_data[2];
code_data[0]=disp_str[0];
// Transfer[i]=code_data[0];
while(code_data[0]!=0){
if(code_data[0]>0xa0){
code_data[1]=disp_str[++i];
// Transfer[i]=code_data[1];
Read_Hz_Data(code_data);
V_Write_HZ();
++i;
}
else if((code_data[0]<0x80) && (code_data[0]>=0x20)){
Read_Ascii_Data(code_data[0]);
V_Write_Ascii();
++i;
}
code_data[0]=disp_str[i];
// Transfer[i]=code_data[0];
}
// Int_Tx(i);
return;
}
//============================================================
// 反白当前激活行数据
//============================================================
void Reverse_Line(unsigned char line)
{
unsigned char tmp[12];
unsigned char i=0,j=0;
Line_Tab=M_TAB;
Y_Offset=(line+2)*12+Line_Tab;
while(i<16){
TPAGE=i;
Buff_Read(tmp,12);
for(j=0;j<12;j++) tmp[j]=~tmp[j];
Buff_Write(tmp,12);
++i;
}
return;
}
//============================================================
//清除液晶标题行
//============================================================
void Clr_Title()
{
unsigned char col_msb,col_lsb;
unsigned char com_n;
unsigned char i=0,j=0;
com_n=12;
col_lsb=com_n&0x0f;
col_msb=com_n>>4;
while(i<16){
Write_S6b0741_Reg(SET_PAGE+i);
Write_S6b0741_Reg(SET_COLUMN_MSB+col_msb);
Write_S6b0741_Reg(SET_COLUMN_LSB+col_lsb);
for(j=0;j<12+8;++j) Write_S6b0741_Data(0x00);
++i;
}
return;
}
//============================================================
// 清除液晶消息区
//============================================================
void Clr_Message()
{
unsigned char col_msb,col_lsb;
unsigned char com_n;
unsigned char i=0,j=0;
com_n=12+12+8;
col_lsb=com_n&0x0f;
col_msb=com_n>>4;
while(i<16){
Write_S6b0741_Reg(SET_PAGE+i);
Write_S6b0741_Reg(SET_COLUMN_MSB+col_msb);
Write_S6b0741_Reg(SET_COLUMN_LSB+col_lsb);
for(j=0;j<97;++j) Write_S6b0741_Data(0x00);
++i;
}
return;
}
//============================================================
//清除存储区状态栏数据
//============================================================
void Clr_Status_Buff()
{
unsigned char i=0,j=0;
for(i=0;i<16;++i)
for(j=0;j<12;++j) Buff_Page[i].Column[j]=0;
return;
}
//============================================================
//清除消息缓存区数据
//============================================================
void Clr_Message_Buff()
{
unsigned int i=0,j=0;
for(i=0;i<16;++i)
for(j=12;j<(Total_Line+1)*12+8;++j) Buff_Page[i].Column[j]=0;
// for(j=12;j<Buff_Line;++j) Buff_Page[i].Column[j]=0;
return;
}
//============================================================
//读取接收存储区数据
//============================================================
unsigned char Read_Rx()
{
unsigned char buff_data;
if(P_Rx==P_Rd) {P_Rd=0; P_Rx=0;}
while(P_Rx==0) {Key_Scan();Stand_By();}
buff_data=Recieve_Buff[P_Rd];
if(P_Rd<P_Rx) ++P_Rd;
return buff_data;
}
void Standy_Message()
{
unsigned char ch,char_no;
char_no=0;
StandMess_Flag=1;
ch=Read_Rx();
while(ch!='^'){ch=Read_Rx();}
while(ch!='H'){ch=Read_Rx();}
while(ch!='^'){
heading[char_no]=ch;
++char_no;
ch=Read_Rx();
}
heading[char_no]='\0';
char_no=0;
while(ch!='S'){ch=Read_Rx();}
while(ch!='^'){
speed[char_no]=ch;
++char_no;
ch=Read_Rx();
}
speed[char_no]='\0';
char_no=0;
while(ch!='D'){ch=Read_Rx();}
while(ch!='^'){
date[char_no]=ch;
++char_no;
ch=Read_Rx();
}
date[char_no]='\0';
char_no=0;
while(ch!='T'){ch=Read_Rx();}
while(ch!='}'){
time[char_no]=ch;
++char_no;
ch=Read_Rx();
}
time[char_no]='\0';
StandMess_Flag=0;
}
//============================================================
//存储消息代码数据
//============================================================
void Store_Message()
{
unsigned char ch,char_no;
Clr_Mess_Buff();
Clr_Message_Buff();
Active_Line=0;
Start_Line=0;
Total_Line=0;
char_no=0;
ch=Read_Rx();
if(ch=='2') Standy_Message();
if(ch=='1') Key_Type=0;
else if(ch=='6') Key_Type=1;
Roll_En=1;
ch=Read_Rx();
while(ch!='^'){ch=Read_Rx();}
while(ch!='T'){ch=Read_Rx();}
while(ch!='+'){ch=Read_Rx();}
// Line_Tab=M_TAB;
ch=Read_Rx();
while(ch!='^'){
Message_Buff[Total_Line].page_line[char_no]=ch;
++char_no;
ch=Read_Rx();
}
Check_Enter();
Check_System();
// Line_Tab=T_TAB;
++Total_Line;
char_no=0;
ch=Read_Rx();
while(ch!='L')ch=Read_Rx();
ch=Read_Rx();
while(Check_Element(ch)){
ch=Read_Rx();
}
if(Key_Type){
if(Reverse_Flag)Message_Buff[Total_Line].high_light=1;
Reverse_Flag=0;
}
else{
if(Sel_Flag){
Active_Line=Total_Line-1;
Sel_Flag=0;
}
}
while(ch!='}'){
while(ch!='|'){
if(ch=='}'){
if(Enter_En==0) Message_Buff[Total_Line].page_line[20]=0;
if(Sys_Status_Flag==1){
Message_Buff[3].page_line[19]=0;
Message_Buff[4].page_line[19]=0;
}
++Total_Line;
return;
}
Message_Buff[Total_Line].page_line[char_no]=ch;
++char_no;
ch=Read_Rx();
}
if(Enter_En==0) Message_Buff[Total_Line].page_line[20]=0;
Total_Line++;
char_no=0;
ch=Read_Rx();
while(Check_Element(ch)){
ch=Read_Rx();
}
if(Key_Type){
if(Reverse_Flag)Message_Buff[Total_Line].high_light=1;
Reverse_Flag=0;
}
else{
if(Sel_Flag){
Active_Line=Total_Line-1;
Sel_Flag=0;
}
}
}
if(Sys_Status_Flag==1){
Message_Buff[3].page_line[19]=0;
Message_Buff[4].page_line[19]=0;
}
return;
}
//============================================================
//存储显示缓存区数据
//============================================================
void Store_Vram()
{
unsigned char i,j=0;
Line_Tab=T_TAB;
Set_XY(6,1);
Print_Line(Message_Buff[0].page_line);
Line_Tab=M_TAB;
Next_Line();
for(i=1;i<Total_Line;++i){
Print_Line(Message_Buff[i].page_line);
if(Key_Type){if(Message_Buff[i].high_light==1) Reverse_Line(i-1);}
Next_Line();
}
if(Sys_Status_Flag==1){
Total_Line++;
Print_SN();
}
if(Key_Type==0){
Reverse_Line(Active_Line);
Check_MailNumber();
}
return;
}
//============================================================
//液晶显示标题内容
//============================================================
void Disp_Title()
{
unsigned char col_msb,col_lsb;
unsigned char com_n;
unsigned char i=0,j=0;
Clr_Title();
Line_Tab=T_TAB;
com_n=12*1+Line_Tab;
col_lsb=com_n&0x0f;
col_msb=com_n>>4;
while(i<16){
Write_S6b0741_Reg(SET_PAGE+i);
Write_S6b0741_Reg(SET_COLUMN_MSB+col_msb);
Write_S6b0741_Reg(SET_COLUMN_LSB+col_lsb);
for(j=0;j<12+8;++j){
Write_S6b0741_Data(Buff_Page[i].Column[j+com_n]);
}
++i;
}
return;
}
//============================================================
//液晶显示消息内容
//============================================================
void Disp_Message()
{
unsigned char col_msb,col_lsb;
unsigned char com_n;
unsigned char i=0,j=0;
unsigned int line_pt;
Clr_Message();
Line_Tab=M_TAB;
com_n=2*12+Line_Tab;
col_lsb=com_n&0x0f;
col_msb=com_n>>4;
line_pt=(Start_Line+2)*12+Line_Tab;
while(i<16){
Write_S6b0741_Reg(SET_PAGE+i);
Write_S6b0741_Reg(SET_COLUMN_MSB+col_msb);
Write_S6b0741_Reg(SET_COLUMN_LSB+col_lsb);
for(j=0;j<96;++j){
Write_S6b0741_Data(Buff_Page[i].Column[j+line_pt]);
}
++i;
}
if(NewMail_Flag==1){
for(i=0;i<6;++i){
Write_S6b0741_Reg(ENTIRE_ON);
Delay(20000);
Write_S6b0741_Reg(ENTIRE_OFF);
Delay(20000);
}
NewMail_Flag=0;
}
Wait_Time=0;First=1;Stand_N=0;
return;
}
//============================================================
//屏保程序
//============================================================
void Stand_By()
{
if(Wait_Time==Stand_Time){
StandBy_Flag=1;
if(First==1){ Clr_Message(); Clr_Title(); First=0;}
// Print_Window(32,15,64,wonstar1);
if(Stand_Count==300){
Stand_Count=0;
Set_XY(0,80);
switch(Stand_N){
case 0:
Print_Window(42,15,64,wonstar1);
break;
case 1:
Print_Box(wonstar2);
break;
case 2:
Print_Box(wonstar3);
break;
case 3:
Print_Box(wonstar4);
break;
}
if(++Stand_N==4)Stand_N=0;
}
}
}
//============================================================
//滚动键改变液晶显示内容
//============================================================
void Roll_Screen()
{
if(Roll_En){
if(Key_Type==0) Reverse_Line(Active_Line);
if(Roll_Arrow){
if(Key_Type) {
if((Total_Line-Start_Line-2)>7){
++Start_Line;
Disp_Title();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -