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

📄 mainloop.lst

📁 这是一个89c52的USB固件系统的源码 使用keilc 生成hex文件 可直接烧录
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.09   MAINLOOP                                                              10/14/2004 20:25:36 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE MAINLOOP
OBJECT MODULE PLACED IN Mainloop.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE Mainloop.c OMF2 OPTIMIZE(2,SPEED) DEBUG

line level    source

   1          #include <stdio.h>
   2          #include <string.h>
   3          #include <reg51.h>                /* special function register decounterarations   */
   4          #include "mainloop.h"
   5          #include "isr.h"
   6          #include "protozlg.h"
   7          #include "math.h"
   8          
   9          #define GAOPIN_KAI  1
  10          #define GAOPIN_GUAN 0
  11          #define MOT_RUN  1
  12          #define MOT_CLOSE 0
  13          
  14          #include<absacc.h>
  15          #define uchar unsigned char
  16          #define uint unsigned int
  17          sbit WR8253=P1^0;
  18          sbit A8253=P1^1;
  19          sbit RAMCS=P1^4;
  20          sbit CS8253=P1^5;
  21          sbit A15=P2^7;
  22          sbit A0=P3^0;
  23          sbit A1=P3^1;
  24          sbit GATE=P1^2;
  25          sbit PCS=P3^4;
  26          sbit JCS=P3^5;
  27          sbit WRITE=P3^6;
  28          sbit READ=P3^7;
  29          
  30          #define MAX_ORDER 5
  31          
  32          void outportb(unsigned int Addr,unsigned char Data);
  33          
  34          /*
  35          //*************************************************************************
  36          //  Public static data
  37          //*************************************************************************
  38          */
  39          extern EPPFLAGS bEPPflags;
  40          extern unsigned char idata GenEpBuf[];
  41          extern unsigned char idata EpBuf[];
  42          extern unsigned int data d12_addr;
  43          
  44          extern unsigned int data D12_DATA;
  45          extern unsigned int data D12_COMMAND;
  46          
  47          sfr CKCON = 0x8F;//87C52x2用
  48          sbit clksel = P2^0;
  49          
  50          char idata gaopzt,dianjzt,old_p_status;
  51          unsigned char idata cc;
  52          unsigned char idata c,c1,c2,c3;
  53          unsigned long idata counter;
  54          unsigned char idata read_jing_flag,read_prog_flag,send_req_flag,read_max_loop_flag,read_nc_num_flag,io_wro
             -ng_flag;
