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

📄 iouart.lst

📁 这是机场入口电子卡检查登记的设备。有输入
💻 LST
字号:
C51 COMPILER V6.20c  IOUART                                                                06/21/2007 21:37:53 PAGE 1   


C51 COMPILER V6.20c, COMPILATION OF MODULE IOUART
OBJECT MODULE PLACED IN IOuart.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE IOuart.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"w77e58.h"
   2          /**************************************************
   3                //串口2队列
   4          **************************************************/
   5          extern unsigned char xdata xBuf_2[];//384
   6          unsigned char xdata *Seri2_ReadPoint;
   7          unsigned char xdata *Seri2_WritePoint;
   8          unsigned int data Seri2_SendNum; 
   9          unsigned int data Seri2_ReciNum; 
  10          sbit BT_SND =P2^6;
  11          sbit BT_REC =P2^7;
  12          /**********************************************
  13          
  14          IO 口模拟232通讯程序
  15          
  16          占用定时器0
  17          
  18          **********************************************/
  19          
  20          #define F_TM F0
  21          #define TIMER0_ENABLE  TL0=TH0; TR0=1;
  22          #define TIMER0_DISABLE TR0=0;
  23          
  24          sbit ACC0=   ACC^0;
  25          sbit ACC1=   ACC^1;
  26          sbit ACC2=   ACC^2;
  27          sbit ACC3=   ACC^3;
  28          sbit ACC4=   ACC^4;
  29          sbit ACC5=   ACC^5;
  30          sbit ACC6=   ACC^6;
  31          sbit ACC7=   ACC^7;
  32          
  33          void IntTimer0() interrupt 1
  34          {
  35   1      F_TM=1;
  36   1      }
  37          //发送一个字符
  38          void PSendChar(unsigned char inch)
  39          {
  40   1      ACC=inch;
  41   1      
  42   1      F_TM=0;
  43   1      BT_SND=0; //start bit
  44   1      TIMER0_ENABLE; //启动
  45   1      while(!F_TM);
  46   1      
  47   1      BT_SND=ACC0; //先送出低位
  48   1      F_TM=0;
  49   1      while(!F_TM);
  50   1      
  51   1      BT_SND=ACC1;
  52   1      F_TM=0;
  53   1      while(!F_TM);
  54   1      
  55   1      BT_SND=ACC2;
C51 COMPILER V6.20c  IOUART                                                                06/21/2007 21:37:53 PAGE 2   

  56   1      F_TM=0;
  57   1      while(!F_TM);
  58   1      
  59   1      BT_SND=ACC3;
  60   1      F_TM=0;
  61   1      while(!F_TM);
  62   1      
  63   1      BT_SND=ACC4;
  64   1      F_TM=0;
  65   1      while(!F_TM);
  66   1      
  67   1      BT_SND=ACC5;
  68   1      F_TM=0;
  69   1      while(!F_TM);
  70   1      
  71   1      BT_SND=ACC6;
  72   1      F_TM=0;
  73   1      while(!F_TM);
  74   1      
  75   1      BT_SND=ACC7;
  76   1      F_TM=0;
  77   1      while(!F_TM);
  78   1      
  79   1      BT_SND=1;
  80   1      F_TM=0;
  81   1      while(!F_TM);
  82   1      
  83   1      TIMER0_DISABLE; //停止timer
  84   1      }
  85          //接收一个字符
  86          unsigned char PGetChar()
  87          {
  88   1      TIMER0_ENABLE;
  89   1      F_TM=0;
  90   1      while(!F_TM); //等过起始位
  91   1      ACC0=BT_REC;
  92   1      
  93   1      TL0=TH0;
  94   1      
  95   1      F_TM=0;
  96   1      while(!F_TM);
  97   1      ACC1=BT_REC;
  98   1      
  99   1      F_TM=0;
 100   1      while(!F_TM);
 101   1      ACC2=BT_REC;
 102   1      
 103   1      F_TM=0;
 104   1      while(!F_TM);
 105   1      ACC3=BT_REC;
 106   1      
 107   1      F_TM=0;
 108   1      while(!F_TM);
 109   1      ACC4=BT_REC;
 110   1      
 111   1      F_TM=0;
 112   1      while(!F_TM);
 113   1      ACC5=BT_REC;
 114   1      
 115   1      F_TM=0;
 116   1      while(!F_TM);
 117   1      ACC6=BT_REC;
C51 COMPILER V6.20c  IOUART                                                                06/21/2007 21:37:53 PAGE 3   

 118   1      
 119   1      F_TM=0;
 120   1      while(!F_TM);
 121   1      ACC7=BT_REC;
 122   1      
 123   1      F_TM=0;
 124   1      
 125   1      while(!F_TM)
 126   1      {
 127   2        if(BT_REC){break;}
 128   2      }
 129   1      TIMER0_DISABLE; //停止timer
 130   1      return ACC;
 131   1      }
 132          /*
 133          //检查是不是有起始位
 134          bit StartBitOn()
 135          {
 136            return  (BT_REC==0);
 137          }
 138          */
 139          void puart_init(void) {
 140   1      TMOD|=0x22; //定时器1为工作模式2(8位自动重装),0为模式2(8位自动重装) 
 141   1      PCON=00;
 142   1      
 143   1      TR0=0; //在发送或接收才开始使用
 144   1      TF0=0;
 145   1      TH0=(256-96); //9600bps 就是 1000000/9600=104.167微秒 执行的
 146   1      //timer是         104.167*11.0592/12= 96
 147   1      TL0=TH0;
 148   1      ET0=1;
 149   1      EA=1;
 150   1      }
 151          extern unsigned char tmp;
 152          extern unsigned char Sla;
 153          S2send() //串口2发送
 154          {
 155   1       unsigned char m,n;
 156   1       unsigned char front[17]={0x01,0xd1,0x04,0x00,0x00,0x00,0x00,0x00,0x4f,0x00,0x0f,0x00,0x01,0x01,0x00,0x01,
             -0x01};
 157   1        PSendChar(0x01);
 158   1        PSendChar(0x01);
 159   1      BT_REC=1;
 160   1       for(m=0;m<200;m++)//等接受开始 
 161   1        for(n=0;n<200;n++){
 162   2          if(BT_REC==0) goto send;       
 163   2        }
 164   1      return;
 165   1      
 166   1      send:
 167   1      tmp=PGetChar();       //接受
 168   1      /*
 169   1        for(Seri2_SendNum=336;Seri2_SendNum>=17;Seri2_SendNum--)
 170   1           xBuf_2[Seri2_SendNum]=xBuf_2[Seri2_SendNum-17];
 171   1        for(Seri2_SendNum=0;Seri2_SendNum<17; Seri2_SendNum++)
 172   1           xBuf_2[Seri2_SendNum]=front[Seri2_SendNum];
 173   1        xBuf_2[337]=0xaa;
 174   1      for(Seri2_SendNum=0;Seri2_SendNum<338; Seri2_SendNum++)
 175   1         PSendChar(xBuf_2[Seri2_SendNum]);
 176   1      */
 177   1       for(m=0; m<17; m++)
 178   1          PSendChar(front[m]);
C51 COMPILER V6.20c  IOUART                                                                06/21/2007 21:37:53 PAGE 4   

 179   1       for(m=0;m<16;m++)
 180   1         for(n=m;n<16*10;n+=16)
 181   1            PSendChar(xBuf_2[n]);
 182   1       PSendChar(0xaa);
 183   1      }
 184           /*
 185           for(Seri2_SendNum=0; Seri2_SendNum<17; Seri2_SendNum++)
 186             PSendChar(front[Seri2_SendNum]); 
 187             for(Seri2_ReciNum=0;Seri2_ReciNum<16;Seri2_ReciNum++)
 188              for(Seri2_SendNum=Seri2_ReciNum;Seri2_SendNum<16*10;Seri2_SendNum+16)
 189                  {
 190                  PSendChar(xBuf_2[Seri2_SendNum]);
 191                  PSendChar(0xff);
 192                  } 
 193                  PSendChar(0xaa);
 194          */
 195          
 196          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    325    ----
   CONSTANT SIZE    =     17    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8      18
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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