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

📄 pump.lst

📁 毕业设计做的东西的硬件程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 149          {       
 150   1          XBR0 = 0x09;                                  // 交叉开关设置
 151   1              XBR1 = 0x58;                              
 152   1              XBR2 = 0x41;    
 153   1              PRT0CF = 0x04;                            // 端口输出方式寄存器设置 
 154   1              PRT1CF = 0xA3;  
 155   1              PRT2CF = 0x01;   
 156   1              PRT3CF = 0x00;   
 157   1      }
 158          /**********************************************************************************************
 159           函数:void ISR_Init(void)
 160           说明:系统中断设置初始化
 161          ***********************************************************************************************/
 162          void ISR_Init(void)                               
 163          { 
 164   1        IT1=1;                                      //设置外部中断1为下降沿触发
 165   1        EA=1;                                       //开全局中断
 166   1        EX1=1;                                      //打开外部中断1
 167   1        ET0=1;                                      //定时器0开中断
 168   1        ET1=1;                                              //定时器1开中断
 169   1        PT0=1;                                      //置定时器0中断为高优先级
 170   1        PT1=1;                                      //置定时器1中断为高优先级  
 171   1        EIP1=0x04;                                  //置ADC0窗口比较器中断为高优先级
 172   1      //IE=0xAE;                                                                        //或对IE中断允许寄存器进行设置
 173   1        EIE1=0x04;                                  //允许ADC0窗口比较器中断
 174   1        EIE2=0x01;                                  //定时器3开中断
 175   1      }
 176          /**********************************************************************************************
 177           函数:void Global_Init(void)
 178           说明:全局变量初始化
 179          ***********************************************************************************************/
 180          void Global_Init(void)                     
 181          { P3=0x0F;                                                                        
 182   1        Heat_flag=1;
 183   1        Fluxdrop_Flag=1;
 184   1        Speed_Set=0;
 185   1        Lpower_LED=1;
 186   1        Hold_Flag=0;
 187   1        SR_Flag=0;
 188   1        Point_Flag=0x02;
 189   1        BUFFER=0;
 190   1        Buffer_NUM=1;
C51 COMPILER V8.01   PUMP                                                                  09/19/2006 11:35:54 PAGE 8   

 191   1        PWM_Width=0x07D0;
 192   1        Drop_NStep=50.0;
 193   1        SM_CLK1=0;
 194   1        SM_RST=0;
 195   1        SM_EN=0;
 196   1        T1IN=1;                                                                          
 197   1        Balarm_flag=1;
 198   1        PK_Flag=0;
 199   1        State_LED=1;
 200   1        Gross_Flag=0;
 201   1      }
 202          /**********************************************************************************************
 203           函数:void Bubble_alarm(void)
 204           说明:气泡检测报警、处理
 205          ***********************************************************************************************/
 206          void Bubble_alarm(void)                          
 207          { Balarm_flag=0;
 208   1        SR_Flag=0;
 209   1        SM_SR();
 210   1      }
 211          /**********************************************************************************************
 212           函数:void delay( uint t) 
 213           说明:延时子程序,延迟时间[(12.144*TIMER1+17.365)*TIMER2+28.375]/f,当t=16M时,为(76.9853t+1.7
 214                 734)us,当t=12M时,为(102.647t+2.3646)us
 215          ***********************************************************************************************/
 216          void delay( uint t)               
 217          {  uint i,j;                                                             
 218   1         for(i=0;i<t;i++)                     
 219   1            for(j=0;j<100;j++)        
 220   1               ;                                      
 221   1      }                                                   
 222          /**********************************************************************************************
 223           函数:void nop(uint t) 
 224           说明:软件短时间精确延时子程序,相当于t个空操作
 225          ***********************************************************************************************/
 226          void nop(uint t)
 227          { uint i;
 228   1         for(i=0;i<t;i++)
 229   1                _nop_();
 230   1      }
 231          /**********************************************************************************************
 232           函数:void pk(void) 
 233           说明:输液前的排空操作,电机快速转动,迅速排出气泡
 234          ***********************************************************************************************/
 235          void pk(void)                     
 236          { 
 237   1        if(PK_Flag==1)
 238   1          {SR_Flag=1;
 239   2           SM_SR();
 240   2               }
 241   1        else 
 242   1          {SR_Flag=0;
 243   2               SM_SR();
 244   2              }                                                                        
 245   1      }
 246          /**********************************************************************************************
 247           函数:void lcdwbit(bit n) 
 248           说明:LCD位传输函数
 249          ***********************************************************************************************/
 250          void lcdwbit(bit n)                                     
 251          {  DIPIN = n;
 252   1         CLKPIN = 1;
C51 COMPILER V8.01   PUMP                                                                  09/19/2006 11:35:54 PAGE 9   

 253   1         CLKPIN = 0;
 254   1         CLKPIN = 1;
 255   1      }
 256          /**********************************************************************************************
 257           函数:void lcdwd(uchar data1) 
 258           说明:LCD字节传输函数
 259          ***********************************************************************************************/
 260          void lcdwd(uchar data1)                                 
 261          {  uchar i;
 262   1         for(i=0;i<8;i++)
 263   1         {  if((data1&0x01)==0x01)
 264   2               lcdwbit(1);
 265   2            else 
 266   2               lcdwbit(0);
 267   2            data1>>=1;
 268   2         }
 269   1      }
 270          /**********************************************************************************************
 271           函数:void lcdwd1(void) 
 272           说明:LCD4段数据传输函数
 273          ***********************************************************************************************/
 274          void lcdwd1(void)                                       
 275          {  uchar i;
 276   1         for(i=0;i<5;i++) 
 277   1            {lcdwd(l_data[i]);
 278   2      }          delay(1);}
 279          /**********************************************************************************************
 280           函数:void l_set(void) 
 281           说明:各段显示数据设置,若存在小数点,则相应位的显示数据改变
 282          ***********************************************************************************************/
 283          void l_set(void)                        
 284          {uchar i;
 285   1       l_data[0]=0xff;
 286   1       if(Fluxdrop_Flag)                                                              //判断是流量还是滴数模式
 287   1          Point_Flag=0xff;
 288   1       else
 289   1          Point_Flag=2;
 290   1       for(i=1;i<5;i++)
 291   1         {l_data[i]=lcd_data[temp[i-1]];
 292   2         } 
 293   1       if(Point_Flag!=0xff)                           
 294   1          l_data[(Point_Flag+1)]=l_data[(Point_Flag+1)]&0x7F;  
 295   1      }
 296          /**********************************************************************************************
 297           函数:void display(void) 
 298           说明:显示设置数据
 299          ***********************************************************************************************/
 300          void display(void)                                   
 301          {l_set();
 302   1       lcdwd1();
 303   1       delay(Time_50ms);
 304   1       WDTCN=0xA5;
 305   1       delay(Time_50ms);
 306   1       WDTCN=0xA5;
 307   1        delay(Time_50ms);
 308   1       WDTCN=0xA5;
 309   1       delay(Time_50ms);
 310   1       WDTCN=0xA5;
 311   1      }
 312          /**********************************************************************************************
 313           函数:void noplay(void) 
 314           说明:为实现闪烁,需要一段时间空白显示
C51 COMPILER V8.01   PUMP                                                                  09/19/2006 11:35:54 PAGE 10  

 315          ***********************************************************************************************/
 316          void noplay(void)                                   
 317          {uchar i;
 318   1       for(i=1;i<6;i++)
 319   1        l_data[i]=0xff;
 320   1        lcdwd1();
 321   1        delay(Time_50ms);
 322   1        WDTCN=0xA5;
 323   1        delay(Time_50ms);
 324   1        WDTCN=0xA5;
 325   1        delay(Time_50ms);
 326   1        WDTCN=0xA5;
 327   1        delay(Time_50ms);
 328   1        WDTCN=0xA5;
 329   1      }
 330          /**********************************************************************************************
 331           函数:void lcd2wbit(bit n) 
 332           说明:LCD位传输函数
 333          ***********************************************************************************************/
 334          void lcd2wbit(bit n)                                    
 335          {  DI2PIN = n;
 336   1         CLK2PIN = 1;
 337   1         CLK2PIN = 0;
 338   1         CLK2PIN = 1;
 339   1      }
 340          /**********************************************************************************************
 341           函数:void lcd2wd(uchar data1) 
 342           说明:LCD字节传输函数
 343          ***********************************************************************************************/
 344          void lcd2wd(uchar data1)                                
 345          {  uchar i;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -