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

📄 lcd1602.lst

📁 自己的平时一些制作 现在整理一下 与大家一起分享
💻 LST
字号:
C51 COMPILER V8.02   LCD1602                                                               05/03/2007 09:16:11 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN LCD1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD1602.c OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "lcd1602.h"
   2          #include "ds18b20.h"
   3          #include <stdio.h>
   4          
   5          void interrupt_init(void);
   6          void serial_init(void);
   7          void time0_init(void);
   8          //unsigned char temp[5];
   9          extern char xiaoshu_temp[5],zhen_temp[4];
  10          extern bit flag;
  11          extern bit dot_dis;
  12          uchar data serial1=0;
  13          uchar data serial2=0;
  14          bit intval1=0;
  15          bit intval2=0;
  16          bit int_pro1=0;
  17          bit int_pro2=0;
  18          bit clr_screen=0;
  19          uchar adc_val=0;
  20          sbit P1_7 = P1^7;
  21          
  22                  
  23          void main(void)
  24          { 
  25   1              uchar *str="temperature is ";
  26   1              uchar *str1="serial1 !";
  27   1              uchar *str2="serial2 !";
  28   1              serial_set();
  29   1              Lcd_Init();
  30   1              interrupt_init();
  31   1              time0_init();
  32   1              ClrScreen();
  33   1              GotoXY(0,0);
  34   1              Print(str);
  35   1              dot_dis=1;
  36   1              P1_7=0;
  37   1              while(1)
  38   1              {       
  39   2                      if(intval1&&int_pro1)                   //如果触发中断0,即采集从机1的值
  40   2                      {       clr_screen=1;
  41   3                              
  42   3                              serial_init();                          //初始化串口
  43   3                              SBUF=0x7f;                                      //发送从机1地址0x7f
  44   3                              while(!TI);                                     //等待发送完成
  45   3                              TI=0;
  46   3                              intval1=0;//0 
  47   3                              
  48   3                              while(int_pro1)                         //如果没触发第二次中断0,循环
  49   3                              { 
  50   4                                      if(serial1)                             //从机1响应是否正确
  51   4                                      {  
  52   5                                              if(serial1==1)          //如果从机正确接收到地址
  53   5                                              {       SCON=0xd0;              //TB8=0
  54   6                                                      
  55   6                                                      serial1=0;
C51 COMPILER V8.02   LCD1602                                                               05/03/2007 09:16:11 PAGE 2   

  56   6                                                      SBUF=0xaa;              //发送A/D转换命令0xaa
  57   6                                                      while(!TI);
  58   6                                                      TI=0;
  59   6                                              }
  60   5                                              if(serial1==2)          //如果从机正确接受到转化命令0xaa
  61   5                                              {       
  62   6                                                      serial1=0;              //
  63   6                                                      SBUF=0xbb;              //发送把从机转化结果送主机的命令0xbb
  64   6                                                      while(!TI);
  65   6                                                      TI=0;
  66   6                                              }
  67   5                                              if(serial1==3)     //如果从机发送结果完成
  68   5                                              {       
  69   6                                                      ClrScreen();
  70   6                                                      serial1=0;
  71   6                                                      
  72   6                                                      Print("adc_success1!");//显示结果
  73   6                                              }        
  74   5                                      }       
  75   4                              }
  76   3                      }
  77   2                      if(intval2&&int_pro2)
  78   2                      {       clr_screen=1;
  79   3                              serial_init();                          //初始化串口
  80   3                              SBUF=0x8f;                                      //发送从机2地址0x8f
  81   3                              while(!TI);                                     //等待发送完成
  82   3                              TI=0;
  83   3                              intval2=0;//0
  84   3                              while(int_pro2)                         //如果没触发第二次中断1,循环
  85   3                              {
  86   4                                      if(serial2)                             //从机2响应是否正确
  87   4                                      {
  88   5                                              if(serial2==1)          //如果从机正确接收到地址
  89   5                                              {
  90   6                                                      SCON=0xd0;
  91   6                                                      serial2=0;
  92   6                                                      SBUF=0xaa;              //发送A/D转换命令0xaa
  93   6                                                      //while(!TI);
  94   6                                                      //TI=0;
  95   6                                              }
  96   5                                              if(serial2==2)          //如果从机正确接受到转化命令0xaa
  97   5                                              {
  98   6                                                      serial2=0;              //
  99   6                                                      SBUF=0xbb;              //发送把从机转化结果送主机的命令0xbb
 100   6                                                      //while(!TI);
 101   6                                                      //TI=0;
 102   6                                              }
 103   5                                              if(serial2==3)     //如果从机发送结果完成
 104   5                                              {  
 105   6                                                      serial2=0;
 106   6                                                      ClrScreen();
 107   6                                                      Print("adc_success2!");//显示结果       
 108   6                                                      //P1_7=~P1_7;
 109   6                                              }        
 110   5                                      }       
 111   4                              }
 112   3                      }
 113   2                      if(clr_screen)
 114   2                      {
 115   3                              clr_screen=0;
 116   3                              ClrScreen();
 117   3                              Print(str);
C51 COMPILER V8.02   LCD1602                                                               05/03/2007 09:16:11 PAGE 3   

 118   3                      }
 119   2                      ds18b20_process(); //温度处理函数
 120   2              }       
 121   1      }
 122          void interrupt_init(void)
 123          {
 124   1              EA=1;
 125   1              EX0=1;
 126   1              EX1=1;
 127   1              IT0=1;
 128   1              IT1=1;
 129   1              
 130   1      }
 131          void serial_init(void)
 132          {       
 133   1              SCON=0xd8;
 134   1              TMOD=0x20;
 135   1              TH1=0xfd;
 136   1              TL0=0xfd;
 137   1              TR1=1; 
 138   1              ES=1;
 139   1      }
 140          void interrupt0(void) interrupt 0 using 1
 141          {
 142   1               intval1=1;
 143   1               int_pro1=~int_pro1;
 144   1      }
 145          void interrupt4(void) interrupt 4 using 2
 146          {
 147   1              ES=0;
 148   1              if(TI)
 149   1              {
 150   2                      TI=0;
 151   2              }
 152   1              if(RI)
 153   1              {
 154   2                      RI=0;
 155   2                      if(SBUF==0x11)          //如果接收到从机1发送的地址响应码0x11
 156   2                      {
 157   3                              serial1=1;              //置serial1=1
 158   3                              
 159   3                      }
 160   2                      if(SBUF==0x22)          //如果接收到从机1发送的A/D转换命令的响应码0x22
 161   2                      {
 162   3                              serial1=2;              //置serial1=2 
 163   3                              
 164   3                      }
 165   2                      if(SBUF==0x33)          //如果接收到从机1发送把从机转化结果送主机的命令响应码0x33
 166   2                      {       
 167   3                              serial1=3;              //置serial1=3 
 168   3                              
 169   3                              SBUF=0xcc;
 170   3                              while(!TI);
 171   3                              TI=0; 
 172   3                              while(!RI)              //等待接收
 173   3                              ; 
 174   3                              
 175   3                              RI=0;
 176   3                              adc_val=SBUF;    //接收转换值
 177   3                                      
 178   3                      }
 179   2                      if(SBUF==0x44)          //如果接收到从机1发送的地址响应码0x44
C51 COMPILER V8.02   LCD1602                                                               05/03/2007 09:16:11 PAGE 4   

 180   2                      {       
 181   3                              serial2=1;              //置serial2=1
 182   3                      }
 183   2                      if(SBUF==0x55)          //如果接收到从机1发送的A/D转换命令的响应码0x55
 184   2                      {       //P1_7=1;
 185   3                              serial2=2;              //置serial2=2
 186   3                      }
 187   2                      if(SBUF==0x66)          //如果接收到从机1发送把从机转化结果送主机的命令响应码0x66
 188   2                      {       
 189   3                              serial2=3;              //置serial2=3
 190   3                              SBUF=0xcc;
 191   3                              while(!TI);
 192   3                              TI=0;P1_7=~P1_7;
 193   3                              while(!RI)
 194   3                              ;
 195   3                              RI=0;
 196   3                              
 197   3                              adc_val=SBUF;    //接收转换值
 198   3                              //ClrScreen();
 199   3                              //Print("adc_success2  !");
 200   3                              
 201   3                              //int_pro2=0;
 202   3                      }       
 203   2              }
 204   1              ES=1;
 205   1      }
 206          void interrupt2(void) interrupt 2 using 3
 207          {
 208   1              intval2=1; //1
 209   1              int_pro2=~int_pro2;
 210   1      }
 211          void time0_init(void)
 212          {
 213   1              TMOD=TMOD&0xf0;
 214   1              TMOD=TMOD|0x01;
 215   1              TH0=0x0;
 216   1              TL0=0x0;
 217   1              ET0=1;
 218   1              EA=1;
 219   1              
 220   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    397    ----
   CONSTANT SIZE    =     64    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       9
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      5    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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