C51 COMPILER V7.09   MAINLOOP                                                              10/14/2004 20:25:36 PAGE 2   

  55          unsigned char idata diand_flag,diand_axis,diandbz;
  56          long diandjl;
  57          unsigned char idata ch;
  58          char idata mask_cc;
  59          int i,j;
  60          long idata l,ll;
  61          double idata r,f1;
  62          unsigned char idata lbuf[4];
  63          unsigned char idata w_p,zf;
  64          char idata xyt,uvt,work_status;
  65          unsigned int cur_jing;
  66          unsigned int old_cur_jing;
  67          unsigned int loop_counter;
  68          char loop_flag;
  69          char anti_work_flag,timer_ok;
  70          long loop_off;
  71          unsigned char cur_order;
  72          
  73          #define xytype(order) (2630+order)       //xy类型 
  74          #define uvtype(order) (2640+order)       //uv类型    
  75          #define xy(order) (2650+order)           //XY记数  
  76          #define counterlen(order) (2660+order*4)   //记数长度  
  77          #define ncorder(order) (2700+order*4)      //程序序号
  78          #define lpdata(order,off) (2780+(order*6+off)*4)  //中心点坐标    起点坐标   末点坐标    
  79          #define lpdata1(order,off) (3020+(order*6+off)*4)  //中心点坐标    起点坐标   末点坐标
  80          
  81          #define cur_x (long)(*((long *)(&(XBYTE[2400]))))     //当前xyuv坐标
  82          #define cur_y (long)(*((long *)(&(XBYTE[2405]))))
  83          #define cur_u (long)(*((long *)(&(XBYTE[2410]))))
  84          #define cur_v (long)(*((long *)(&(XBYTE[2415]))))
  85          #define cur_work_seg (long)(*((long *)(&(XBYTE[2420]))))
  86          #define cur_seg (long)(*((long *)(&(XBYTE[2520]))))  //当前段
  87          #define cur_off (long)(*((long *)(&(XBYTE[2525]))))  //当前段内记数
  88          #define e_order XBYTE[3531]  //末点指针
  89          #define xy_uv   XBYTE[3532]  //xy记数或uv记数
  90          
  91          //回零标志
  92          #define home_flag XBYTE[2533]
  93          //当前电机相序号
  94          #define cur_x_step_order XBYTE[2534]
  95          #define cur_y_step_order XBYTE[2535]
  96          #define cur_u_step_order XBYTE[2536]
  97          #define cur_v_step_order XBYTE[2537]
  98          //异型参数工件高 上导轮到工件上表面高度
  99          #define height           (long)(*((long *)(&(XBYTE[2538]))))
 100          #define up_height        (long)(*((long *)(&(XBYTE[2542]))))
 101          #define up_down_height   (long)(*((long *)(&(XBYTE[2546]))))
 102          #define cur_order1 XBYTE[2550]
 103          #define max_loop_counter (unsigned int)(*((unsigned int*)(&(XBYTE[2425]))))
 104          
 105          //进给速率
 106          #define jinggsl          XBYTE[2300]
 107          //相序类型(5 3 2)
 108          #define xiangxlx         XBYTE[1200]
 109          //正方向电平
 110          #define zhengfxdp        XBYTE[2553]
 111          //脉冲宽度
 112          #define maickd           XBYTE[2554]
 113          //高频状态
 114          //电机状态
 115          #define stop_flag        XBYTE[2450]
 116          #define stop_byte        XBYTE[2452]
