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

📄 senddata.lst

📁 PS/2接口转矩阵键盘,51单片机编程实现
💻 LST
字号:
C51 COMPILER V7.50   SENDDATA                                                              04/07/2006 12:47:43 PAGE 1   


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

line level    source

   1          #include "senddata.h"
   2          
   3          
   4          void senddata(unsigned char keyvalue)
   5          {
   6   1              unsigned char result = 1, checkcount = 0, sum = 0;
   7   1              bit flag_check=1;
   8   1              //delay(5000000);
   9   1              for(checkcount = 0; checkcount < 8; checkcount++)
  10   1              {
  11   2                      if((keyvalue & result)!=0)
  12   2                      {
  13   3                              flag_check=!flag_check;
  14   3                      }
  15   2                      result = result << 1;
  16   2              }
  17   1              keyclk=1;keyclk1=1;
  18   1              /*
  19   1              if(!keyclk)
  20   1              {
  21   1              return;
  22   1              }
  23   1              */
  24   1              //(1)检测时钟线电平,如果时钟线为低,则延时50μs;
  25   1      step1:
  26   1              while(!keyclk)                  //1) Wait for Clock = high.
  27   1              {
  28   2              }
  29   1      //step2:
  30   1              delay_50us();                           //2) Delay 50 microseconds.
  31   1              keyclk=1;keyclk1=1;             
  32   1              keydata=1;keydata1=1;
  33   1      //step3:
  34   1              if(keyclk==1)                   //3) Clock still = high? No--goto step 1
  35   1              {
  36   2                      delay_20us();
  37   2              }
  38   1              else
  39   1              {
  40   2                      goto step1;
  41   2              }
  42   1              if(keyclk==1&&keydata==1)
  43   1              {
  44   2                      delay_20us();                   // Delay 20 microseconds
  45   2                      keydata=0;keydata1=0;   //1) Set/Reset Data
  46   2                      delay_20us();                   //2) Delay 20 microseconds
  47   2                      keyclk=0;keyclk1=0;             //3) Bring Clock low
  48   2                      delay_40us();                   //4) Delay 40 microseconds
  49   2                      keyclk=1;keyclk1=1;
  50   2                      delay_20us();
  51   2      
  52   2                      result=1;
  53   2                      for(checkcount=0;checkcount<8;checkcount++)
  54   2                      {
  55   3                              if((keyvalue&result)!=0)
C51 COMPILER V7.50   SENDDATA                                                              04/07/2006 12:47:43 PAGE 2   

  56   3                              {
  57   4                                      keydata=1;keydata1=1;
  58   4                              }
  59   3                              else
  60   3                              {
  61   4                                      keydata=0;keydata1=0;
  62   4                              }
  63   3                              delay_20us();
  64   3                              keyclk=0;keyclk1=0;
  65   3                              delay_40us();
  66   3                              result=result<<1;
  67   3                              keyclk=1;keyclk1=1;
  68   3                              delay_20us();
  69   3                      }
  70   2      //              keyclk=1;keyclk1=1;
  71   2      //              delay(4);
  72   2                      //parity bit
  73   2                      keydata=flag_check;
  74   2                      keydata1=flag_check;
  75   2                      delay_20us();
  76   2                      keyclk=0;keyclk1=0;
  77   2                      delay_40us();
  78   2                      keyclk=1;keyclk1=1;
  79   2                      delay_20us();
  80   2                      //stop bit
  81   2                      keydata=1;keydata1=1;
  82   2                      delay_20us();
  83   2                      keyclk=0;keyclk1=0;
  84   2                      delay_40us();
  85   2                      keyclk=1;keyclk1=1;
  86   2                      delay_20us();
  87   2                      keyclk=1;keyclk1=1;
  88   2                      keydata=1;keydata1=1;
  89   2                      delay_20us();
  90   2              }
  91   1      //      return;
  92   1      }


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


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

⌨️ 快捷键说明

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