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

📄 touchpanel.lst

📁 Keil c工程
💻 LST
字号:
C51 COMPILER V7.10   TOUCHPANEL                                                            08/29/2005 13:02:30 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE TOUCHPANEL
OBJECT MODULE PLACED IN .\out\TOUCHPANEL.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE c\TOUCHPANEL.C BROWSE INTVECTOR(0XC000) DEBUG OBJECTEXTEND PR
                    -INT(.\lst\TOUCHPANEL.lst) OBJECT(.\out\TOUCHPANEL.obj)

line level    source

   1          /*
   2          [文件名] Touch.c
   3          [功 能] 8051单片机驱动ADS7846/ADS7843芯片
   4          [简 介] ADS7846/7843芯片 适合用在4线制触摸屏,它通过标准SPI协议和CPU通信,操作简单,精度高,当
   5          触摸屏被按下时(即有触摸事件发生)则ADS7846向CPU发中断请求,CPU接到请求后,应延时一下再响应
   6          其请求,目的是为了消除抖动使得采样更准确。如果一次采样不准确。
   7          [原作者] 鞠春阳
   8          [版 本] v1.1b
   9          [最后修改时间] 2004年3月31日 9:11
  10          [版 权] 哈尔滨众邦龙科技开发有限公司 单片机坐标网:www.mcuzb.com
  11          */
  12          
  13          
  14          #include "..\h\globle.h"
  15          #include "intrins.h"
  16          #include "..\h\touchpanel.h"
  17          
  18          extern void Delay100uS(word);
  19          
  20          
  21          void start() //SPI开始
  22          {
  23   1      DCLK=0;
  24   1      CS=1;//???????
  25   1      DIN=1;
  26   1      DCLK=1;
  27   1      CS=0;
  28   1      }
  29          
  30          WriteCharTo7843(byte num) //SPI写数据
  31          {
  32   1      byte count=0;
  33   1      DCLK=0;
  34   1      for(count=0;count<8;count++)
  35   1      {
  36   2      num<<=1;
  37   2      DIN=CY;
  38   2      DCLK=0; _nop_();_nop_();_nop_(); //上升沿有效
  39   2      DCLK=1; _nop_();_nop_();_nop_();
  40   2      }
  41   1      }
  42          
  43          
  44          ReadFromCharFrom7843() //SPI 读数据
  45          {
  46   1      byte count=0;
  47   1      word Num=0;
  48   1      for(count=0;count<12;count++)
  49   1      {
  50   2      Num<<=1;
  51   2      DCLK=1; _nop_();_nop_();_nop_(); //下降沿有效
  52   2      DCLK=0; _nop_();_nop_();_nop_();
  53   2      if(DOUT) Num++;
  54   2      }
C51 COMPILER V7.10   TOUCHPANEL                                                            08/29/2005 13:02:30 PAGE 2   

  55   1      return(Num);
  56   1      }
  57          
  58          void ZhongDuan() interrupt 0 //外部中断0 用来接受键盘发来的数据
  59          {
  60   1      word X=0,Y=0;
  61   1      //delay(10000); //中断后延时以消除抖动,使得采样数据更准确
  62   1      Delay100uS(10000);
  63   1      start(); //启动SPI
  64   1      // while(BUSY); //如果BUSY信号不好使可以删除不用
  65   1      //delay(2);
  66   1      Delay100uS(100);
  67   1      WriteCharTo7843(0x90); //送控制字 10010000 即用差分方式读X坐标 详细请见有关资料
  68   1      // while(BUSY); //如果BUSY信号不好使可以删除不用
  69   1      //delay(2);
  70   1      Delay100uS(100);
  71   1      DCLK=1; _nop_();_nop_();_nop_();_nop_();
  72   1      DCLK=0; _nop_();_nop_();_nop_();_nop_();
  73   1      X=ReadFromCharFrom7843();
  74   1      WriteCharTo7843(0xD0); //送控制字 11010000 即用差分方式读Y坐标 详细请见有关资料
  75   1      DCLK=1; _nop_();_nop_();_nop_();_nop_();
  76   1      DCLK=0; _nop_();_nop_();_nop_();_nop_();
  77   1      Y=ReadFromCharFrom7843();
  78   1      CS=1;
  79   1      }
  80          
  81          /*
  82          main()
  83          {
  84          TMOD=0x11; // 记数器0 计数器1 都以 16 位 记数
  85          TCON=0x00;
  86          IE=0x83; //1000 0001 EA=1中断允许,
  87          IP=0x01;
  88          while(1);
  89          }
  90          
  91          */


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    193    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -