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

📄 main.lst

📁 7843的妙用。有7843的初始化、等等。
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  11/21/2008 14:35:03 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "at89x52.h"
   2          #include "common.h"
   3          #include "intrins.h"
   4          
   5          //uchar X=0,Y=0;
   6          
   7          uint X=0,Y=0;
   8          uint X_LCD=0;Y_LCD=0;
   9          unsigned long int TchScr_Xmin=0,TchScr_Ymin=0,TchScr_Xmax=0xfff,TchScr_Ymax=0xfff;
  10          unsigned long int LCDWIDTH=320,LCDHEIGHT=240;//width=0x140 height=0xf0
  11          
  12          uint keytable[][4]={
  13          {20,20,60,60},          //red
  14          {140,100,180,140},              //green
  15          };
  16          
  17          void initial(void)
  18          {
  19   1      //      P1=P2=P3=P0=0xff;
  20   1              SCON=0x50;                      // UART_mode=1,REN=1
  21   1              RCAP2H=0xFF; 
  22   1              RCAP2L=0xDC;            // 9600,
  23   1              T2MOD=0;  
  24   1              T2CON=0x34;        // Set T2 to baud rate register  
  25   1              EX0=1;   
  26   1              EA=1;
  27   1      
  28   1      }
  29          
  30          void delay(unsigned char i)
  31          {
  32   1              while(i--);
  33   1      }
  34          
  35          
  36          void delay_1ms(uint x) 
  37          { 
  38   1              uint j; 
  39   1              uchar i; 
  40   1              for(j=0;j<x;j++) 
  41   1                      for(i=0;i<120;i++)
  42   1                              ; 
  43   1      }
  44          
  45          
  46          void send232 (uchar ch)
  47          {       
  48   1          SBUF=ch;
  49   1          while(TI==0);
  50   1          TI=0;
  51   1      }
  52          
  53          
  54          void start7843(void)
  55          {
C51 COMPILER V7.50   MAIN                                                                  11/21/2008 14:35:03 PAGE 2   

  56   1              DCLK=0;
  57   1              CS=1;
  58   1              DIN=1;
  59   1              DCLK=1;
  60   1              CS=0;
  61   1      }
  62          /*
  63          void stop7843(void)
  64          {
  65                  DCLK=0;
  66                  DIN=0;
  67                  DOUT=1;
  68                  CS=1;
  69          }
  70          */
  71          void write7843 (uchar num)
  72          {
  73   1              uchar count;
  74   1              DCLK=0;
  75   1              for(count=0;count<8;count++)
  76   1              {
  77   2                      num<<=1;
  78   2                      DIN=CY;
  79   2                      DCLK=0;
  80   2                      _nop_();_nop_();_nop_();
  81   2                      DCLK=1;
  82   2                      _nop_();_nop_();_nop_();
  83   2              }
  84   1      }
  85          
  86          uint read7843 (void)
  87          {
  88   1              uchar count;
  89   1              uint codata;
  90   1              codata=0;
  91   1              DCLK=0;
  92   1              for (count=0;count<12;count++)
  93   1              {
  94   2                      codata<<=1;
  95   2                      DCLK=1;
  96   2                      _nop_();_nop_();_nop_();
  97   2                      DCLK=0;
  98   2                      _nop_();_nop_();_nop_();
  99   2                      if(DOUT)
 100   2                              codata++;
 101   2              }
 102   1              return(codata);
 103   1      }
 104          
 105          
 106          void IT0_int(void) interrupt 0   
 107          {
 108   1              start7843();
 109   1              delay(2);
 110   1              write7843(0x94);
 111   1              DCLK=1;
 112   1              _nop_();_nop_();_nop_();_nop_();
 113   1              DCLK=0;
 114   1              _nop_();_nop_();_nop_();_nop_();
 115   1              X=read7843();
 116   1              write7843(0xD4);
 117   1              DCLK=1;
C51 COMPILER V7.50   MAIN                                                                  11/21/2008 14:35:03 PAGE 3   

 118   1              _nop_();_nop_();_nop_();_nop_();
 119   1              DCLK=0; 
 120   1              _nop_();_nop_();_nop_();_nop_();
 121   1              Y=read7843();
 122   1              CS=1;
 123   1      }
 124          
 125          
 126          void switchXY (void)
 127          {
 128   1              unsigned long int s;
 129   1              s=((unsigned long int)X-TchScr_Xmin)*LCDWIDTH;
 130   1              X_LCD=(uint)(s/(TchScr_Xmax-TchScr_Xmin));
 131   1              s=((unsigned long int)Y-TchScr_Ymin)*LCDHEIGHT;
 132   1              Y_LCD=(uint)(s/(TchScr_Ymax-TchScr_Ymin));
 133   1      }
 134          void checkkey(void)
 135          {
 136   1              if((X_LCD>keytable[0][0])&&(X_LCD<keytable[0][2]))
 137   1                      if((Y_LCD>keytable[0][1])&&(Y_LCD<keytable[0][3]))
 138   1                      {
 139   2                              red=0;
 140   2                              delay_1ms(1000);
 141   2                              red=1;
 142   2                      }
 143   1              if((X_LCD>keytable[1][0])&&(X_LCD<keytable[1][2]))
 144   1                      if((Y_LCD>keytable[1][1])&&(Y_LCD<keytable[1][3]))
 145   1                      {
 146   2                              green=0;
 147   2                              delay_1ms(1000);
 148   2                              green=1;
 149   2                      }
 150   1      }       
 151          void main(void)
 152          {
 153   1              uchar X_L,X_H,Y_L,Y_H;
 154   1              initial();
 155   1              while(1)
 156   1              {
 157   2                      if((X!=0)&&(Y!=0))
 158   2                      {
 159   3                              EX0=0;
 160   3                              switchXY();
 161   3                              checkkey();
 162   3                              X_L=(unsigned char)(X_LCD);
 163   3                              X_H=(X_LCD>>8); 
 164   3                              Y_L=(unsigned char)(Y_LCD);
 165   3                              Y_H=(Y_LCD>>8);
 166   3                              send232(X_H);send232(X_L);
 167   3                              send232(Y_H);send232(Y_L);              
 168   3                              X=Y=0;
 169   3      //                      delay_1ms(1000);
 170   3                              EX0=1;
 171   3                      }
 172   2              }
 173   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    519    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
C51 COMPILER V7.50   MAIN                                                                  11/21/2008 14:35:03 PAGE 4   

   PDATA SIZE       =   ----    ----
   DATA SIZE        =     48       4
   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 + -