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

📄 1503cs.lst

📁 完整的TCS控制系统原程序.包含系统检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 1503CS
OBJECT MODULE PLACED IN 1503cs.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 1503cs.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND CODE LISTINCLUDE SYMBOLS PR
                    -EPRINT

line level    source

   1          /*********************************************************************/
   2          /*公司名称:南通现代电力                                           */                 
   3          /*模 块 名:1305cs.c                       CPU型号 :77E58          */  
   4          /*创 建 人:李晓军                         日期:2005-08-28       */        
   5          /*修 改 人:                               日期:2005-11-26       */     
   6          /*功能描述:                                                      */ 
   7          /*其他说明:                                                      */
   8          /*版    本:v1.03                                                  */   
   9          /*************************************************************************/
  10          #include "w77e58.h"
   1      =1  //W77E58头文件;整理:聂小猛。该资料来自“51单片机世界”http://go.163.com/~dz2000,欢迎访问。
   2      =1  /*--BYTE Registers-------------------------------------------------*/
   3      =1  sfr P0    = 0x80;
   4      =1  sfr P1    = 0x90;
   5      =1  sfr P2    = 0xA0;
   6      =1  sfr P3    = 0xB0;
   7      =1  #define p0 P0
   8      =1  #define p1 P1
   9      =1  #define p2 P2
  10      =1  #define p3 P3
  11      =1  
  12      =1  
  13      =1  sfr PSW   = 0xD0;
  14      =1  sfr ACC   = 0xE0;
  15      =1  sfr B     = 0xF0;
  16      =1  sfr SP    = 0x81;
  17      =1  sfr DPL   = 0x82;
  18      =1  sfr DPH   = 0x83;
  19      =1  sfr PCON  = 0x87;//PCON.7(SMOD)拨特率加倍,PCON.1(PD)掉电方式,PCON.0(IDL)冻结方式
  20      =1                                  //PCON.6(SMOD0)帧错检测允许,PCON.3(GF1)PCON.2(GF0)
  21      =1  sfr TCON  = 0x88;//定时控制寄存器
  22      =1  sfr TMOD  = 0x89;//"gate,c/t,m1,m0"x2定时器方式GATE=1时只有intx=1时才可以开放定时器x;
  23      =1                        //c/t =1时计书数方式,=0时定时方式。m1m0=00时13位计数,=01时16位=10时自装入8位,
  24      =1                        //11时定时器0分两个,定时器1停止。
  25      =1  sfr TL0   = 0x8A;
  26      =1  sfr TL1   = 0x8B;
  27      =1  sfr TH0   = 0x8C;
  28      =1  sfr TH1   = 0x8D;
  29      =1  sfr IE    = 0xA8;
  30      =1  sfr IP    = 0xB8;//中断优先级
  31      =1  sfr SCON  = 0x98;//串口控制与状态
  32      =1  sfr SBUF  = 0x99;
  33      =1  
  34      =1  /*--W77E58 Extensions---------------------------------------------*/
  35      =1  sfr T2CON = 0xC8;
  36      =1  sfr T2MOD = 0xc9;//HC5,HC4,HC3,HC2,T2CR,-,T2OE,DCEN
  37      =1                      //hc5-hc2 =1时外中断5-2标志硬件自动清除。
  38      =1                      //t2cr=1 捕获完成时自动复位
  39      =1                      //t2oe=1 定时器2输出允许
  40      =1                      //dcen=1 减计数允许,结合外部输入t2ex使用,16位自装入模式
  41      =1  sfr RCAP2L= 0xCA;//重装的预置数,捕获的输出
  42      =1  sfr RCAP2H= 0xCB;
  43      =1  sfr TL2   = 0xCC;
  44      =1  sfr TH2   = 0xCD;
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 2   

  45      =1  
  46      =1  sfr DPL1  = 0x84;
  47      =1  sfr DPH1  = 0x85;
  48      =1  sfr DPS   = 0x86;
  49      =1  
  50      =1  sfr CKCON = 0x8e;//wd1,wd0,t2m,t1m,t0m,md2,md1,md0
  51      =1                                  //wd1wd0:看门狗计数00=2^17,01=2^20,10=2^23,11=2^26
  52      =1                                  //t2m,t1m,t0m等于1时时钟4分频
  53      =1                                  //md2,md1,md0 MOVX执行机器周期000=2,001=3。。。111=9
  54      =1  sfr EXIF  = 0x91;//ie5,ie4,ie3,ie2,XT/RG,RGMD,RGSL,-
  55      =1                                  //ie5,ie3=1外中断下跳变中断标志
  56      =1                                  //ie4,ie3=2外中断上跳变中断标志
  57      =1  sfr P4    = 0xa5;//低四位有效
  58      =1  sfr SADDR = 0xa9;//从机串口0地址
  59      =1  sfr SADDR1= 0xaa;//从机串口1地址
  60      =1  sfr SADEN = 0xb9;//串口0地址屏蔽,等于0时所有地址都会引起中断
  61      =1  sfr SADEN1= 0xba;//串口0地址屏蔽,等于0时所有地址都会引起中断
  62      =1  sfr SCON1 = 0xc0;
  63      =1  sfr SBUF1 = 0xc1;
  64      =1  sfr ROMMAP= 0xc2;//ROMMAP.7为等待信号使能,用movx指令时,wait脚为p4.0
  65      =1  sfr PMR   = 0xc4;//CD1,CD0,SWB,-,XTOFF,ALE-OFF,-DME0
  66      =1                  //cd0cd1=0时钟不变,=1-1/4,=2-1/64,=3=1/1024
  67      =1                  //swb=1强制4分频,外中断或串口中断唤醒
  68      =1                  //aleoff =1时ale信号终止,外部内存访问时自动唤醒
  69      =1                  //dme0 =1时内部1kram使能
  70      =1  sfr STATUS= 0xc5;//-,HIP,LIP,XTUP,SPTA1,SPRA1,SPTA0,SPRA0
  71      =1                  //hip=1正在处理高优先级中断
  72      =1                  //lip=1正在处理低优先级中断
  73      =1                  //spta1串口0正在发送数据
  74      =1                  //spra1串口0正在接收数据
  75      =1                  //spta0串口0正在发送数据
  76      =1                  //spra0串口0正在接收数据
  77      =1  sfr TA    = 0xc7;//保护位
  78      =1  sfr WDCON = 0xd8;//SMOD_1,POR,-,-,WDIF,WTRF,EWT,RWT
  79      =1                        //smod1 加倍串口1的拨特率,pro电源复位标志
  80      =1                        //por 电源复位标志
  81      =1                  //wdif看门狗定时中断标志,软清
  82      =1                  //wtrf看门狗定时器复位标志,看门狗引起复位后,该位置1
  83      =1                  //ewt 允许看门狗定时器自动复位
  84      =1                  //rwt复位看门狗定时器,如果看门狗溢出还没有被复位计数器,将会引起中断,再过512周期将复位
  85      =1  sfr EIE   = 0xe8;//-,-,-,EWDI,EX5,EX4,EX3,EX2
  86      =1                                  //ewdi=1,允许看门狗中断?
  87      =1                                  //ex5-ex2;外部中断允许
  88      =1  sfr EIP   = 0xf8;//-,-,-,pwdi,px5,px4,px3,px2
  89      =1                                  //pwdi=1 看门狗中断优先
  90      =1                                  //px5-px2=1 外部中断优先
  91      =1  
  92      =1  /*--BIT Registers-------------------------------------------------*/
  93      =1  /*  PSW         */
  94      =1  sbit CY    = 0xD7;
  95      =1  sbit AC    = 0xD6;
  96      =1  sbit F0    = 0xD5;
  97      =1  sbit RS1   = 0xD4;
  98      =1  sbit RS0   = 0xD3;
  99      =1  sbit OV    = 0xD2;
 100      =1  sbit P     = 0xD0;
 101      =1  
 102      =1  /*  TCON        */
 103      =1  sbit TF1   = 0x8F;//定时器1溢出标志,自动清零
 104      =1  sbit TR1   = 0x8E;//timer1运行控制位
 105      =1  sbit TF0   = 0x8D;//定时器0溢出标志,自动清零
 106      =1  sbit TR0   = 0x8C;//timer0运行控制位
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 3   

 107      =1  sbit IE1   = 0x8B;//外中断1跳变中断请求标志,自动清零
 108      =1  sbit IT1   = 0x8A;//中断1跳变检测使能
 109      =1  sbit IE0   = 0x89;//外中断0跳变中断请求标志,自动清零
 110      =1  sbit IT0   = 0x88;//中断0跳变检测使能
 111      =1  
 112      =1  /*  IE          */
 113      =1  sbit EA    = 0xAF;//
 114      =1  sbit ES    = 0xAC;
 115      =1  sbit ET1   = 0xAB;
 116      =1  sbit EX1   = 0xAA;
 117      =1  sbit ET0   = 0xA9;
 118      =1  sbit EX0   = 0xA8;
 119      =1  
 120      =1  /*  IP          */
 121      =1  sbit PS    = 0xBC;//串口0中断优先设定
 122      =1  sbit PT1   = 0xBB;//定时器1中断优先
 123      =1  sbit PX1   = 0xBA;//外中断1
 124      =1  sbit PT0   = 0xB9;//定时器0中断优先
 125      =1  sbit PX0   = 0xB8;//外中断0
 126      =1  
 127      =1  /*  P3          */
 128      =1  sbit RD   = 0xB7;
 129      =1  sbit WR   = 0xB6;
 130      =1  sbit T1   = 0xB5;
 131      =1  sbit T0   = 0xB4;
 132      =1  sbit INT1 = 0xB3;
 133      =1  sbit INT0 = 0xB2;
 134      =1  sbit TXD  = 0xB1;
 135      =1  sbit RXD  = 0xB0;
 136      =1  
 137      =1  /*  SCON        */
 138      =1  sbit SM0   = 0x9F;//SM0/FE  串口0方式0选择或帧错标志,人工清零
 139      =1  sbit SM1   = 0x9E;//串口1工作方式选择0-4/12tclk同步,1-10位可设bps异步,2-64/32tclk异步,3-11位可变bps异步
 140      =1  sbit SM2   = 0x9D;//允许方式2和3的多机通讯控制位。方式2、3中=1时接收到的第9位为0时不启动接收中断ri标志
 141      =1                                  //方式1中,=1时只有收到有效停止时才启动ri,方式0中=1将拨特率提高3倍。
 142      =1  sbit REN   = 0x9C;//允许接收标志
 143      =1  sbit TB8   = 0x9B;//方式23中要发送的第9位。
 144      =1  sbit RB8   = 0x9A;//方式23中接收到的第9位。
 145      =1  sbit TI    = 0x99;//发送中断标志
 146      =1  sbit RI    = 0x98;//接收中断标志
 147      =1  
 148      =1  /*--W77E58 Extensions--------------------------------------------*/
 149      =1  /* PSW          */
 150      =1  sbit F1    = 0xd1;
 151      =1  
 152      =1  /*  IE          */
 153      =1  sbit ET2   = 0xAD;//定时器2允许
 154      =1  sbit ES1   = 0xae;//串口1优先
 155      =1  
 156      =1  /*  IP          */
 157      =1  sbit PT2   = 0xBD;//定时器2优先
 158      =1  sbit PS1   = 0xbe;//串口1优先
 159      =1  
 160      =1  /*  P1          */
 161      =1  sbit T2    = 0x90;//计数器2输入端口
 162      =1  sbit T2EX  = 0x91;//计数器捕获触发
 163      =1  sbit RXD1  = 0x92;//串口1入
 164      =1  sbit TXD1  = 0x93;//串口2出
 165      =1  sbit INT2  = 0x94;//外中断2,上跳变触发
 166      =1  sbit INT3  = 0x95;//外中断3,下跳变触发
 167      =1  sbit INT4  = 0x96;//外中断4,上跳变触发
 168      =1  sbit INT5  = 0x97;//外中断5,下跳变触发
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 4   

 169      =1  
 170      =1               
 171      =1  /*  T2CON       */
 172      =1  sbit TF2   = 0xCF;//定时器2溢出标志,软清除
 173      =1  sbit EXF2  = 0xCE;//定时器2外部标志,当exen2=1且t2ex引脚负跳变引起捕获或重载时置位,软清。
 174      =1  sbit RCLK  = 0xCD;//接收时钟标志,=1时串口0用定时器2溢出做时钟。
 175      =1  sbit TCLK  = 0xCC;//发送时钟标志,=1时串口0用定时器2溢出做时钟。
 176      =1  sbit EXEN2 = 0xCB;//定时器2外部允许标志,=1时若未用作拨特率发生器,t2ex脚的负跳变引起捕获
 177      =1  sbit TR2   = 0xCA;//定时器2运行控制位
 178      =1  sbit C_T2  = 0xC9;//计数/定时选择,=1时计数
 179      =1  sbit CP_RL= 0xC8;//捕获/重载标志,=1时,外部允许时,vt2ex负跳变发生捕获
 180      =1                   //=0时 溢出或外部允许时,vt2ex负跳变发生重载
 181      =1  
 182      =1  /*  SCON1       */  //注释参考SCON
 183      =1  sbit SM0_1 = 0xC7;
 184      =1  sbit SM1_1 = 0xC6;
 185      =1  sbit SM2_1 = 0xC5;
 186      =1  sbit REN_1 = 0xC4;
 187      =1  sbit TB8_1 = 0xC3;
 188      =1  sbit RB8_1 = 0xC2;
 189      =1  sbit TI_1  = 0xC1;
 190      =1  sbit RI_1  = 0xC0;
 191      =1  
 192      =1  /* WDCON        */
 193      =1  sbit SMOD_1= 0xDF; //加倍串口1的拨特率,pro电源复位标志
 194      =1  sbit POR   = 0xDE; //电源复位标志
 195      =1  sbit WDIF  = 0XDB; //看门狗定时中断标志,软清
 196      =1  sbit WTRF  = 0xDA; //看门狗定时器复位标志,看门狗引起复位后,该位置1
 197      =1  sbit EWT   = 0xD9; // 允许看门狗定时器自动复位
 198      =1  sbit RWT   = 0xD8; //复位看门狗定时器,如果看门狗溢出还没有被复位计数器,将会引起中断,再过512周期将复位
 199      =1  
 200      =1  
 201      =1  /* EIE          */
 202      =1  sbit EWDI  = 0xec; //允许看门狗中断
 203      =1  sbit EX5   = 0xeb; //ex5-ex2;外部中断允许
 204      =1  sbit EX4   = 0xea; 
 205      =1  sbit EX3   = 0xe9; 
 206      =1  sbit EX2   = 0xe8; 
 207      =1  
 208      =1  /* EIP          */
 209      =1  sbit PWDI  = 0xfc; //pwdi=1 看门狗中断优先
 210      =1  sbit PX5   = 0xfb;      //px5-px2=1 外部中断优先
 211      =1  sbit PX4   = 0xfa; 
 212      =1  sbit PX3   = 0xf9; 
 213      =1  sbit PX2   = 0xf8; 
  11          #include <stdio.h>
   1      =1  /*--------------------------------------------------------------------------
   2      =1  STDIO.H
   3      =1  
   4      =1  Prototypes for standard I/O functions.
   5      =1  Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
   6      =1  All rights reserved.
   7      =1  --------------------------------------------------------------------------*/
   8      =1  
   9      =1  #ifndef __STDIO_H__
  10      =1  #define __STDIO_H__
  11      =1  
  12      =1  #ifndef EOF
  13      =1   #define EOF -1
  14      =1  #endif
  15      =1  
  16      =1  #ifndef NULL
C51 COMPILER V7.50   1503CS                                                                12/31/2005 10:44:49 PAGE 5   

  17      =1   #define NULL ((void *) 0)
  18      =1  #endif
  19      =1  
  20      =1  #ifndef _SIZE_T
  21      =1   #define _SIZE_T
  22      =1   typedef unsigned int size_t;
  23      =1  #endif
  24      =1  
  25      =1  #pragma SAVE
  26      =1  #pragma REGPARMS
  27      =1  extern char _getkey (void);
  28      =1  extern char getchar (void);
  29      =1  extern char ungetchar (char);
  30      =1  extern char putchar (char);
  31      =1  extern int printf   (const char *, ...);
  32      =1  extern int sprintf  (char *, const char *, ...);
  33      =1  extern int vprintf  (const char *, char *);
  34      =1  extern int vsprintf (char *, const char *, char *);
  35      =1  extern char *gets (char *, int n);
  36      =1  extern int scanf (const char *, ...);
  37      =1  extern int sscanf (char *, const char *, ...);

⌨️ 快捷键说明

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