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

📄 csy.lst

📁 单片机智能化产品-c语言实例详解,里面有很多程序,讲得很详细,绝对可以直接用,还有电路图pcb文件!详情请看这本书目录
💻 LST
字号:
C51 COMPILER V7.06   CSY                                                                   11/19/2005 14:46:36 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CSY
OBJECT MODULE PLACED IN csy.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE csy.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include <AT89X51.H>//6.000MHz
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          #define L 0
   5          #define R 1
   6          uchar SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,
   7                          0x6d,0x7d,0x07,0x7f,0x6f};/*0~9的数码管段码*/
   8          #define reset() {WDT=0x1e;WDT=0xe1;}
   9          uchar act[2]={0xf3,0xfc};//数码管位码
  10          /***************************************************************/
  11          uchar time_cnt;
  12          uchar deda=0;           ///*100mS计数单元清零*/ 
  13          sfr WDT=0xa6;
  14          
  15          /**************端口定义***********/
  16          sbit INPUT=P3^2;
  17          sbit RL1=P1^7;
  18          sbit RL2=P1^6;
  19          sbit LED1=P1^2;
  20          sbit LED2=P1^3;
  21          sbit BZ1=P1^4;
  22          sbit BZ2=P1^5;
  23          /***************************/
  24          bit LR;
  25          bit ERR;
  26          /***********************/
  27          /*定时器T0初始化*/
  28          void init_timer0()
  29          {
  30   1      TMOD=0x11;
  31   1      TH0=-(50235/256);//100mS定时初值
  32   1      TL0=-(50235%256);
  33   1      }
  34          
  35          /*定时器T1初始化*/
  36          void init_timer1()
  37          {
  38   1      TH1=-(2000/256);//4mS定时初值
  39   1      TL1=-(2000%256);
  40   1      TR1=1;
  41   1      }
  42          
  43          //************初始化***********
  44          void init(void)
  45          {       P0=0;P1=0xff;P2=0xff;P3=0xff;
  46   1              reset()
  47   1              init_timer0();          
  48   1              init_timer1();          
  49   1              ET0=1;ET1=1;EX1=1;
  50   1              TR1=1;IT1=1;
  51   1              EA=1;   
  52   1      }
  53          
  54          
  55          /*************延时子函数*************/
C51 COMPILER V7.06   CSY                                                                   11/19/2005 14:46:36 PAGE 2   

  56          void delay(uint k)
  57          {
  58   1      uint i,j;
  59   1      for(i=0;i<k;i++){
  60   2      for(j=0;j<60;j++)
  61   2      {;}reset()}
  62   1      }
  63          
  64          /*100mS定时中断服务子函数*/
  65          void time_zd0(void) interrupt 1 using 1
  66          {
  67   1      TH0=-(50235/256);
  68   1      TL0=-(50235%256);
  69   1      if(!INPUT)deda++;
  70   1      time_cnt++;
  71   1              if(time_cnt==15)// 当 time_cnt==20 , 开始测试
  72   1                      { TR0=0;
  73   2                      if((deda>2)&&(deda<11))// 先检测开锁脉冲
  74   2                                      {RL1=1;RL2=1;// 正常
  75   3                                      delay(90);
  76   3                                      BZ1=1;BZ2=1;RL1=1;RL2=0;
  77   3                                      deda=0;ERR=0;
  78   3                                      TR0=1;//deda=0;LR=R;
  79   3                                      }
  80   2                                      else ERR=1;// 否则有错
  81   2                      }
  82   1      //=============================================
  83   1      if(time_cnt==30)// 当time_cnt==20 , 开始测试
  84   1                      {TR0=0;
  85   2                      if((deda>2)&&(deda<11))// 再检测闭锁脉冲
  86   2                                      {RL1=1;RL2=1;// 正常
  87   3                                      BZ1=1;BZ2=1;RL1=1;RL2=1;
  88   3                                      TR0=0;
  89   3                                      EX1=1;}
  90   2                                      else ERR=1;// 否则有错
  91   2                      }
  92   1      
  93   1      }
  94          
  95          /**************************/
  96          /*4mS定时中断服务子函数,扫描刷新两位数码管*/
  97          void time_zd1(void) interrupt 3 using 3
  98          {
  99   1              TH1=-(2000/256);
 100   1              TL1=-(2000%256);
 101   1              LR=!LR;
 102   1              if(LR==L)
 103   1              {P0=SEG7[deda/10]|0x80;
 104   2              P2=act[1];}
 105   1              else
 106   1              {P0=SEG7[deda%10];
 107   2              P2=act[0];}
 108   1      }
 109          
 110          /******************主函数*****************/
 111          void main()
 112          {       init();
 113   1              while(1)
 114   1      {       reset()
 115   2              if(time_cnt<=15)
 116   2              {       if(!INPUT)
 117   3                      {LED1=0;LED2=1;}
C51 COMPILER V7.06   CSY                                                                   11/19/2005 14:46:36 PAGE 3   

 118   3                      else 
 119   3                       {LED1=1;LED2=1;}
 120   3              }
 121   2              else
 122   2              {       if(!INPUT)
 123   3                      {LED1=1;LED2=0;}
 124   3                      else 
 125   3                       {LED1=1;LED2=1;}
 126   3              }
 127   2              //============================================
 128   2              if(ERR)
 129   2              {BZ1=0;BZ2=0;TR0=0;}
 130   2      }
 131   1      }
 132          /**********************************************************/
 133          
 134          void extern_zd1(void) interrupt 2 using 2//测试启动
 135          {       delay(10);
 136   1              if(!P3_3)
 137   1              {BZ1=0;BZ2=0;
 138   2              delay(200);
 139   2              LR=L;ERR=0;
 140   2              BZ1=1;BZ2=1;
 141   2              deda=0;
 142   2              time_cnt=0;
 143   2              EX1=0;TR0=1;
 144   2              RL1=0;RL2=1;
 145   2              }
 146   1      }
 147          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    370    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     14    ----
   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 + -