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

📄 我的定时程序.lst

📁 这是一个单片机的定时程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  ________砡序                                                           10/17/2005 22:38:16 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE ________砡序
OBJECT MODULE PLACED IN .\我的定时程序.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\我的定时程序.c INTVECTOR(0X8000) DEBUG OBJECTEXTEND

stmt level    source

   1          
   2          /*********************************************************************************************************
             -*****************
   3          **                                                                                                        
             -                **
   4          **                                         可编程控制器监控程序 V6.0版                                    
             -                **
   5          **                                                                                                        
             -                **
   6          **                                                 编者:邵亮                                              
             -                **
   7          **                                                                                                        
             -                **
   8           *********************************************************************************************************
             -*****************/
   9          #include<reg52.h>
  10          #include<stdio.h>
  11          #include<absacc.h>
  12          #include<string.h>
  13          #include<intrins.h>
  14          #define byte unsigned char
  15          #define word unsigned int
  16          #define uchar unsigned char
  17          #define uint unsigned int
  18          #define dword unsigned long
  19          
  20          /*52寄存器定义*/
  21          xdata uchar c52in _at_ 0xa000;
  22          xdata uchar c52out _at_ 0xc000;
  23          xdata uchar VB[0x2000] _at_ 0x6000;
  24          bdata uchar MB[12] _at_ 0x20;
  25          bdata uchar IB0 _at_ 0x2C;
  26          bdata uchar QB0 _at_ 0x2E;
  27          data uchar LB[16] _at_ 0x30;
  28          
  29          data uchar sbufRam[32] _at_ 0x40;
  30          
  31          sbit c52_run=P1^0;
  32          /*CRC高位字节值表*/
  33          uchar code auchCRCHi[]={0x00,0xC1,0X81,0X40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  34                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  35                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  36                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  37                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  38                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  39                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  40                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  41                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  42                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  43                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  44                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  45                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,
  46                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  47                                  0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,
  48                                  0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40};
C51 COMPILER V6.12  ________砡序                                                           10/17/2005 22:38:16 PAGE 2   

  49          /*CRC低位字节值表*/
  50          uchar code auchCRCLo[]={0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,
  51                                  0x04,0xCC,0x0C,0x0D,0xCD,0x0F,0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,
  52                                  0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E,0xDE,0xDF,0x1F,0xDD,
  53                                  0x1D,0x1C,0xDC,0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,
  54                                  0x11,0xD1,0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,
  55                                  0xF5,0x35,0x34,0xF4,0x3C,0xFC,0xFD,0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,
  56                                  0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA,0xEE,0x2E,       
             -               
  57                                  0x2F,0xEF,0x2D,0xED,0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,
  58                                  0xE2,0xE3,0x23,0xE1,0x21,0x20,0xE0,0xA0,0x60,0x60,0xA1,0x63,0xA3,0xA2,0x62,
  59                                  0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,0x6C,0xAC,0xAD,0x6D,0xAF,0x6F,0x6E,
  60                                  0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,0x78,0xB8,0xB9,0x79,0xBB,0x7B,
  61                                  0x7A,0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,0x77,
  62                                  0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,0xB1,0x71,0x70,0xB0,0x50,0x90,0x91,0x51,0x93,
  63                                  0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,0x5C,0x5D,0x9D,0x5F,
  64                                  0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,
  65                                  0x4B,0x8B,0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,0x44,0x84,0x85,
  66                                  0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,0x83,0x41,0x81,0x80,0x40};
  67          /**********函数声明************/
  68          void _dl5us(void);   /*延时5us*/
  69          void _dl24us(void);  /*延时24us*/
  70          void _dl50us(void);  /*延时50us*/
  71          void initComm(void); /*串口初始化*/
  72          void tran_serial_data(uchar *sbufRam); /*串口数据发送程序*/
  73          uchar rec_serial_data(uchar *sbufRam); /*串口数据接收程序*/
  74          void read_inport(uchar r_times);
  75          void write_outport(void);
  76          void main(void);
  77          
  78          /**********函数体定义**********/
  79          void _dl5us(void){   /*延时5us*/
  80   1           _nop_();
  81   1          }
  82          
  83          void _dl24us(void){  /*延时24us*/
  84   1           _dl5us();
  85   1           _dl5us();
  86   1           _dl5us();
  87   1           _dl5us();
  88   1          }
  89          
  90          void _dl50us(void){  /*延时50us*/
  91   1           _dl24us();
  92   1           _dl24us();
  93   1          }
  94          
  95          void dl1ms(uint n){
  96   1            while(n!=0){
  97   2               uchar i;
  98   2               for(i=0;i<20;i++){_dl50us();}
  99   2               --n;
 100   2               }
 101   1      }
 102          
 103          /************************/
 104          /****52通信口操作命令****/
 105          /************************/
 106          
 107          /*命令1查询输出继电器状态*/
 108          void fun_01(void){
 109   1          sbufRam[2]=1;/*返回数据长度为1*/
C51 COMPILER V6.12  ________砡序                                                           10/17/2005 22:38:16 PAGE 3   

 110   1          sbufRam[3]=QB0;
 111   1      }
 112          /*命令2 查询输入口状态*/
 113          void fun_02(void){
 114   1          sbufRam[2]=1;/*返回数据长度为1*/
 115   1          sbufRam[3]=c52in;
 116   1      }
 117          /*命令3查询输出映像寄存器*/
 118          void fun_03(void){
 119   1          sbufRam[2]=1;/*返回数据长度为1*/
 120   1          sbufRam[3]=QB0;
 121   1      }
 122          /*命令4查询输入映像寄存器*/
 123          void fun_04(void){
 124   1          sbufRam[2]=1;/*返回数据长度为1*/
 125   1          sbufRam[3]=IB0;
 126   1      }
 127          /*命令5查询输入映像寄存器*/
 128          void fun_05(void){
 129   1          sbufRam[2]=0;/*返回数据长度为0*/
 130   1          QB0=QB0||sbufRam[3];
 131   1          c52in=QB0;
 132   1      }
 133          /*命令6查询输入映像寄存器*/
 134          void fun_06(void){
 135   1          sbufRam[2]=0;/*返回数据长度为0*/
 136   1          QB0==QB0&&sbufRam[3];
 137   1          c52in=QB0;
 138   1      }
 139          /*****命令字>=70为公用命令*******/
 140          /*测试通信口*/
 141          void fun_70(void){
 142   1          return;
 143   1      }
 144          /*返回程序完成时间日期,即版本号*/
 145          void fun_75(void){
 146   1          sbufRam[2]=4;
 147   1          sbufRam[3]=0x03;
 148   1          sbufRam[4]=0x04;
 149   1          sbufRam[5]=0x11;
 150   1          sbufRam[6]=0x18;
 151   1      }
 152          
 153          
 154          /**********计算CRC16函数*********/
 155          uint CRC16(puchMsg,usDataLen)
 156          uchar *puchMsg;
 157          uchar usDataLen;{
 158   1            uchar uchCRCHi=0xFF;

⌨️ 快捷键说明

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