C51 COMPILER V7.09   MAINLOOP                                                              10/14/2004 20:25:36 PAGE 3   

 117          //点动轴号
 118          #define diandzh          XBYTE[2557]
 119          //点动方向
 120          #define diandfx          XBYTE[2558]
 121          //短路标志
 122          #define duanlbz          XBYTE[2563]
 123          //短路回退步数
 124          #define duanlhtbs        (long)(*((long *)(&(XBYTE[2568]))))
 125          //同一位置短路回退最大次数
 126          #define tongywzdlhtzdcs  (long)(*((long *)(&(XBYTE[2572]))))
 127          //单段加工标志
 128          #define dandjgbz         XBYTE[2576]
 129          
 130          #define x                (long)(*((long *)(&(XBYTE[2580]))))
 131          #define y                (long)(*((long *)(&(XBYTE[2584]))))
 132          #define bx               (long)(*((long *)(&(XBYTE[2588]))))
 133          #define by               (long)(*((long *)(&(XBYTE[2592]))))
 134          #define ex               (long)(*((long *)(&(XBYTE[2596]))))
 135          #define ey               (long)(*((long *)(&(XBYTE[2600]))))
 136          #define cx               (long)(*((long *)(&(XBYTE[2604]))))
 137          #define l1               (long)(*((long *)(&(XBYTE[2608]))))
 138          #define l2               (long)(*((long *)(&(XBYTE[2612]))))
 139          #define l3               (long)(*((long *)(&(XBYTE[2616]))))
 140          
 141          void cmd_proc(void);
 142          void send_req_order(char order);
 143          void send_a_step(void);
 144          void send_cur_pos(char axis,char order);
 145          init_j8255();
 146          init_p8255();
 147          write_p8255_a();
 148          write_p8255_b();
 149          write_p8255_c();
 150          write_j8255_a();
 151          write_j8255_b();
 152          write_j8255_c();
 153          out_8255_1_a();
 154          out_8255_1_c(char cc);
 155          unsigned char get_x_y_port_byte(char cc);
 156          unsigned char get_u_v_port_byte(char cc);
 157          open_gao_pin();
 158          close_gao_pin();
 159          open_mot();
 160          close_mot();
 161          open_mac();
 162          close_mac();
 163          x_z();
 164          x_f();
 165          y_z();
 166          y_f();
 167          u_z();
 168          u_f();
 169          v_z();
 170          v_f();
 171          rem_cs();
 172          rev_cs();
 173          send_loop_msg();
 174          void timer_isr();
 175          
 176          //D12中断服务
 177          usb_isr() interrupt 0
 178          { 
C51 COMPILER V7.09   MAINLOOP                                                              10/14/2004 20:25:36 PAGE 4   

 179   1        unsigned char c0,c1;
 180   1      
 181   1        if (RAMCS == 0)
 182   1          c0 = 0;
 183   1        else
 184   1          c0 = 1;
 185   1        if (MCU_D12CS == 0)
 186   1          c1 = 0;
 187   1        else
 188   1          c1 = 1;
 189   1        RAMCS = 1;
 190   1        MCU_D12CS = 0;
 191   1        DISABLE;
 192   1        fn_usb_isr();//调用D12中断服务子程序
 193   1        ENABLE;
 194   1        if (c0 == 1)
 195   1          RAMCS = 1;
 196   1        if (c1 == 1)
 197   1          MCU_D12CS = 1;
 198   1        if (c0 == 0)
 199   1          RAMCS = 0;
 200   1        if (c1 == 0)
 201   1          MCU_D12CS = 0;
 202   1      }
 203          
 204          void timer_isr(void) interrupt 2
 205          { 
 206   1        timer_ok = 1;
 207   1      }
 208          
 209          void main(void)
 210          {
 211   1        char bz;
 212   1      
 213   1        while (1){
 214   2          MCU_LED0 = 1;
 215   2          for (i=0;i<100;i++);
 216   2          MCU_LED0 = 0;
 217   2          for (i=0;i<100;i++);
 218   2        }
 219   1          CKCON = 1;
 220   1          MCU_LED0 = 1;
 221   1              GATE = 0;
 222   1            
 223   1              MCU_D12CS = 0x1;
 224   1              RAMCS = 1;
 225   1      
 226   1              cur_jing = 200;
 227   1              anti_work_flag = 0;
 228   1              loop_flag = 0;
 229   1              loop_counter = 0;
 230   1              timer_ok = 0;
 231   1      
 232   1      //init 8253
 233   1          init_j8255();
 234   1          init_p8255();
 235   1          P2 = 0x3e;
 236   1              PCS = 1;
 237   1              JCS = 1;
 238   1              CS8253 = 0;
 239   1              A8253 = 1;
 240   1              WR8253 = 1;
C51 COMPILER V7.09   MAINLOOP                                                              10/14/2004 20:25:36 PAGE 5   

 241   1          delay1();
*** WARNING C206 IN LINE 241 OF MAINLOOP.C: 'delay1': missing function-prototype
 242   1              WR8253 = 0;
 243   1          delay1();
 244   1              WR8253 = 1;
 245   1          delay1();
 246   1      
 247   1          P2 = 2;
 248   1              A8253 = 0;
 249   1              WR8253 = 1;
 250   1          delay1();
 251   1              WR8253 = 0;
 252   1          delay1();
 253   1              WR8253 = 1;
 254   1          delay1();
 255   1      
 256   1          P2 = 0;
 257   1              A8253 = 0;
 258   1              WR8253 = 1;
 259   1          delay1();
 260   1              WR8253 = 0;
 261   1          delay1();
 262   1              WR8253 = 1;
 263   1          delay1();
 264   1      
 265   1              GATE = 1;
 266   1      
 267   1              CS8253 = 1;
 268   1      
 269   1      //      P0 = 0xFF;//初始化I/O口
 270   1      //      P1 = 0xFF;
 271   1      //      P2 = 0xFF;
 272   1      //      P3 = 0xFF;
 273   1      

⌨️ 快捷键说明

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