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

📄 tp.lst

📁 8051带32Mflash的源代码
💻 LST
字号:
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 1   


C51 COMPILER V7.01, COMPILATION OF MODULE TP
OBJECT MODULE PLACED IN .\TP.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\source\TP.C BROWSE DEBUG OBJECTEXTEND LISTINCLUDE PRINT(.\TP.lst) OBJECT
                    -(.\TP.obj)

stmt level    source

   1          #include"TP_H.H"
   1      =1  #include <reg52.h>
   1      =2  /*--------------------------------------------------------------------------
   2      =2  REG52.H
   3      =2  
   4      =2  Header file for generic 80C52 and 80C32 microcontroller.
   5      =2  Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
   6      =2  All rights reserved.
   7      =2  --------------------------------------------------------------------------*/
   8      =2  
   9      =2  /*  BYTE Registers  */
  10      =2  sfr P0    = 0x80;
  11      =2  sfr P1    = 0x90;
  12      =2  sfr P2    = 0xA0;
  13      =2  sfr P3    = 0xB0;
  14      =2  sfr PSW   = 0xD0;
  15      =2  sfr ACC   = 0xE0;
  16      =2  sfr B     = 0xF0;
  17      =2  sfr SP    = 0x81;
  18      =2  sfr DPL   = 0x82;
  19      =2  sfr DPH   = 0x83;
  20      =2  sfr PCON  = 0x87;
  21      =2  sfr TCON  = 0x88;
  22      =2  sfr TMOD  = 0x89;
  23      =2  sfr TL0   = 0x8A;
  24      =2  sfr TL1   = 0x8B;
  25      =2  sfr TH0   = 0x8C;
  26      =2  sfr TH1   = 0x8D;
  27      =2  sfr IE    = 0xA8;
  28      =2  sfr IP    = 0xB8;
  29      =2  sfr SCON  = 0x98;
  30      =2  sfr SBUF  = 0x99;
  31      =2  
  32      =2  /*  8052 Extensions  */
  33      =2  sfr T2CON  = 0xC8;
  34      =2  sfr RCAP2L = 0xCA;
  35      =2  sfr RCAP2H = 0xCB;
  36      =2  sfr TL2    = 0xCC;
  37      =2  sfr TH2    = 0xCD;
  38      =2  
  39      =2  
  40      =2  /*  BIT Registers  */
  41      =2  /*  PSW  */
  42      =2  sbit CY    = PSW^7;
  43      =2  sbit AC    = PSW^6;
  44      =2  sbit F0    = PSW^5;
  45      =2  sbit RS1   = PSW^4;
  46      =2  sbit RS0   = PSW^3;
  47      =2  sbit OV    = PSW^2;
  48      =2  sbit P     = PSW^0; //8052 only
  49      =2  
  50      =2  /*  TCON  */
  51      =2  sbit TF1   = TCON^7;
  52      =2  sbit TR1   = TCON^6;
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 2   

  53      =2  sbit TF0   = TCON^5;
  54      =2  sbit TR0   = TCON^4;
  55      =2  sbit IE1   = TCON^3;
  56      =2  sbit IT1   = TCON^2;
  57      =2  sbit IE0   = TCON^1;
  58      =2  sbit IT0   = TCON^0;
  59      =2  
  60      =2  /*  IE  */
  61      =2  sbit EA    = IE^7;
  62      =2  sbit ET2   = IE^5; //8052 only
  63      =2  sbit ES    = IE^4;
  64      =2  sbit ET1   = IE^3;
  65      =2  sbit EX1   = IE^2;
  66      =2  sbit ET0   = IE^1;
  67      =2  sbit EX0   = IE^0;
  68      =2  
  69      =2  /*  IP  */
  70      =2  sbit PT2   = IP^5;
  71      =2  sbit PS    = IP^4;
  72      =2  sbit PT1   = IP^3;
  73      =2  sbit PX1   = IP^2;
  74      =2  sbit PT0   = IP^1;
  75      =2  sbit PX0   = IP^0;
  76      =2  
  77      =2  /*  P3  */
  78      =2  sbit RD    = P3^7;
  79      =2  sbit WR    = P3^6;
  80      =2  sbit T1    = P3^5;
  81      =2  sbit T0    = P3^4;
  82      =2  sbit INT1  = P3^3;
  83      =2  sbit INT0  = P3^2;
  84      =2  sbit TXD   = P3^1;
  85      =2  sbit RXD   = P3^0;
  86      =2  
  87      =2  /*  SCON  */
  88      =2  sbit SM0   = SCON^7;
  89      =2  sbit SM1   = SCON^6;
  90      =2  sbit SM2   = SCON^5;
  91      =2  sbit REN   = SCON^4;
  92      =2  sbit TB8   = SCON^3;
  93      =2  sbit RB8   = SCON^2;
  94      =2  sbit TI    = SCON^1;
  95      =2  sbit RI    = SCON^0;
  96      =2  
  97      =2  /*  P1  */
  98      =2  sbit T2EX  = P1^1; // 8052 only
  99      =2  sbit T2    = P1^0; // 8052 only
 100      =2               
 101      =2  /*  T2CON  */
 102      =2  sbit TF2    = T2CON^7;
 103      =2  sbit EXF2   = T2CON^6;
 104      =2  sbit RCLK   = T2CON^5;
 105      =2  sbit TCLK   = T2CON^4;
 106      =2  sbit EXEN2  = T2CON^3;
 107      =2  sbit TR2    = T2CON^2;
 108      =2  sbit C_T2   = T2CON^1;
 109      =2  sbit CP_RL2 = T2CON^0;
   2      =1  
   3      =1  #define uint unsigned int
   4      =1  #define ulong unsigned long int
   5      =1  #define uchar unsigned char
   6      =1  
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 3   

   7      =1  sfr P4 = 0xe8;
   8      =1  sbit P40=P4^0;
   9      =1  sbit P41=P4^1;
  10      =1  sbit P42=P4^2;
  11      =1  
  12      =1  #define TP_MODE 0x80
  13      =1  
  14      =1  sbit    TP_DCLK = P1^0;
  15      =1  sbit    TP_DIN = P1^1;
  16      =1  sbit    TP_BUSY = P1^5;
  17      =1  sbit    TP_DOUT = P1^6;
  18      =1  sbit    TP_INT = P3^2;
  19      =1  
  20      =1  unsigned int TP_X,TP_Y;
  21      =1  bit  TP_FLAG;
  22      =1  
  23      =1  /*----------------------------------------------------------------
  24      =1                  TP_SUB program  
  25      =1  -----------------------------------------------------------------*/
  26      =1  uint ReadFromCharFrom7843(void);
  27      =1  void WriteCharTo7843(unsigned char num);
  28      =1  
  29      =1  void tp_cs(bit flag);
  30      =1  unsigned int tp_read(unsigned char a);
  31      =1  uint *TP_XY_READ(void);
  32      =1  
  33      =1  /*----------------------------------------------------------------
  34      =1                  DELAY program   
  35      =1  -----------------------------------------------------------------*/
  36      =1  extern void delay5us(uint utimes);    //5uS*utimes  IN 12MHZ
  37      =1  extern void delay10ms(uint mtimes); //10MS*mtimes  IN 12MHZ
   2          
   3          
   4          /*------------------------------------------------------------------
   5                          TP READ USE INT SUB 
   6          
   7          ------------------------------------------------------------------*/
   8          
   9          void TP_INIT(void)
  10          {
  11   1              EA=0;
  12   1              EX0=1;
  13   1      //      IT0=1;
  14   1      //      IE0=0;
  15   1      //      IP=0x00;
  16   1              EA=1;
  17   1              TP_FLAG=1;
  18   1      }
  19          
  20          
  21          void tp_cs(bit flag)
  22          {       if(flag==0)
  23   1              {       P40=0;
  24   2                      P41=1;
  25   2                      P42=0;
  26   2              }
  27   1              else
  28   1              {       P40=1;
  29   2                      P41=1;
  30   2                      P42=1;          
  31   2              }
  32   1      }
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 4   

  33          
  34          void start(void) //SPI开始
  35          {       
  36   1              TP_DCLK=0;
  37   1              TP_DIN=0;
  38   1              tp_cs(0);
  39   1              delay5us(1);
  40   1              TP_DOUT=1;
  41   1      }
  42          
  43          void WriteCharTo7843(unsigned char num) //SPI写数据
  44          {
  45   1              unsigned char count;
  46   1              for(count=0;count<8;count++)
  47   1              {   if(num&0x80)
  48   2                      {       TP_DIN=1;
  49   3                      }
  50   2                      else
  51   2                      {       TP_DIN=0;
  52   3                      }
  53   2                      TP_DCLK=1;  //xia升沿有效
  54   2      //              delay5us(1);
  55   2                      TP_DCLK=0; 
  56   2      //              delay5us(1);
  57   2                      num=num<<1;
  58   2              }
  59   1              TP_DIN=0;
  60   1              TP_DCLK=1;
  61   1              TP_DCLK=0; 
  62   1      }
  63          
  64          uint ReadFromCharFrom7843(void) //SPI 读数据
  65          {
  66   1              unsigned char count=0;
  67   1              unsigned int Num=0;
  68   1              for(count=0;count<12;count++)
  69   1              {
  70   2                      Num<<=1;
  71   2                      
  72   2                      
  73   2              //      delay5us(1);
  74   2                      if(TP_DOUT) Num++;
  75   2      //              delay5us(1);
  76   2                      TP_DCLK=1;
  77   2                  TP_DCLK=0;
  78   2      //              delay5us(1);
  79   2              }
  80   1              for(count=0;count<3;count++)
  81   1              {       TP_DCLK=1;
  82   2                      TP_DCLK=0;
  83   2              }
  84   1              return(Num);
  85   1      }
  86          
  87          void TP_ZHONGDUAN() interrupt 0 using 3 //TP_INT SUB PROGRAM  INTERFACE:P3.2 EX0 REGISTER:03
  88          {       
  89   1              
  90   1              
  91   1              EA=0;
  92   1      /*
  93   1              TP_X=0;
  94   1              TP_Y=0;
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 5   

  95   1          delay5us(100);   //中断后延时以消除抖动,使得采样数据更准确
  96   1      
  97   1              start(); //启动SPI
  98   1              WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
  99   1              TP_BUSY=1;
 100   1              while(TP_BUSY);//wait for TP not busy.
 101   1              TP_Y=ReadFromCharFrom7843();  //读X轴坐标
 102   1              TP_BUSY=1;
 103   1              while(TP_BUSY);
 104   1              tp_cs(1);
 105   1      
 106   1              start(); //启动SPI
 107   1              WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
 108   1              TP_BUSY=1;
 109   1              while(TP_BUSY);//wait for TP not busy.
 110   1              TP_X=ReadFromCharFrom7843();  //读Y轴坐标
 111   1              TP_BUSY=1;
 112   1              while(TP_BUSY);
 113   1              tp_cs(1);
 114   1      */
 115   1              TP_FLAG=1;
 116   1              EA=1;
 117   1      }
 118          
 119          
 120          uint *TP_XY_READ(void)                
 121          {       uint  XY_VALUE[2]={0,0};        
 122   1              if(TP_FLAG);//等待触摸中断
 123   1              {       EA=0;
 124   2                      TP_FLAG=0;
 125   2                      TP_X=0;
 126   2                      TP_Y=0;
 127   2                  delay5us(100);   //中断后延时以消除抖动,使得采样数据更准确
 128   2              
 129   2                      start(); //启动SPI
 130   2                      WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
 131   2      //              TP_BUSY=1;
 132   2      //              while(TP_BUSY);//wait for TP not busy.
 133   2                      TP_Y=ReadFromCharFrom7843();  //读y轴坐标
 134   2      //              TP_BUSY=1;
 135   2      //              while(TP_BUSY);
 136   2                      tp_cs(1);
 137   2              
 138   2                      start(); //启动SPI
 139   2                      WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
 140   2      //              TP_BUSY=1;
 141   2      //              while(TP_BUSY);//wait for TP not busy.
 142   2                      TP_X=ReadFromCharFrom7843();  //读x轴坐标
 143   2      //              TP_BUSY=1;
 144   2      //              while(TP_BUSY);
 145   2                      tp_cs(1);
 146   2                      XY_VALUE[0]=(TP_X-300)/14;
 147   2      
 148   2                      XY_VALUE[1]=(TP_Y-300)/10;
 149   2      
 150   2                      EA=1;
 151   2              }
 152   1              
 153   1              return(XY_VALUE);
 154   1      }
 155          
 156          
C51 COMPILER V7.01  TP                                                                     11/16/2007 15:52:12 PAGE 6   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    250    ----
   CONSTANT SIZE    =      4    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       4
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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