📄 vfd_disp.c
字号:
/****************************************************/
/** VFD DISP PRECESS **/
/** DEVICE:MN11216B **/
/** SHANHAI INSTITUTE OF FAMILY **/
/** DATE: 2003-09-14 **/
/****************************************************/
//#pragma interrupt INTTM00 Start_send rb2
#pragma interrupt INTTM6 Start_send rb2
#pragma interrupt INTCSI1 Send_vfd_data rb1
#pragma interrupt INTTM00 Column_move_data_prc rb3
#pragma sfr
#pragma nop
#pragma ei
#include "stdio.h"
#include "string.h"
#include "vfd.h"
#include "text.h"
#include "trm.h"
#include "slcd.h"
#include "iconprc.h"
#include "sound.h"
//#define TM8MS 187
#define TM8MS 234
extern bit play_sound_F ;
/*********** data define ************/
//typedef struct{
// unsigned char repeat_F; //need repeat disp is set 1
// unsigned char *font_p; //point disp font arry
// }WORD_P;
/*************** data define ********************/
/************************************************/
extern unsigned int *DFontadr( unsigned int code ) ;
extern bit fix_data_prc_F;
/*********** function declare ************/
/*****************************************/
void G1_g2_init(void); //modify
void Get_bit_d( int dot_data); //modify
void Get_new_code_p(void); //modify
void Get_0_34_disp_data(void); //modify
void Get_35_disp_data(void) ; //modify
void Get_36_disp_data(void) ; //modify
void Get_37_disp_data(void) ; //modify
void D_data_prc(unsigned char number, unsigned char *pp); //modify
void Macro_interrupt_init(void) ; //modify
void Sio1_3wire_init(void) ; //modify
void Timer0_init(void) ; //modify
void Vfd_disp_init(void) ; //modify
void Clear_d_send_ram(void) ; //modify
void Clear_ram_buff( unsigned char *pp); //modify
void Clear_disp_p(void) ; //modify
void Clear_one_time_disp_F(unsigned char i);
void Reset_disp_p(void) ; //modify
void Clrscr(void); //modify
void Change_d_d_send_data(void) ; //modify
void Get_next_font_adr( unsigned char *s); //modify
int isascii2( int c ); //modify
//void Column_move_data_prc(void); //modify
void G1g2_scan_data(void); //modify
void Timer6_init(void) ; //modify
/***************************************/
/***************************************/
const unsigned char *none = "" ;
/**** only for bit d ***/
// 1a 1f 1b 1e 1c 1d 2a 2f/ 2b 2e 2c 2d 3a 3f 3b 3e/ 3c 3d 4a 4f 4b 4e 4c 4d/
const unsigned char init_d_data[16][3]={ // 1d 2d 3d 4d
{0x00,0x00,0x00}, // 0 0 0 0 0
{0x00,0x00,0x01}, // 0 0 0 1 1
{0x00,0x00,0x40}, // 0 0 1 0 2
{0x00,0x00,0x41}, // 0 0 1 1 3
{0x00,0x10,0x00}, // 0 1 0 0 4
{0x00,0x10,0x01}, // 0 1 0 1 5
{0x00,0x10,0x40}, // 0 1 1 0 6
{0x00,0x10,0x41}, // 0 1 1 1 7
{0x04,0x00,0x00}, // 1 0 0 0 8
{0x04,0x00,0x01}, // 1 0 0 1 9
{0x04,0x00,0x40}, // 1 0 1 0 A
{0x04,0x00,0x41}, // 1 0 1 1 B
{0x04,0x10,0x00}, // 1 1 0 0 C
{0x04,0x10,0x01}, // 1 1 0 1 D
{0x04,0x10,0x40}, // 1 1 1 0 E
{0x04,0x10,0x41} // 1 1 1 1 F
} ;
//1a 1f 1b 1e 1c 1d 2a 2f/ 2b 2e 2c 2d 3a 3f 3b 3e/ 3c 3d 4a 4f 4b 4e 4c 4d/
const unsigned char init_abc_data[16]={ // 1a 1b 1c 2a
0x00, // 0 0 0 0
0x02, // 0 0 0 1
0x08, // 0 0 1 0
0x0a, // 0 0 1 1
0x20, // 0 1 0 0
0x22, // 0 1 0 1
0x28, // 0 1 1 0
0x2a, // 0 1 1 1
0x80, // 1 0 0 0
0x82, // 1 0 0 1
0x88, // 1 0 1 0
0x8a, // 1 0 1 1
0xa0, // 1 1 0 0
0xa2, // 1 1 0 1
0xa8, // 1 1 1 0
0xaa // 1 1 1 1
};
//1a 1f 1b 1e 1c 1d 2a 2f/ 2b 2e 2c 2d 3a 3f 3b 3e/ 3c 3d 4a 4f 4b 4e 4c 4d/
const unsigned char init_def_data[16]={ // 1f 1e 1d 2f
0x00, // 0 0 0 0
0x01, // 0 0 0 1
0x04, // 0 0 1 0
0x05, // 0 0 1 1
0x10, // 0 1 0 0
0x11, // 0 1 0 1
0x14, // 0 1 1 0
0x15, // 0 1 1 1
0x40, // 1 0 0 0
0x41, // 1 0 0 1
0x44, // 1 0 1 0
0x45, // 1 0 1 1
0x50, // 1 1 0 0
0x51, // 1 1 0 1
0x54, // 1 1 1 0
0x55 // 1 1 1 1
};
/************************************************/
/************************************************/
void G1_g2_init(void)
{
G1g2_scan_data();
}
/******************************************/
/******************************************/
void Get_bit_d( int dot_data)
{
bit_arry.bit_combi = dot_data;
}
/*************************************************/
/* disp point prc */
/*************************************************/
void Get_new_code_p(void)
{
if(one_time_disp_p[0].disp_F == 1) //need repeat disp
// if((one_time_disp_p[0].disp_F == 1)&&(old_code_p != one_time_disp_p[0].font_p)) //need repeat disp
{
code_p = one_time_disp_p[0].font_p ;
old_code_p=code_p ;
one_time_disp_p[0].disp_F = 0 ;
// time_disp_p.disp_F = 0 ;
time_need_disp_F = 0 ;
}
else if(time_disp_p.disp_F == 1)
// else if((time_disp_p.disp_F ==1)&&(old_code_p != time_disp_p.font_p))
{
code_p = time_disp_p.font_p ;
time_disp_p.disp_F = 0 ;
time_need_disp_F = 1 ;
}
else if(one_time_disp_p[1].disp_F == 1)
// else if((one_time_disp_p[1].disp_F == 1)&&(old_code_p != one_time_disp_p[1].font_p)) //need repeat disp
{
code_p = one_time_disp_p[1].font_p ;
old_code_p = code_p ;
one_time_disp_p[1].disp_F = 0 ;
time_need_disp_F =1 ;
}
else if(one_time_disp_p[2].disp_F == 1)
// else if((one_time_disp_p[2].disp_F == 1)&&(old_code_p != one_time_disp_p[2].font_p)) //need repeat disp
{
code_p = one_time_disp_p[2].font_p ;
old_code_p=code_p;
one_time_disp_p[2].disp_F = 0 ;
time_need_disp_F = 1 ;
}
else if(one_time_disp_p[3].disp_F == 1)
// else if((one_time_disp_p[3].disp_F == 1)&&(old_code_p != one_time_disp_p[3].font_p)) //need repeat disp
{
code_p = one_time_disp_p[3].font_p ;
old_code_p=code_p ;
one_time_disp_p[3].disp_F = 0 ;
time_need_disp_F = 1 ;
}
else if(one_time_disp_p[4].disp_F == 1)
// else if((one_time_disp_p[4].disp_F == 1)&&(old_code_p != one_time_disp_p[4].font_p)) //need repeat disp
{
code_p = one_time_disp_p[4].font_p ;
old_code_p=code_p ;
one_time_disp_p[4].disp_F = 0 ;
time_need_disp_F = 1 ;
}
else if(repeat_disp_p.disp_F == 1) //
{
code_p = repeat_disp_p.font_p ;
old_code_p=code_p ;
repeat_disp_p.disp_F = 0 ;
time_need_disp_F = 1 ;
}
else
{
code_p = ( unsigned char*)"";
old_code_p = code_p ;
time_need_disp_F = 1 ;
}
// if((old_code_p == insert_course_tbl_j[0])||(old_code_p == insert_course_tbl_j[1])
// ||(old_code_p == Dlcd_time_display_tbl_j[3]))
if((old_code_p == insert_course_tbl_j[0])||(old_code_p == insert_course_tbl_j[1]))
{
Snd_out(KEY_SOUND);
}
}
/*************************************************/
/*************************************************/
void Reset_disp_p(void)
{
// if(old_code_p == one_time_disp_p[0].font_p)
// one_time_disp_p[0].disp_F = 1 ;
if(old_code_p == one_time_disp_p[1].font_p)
one_time_disp_p[1].disp_F = 1 ;
else if(old_code_p == one_time_disp_p[2].font_p)
one_time_disp_p[2].disp_F = 1 ;
else if(old_code_p == one_time_disp_p[3].font_p)
one_time_disp_p[3].disp_F = 1 ;
else if(old_code_p == one_time_disp_p[4].font_p)
one_time_disp_p[4].disp_F = 1 ;
else if(old_code_p = repeat_disp_p.font_p)
repeat_disp_p.disp_F = 1 ;
}
/*************************************/
/*************************************/
void Get_0_34_disp_data(void)
{
unsigned char i;
switch(move_count)
{
case 1:
for(i=0;i<35;i++)
memcpy(one_direct_data+i,one_direct_data+i+2,12);
break;
case 2:
for(i=0;i<35;i++)
memcpy(two_direct_data+i,two_direct_data+i+2,12);
break;
case 3:
for(i=0;i<35;i++)
memcpy(three_direct_data+i,three_direct_data+i+2,12);
break;
case 4:
for(i=0;i<35;i++)
memcpy(four_direct_data+i,four_direct_data+i+2,12);
break;
case 5:
for(i=0;i<35;i++)
memcpy(five_direct_data+i,five_direct_data+i+2,12);
break;
case 6:
for(i=0;i<35;i++)
memcpy(six_direct_data+i,six_direct_data+i+2,12);
break;
default:
break;
}
}
/**************************************/
/**************************************/
void Get_35_disp_data(void) //DEF
{
unsigned char no[12];
unsigned char i,j,rot_no;
unsigned char *p;
D_e_f_precess();
for(j=0;j<3;j++)
{
rot_no=12;
for(i=0;i<3;i++)
{
no[4*j+i]=(unsigned char)(def_combi.def_arry[j]>>rot_no)&0x0f;
rot_no-=4;
}
no[4*j+i]=(unsigned char)(def_combi.def_arry[j])&0x0f;
}
if(move_count == 1)
p=one_direct_data[35];
else if(move_count == 2)
p=two_direct_data[35];
else if(move_count == 3)
p= three_direct_data[35];
else if(move_count == 4)
p= four_direct_data[35];
else if(move_count == 5)
p=five_direct_data[35];
else if(move_count == 6)
p=six_direct_data[35];
for(j=0;j<12;j++)
{
i=no[j];
*p =init_def_data[i];
p++;
}
}
/***************************************************/
/***************************************************/
void Get_36_disp_data(void) //ABC
{
unsigned char no[12];
unsigned char i,j,rot_no;
unsigned char *p;
A_b_c_precess();
for(j=0;j<3;j++)
{
rot_no=12;
for(i=0;i<3;i++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -