⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlc1543.c

📁 用SST89C58,对微型打印机和液晶的显示
💻 C
📖 第 1 页 / 共 5 页
字号:
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 + -