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

📄 ch452_4w_drive.lst

📁 CH452 PDF 中文资料 在kei环境下开发
💻 LST
字号:
C51 COMPILER V7.06   CH452_4W_DRIVE                                                        01/17/2009 08:43:37 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CH452_4W_DRIVE
OBJECT MODULE PLACED IN CH452_4W_DRIVE.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CH452_4W_DRIVE.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include        "CH452_PIN_DEFINE.H"    // 修改该文件以适应硬件环境/单片机型号等
   2          #include        "CH452_COM_DEFIND.H"    // CH452常量定义  
   3          
   4          //延时函数
   5          void Delay(int Times)
   6          {
   7   1        int i=0;
   8   1        while(i<Times){i++;}
   9   1      }
  10           //输出操作命令子程序
  11           //定义一无符号整型变量存储12字节的命令字。
  12          void CH452_Write(unsigned short cmd)
  13          {
  14   1              unsigned char i;
  15   1              DISABLE_KEY_INTERRUPT;             //禁止键盘中断,防止传输过程中被CH452中断而进入中断服务程序中再次传输
  16   1              CH452_LOAD_CLR;               //命令开始,LOAD=0
  17   1              CH452_LOAD_D_OUT;                  // 设置LOAD为输出方向
  18   1              CH452_DOUT_D_IN;                  // 设置DOUT为输入方向
  19   1              CH452_DIN_D_OUT;             // 设置DIN为输出方向
  20   1              CH452_DCLK_D_OUT;               // 设置DCLK为输出方向
  21   1      /**************************************写命令字*********************************/
  22   1              for(i=0;i!=12;i++)         //送入12位数据,低位在前
  23   1              {
  24   2                      if (cmd&1) {CH452_DIN_SET;}    //输出1
  25   2                      else {CH452_DIN_CLR;}         // 输出0
  26   2      //              CH452_DIN=cmd&1;
  27   2              CH452_DCLK_CLR;
  28   2              cmd>>=1;
  29   2              CH452_DCLK_SET;             //上升沿有效
  30   2              }
  31   1              CH452_LOAD_SET;         //加载数据,LOAD上升沿
  32   1              Delay(20);             //延时保持
  33   1      /*
  34   1              DELAY_1US;                              //命令数据加载周期不小于6US,CH451不需要该周期
  35   1              DELAY_1US;
  36   1              DELAY_1US;
  37   1          DELAY_1US;
  38   1              DELAY_1US;
  39   1              DELAY_1US;
  40   1      */
  41   1              ENABLE_KEY_INTERRUPT;
  42   1      /******************************END*************************************************/
  43   1      }
  44          
  45          //*************************************************
  46          //输入按键代码子程序,从CH452读取
  47          unsigned char CH452_Read( void )
  48          {
  49   1              unsigned char i;
  50   1              unsigned char cmd,keycode;                  //定义命令字,和数据存储器
  51   1              DISABLE_KEY_INTERRUPT;                     //禁止键盘中断,防止传输过程中被CH452中断而进入中断服务程序中再次传输 
  52   1      /**************************************发送读按键的命令字*************************************************
             -*****/
  53   1              cmd=0x07;                                      //读按键的命令字
  54   1              CH452_LOAD_CLR;
C51 COMPILER V7.06   CH452_4W_DRIVE                                                        01/17/2009 08:43:37 PAGE 2   

  55   1              for(i=0;i!=4;i++)                  // 只需要发出高4位,多发也可以,但应该确保最后留下的4位是该命令码
  56   1              {
  57   2                      if (cmd&1) {CH452_DIN_SET;}
  58   2                      else {CH452_DIN_CLR;}         // 输出位数据
  59   2      //              CH452_DIN=cmd&1;                     //送入最低位
  60   2              CH452_DCLK_CLR;                  
  61   2              cmd>>=1;                                 //往右移一位
  62   2              CH452_DCLK_SET;                     //产生时钟上升沿锁通知CH451输入位数据
  63   2              }
  64   1              CH452_LOAD_SET;                            //产生加载上升沿通知CH451处理命令数据
  65   1      /*********************************读取按键代码***********************************************/
  66   1              keycode=0;                                    //清除keycode
  67   1              for(i=0;i!=7;i++)
  68   1              {
  69   2                      keycode<<=1;                          //数据移入keycode,高位在前,低位在后
  70   2                      if (CH452_DOUT) keycode++;   //从高到低读入451的数据
  71   2      //      keycode|=CH452_DOUT;
  72   2              CH452_DCLK_CLR;                     //产生时钟下升沿通知CH451输出下一位
  73   2              CH452_DCLK_SET;
  74   2              }
  75   1              CLEAR_KEY_INTER_FLAG;        //清中断标志
  76   1              ENABLE_KEY_INTERRUPT;
  77   1              return(keycode);                        //反回键值
  78   1      /********************************END********************************************************/
  79   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    114    ----
   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 + -