📄 tlc1543.c
字号:
0x00,0x00,0x00,0x00,0x40,0x60,0x40,0x40,0xC0,0xC0,0x80,0x80,0x00,0x00,0x00,0x00,
0xC0,0xE0,0x78,0x3E,0x00,0x00,0x00,0x00};/*"仪",9*/
uchar menu=0;
uchar TH0_T,TL0_T;
uint V_ml;
uchar Speed_V;
uchar bdata AD;
uint bdata Adend;
sbit Adend_0=Adend^8;
sbit Adend_8=Adend^0;
sbit Adend_9=Adend^1;
sbit AD_0=AD^0;
sbit AD_1=AD^1;
sbit AD_7=AD^7;
bit C_run;
bit DJ_run;
bit DJ_back;
bit send_kpa;
code uchar *str_3[]={"Pmax=\0","Vmax=\0"," P=\0"," V=\0","Kpa=\0","mL\0","Qin=\0",};
code uchar Dot_s10[]={9,27,60,93,126};
code uchar Dot_s11[]={49,99,149,199,249,99};
code uchar string_3[5][2]={0x34,0x35,0x34,0x30,0x33,0x30,0x32,0x30,0x31,0x30};
code uchar string_4[5][4]={0x20,0x35,0x6d,0x4c,0x31,0x30,0x6d,0x4c,0x31,0x35,0x6d,0x4c,0x32,0x30,0x6d,0x4c,0x32,0x35,0x6d,0x4c};
code uchar Dot_s2[]={9,12,16,20,24};
code uchar Dot_s3[]={6,13,19,26,32};
code uchar string5[5][5]={38,23,23,23,0xff,38,38,23,23,0xff,38,38,38,23,0xff,38,38,38,38,0xff,23,23,23,23,0xff};
code uchar string6[3][4]={44,23,40,0xff,41,42,43,0xff,42,23,43,0xff};
code uchar TXT1[]={'K','p','a',0xff};
code uchar time[]={0x2f,0x2f,0x20,0x3a,0x3a,0xff};
code uchar time_x[6][2]={0,99,1,12,1,31,0,23,0,59,0,59};
uchar RS_buf[1];
code uchar D40_1[]={0x1b,0x38,0x00,0x1b,0x31,0x06,0xff}; //设置字和间距
code uchar D40_p1[4][15]={0x0d,0x1b,0x66,0x00,0x05,0xca,0xe4,0xd2,0xba,0xd5,0xef,0xb6,0xcf,0x0d,0xff,//输液诊断
0x0d,0x1b,0x66,0x00,0x05,0xca,0xe4,0xd2,0xba,0xd6,0xce,0xc1,0xc6,0x0d,0xff,//输液治疗
0x0d,0x1b,0x66,0x00,0x05,0xb2,0xe2,0xc1,0xbf,0xb9,0xac,0xc8,0xdd,0x0d,0xff,//测量宫容
0x0d,0x1b,0x66,0x00,0x05,0xc0,0xa9,0xb9,0xac,0xd6,0xce,0xc1,0xc6,0x0d,0xff};//扩宫治疗
code uchar D40_s1[]={0x0d,0xbb,0xbc,0x20,0x20,0xd5,0xdf,0x3a,0x20,0xff}; //患 者:
code uchar D40_s2[]={0x0d,0xd7,0xa2,0xd2,0xba,0xc1,0xbf,0x3a,0x20,0xff}; //注液量:
code uchar D40_s3[]={0x0d,0xb9,0xac,0x20,0x20,0xc8,0xdd,0x3a,0x20,0xff}; //宫 容:
code uchar D40_s4[]={0x0d,0xd5,0xef,0x20,0x20,0xb6,0xcf,0x3a,0x20,0xff}; //诊 断:
code uchar D40_s5[]={0x0d,0xd1,0xb9,0x20,0x20,0xc1,0xa6,0x3a,0x20,0xff}; //压 力:
code uchar D40_s6[]={0xcd,0xa8,0xb3,0xa9,0xff};
code uchar D40_s7[]={0xd3,0xd0,0xb6,0xc2,0xc8,0xfb,0xff};
code uchar D40_s8[]={0xb6,0xc2,0xc8,0xfb,0xff};
code uchar D40_s11[]={0x1b,0x36,0xff};
code uchar D40_x1[]={0x1B,0x27,0x03,50,100,150,0xFF};
code uchar D40_x2[]={0x1B,0x27,0x04,1,2,3,4,0xFF};
code uchar D40_x3[]={0x1b,0x66,0x00,0x01,'N','o',':',0xff} ;
code uchar AD_set _at_ 0xfd00; /* 存放压力设定参数 */
uint idata P_max;
bit RS_input;
union
{
uchar list[20];
uint A_data[4];
}M_D;
uchar idata save_y;
uint idata save_x;
uchar idata zs;
uchar AD_Value = 0;
/*********************/
/* 演示主程序 */
/*********************/
void main()
{ uchar code_l,i,on = 0;
uchar *p;
uint O_X,O_Y;
uchar ok;
uchar code *pc;
//disp_old(1);
//save();
read_temper(1);
TH1 = 0xFA;
TL1 = 0xFa;
TH0_T = 10;
TL0_T = 0;
delay_2();
_nop_();
INT_1(); /* 调初始化子程序 */
Max7219_int();
CGRAM();
O_X = 5; O_Y = 22; code_l = 0;
ES = 1;
for (i=0; i<10; i++)
{
CCW2_PR24(O_X, O_Y, code_l);
O_X += 3; code_l++;
}
// Reset(0);
while (1)
{
SCON = 0x50;
TMOD = 0x21;
TR1 = 1;
EA = 1;
O_X = 5; O_Y = 22; code_l = 0;
for (i=0; i<10; i++)
{
CCW2_PR24(O_X, O_Y, code_l);
O_X += 3; code_l++;
}
ok = choose(O_X=15, O_Y=72, 3, 24, p=&DRAG_1[0][0]);
V_ml = 0;
if (ok == 1)
{
CLEAR() ; TXD_c(2);
TXD_c(7);
TR0 = 1; ET0 = 1; DJ_run = 1;
ZD();
TXD_c(9);
Reset(1);
TXD_c(9);
CLEAR();
DJ_run = False;
continue;
}
if (ok == 2)
{
CLEAR(); TXD_c(2);
TXD_c(8);
TR0 = 1; ET0 = 1; DJ_run = 1; Speed_V = 1;
TXD_c(5);
ZL();
TXD_c(10);
Reset(1);
TXD_c(10);
CLEAR();
DJ_run = False;
continue;
}
if (ok == 3)
{
CLEAR(); TXD_c(2);
TXD_c(7);
TR0 = 1;ET0 = 1; DJ_run = 1; Speed_V=1;
TXD_c(5);
GL();
TXD_c(9);
Reset(1);
TXD_c(9);
CLEAR();
DJ_run = False;
continue;
}
if (ok == 4)
{
CLEAR(); TXD_c(2);
TXD_c(8);
TR0 = 1; ET0 = 1; DJ_run = 1; Speed_V = 1;
TXD_c(6);
KG();
TXD_c(10);
Reset(1);
TXD_c(10);
CLEAR();
DJ_run = False;
continue;
}
if (ok == 5)
{
TXD_c(13); /* 关手动的连续发键 */
CLEAR();
SFCF = 0xc0;
pc = 0xf03f;
i = *pc;
if (i == 0xff)
{
save_data(pc, 0);
}
i = *pc;
if (i == 0) /* 记录为空时,按任取消键退出 */
{
p = TXT_4;
TXT_S(16, 14, 1 ,p);
delay_2();
ii:do
{
i = RXD_c();
if (i==5 || i==6) break;
}while (i==0);
if (i == 6)
{
if (on == 4) goto system;
else {on++; goto ii;}
}
goto ch5_end;
}
code_l = i; ok = 1;
do
{
disp_old(ok);
do
{
i = RXD_c();
}while (i == 0);
switch (i)
{
case 1:
{
if (ok == code_l) ok = 1; else ok++;
} break;
case 2:
{
if (ok == 1) ok = code_l; else ok--;
} break;
case 3:
{
CW_PR1(22, 8, 0x20);
CW_PR1(23, 8, 0x20);
Disp_msg(16, 60, 6);
do
{
i = RXD_c();
}while (!(i==3 || i==5));
if (i == 3)
{
Print_40(ok, 1);
Disp_msg(16, 60, 14);
}
} break;
case 4:
{
CW_PR1(22, 8, 0x20);
CW_PR1(23, 8, 0x20);
Disp_msg(16, 60, 13);
do
{
i = RXD_c();
}while (!(i==3 ||i ==5));
if (i == 3)
{
del_old(ok); code_l--;
if (code_l == 0) goto ch5_end;
}
} break;
case 5: goto ch5_end; break;
case 6:
{
if (on == 4)
{
system: CLEAR();
Bad = 0;
Disp_msg(16, 16, 18);
TXD_c(13);
do
{
temperature();
//Max192(0x0b, 10, 10, 1);
//Max192(0x0, 10, 12, 1);
if (C_run) {C_run=0; Disp_2(Adend);}
i = RXD_c();
if (i==6)
{
TXD_c(2); ET0 = 1; TR0 = 1;
do
{
//Max192(0x0b, 10, 10, 1);
//Max192(0x0, 10, 12, 1);
if (C_run) {C_run=0; Disp_2(Adend);}
i = RXD_c();
} while (i == 6);
TXD_c(3); ET0 = 0; TR0 = 0;
}
if (i == 3) break;
}while (1); /* 按确定时,完成设定 */
TXD_c(13);
on = 0;
Max192(4, 0, 0,1);
if (Adend > 100 ) break;
AD_Value = Adend;
SFCF = 0xc0;
del_sector(0x0d,1);
pc = 0xfd00;
save_data(pc,AD_Value);
SFCF = 0x00;
Bad = 1;
TXD_c(10);
goto ch5_end;
}
else on++;
} break;
}
CLEAR();
}while (1);
ch5_end:
SFCF = 0x00;
CLEAR();
TXD_c(13); /* 开手动的连续发键 */
menu = 4;
continue;
}
if (ok == 6) write_time(1, 1);
}
}
/******************************/
/**********输液诊断************/
/******************************/
void ZD(void)
{
uchar i;
uchar *p=NULL;
bit over = False, pause = False;
P_max = 0; zs = 0;
Disp_msg(16, 16, 1);
Link(15, 220, 300, 0);
Link(15, 60, 160, 1);
DOT_s(16, 12, 94, 32, 0);
p = &DRAG_1[menu][0];
TXT_S(3, 14, 1, p);
Speed_V = 0;
TXD_c(4);
p = TXT1;
CW_PR(1, 6, p);
Display(4, 5, 0, 4, 260, 1);
Display(4, 7, 1, 5, 250, 1);
do
{
read_time(21, 0, 1);
Max192(0, 23, 5,0);
//if (send_kpa) {send_kpa = 0; TXD_pc(0);}
//TXD_pc(0x0);
if (Adend < 120) {if (Speed_V != 0) {TXD_c(4); Speed_V = 0; } goto ZD1; }
if (Adend < 200) {if (Speed_V != 1) {TXD_c(5); Speed_V = 1; } goto ZD1; }
if (Adend < 260) {if (Speed_V != 2) {TXD_c(6); Speed_V = 2; } goto ZD1; }
else
{
P_max = Adend;
goto ZD2;
}
ZD1: if (P_max < Adend) P_max = Adend;
if (C_run)
{
C_run = False;
TXD_pc(0x0a);
if (over == False) Display(23, 7, 3, 5, V_ml, 1);
if (V_ml >= 250)
{
ZD2: Disp_2(Adend/3);
DJ_run = 0; TR0 = 0; ET0 = 0;
TXD_c(3); over = 1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -