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

📄 noname2.lst

📁 measure coin used 89c52,which use two Timers
💻 LST
📖 第 1 页 / 共 2 页
字号:
 230   1      //    TR1=0;
 231   1      //    T1=0;
 232   1      //    ET1 = 0;             //打开计数器1中断
 233   1      //    ET0=0;                //打开计数器0中断
 234   1      }
 235          
 236          void UART_INT(void)
 237          {
 238   1          EA=1;
 239   1      //    TR1=0;
 240   1          IT1=1;         //下降沿触发
 241   1      //    IT0=1;
C51 COMPILER V8.02   NONAME2                                                               08/10/2008 10:38:12 PAGE 5   

 242   1          TMOD=0x21;
 243   1      //   PCON=0x80;           //波特率翻倍
 244   1          PCON=0x00;           //波特率翻倍
 245   1          SCON =0x50;          //串口为工作1方式,波特率可变,允许串行接受
 246   1      //    TH1 = 0xf3;           //串口波特率设置,9600
 247   1      //    TL1 = 0xf3;
 248   1          TH1 = 0xfd;           //串口波特率设置,9600
 249   1          TL1 = 0xfd;
 250   1          ET1=0;
 251   1          ES  = 1;                //打开串口中断
 252   1      
 253   1      }
 254          void main(void)
 255          {
 256   1          P1_7=1;
 257   1          flag0=0;
 258   1          flag1=0;
 259   1          flag2=0;
 260   1          flag3=0;
 261   1          guangdian=0;
 262   1          total=0;
 263   1      //   T0_total=0;
 264   1      //    T1_total=0;
 265   1          M=0;
 266   1          N=0;
 267   1          l=0;
 268   1          flag4=0;
 269   1          flag5=0;
 270   1          timer1_INT();
 271   1          EX1=1;    //
 272   1          while((!flag4) || (!flag5))
 273   1          {
 274   2            if((l>=maichong ) && (!flag4))
 275   2            {
 276   3              TR0=0;
 277   3              flag4=1;
 278   3            }
 279   2            else if(((M*65536+TH1*256+TL1)>shijian) && (!flag5))
 280   2            {
 281   3              TR1=0;
 282   3              flag5=1;
 283   3            }
 284   2          }
 285   1          EX1=0;
 286   1          senddata[0]=N;
 287   1          senddata[1]=TH0;
 288   1          senddata[2]=TL0;
 289   1          senddata[3]=M;
 290   1          senddata[4]=TH1;
 291   1          senddata[5]=TL1;
 292   1      //    T0_total1=N*65536+TH0*256+TL0;
 293   1      //    T1_total1=M*65536+TH1*256+TL1;
 294   1          TH0=0;
 295   1          TL0=0;
 296   1          TH1=0;
 297   1          TL1=0;
 298   1      
 299   1      
 300   1        while(1)
 301   1        {
 302   2          INT0=1;
 303   2          while(!flag0);
C51 COMPILER V8.02   NONAME2                                                               08/10/2008 10:38:12 PAGE 6   

 304   2      /*    if(!P3_2 && !flag0)
 305   2          {
 306   2      //        TR0=1;      //打开定时器T0
 307   2      //        TR1=1;     //打开计数器T1
 308   2              EX1=1;    //开外部中断1
 309   2      //        ET0=1;     //开定时器中断
 310   2      //        ET1=1;     //开定时器中断
 311   2              flag0=1;
 312   2              P1_7=!P1_7;
 313   2          }                            */
 314   2          if(P3_2 && !flag1 && flag0)
 315   2          {
 316   3              senddata[6]=N;
 317   3              senddata[7]=TH0;
 318   3              senddata[8]=TL0;
 319   3              senddata[9]=M;
 320   3              senddata[10]=TH1;
 321   3              senddata[11]=TL1;
 322   3      //      guangdian=N*65536+TH0*256+TL0;    //读出定时器T0的值
 323   3      //      guangdian=TH0*256+TL0;    //读出定时器T0的值
 324   3      //      T2_total=M*65536+TH1*256+TL1;
 325   3      //      T2_total=TH1*256+TL1;
 326   3            k=l;
 327   3            flag1=1;
 328   3          }
 329   2          if((l>=maichong)  && !flag2 && flag0)
 330   2          {
 331   3            EX1=0;                  //关外部中断1
 332   3      //      T0_total=N*65536+TH0*256+TL0;             //读出定时器T0的值
 333   3            senddata[12]=N;
 334   3            senddata[13]=TH0;
 335   3            senddata[14]=TL0;
 336   3            flag2=1;
 337   3          }
 338   2          total=M*65536+TH1*256+TL1;
 339   2          if((total>shijian) && !flag3 && flag0)
 340   2          {
 341   3            TR1=0;                   //关计数器T1
 342   3      //      T1_total=M*65536+TH1*256+TL1;
 343   3      //      T1_total=TH1*256+TL1;
 344   3            senddata[15]=M;
 345   3            senddata[16]=TH1;
 346   3            senddata[17]=TL1;
 347   3            flag3=1;
 348   3          }
 349   2       //   flag2=1;
 350   2       //   flag3=1;
 351   2      
 352   2          if(flag1 && flag2 && flag3)
 353   2          {
 354   3           UART_INT();          //初始化串口
 355   3            senddata[18]=k>>8;
 356   3            senddata[19]=k;
 357   3            guangdian=senddata[6]*65536+senddata[7]*256+senddata[8];    //读出定时器T0的值
 358   3            total=senddata[9]*65536+senddata[10]*256+senddata[11];
 359   3            freq=total*1.0/guangdian*2000000-150000;
 360   3            senddata[20]=freq>>8;
 361   3            senddata[21]=freq;
 362   3            l=0;
 363   3            bhead=0;
 364   3            TR1=1;
 365   3            TI=1;                              //开中断,通过串口发送数据去打印
C51 COMPILER V8.02   NONAME2                                                               08/10/2008 10:38:12 PAGE 7   

 366   3            while(l<=senddata_shu);                  //等待发送数据
 367   3            TI=0;
 368   3            ES=0;
 369   3            TR1=0;
 370   3            TR0=0;
 371   3            l=0;
 372   3            bhead=0;
 373   3            flag0=0;
 374   3            flag1=0;
 375   3            flag2=0;
 376   3            flag3=0;
 377   3            guangdian=0;
 378   3            total=0;
 379   3      //      T0_total=0;
 380   3      //      T1_total=0;
 381   3            M=0;
 382   3            N=0;
 383   3            TF1=0;
 384   3            timer1_INT();        //初始化定时器
 385   3          }
 386   2        }
 387   1      
 388   1      }
C51 COMPILER V8.02   NONAME2                                                               08/10/2008 10:38:12 PAGE 8   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
EA . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AFH  1
UART_INT . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
P3_2 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
P1_7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
ES . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ACH  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
INT0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B2H  1
TI . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0099H  1
timer1_INT . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
total. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_LONG   0010H  4
send_flag. . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0000H  1
send . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
freq . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    000BH  2
SBUF . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0099H  1
PCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0087H  1
guangdian. . . . . . . . . . . . . . .  PUBLIC   XDATA  U_LONG   0014H  4
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TMOD . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0089H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
senddata . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0040H  22
ET0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A9H  1
ET1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00ABH  1
TF1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008FH  1
flag0. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0007H  1
M. . . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0005H  1
TH0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008CH  1
flag1. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0008H  1
N. . . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0006H  1
EX0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A8H  1
TH1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008DH  1
flag2. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0009H  1
EX1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00AAH  1
IT1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008AH  1
flag3. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   000AH  1
flag4. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0030H  1
TL0. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008AH  1
flag5. . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_CHAR   0031H  1
TL1. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   008BH  1
timer0 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
timer1 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
TR0. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008CH  1
TR1. . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      008EH  1
int0svr. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
int1svr. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
m_flag . . . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0000H  1
k. . . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_INT    000DH  2
l. . . . . . . . . . . . . . . . . . .  PUBLIC   XDATA  U_LONG   0000H  4
bhead. . . . . . . . . . . . . . . . .  PUBLIC   DATA   BIT      0001H  1
flag_int1. . . . . . . . . . . . . . .  PUBLIC   DATA   U_CHAR   0001H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V8.02   NONAME2                                                               08/10/2008 10:38:12 PAGE 9   

   CODE SIZE        =   1293    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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